Skip to content

Commit 18547b2

Browse files
committed
as add waiting status
1 parent b401ba0 commit 18547b2

File tree

6 files changed

+45
-9
lines changed

6 files changed

+45
-9
lines changed

tencentcloud/extension_as.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,3 +128,8 @@ const (
128128
SCALING_GROUP_ACTIVITY_STATUS_FAILED = "FAILED"
129129
SCALING_GROUP_ACTIVITY_STATUS_CANCELLED = "CANCELLED"
130130
)
131+
132+
const (
133+
SCALING_GROUP_IN_ACTIVITY_STATUS = "IN_ACTIVITY"
134+
SCALING_GROUP_NOT_IN_ACTIVITY_STATUS = "NOT_IN_ACTIVITY"
135+
)

tencentcloud/resource_tc_as_notification.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Example Usage
66
```hcl
77
resource "tencentcloud_as_notification" "as_notification" {
88
scaling_group_id = "sg-12af45"
9-
notification_type = ["SCALE_OUT_FAILED", "SCALE_IN_SUCCESSFUL", "SCALE_IN_FAILED", "REPLACE_UNHEALTHY_INSTANCE_FAILED"]
9+
notification_types = ["SCALE_OUT_FAILED", "SCALE_IN_SUCCESSFUL", "SCALE_IN_FAILED", "REPLACE_UNHEALTHY_INSTANCE_FAILED"]
1010
notification_user_group_ids = ["76955"]
1111
}
1212
```

tencentcloud/resource_tc_as_scaling_group.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import (
4444
"context"
4545
"fmt"
4646
"log"
47+
"time"
4748

4849
"github.com/hashicorp/terraform/helper/resource"
4950
"github.com/hashicorp/terraform/helper/schema"
@@ -222,6 +223,7 @@ func resourceTencentCloudAsScalingGroupCreate(d *schema.ResourceData, meta inter
222223
defer logElapsed("resource.tencentcloud_as_scaling_group.create")()
223224

224225
logId := getLogId(contextNil)
226+
ctx := context.WithValue(context.TODO(), "logId", logId)
225227
request := as.NewCreateAutoScalingGroupRequest()
226228

227229
request.AutoScalingGroupName = stringToPointer(d.Get("scaling_group_name").(string))
@@ -334,9 +336,26 @@ func resourceTencentCloudAsScalingGroupCreate(d *schema.ResourceData, meta inter
334336
}); err != nil {
335337
return err
336338
}
337-
338339
d.SetId(id)
339340

341+
// wait for status
342+
asService := AsService{
343+
client: meta.(*TencentCloudClient).apiV3Conn,
344+
}
345+
err := resource.Retry(5*time.Minute, func() *resource.RetryError {
346+
scalingGroup, errRet := asService.DescribeAutoScalingGroupById(ctx, id)
347+
if errRet != nil {
348+
return retryError(errRet, "InternalError")
349+
}
350+
if scalingGroup != nil && *scalingGroup.InActivityStatus == SCALING_GROUP_NOT_IN_ACTIVITY_STATUS {
351+
return nil
352+
}
353+
return resource.RetryableError(fmt.Errorf("scaling group status is %s, retry...", *scalingGroup.InActivityStatus))
354+
})
355+
if err != nil {
356+
return err
357+
}
358+
340359
return resourceTencentCloudAsScalingGroupRead(d, meta)
341360
}
342361

tencentcloud/resource_tc_cos_bucket.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ import (
8282
"time"
8383

8484
"github.com/aws/aws-sdk-go/aws"
85+
"github.com/aws/aws-sdk-go/aws/awserr"
8586
"github.com/aws/aws-sdk-go/service/s3"
8687
"github.com/hashicorp/terraform/helper/hashcode"
8788
"github.com/hashicorp/terraform/helper/schema"
@@ -289,6 +290,17 @@ func resourceTencentCloudCosBucketRead(d *schema.ResourceData, meta interface{})
289290
client: meta.(*TencentCloudClient).apiV3Conn,
290291
}
291292

293+
err := cosService.HeadBucket(ctx, bucket)
294+
if err != nil {
295+
if awsError, ok := err.(awserr.RequestFailure); ok && awsError.StatusCode() == 404 {
296+
log.Printf("[WARN]%s bucket (%s) not found, error code (404)", logId, bucket)
297+
d.SetId("")
298+
return nil
299+
} else {
300+
return err
301+
}
302+
}
303+
292304
// set bucket in the import case
293305
if _, ok := d.GetOk("bucket"); !ok {
294306
d.Set("bucket", d.Id())

tencentcloud/resource_tc_instance.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,7 @@ func resourceTencentCloudInstanceCreate(d *schema.ResourceData, meta interface{}
549549
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
550550
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
551551
if errRet != nil {
552-
return retryError(errRet)
552+
return retryError(errRet, "InternalError")
553553
}
554554
if instance != nil && *instance.InstanceState == CVM_STATUS_RUNNING {
555555
return nil
@@ -570,7 +570,7 @@ func resourceTencentCloudInstanceCreate(d *schema.ResourceData, meta interface{}
570570
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
571571
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
572572
if errRet != nil {
573-
return retryError(errRet)
573+
return retryError(errRet, "InternalError")
574574
}
575575
if instance != nil && *instance.InstanceState == CVM_STATUS_STOPPED {
576576
return nil
@@ -729,7 +729,7 @@ func resourceTencentCloudInstanceUpdate(d *schema.ResourceData, meta interface{}
729729
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
730730
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
731731
if errRet != nil {
732-
return retryError(errRet)
732+
return retryError(errRet, "InternalError")
733733
}
734734
if instance != nil && *instance.InstanceState == CVM_STATUS_RUNNING {
735735
return nil
@@ -782,7 +782,7 @@ func resourceTencentCloudInstanceUpdate(d *schema.ResourceData, meta interface{}
782782
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
783783
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
784784
if errRet != nil {
785-
return retryError(errRet)
785+
return retryError(errRet, "InternalError")
786786
}
787787
if instance != nil && *instance.InstanceState == CVM_STATUS_RUNNING {
788788
return nil
@@ -800,7 +800,7 @@ func resourceTencentCloudInstanceUpdate(d *schema.ResourceData, meta interface{}
800800
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
801801
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
802802
if errRet != nil {
803-
return retryError(errRet)
803+
return retryError(errRet, "InternalError")
804804
}
805805
if instance != nil && *instance.InstanceState == CVM_STATUS_STOPPED {
806806
return nil
@@ -858,7 +858,7 @@ func resourceTencentCloudInstanceDelete(d *schema.ResourceData, meta interface{}
858858
err = resource.Retry(5*time.Minute, func() *resource.RetryError {
859859
instance, errRet := cvmService.DescribeInstanceById(ctx, instanceId)
860860
if errRet != nil {
861-
return retryError(errRet)
861+
return retryError(errRet, "InternalError")
862862
}
863863
if instance == nil {
864864
return nil

website/docs/r/as_notification.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Provides a resource for an AS (Auto scaling) notification.
1515
```hcl
1616
resource "tencentcloud_as_notification" "as_notification" {
1717
scaling_group_id = "sg-12af45"
18-
notification_type = ["SCALE_OUT_FAILED", "SCALE_IN_SUCCESSFUL", "SCALE_IN_FAILED", "REPLACE_UNHEALTHY_INSTANCE_FAILED"]
18+
notification_types = ["SCALE_OUT_FAILED", "SCALE_IN_SUCCESSFUL", "SCALE_IN_FAILED", "REPLACE_UNHEALTHY_INSTANCE_FAILED"]
1919
notification_user_group_ids = ["76955"]
2020
}
2121
```

0 commit comments

Comments
 (0)