From cfbe6ed1f4d415a712dc3430bfaf97ff067eac52 Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Tue, 3 Jun 2025 18:22:31 +0800 Subject: [PATCH 1/2] add --- .../as/resource_tc_as_start_instance_refresh.go | 15 ++++++++++----- .../r/as_start_instance_refresh.html.markdown | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/tencentcloud/services/as/resource_tc_as_start_instance_refresh.go b/tencentcloud/services/as/resource_tc_as_start_instance_refresh.go index b85c8306a9..158c6b9fc8 100644 --- a/tencentcloud/services/as/resource_tc_as_start_instance_refresh.go +++ b/tencentcloud/services/as/resource_tc_as_start_instance_refresh.go @@ -81,7 +81,7 @@ func ResourceTencentCloudAsStartInstanceRefresh() *schema.Resource { Type: schema.TypeString, Optional: true, ForceNew: true, - Description: "Refresh mode, currently, only rolling updates are supported, with the default value being ROLLING_UPDATE_RESET.", + Description: "Refresh mode. Value range: ROLLING_UPDATE_RESET: Reinstall the system for rolling update; ROLLING_UPDATE_REPLACE: Create a new instance for rolling update. This mode does not support the rollback interface yet.", }, }, } @@ -174,15 +174,20 @@ func resourceTencentCloudAsStartInstanceRefreshCreate(d *schema.ResourceData, me } if result == nil || result.Response == nil || len(result.Response.RefreshActivitySet) != 1 { - e = fmt.Errorf("create as start instance refresh failed.") - return resource.NonRetryableError(e) + return resource.NonRetryableError(fmt.Errorf("Create as start instance refresh failed.")) + } + + refreshStatus := result.Response.RefreshActivitySet[0].Status + refreshActivityId := result.Response.RefreshActivitySet[0].RefreshActivityId + if refreshStatus == nil || refreshActivityId == nil { + return resource.NonRetryableError(fmt.Errorf("Status or RefreshActivityId is nil.")) } - if *result.Response.RefreshActivitySet[0].Status == REFRESH_ACTIVITIES_SUCCESSFUL { + if *refreshStatus == REFRESH_ACTIVITIES_SUCCESSFUL { return nil } - return resource.RetryableError(fmt.Errorf("start instance refresh is still in running, state %s", *result.Response.RefreshActivitySet[0].Status)) + return resource.RetryableError(fmt.Errorf("Start instance refresh is still in running. Status: %s, RefreshActivityId: %s.", *refreshStatus, *refreshActivityId)) }) if err != nil { diff --git a/website/docs/r/as_start_instance_refresh.html.markdown b/website/docs/r/as_start_instance_refresh.html.markdown index 38697d2ff6..d367e1363d 100644 --- a/website/docs/r/as_start_instance_refresh.html.markdown +++ b/website/docs/r/as_start_instance_refresh.html.markdown @@ -39,7 +39,7 @@ The following arguments are supported: * `auto_scaling_group_id` - (Required, String, ForceNew) Scaling group ID. * `refresh_settings` - (Required, List, ForceNew) Refresh settings. -* `refresh_mode` - (Optional, String, ForceNew) Refresh mode, currently, only rolling updates are supported, with the default value being ROLLING_UPDATE_RESET. +* `refresh_mode` - (Optional, String, ForceNew) Refresh mode. Value range: ROLLING_UPDATE_RESET: Reinstall the system for rolling update; ROLLING_UPDATE_REPLACE: Create a new instance for rolling update. This mode does not support the rollback interface yet. The `refresh_settings` object supports the following: From 4999d26aedfccdc1078f40dcea021daeab7eaaff Mon Sep 17 00:00:00 2001 From: SevenEarth <391613297@qq.com> Date: Tue, 3 Jun 2025 18:24:04 +0800 Subject: [PATCH 2/2] add --- .changelog/3390.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3390.txt diff --git a/.changelog/3390.txt b/.changelog/3390.txt new file mode 100644 index 0000000000..9b8af60ea6 --- /dev/null +++ b/.changelog/3390.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/tencentcloud_as_start_instance_refresh: update retry code logic +``` \ No newline at end of file