Skip to content

Commit d7cc68c

Browse files
author
mikatong
committed
fix rate limit
1 parent 0d20e79 commit d7cc68c

File tree

3 files changed

+56
-31
lines changed

3 files changed

+56
-31
lines changed

tencentcloud/services/as/resource_tc_as_scaling_config.go

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -514,19 +514,29 @@ func resourceTencentCloudAsScalingConfigCreate(d *schema.ResourceData, meta inte
514514
request.DedicatedClusterId = helper.String(v.(string))
515515
}
516516

517-
response, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().CreateLaunchConfiguration(request)
517+
var launchConfigurationId string
518+
err := resource.Retry(4*tccommon.WriteRetryTimeout, func() *resource.RetryError {
519+
response, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().CreateLaunchConfiguration(request)
520+
if e != nil {
521+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
522+
logId, request.GetAction(), request.ToJsonString(), e.Error())
523+
return tccommon.RetryError(e)
524+
} else {
525+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
526+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
527+
}
528+
529+
if response.Response.LaunchConfigurationId == nil {
530+
return resource.NonRetryableError(fmt.Errorf("Launch configuration id is nil"))
531+
}
532+
launchConfigurationId = *response.Response.LaunchConfigurationId
533+
return nil
534+
})
518535
if err != nil {
519-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
520-
logId, request.GetAction(), request.ToJsonString(), err.Error())
521536
return err
522-
} else {
523-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
524-
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
525-
}
526-
if response.Response.LaunchConfigurationId == nil {
527-
return fmt.Errorf("Launch configuration id is nil")
528537
}
529-
d.SetId(*response.Response.LaunchConfigurationId)
538+
539+
d.SetId(launchConfigurationId)
530540

531541
return resourceTencentCloudAsScalingConfigRead(d, meta)
532542
}
@@ -912,14 +922,21 @@ func resourceTencentCloudAsScalingConfigUpdate(d *schema.ResourceData, meta inte
912922
}
913923
}
914924

915-
response, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().ModifyLaunchConfigurationAttributes(request)
925+
err := resource.Retry(4*tccommon.WriteRetryTimeout, func() *resource.RetryError {
926+
response, e := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UseAsClient().ModifyLaunchConfigurationAttributes(request)
927+
if e != nil {
928+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
929+
logId, request.GetAction(), request.ToJsonString(), e.Error())
930+
return tccommon.RetryError(e)
931+
} else {
932+
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
933+
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
934+
}
935+
936+
return nil
937+
})
916938
if err != nil {
917-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
918-
logId, request.GetAction(), request.ToJsonString(), err.Error())
919939
return err
920-
} else {
921-
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n",
922-
logId, request.GetAction(), request.ToJsonString(), response.ToJsonString())
923940
}
924941

925942
return resourceTencentCloudAsScalingConfigRead(d, meta)

tencentcloud/services/as/resource_tc_as_scaling_config_test.go

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func init() {
7676
})
7777
}
7878

79-
func TestAccTencentCloudAsScalingConfig_basic(t *testing.T) {
79+
func TestAccTencentCloudAsScalingConfigResource_basic(t *testing.T) {
8080
resource.Test(t, resource.TestCase{
8181
PreCheck: func() { tcacctest.AccPreCheck(t) },
8282
Providers: tcacctest.AccProviders,
@@ -89,7 +89,7 @@ func TestAccTencentCloudAsScalingConfig_basic(t *testing.T) {
8989
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "configuration_name", "tf-as-basic"),
9090
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "image_id", "img-2lr9q49h"),
9191
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.#", "1"),
92-
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.0", "SA1.SMALL1"),
92+
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.0", "SA5.MEDIUM2"),
9393
),
9494
},
9595
{
@@ -102,7 +102,7 @@ func TestAccTencentCloudAsScalingConfig_basic(t *testing.T) {
102102
})
103103
}
104104

105-
func TestAccTencentCloudAsScalingConfig_loginSettings(t *testing.T) {
105+
func TestAccTencentCloudAsScalingConfigResource_loginSettings(t *testing.T) {
106106
resource.Test(t, resource.TestCase{
107107
PreCheck: func() { tcacctest.AccPreCheck(t) },
108108
Providers: tcacctest.AccProviders,
@@ -126,7 +126,7 @@ func TestAccTencentCloudAsScalingConfig_loginSettings(t *testing.T) {
126126
})
127127
}
128128

129-
func TestAccTencentCloudAsScalingConfig_full(t *testing.T) {
129+
func TestAccTencentCloudAsScalingConfigResource_full(t *testing.T) {
130130
t.Parallel()
131131
resource.Test(t, resource.TestCase{
132132
PreCheck: func() { tcacctest.AccPreCheck(t) },
@@ -140,7 +140,7 @@ func TestAccTencentCloudAsScalingConfig_full(t *testing.T) {
140140
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "configuration_name", "tf-as-full"),
141141
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "image_id", "img-2lr9q49h"),
142142
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.#", "1"),
143-
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.0", "SA1.SMALL1"),
143+
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "instance_types.0", "SA5.MEDIUM2"),
144144
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "project_id", "0"),
145145
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "system_disk_type", "CLOUD_PREMIUM"),
146146
resource.TestCheckResourceAttr("tencentcloud_as_scaling_config.launch_configuration", "system_disk_size", "50"),
@@ -188,7 +188,7 @@ func TestAccTencentCloudAsScalingConfig_full(t *testing.T) {
188188
})
189189
}
190190

191-
func TestAccTencentCloudAsScalingConfig_charge(t *testing.T) {
191+
func TestAccTencentCloudAsScalingConfigResource_charge(t *testing.T) {
192192
t.Parallel()
193193
resource.Test(t, resource.TestCase{
194194
PreCheck: func() { tcacctest.AccPreCheck(t) },
@@ -274,7 +274,7 @@ func testAccAsScalingConfig_basic() string {
274274
resource "tencentcloud_as_scaling_config" "launch_configuration" {
275275
configuration_name = "tf-as-basic"
276276
image_id = "img-2lr9q49h"
277-
instance_types = ["SA1.SMALL1"]
277+
instance_types = ["SA5.MEDIUM2"]
278278
}
279279
`
280280
}
@@ -284,7 +284,7 @@ func testAccAsScalingConfig_full() string {
284284
resource "tencentcloud_as_scaling_config" "launch_configuration" {
285285
configuration_name = "tf-as-full"
286286
image_id = "img-2lr9q49h"
287-
instance_types = ["SA1.SMALL1"]
287+
instance_types = ["SA5.MEDIUM2"]
288288
project_id = 0
289289
system_disk_type = "CLOUD_PREMIUM"
290290
system_disk_size = "50"
@@ -357,7 +357,7 @@ func testAccAsScalingConfig_charge() string {
357357
resource "tencentcloud_as_scaling_config" "launch_configuration" {
358358
configuration_name = "tf-as-basic-charge"
359359
image_id = "img-2lr9q49h"
360-
instance_types = ["SA1.SMALL1"]
360+
instance_types = ["SA5.MEDIUM2"]
361361
instance_charge_type = "POSTPAID_BY_HOUR"
362362
}
363363
`
@@ -368,7 +368,7 @@ func testAccAsScalingConfig_charge_spot() string {
368368
resource "tencentcloud_as_scaling_config" "launch_configuration" {
369369
configuration_name = "tf-as-basic-charge-spot"
370370
image_id = "img-2lr9q49h"
371-
instance_types = ["SA1.SMALL1"]
371+
instance_types = ["SA5.MEDIUM2"]
372372
instance_charge_type = "SPOTPAID"
373373
spot_instance_type = "one-time"
374374
spot_max_price = "1000"
@@ -381,7 +381,7 @@ func testAccAsScalingConfig_charge_prepaid() string {
381381
resource "tencentcloud_as_scaling_config" "launch_configuration" {
382382
configuration_name = "tf-as-basic-charge-prepaid"
383383
image_id = "img-2lr9q49h"
384-
instance_types = ["SA1.SMALL1"]
384+
instance_types = ["SA5.MEDIUM2"]
385385
instance_charge_type = "PREPAID"
386386
instance_charge_type_prepaid_period = 1
387387
instance_charge_type_prepaid_renew_flag = "NOTIFY_AND_MANUAL_RENEW"

tencentcloud/services/as/service_tencentcloud_as.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,13 +96,21 @@ func (me *AsService) DeleteLaunchConfiguration(ctx context.Context, configuratio
9696
logId := tccommon.GetLogId(ctx)
9797
request := as.NewDeleteLaunchConfigurationRequest()
9898
request.LaunchConfigurationId = &configurationId
99-
ratelimit.Check(request.GetAction())
100-
_, err := me.client.UseAsClient().DeleteLaunchConfiguration(request)
99+
100+
err := resource.Retry(4*tccommon.WriteRetryTimeout, func() *resource.RetryError {
101+
ratelimit.Check(request.GetAction())
102+
_, e := me.client.UseAsClient().DeleteLaunchConfiguration(request)
103+
if e != nil {
104+
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
105+
logId, request.GetAction(), request.ToJsonString(), e.Error())
106+
return tccommon.RetryError(e)
107+
}
108+
return nil
109+
})
101110
if err != nil {
102-
log.Printf("[CRITAL]%s api[%s] fail, request body [%s], reason[%s]\n",
103-
logId, request.GetAction(), request.ToJsonString(), err.Error())
104111
return err
105112
}
113+
106114
return nil
107115
}
108116

0 commit comments

Comments
 (0)