@@ -323,29 +323,43 @@ func resourceTencentCloudTcrInstanceRead(d *schema.ResourceData, meta interface{
323
323
324
324
request := tcr .NewDescribeSecurityPoliciesRequest ()
325
325
request .RegistryId = helper .String (d .Id ())
326
- response , err := client .UseTCRClient ().DescribeSecurityPolicies (request )
327
- if err == nil {
328
- if response .Response .SecurityPolicySet != nil {
329
- securityPolicySet := response .Response .SecurityPolicySet
330
- policies := make ([]interface {}, 0 , len (securityPolicySet ))
331
- for i := range securityPolicySet {
332
- item := securityPolicySet [i ]
333
- policy := make (map [string ]interface {})
334
- policy ["cidr_block" ] = * item .CidrBlock
335
- policy ["description" ] = * item .Description
336
- policy ["index" ] = * item .PolicyIndex
337
- policy ["version" ] = * item .PolicyVersion
338
- policies = append (policies , policy )
339
- }
340
- if err := d .Set ("security_policy" , policies ); err != nil {
341
- return err
326
+ var securityPolicySet []* tcr.SecurityPolicy
327
+
328
+ err := resource .Retry (readRetryTimeout , func () * resource.RetryError {
329
+ policySet , inErr := tcrService .DescribeSecurityPolicies (ctx , request )
330
+ if inErr != nil && publicStatus != "Closed" {
331
+ expectedErr := ""
332
+ if publicStatus == "Opening" {
333
+ expectedErr = tcr .RESOURCENOTFOUND
342
334
}
335
+ return retryError (inErr , expectedErr )
343
336
}
344
- } else {
337
+ securityPolicySet = policySet
338
+ return nil
339
+ })
340
+
341
+ if err != nil {
345
342
_ = d .Set ("security_policy" , make ([]interface {}, 0 ))
346
343
log .Printf ("[WARN] %s error: %s" , request .GetAction (), err .Error ())
347
344
}
348
345
346
+ policies := make ([]interface {}, 0 , len (securityPolicySet ))
347
+
348
+ for i := range securityPolicySet {
349
+ item := securityPolicySet [i ]
350
+ policy := make (map [string ]interface {})
351
+ policy ["cidr_block" ] = * item .CidrBlock
352
+ policy ["description" ] = * item .Description
353
+ policy ["index" ] = * item .PolicyIndex
354
+ policy ["version" ] = * item .PolicyVersion
355
+ policies = append (policies , policy )
356
+ }
357
+
358
+ err = d .Set ("security_policy" , policies )
359
+ if err != nil {
360
+ return err
361
+ }
362
+
349
363
tags := make (map [string ]string , len (instance .TagSpecification .Tags ))
350
364
for _ , tag := range instance .TagSpecification .Tags {
351
365
tags [* tag .Key ] = * tag .Value
0 commit comments