@@ -544,6 +544,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
544544 log .Printf ("[CRITAL]%s enable intranet access bh resource failed, reason:%+v" , logId , reqErr )
545545 return reqErr
546546 }
547+
548+ // wait
549+ waitReq := bhv20230418 .NewDescribeResourcesRequest ()
550+ waitReq .ResourceIds = []* string {& resourceId }
551+ reqErr = resource .Retry (tccommon .ReadRetryTimeout * 7 , func () * resource.RetryError {
552+ result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseBhV20230418Client ().DescribeResourcesWithContext (ctx , waitReq )
553+ if e != nil {
554+ return tccommon .RetryError (e )
555+ } else {
556+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , waitReq .GetAction (), waitReq .ToJsonString (), result .ToJsonString ())
557+ }
558+
559+ if result == nil || result .Response == nil || result .Response .ResourceSet == nil || len (result .Response .ResourceSet ) == 0 {
560+ return resource .NonRetryableError (fmt .Errorf ("Describe bh resource failed, Response is nil." ))
561+ }
562+
563+ intranetAccess := result .Response .ResourceSet [0 ].IntranetAccess
564+ if intranetAccess == nil {
565+ return resource .NonRetryableError (fmt .Errorf ("IntranetAccess is nil." ))
566+ }
567+
568+ if * intranetAccess == 1 {
569+ return nil
570+ }
571+
572+ return resource .RetryableError (fmt .Errorf ("Enable intranet access is still running...Intranet access is %d" , * intranetAccess ))
573+ })
574+
575+ if reqErr != nil {
576+ log .Printf ("[CRITAL]%s enable intranet access bh resource failed, reason:%+v" , logId , reqErr )
577+ return reqErr
578+ }
547579 } else {
548580 request := bhv20230418 .NewDisableIntranetAccessRequest ()
549581 request .ResourceId = helper .String (resourceId )
@@ -562,6 +594,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
562594 log .Printf ("[CRITAL]%s disable intranet access bh resource failed, reason:%+v" , logId , reqErr )
563595 return reqErr
564596 }
597+
598+ // wait
599+ waitReq := bhv20230418 .NewDescribeResourcesRequest ()
600+ waitReq .ResourceIds = []* string {& resourceId }
601+ reqErr = resource .Retry (tccommon .ReadRetryTimeout * 7 , func () * resource.RetryError {
602+ result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseBhV20230418Client ().DescribeResourcesWithContext (ctx , waitReq )
603+ if e != nil {
604+ return tccommon .RetryError (e )
605+ } else {
606+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , waitReq .GetAction (), waitReq .ToJsonString (), result .ToJsonString ())
607+ }
608+
609+ if result == nil || result .Response == nil || result .Response .ResourceSet == nil || len (result .Response .ResourceSet ) == 0 {
610+ return resource .NonRetryableError (fmt .Errorf ("Describe bh resource failed, Response is nil." ))
611+ }
612+
613+ intranetAccess := result .Response .ResourceSet [0 ].IntranetAccess
614+ if intranetAccess == nil {
615+ return resource .NonRetryableError (fmt .Errorf ("IntranetAccess is nil." ))
616+ }
617+
618+ if * intranetAccess == 0 {
619+ return nil
620+ }
621+
622+ return resource .RetryableError (fmt .Errorf ("Disable intranet access is still running...Intranet access is %d" , * intranetAccess ))
623+ })
624+
625+ if reqErr != nil {
626+ log .Printf ("[CRITAL]%s disable intranet access bh resource failed, reason:%+v" , logId , reqErr )
627+ return reqErr
628+ }
565629 }
566630 }
567631
@@ -583,6 +647,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
583647 return nil
584648 })
585649
650+ if reqErr != nil {
651+ log .Printf ("[CRITAL]%s disable external access bh resource failed, reason:%+v" , logId , reqErr )
652+ return reqErr
653+ }
654+
655+ // wait
656+ waitReq := bhv20230418 .NewDescribeResourcesRequest ()
657+ waitReq .ResourceIds = []* string {& resourceId }
658+ reqErr = resource .Retry (tccommon .ReadRetryTimeout * 7 , func () * resource.RetryError {
659+ result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseBhV20230418Client ().DescribeResourcesWithContext (ctx , waitReq )
660+ if e != nil {
661+ return tccommon .RetryError (e )
662+ } else {
663+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , waitReq .GetAction (), waitReq .ToJsonString (), result .ToJsonString ())
664+ }
665+
666+ if result == nil || result .Response == nil || result .Response .ResourceSet == nil || len (result .Response .ResourceSet ) == 0 {
667+ return resource .NonRetryableError (fmt .Errorf ("Describe bh resource failed, Response is nil." ))
668+ }
669+
670+ externalAccess := result .Response .ResourceSet [0 ].ExternalAccess
671+ if externalAccess == nil {
672+ return resource .NonRetryableError (fmt .Errorf ("ExternalAccess is nil." ))
673+ }
674+
675+ if * externalAccess == 1 {
676+ return nil
677+ }
678+
679+ return resource .RetryableError (fmt .Errorf ("Enable external access is still running...External access is %d" , * externalAccess ))
680+ })
681+
586682 if reqErr != nil {
587683 log .Printf ("[CRITAL]%s enable external access bh resource failed, reason:%+v" , logId , reqErr )
588684 return reqErr
@@ -605,6 +701,38 @@ func resourceTencentCloudBhResourceUpdate(d *schema.ResourceData, meta interface
605701 log .Printf ("[CRITAL]%s disable external access bh resource failed, reason:%+v" , logId , reqErr )
606702 return reqErr
607703 }
704+
705+ // wait
706+ waitReq := bhv20230418 .NewDescribeResourcesRequest ()
707+ waitReq .ResourceIds = []* string {& resourceId }
708+ reqErr = resource .Retry (tccommon .ReadRetryTimeout * 7 , func () * resource.RetryError {
709+ result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseBhV20230418Client ().DescribeResourcesWithContext (ctx , waitReq )
710+ if e != nil {
711+ return tccommon .RetryError (e )
712+ } else {
713+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , waitReq .GetAction (), waitReq .ToJsonString (), result .ToJsonString ())
714+ }
715+
716+ if result == nil || result .Response == nil || result .Response .ResourceSet == nil || len (result .Response .ResourceSet ) == 0 {
717+ return resource .NonRetryableError (fmt .Errorf ("Describe bh resource failed, Response is nil." ))
718+ }
719+
720+ externalAccess := result .Response .ResourceSet [0 ].ExternalAccess
721+ if externalAccess == nil {
722+ return resource .NonRetryableError (fmt .Errorf ("ExternalAccess is nil." ))
723+ }
724+
725+ if * externalAccess == 0 {
726+ return nil
727+ }
728+
729+ return resource .RetryableError (fmt .Errorf ("Disable external access is still running...External access is %d" , * externalAccess ))
730+ })
731+
732+ if reqErr != nil {
733+ log .Printf ("[CRITAL]%s disable external access bh resource failed, reason:%+v" , logId , reqErr )
734+ return reqErr
735+ }
608736 }
609737 }
610738 }
0 commit comments