From 4a58f3a632d7e59b25cc863a106e227ef0b826a5 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Thu, 6 Feb 2025 14:18:57 +0800 Subject: [PATCH 1/5] add --- ...rce_tc_monitor_tmp_exporter_integration.go | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go index 51501e9916..5a21ef8b8d 100644 --- a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go +++ b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go @@ -145,6 +145,11 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) } + + if result == nil || result.Response == nil || response.Response.Names == nil { + return resource.NonRetryableError(fmt.Errorf("Create monitor tmpExporterIntegration failed, Response is nil.")) + } + response = result return nil }) @@ -154,10 +159,37 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD return err } + if len(response.Response.Names) < 1 { + return fmt.Errorf("Names is nil.") + } + tmpExporterIntegrationId := *response.Response.Names[0] d.SetId(strings.Join([]string{tmpExporterIntegrationId, instanceId, strconv.Itoa(kubeType), clusterId, kind}, tccommon.FILED_SP)) + // wait + err = resource.Retry(8*tccommon.ReadRetryTimeout, func() *resource.RetryError { + results, errRet := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMonitorClient().DescribePrometheusInstanceInitStatus(initStatus) + if errRet != nil { + return tccommon.RetryError(errRet, tccommon.InternalError) + } + + status := results.Response.Status + if status == nil { + return resource.NonRetryableError(fmt.Errorf("prometheusInstanceInit status is nil, operate failed")) + } + + if *status == "running" { + return nil + } + + return resource.RetryableError(fmt.Errorf("prometheusInstanceInit status is %s", *status)) + }) + + if err != nil { + return err + } + return resourceTencentCloudMonitorTmpExporterIntegrationRead(d, meta) } From a83c03f089e020ac084681d40f56888d444634ba Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Thu, 6 Feb 2025 14:21:28 +0800 Subject: [PATCH 2/5] add --- .changelog/3109.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3109.txt diff --git a/.changelog/3109.txt b/.changelog/3109.txt new file mode 100644 index 0000000000..be53c9bb98 --- /dev/null +++ b/.changelog/3109.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_monitor_tmp_exporter_integration: set creation wait +``` From 4e1c64e388ff9db90e92b1d38f590b56a1c35100 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Thu, 6 Feb 2025 14:26:38 +0800 Subject: [PATCH 3/5] add --- .../tmp/resource_tc_monitor_tmp_exporter_integration.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go index 5a21ef8b8d..11588e47e7 100644 --- a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go +++ b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go @@ -174,11 +174,11 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD return tccommon.RetryError(errRet, tccommon.InternalError) } - status := results.Response.Status - if status == nil { + if results == nil || results.Response == nil || results.Response.Status == nil { return resource.NonRetryableError(fmt.Errorf("prometheusInstanceInit status is nil, operate failed")) } + status := results.Response.Status if *status == "running" { return nil } From 194efd2ffe72b4006649ae8328169e087e944c86 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Thu, 6 Feb 2025 15:52:54 +0800 Subject: [PATCH 4/5] add --- ...rce_tc_monitor_tmp_exporter_integration.go | 27 ++------------- .../tmp/resource_tc_monitor_tmp_instance.go | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 25 deletions(-) diff --git a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go index 11588e47e7..2fda2c7404 100644 --- a/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go +++ b/tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go @@ -146,7 +146,7 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) } - if result == nil || result.Response == nil || response.Response.Names == nil { + if result == nil || result.Response == nil || result.Response.Names == nil { return resource.NonRetryableError(fmt.Errorf("Create monitor tmpExporterIntegration failed, Response is nil.")) } @@ -167,34 +167,11 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD d.SetId(strings.Join([]string{tmpExporterIntegrationId, instanceId, strconv.Itoa(kubeType), clusterId, kind}, tccommon.FILED_SP)) - // wait - err = resource.Retry(8*tccommon.ReadRetryTimeout, func() *resource.RetryError { - results, errRet := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMonitorClient().DescribePrometheusInstanceInitStatus(initStatus) - if errRet != nil { - return tccommon.RetryError(errRet, tccommon.InternalError) - } - - if results == nil || results.Response == nil || results.Response.Status == nil { - return resource.NonRetryableError(fmt.Errorf("prometheusInstanceInit status is nil, operate failed")) - } - - status := results.Response.Status - if *status == "running" { - return nil - } - - return resource.RetryableError(fmt.Errorf("prometheusInstanceInit status is %s", *status)) - }) - - if err != nil { - return err - } - return resourceTencentCloudMonitorTmpExporterIntegrationRead(d, meta) } func resourceTencentCloudMonitorTmpExporterIntegrationRead(d *schema.ResourceData, meta interface{}) error { - defer tccommon.LogElapsed("resource.tencentcloud_monitor_tmpExporterIntegration.read")() + defer tccommon.LogElapsed("resource.tencentcloud_monitor_tmp_exporter_integration.read")() defer tccommon.InconsistentCheck(d, meta)() logId := tccommon.GetLogId(tccommon.ContextNil) diff --git a/tencentcloud/services/tmp/resource_tc_monitor_tmp_instance.go b/tencentcloud/services/tmp/resource_tc_monitor_tmp_instance.go index 48e1671e7a..5432de2fb7 100644 --- a/tencentcloud/services/tmp/resource_tc_monitor_tmp_instance.go +++ b/tencentcloud/services/tmp/resource_tc_monitor_tmp_instance.go @@ -128,6 +128,10 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i logId, request.GetAction(), request.ToJsonString(), result.ToJsonString()) } + if result == nil || result.Response == nil { + return resource.NonRetryableError(fmt.Errorf("Create monitor tmpInstance failed, Response is nil.")) + } + response = result return nil }) @@ -137,6 +141,10 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i return err } + if response.Response.InstanceId == nil { + return fmt.Errorf("InstanceId is nil.") + } + tmpInstanceId := *response.Response.InstanceId service := svcmonitor.NewMonitorService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId) @@ -162,6 +170,31 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i return err } + // wait + initStatus := monitor.NewDescribePrometheusInstanceInitStatusRequest() + initStatus.InstanceId = &tmpInstanceId + err = resource.Retry(8*tccommon.ReadRetryTimeout, func() *resource.RetryError { + result, errRet := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMonitorClient().DescribePrometheusInstanceInitStatus(initStatus) + if errRet != nil { + return tccommon.RetryError(errRet, tccommon.InternalError) + } + + if result == nil || result.Response == nil || result.Response.Status == nil { + return resource.NonRetryableError(fmt.Errorf("prometheusInstanceInit status is nil, operate failed")) + } + + status := result.Response.Status + if *status == "running" { + return nil + } + + return resource.RetryableError(fmt.Errorf("prometheusInstanceInit status is %s", *status)) + }) + + if err != nil { + return err + } + if tags := helper.GetTags(d, "tags"); len(tags) > 0 { tagService := svctag.NewTagService(meta.(tccommon.ProviderMeta).GetAPIV3Conn()) region := meta.(tccommon.ProviderMeta).GetAPIV3Conn().Region From 0a65dd683d40106d3da16a3692b18406f44a5f3f Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Thu, 6 Feb 2025 15:53:52 +0800 Subject: [PATCH 5/5] add --- .changelog/3109.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changelog/3109.txt b/.changelog/3109.txt index be53c9bb98..cc72e8d922 100644 --- a/.changelog/3109.txt +++ b/.changelog/3109.txt @@ -1,3 +1,3 @@ ```release-note:enhancement -resource/tencentcloud_monitor_tmp_exporter_integration: set creation wait +resource/tencentcloud_monitor_tmp_instance: set creation wait ```