Skip to content

Commit b89b725

Browse files
authored
fix(monitor): [121814649] tencentcloud_monitor_tmp_instance set creation wait (#3109)
* add * add * add * add * add
1 parent 79525ad commit b89b725

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

.changelog/3109.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_monitor_tmp_instance: set creation wait
3+
```

tencentcloud/services/tmp/resource_tc_monitor_tmp_exporter_integration.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,11 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD
145145
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
146146
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
147147
}
148+
149+
if result == nil || result.Response == nil || result.Response.Names == nil {
150+
return resource.NonRetryableError(fmt.Errorf("Create monitor tmpExporterIntegration failed, Response is nil."))
151+
}
152+
148153
response = result
149154
return nil
150155
})
@@ -154,6 +159,10 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD
154159
return err
155160
}
156161

162+
if len(response.Response.Names) < 1 {
163+
return fmt.Errorf("Names is nil.")
164+
}
165+
157166
tmpExporterIntegrationId := *response.Response.Names[0]
158167

159168
d.SetId(strings.Join([]string{tmpExporterIntegrationId, instanceId, strconv.Itoa(kubeType), clusterId, kind}, tccommon.FILED_SP))
@@ -162,7 +171,7 @@ func resourceTencentCloudMonitorTmpExporterIntegrationCreate(d *schema.ResourceD
162171
}
163172

164173
func resourceTencentCloudMonitorTmpExporterIntegrationRead(d *schema.ResourceData, meta interface{}) error {
165-
defer tccommon.LogElapsed("resource.tencentcloud_monitor_tmpExporterIntegration.read")()
174+
defer tccommon.LogElapsed("resource.tencentcloud_monitor_tmp_exporter_integration.read")()
166175
defer tccommon.InconsistentCheck(d, meta)()
167176

168177
logId := tccommon.GetLogId(tccommon.ContextNil)

tencentcloud/services/tmp/resource_tc_monitor_tmp_instance.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,10 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i
128128
logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
129129
}
130130

131+
if result == nil || result.Response == nil {
132+
return resource.NonRetryableError(fmt.Errorf("Create monitor tmpInstance failed, Response is nil."))
133+
}
134+
131135
response = result
132136
return nil
133137
})
@@ -137,6 +141,10 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i
137141
return err
138142
}
139143

144+
if response.Response.InstanceId == nil {
145+
return fmt.Errorf("InstanceId is nil.")
146+
}
147+
140148
tmpInstanceId := *response.Response.InstanceId
141149
service := svcmonitor.NewMonitorService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
142150
ctx := context.WithValue(context.TODO(), tccommon.LogIdKey, logId)
@@ -162,6 +170,31 @@ func resourceTencentCloudMonitorTmpInstanceCreate(d *schema.ResourceData, meta i
162170
return err
163171
}
164172

173+
// wait
174+
initStatus := monitor.NewDescribePrometheusInstanceInitStatusRequest()
175+
initStatus.InstanceId = &tmpInstanceId
176+
err = resource.Retry(8*tccommon.ReadRetryTimeout, func() *resource.RetryError {
177+
result, errRet := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseMonitorClient().DescribePrometheusInstanceInitStatus(initStatus)
178+
if errRet != nil {
179+
return tccommon.RetryError(errRet, tccommon.InternalError)
180+
}
181+
182+
if result == nil || result.Response == nil || result.Response.Status == nil {
183+
return resource.NonRetryableError(fmt.Errorf("prometheusInstanceInit status is nil, operate failed"))
184+
}
185+
186+
status := result.Response.Status
187+
if *status == "running" {
188+
return nil
189+
}
190+
191+
return resource.RetryableError(fmt.Errorf("prometheusInstanceInit status is %s", *status))
192+
})
193+
194+
if err != nil {
195+
return err
196+
}
197+
165198
if tags := helper.GetTags(d, "tags"); len(tags) > 0 {
166199
tagService := svctag.NewTagService(meta.(tccommon.ProviderMeta).GetAPIV3Conn())
167200
region := meta.(tccommon.ProviderMeta).GetAPIV3Conn().Region

0 commit comments

Comments
 (0)