@@ -323,29 +323,43 @@ func resourceTencentCloudTcrInstanceRead(d *schema.ResourceData, meta interface{
323323
324324 request := tcr .NewDescribeSecurityPoliciesRequest ()
325325 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
342334 }
335+ return retryError (inErr , expectedErr )
343336 }
344- } else {
337+ securityPolicySet = policySet
338+ return nil
339+ })
340+
341+ if err != nil {
345342 _ = d .Set ("security_policy" , make ([]interface {}, 0 ))
346343 log .Printf ("[WARN] %s error: %s" , request .GetAction (), err .Error ())
347344 }
348345
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+
349363 tags := make (map [string ]string , len (instance .TagSpecification .Tags ))
350364 for _ , tag := range instance .TagSpecification .Tags {
351365 tags [* tag .Key ] = * tag .Value
0 commit comments