Skip to content

Commit 0d2fd82

Browse files
authored
feat(redis): [119914522] adjust redis startup logic (#2862)
* feat(redis): [119914522] adjust redis startup logic * add changelog
1 parent 84c85d2 commit 0d2fd82

File tree

2 files changed

+11
-13
lines changed

2 files changed

+11
-13
lines changed

.changelog/2862.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_redis_startup_instance_operation: adjust startup status logic
3+
```

tencentcloud/services/crs/resource_tc_redis_startup_instance_operation.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12-
sdkErrors "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
1312
redis "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/redis/v20180412"
1413

1514
"github.com/tencentcloudstack/terraform-provider-tencentcloud/tencentcloud/internal/helper"
@@ -41,7 +40,6 @@ func resourceTencentCloudRedisStartupInstanceOperationCreate(d *schema.ResourceD
4140

4241
var (
4342
request = redis.NewStartupInstanceRequest()
44-
response = redis.NewStartupInstanceResponse()
4543
instanceId string
4644
)
4745
if v, ok := d.GetOk("instance_id"); ok {
@@ -56,7 +54,6 @@ func resourceTencentCloudRedisStartupInstanceOperationCreate(d *schema.ResourceD
5654
} else {
5755
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
5856
}
59-
response = result
6057
return nil
6158
})
6259
if err != nil {
@@ -67,21 +64,19 @@ func resourceTencentCloudRedisStartupInstanceOperationCreate(d *schema.ResourceD
6764
d.SetId(instanceId)
6865

6966
service := RedisService{client: meta.(tccommon.ProviderMeta).GetAPIV3Conn()}
70-
taskId := *response.Response.TaskId
7167
err = resource.Retry(6*tccommon.ReadRetryTimeout, func() *resource.RetryError {
72-
ok, err := service.DescribeTaskInfo(ctx, instanceId, taskId)
68+
instance, err := service.DescribeRedisInstanceById(ctx, d.Id())
7369
if err != nil {
74-
if _, ok := err.(*sdkErrors.TencentCloudSDKError); !ok {
75-
return resource.RetryableError(err)
76-
} else {
77-
return resource.NonRetryableError(err)
78-
}
70+
return tccommon.RetryError(err, tccommon.InternalError)
7971
}
80-
if ok {
72+
if instance == nil {
73+
return resource.RetryableError(fmt.Errorf("redis instance is nil, retry..."))
74+
}
75+
if *instance.Status == REDIS_STATUS_ONLINE {
8176
return nil
82-
} else {
83-
return resource.RetryableError(fmt.Errorf("startup instance is processing"))
8477
}
78+
log.Printf("[DEBUG]%s api[%s] redis instance status is %v[%s], need 2[online], retry...", logId, request.GetAction(), *instance.Status, REDIS_STATUS[*instance.Status])
79+
return resource.RetryableError(fmt.Errorf("redis instance is %v, need 2, retry...", *instance.Status))
8580
})
8681

8782
if err != nil {

0 commit comments

Comments
 (0)