Skip to content

Commit 2bd57e0

Browse files
authored
fix(cdb): [127530089] tencentcloud_mysql_instance support custom timeout parameters (#3529)
* add * add
1 parent 9948717 commit 2bd57e0

File tree

4 files changed

+51
-14
lines changed

4 files changed

+51
-14
lines changed

.changelog/3529.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_mysql_instance: support custom timeout parameters
3+
```

tencentcloud/services/cdb/resource_tc_mysql_instance.go

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,10 @@ func ResourceTencentCloudMysqlInstance() *schema.Resource {
339339
return []*schema.ResourceData{d}, nil
340340
},
341341
},
342+
Timeouts: &schema.ResourceTimeout{
343+
Create: schema.DefaultTimeout(20 * time.Minute),
344+
Delete: schema.DefaultTimeout(20 * time.Minute),
345+
},
342346
}
343347
}
344348

@@ -711,7 +715,7 @@ func resourceTencentCloudMysqlInstanceCreate(d *schema.ResourceData, meta interf
711715
}
712716
}
713717
//internal version: replace setTag end, please do not modify this annotation and refrain from inserting any code between the beginning and end lines of the annotation.
714-
err := resource.Retry(7*tccommon.ReadRetryTimeout, func() *resource.RetryError {
718+
err := resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError {
715719
mysqlInfo, err := mysqlService.DescribeDBInstanceById(ctx, mysqlID)
716720
if err != nil {
717721
return resource.NonRetryableError(err)
@@ -721,17 +725,17 @@ func resourceTencentCloudMysqlInstanceCreate(d *schema.ResourceData, meta interf
721725
return resource.NonRetryableError(err)
722726
}
723727
if *mysqlInfo.Status == MYSQL_STATUS_DELIVING {
724-
return resource.RetryableError(fmt.Errorf("create mysql task status is MYSQL_STATUS_DELIVING(%d)", MYSQL_STATUS_DELIVING))
728+
return resource.RetryableError(fmt.Errorf("create mysql task status is MYSQL_STATUS_DELIVING(%d)", MYSQL_STATUS_DELIVING))
725729
}
726730
if *mysqlInfo.Status == MYSQL_STATUS_RUNNING {
727731
return nil
728732
}
729-
err = fmt.Errorf("create mysql task status is %v,we won't wait for it finish", *mysqlInfo.Status)
733+
err = fmt.Errorf("create mysql task status is %v,we won't wait for it finish", *mysqlInfo.Status)
730734
return resource.NonRetryableError(err)
731735
})
732736

733737
if err != nil {
734-
log.Printf("[CRITAL]%s create mysql task fail, reason:%s\n ", logId, err.Error())
738+
log.Printf("[CRITAL]%s create mysql task fail, reason:%s\n ", logId, err.Error())
735739
return err
736740
}
737741

@@ -755,15 +759,15 @@ func resourceTencentCloudMysqlInstanceCreate(d *schema.ResourceData, meta interf
755759
return nil
756760
}
757761
if taskStatus == MYSQL_TASK_STATUS_INITIAL || taskStatus == MYSQL_TASK_STATUS_RUNNING {
758-
return resource.RetryableError(fmt.Errorf("create account task status is %s", taskStatus))
762+
return resource.RetryableError(fmt.Errorf("create account task status is %s", taskStatus))
759763
}
760764
err = fmt.Errorf("open internet service task status is %s,we won't wait for it finish ,it show message:%s", ",",
761765
message)
762766
return resource.NonRetryableError(err)
763767
})
764768

765769
if err != nil {
766-
log.Printf("[CRITAL]%s open internet service fail, reason:%s\n ", logId, err.Error())
770+
log.Printf("[CRITAL]%s open internet service fail, reason:%s\n ", logId, err.Error())
767771
return err
768772
}
769773
}
@@ -1633,7 +1637,7 @@ func resourceTencentCloudMysqlInstanceDelete(d *schema.ResourceData, meta interf
16331637

16341638
payType := getPayType(d).(int)
16351639
forceDelete := d.Get("force_delete").(bool)
1636-
err = resource.Retry(7*tccommon.ReadRetryTimeout, func() *resource.RetryError {
1640+
err = resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError {
16371641
mysqlInfo, err := mysqlService.DescribeDBInstanceById(ctx, d.Id())
16381642

16391643
if err != nil {

tencentcloud/services/cdb/resource_tc_mysql_instance.md

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
Provides a mysql instance resource to create master database instances.
1+
Provides a MySQL instance resource to create master database instances.
22

33
~> **NOTE:** If this mysql has readonly instance, the terminate operation of the mysql does NOT take effect immediately, maybe takes for several hours. so during that time, VPCs associated with that mysql instance can't be terminated also.
44

5-
~> **NOTE:** The value of parameter `parameters` can be used with tencentcloud_mysql_parameter_list to obtain.
5+
~> **NOTE:** The value of parameter `parameters` can be used with `tencentcloud_mysql_parameter_list` to obtain.
66

77
Example Usage
88

@@ -56,6 +56,11 @@ resource "tencentcloud_mysql_instance" "example" {
5656
character_set_server = "utf8"
5757
max_connections = "1000"
5858
}
59+
60+
timeouts {
61+
create = "30m"
62+
delete = "30m"
63+
}
5964
}
6065
```
6166

@@ -87,6 +92,11 @@ resource "tencentcloud_mysql_instance" "example" {
8792
character_set_server = "utf8"
8893
max_connections = "1000"
8994
}
95+
96+
timeouts {
97+
create = "30m"
98+
delete = "30m"
99+
}
90100
}
91101
```
92102

@@ -119,6 +129,11 @@ resource "tencentcloud_mysql_instance" "example" {
119129
character_set_server = "utf8"
120130
max_connections = "1000"
121131
}
132+
133+
timeouts {
134+
create = "30m"
135+
delete = "30m"
136+
}
122137
}
123138
```
124139

@@ -127,5 +142,5 @@ Import
127142
MySQL instance can be imported using the id, e.g.
128143

129144
```
130-
$ terraform import tencentcloud_mysql_instance.foo cdb-12345678
145+
$ terraform import tencentcloud_mysql_instance.example cdb-12345678
131146
```

website/docs/r/mysql_instance.html.markdown

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ layout: "tencentcloud"
44
page_title: "TencentCloud: tencentcloud_mysql_instance"
55
sidebar_current: "docs-tencentcloud-resource-mysql_instance"
66
description: |-
7-
Provides a mysql instance resource to create master database instances.
7+
Provides a MySQL instance resource to create master database instances.
88
---
99

1010
# tencentcloud_mysql_instance
1111

12-
Provides a mysql instance resource to create master database instances.
12+
Provides a MySQL instance resource to create master database instances.
1313

1414
~> **NOTE:** If this mysql has readonly instance, the terminate operation of the mysql does NOT take effect immediately, maybe takes for several hours. so during that time, VPCs associated with that mysql instance can't be terminated also.
1515

16-
~> **NOTE:** The value of parameter `parameters` can be used with tencentcloud_mysql_parameter_list to obtain.
16+
~> **NOTE:** The value of parameter `parameters` can be used with `tencentcloud_mysql_parameter_list` to obtain.
1717

1818
## Example Usage
1919

@@ -67,6 +67,11 @@ resource "tencentcloud_mysql_instance" "example" {
6767
character_set_server = "utf8"
6868
max_connections = "1000"
6969
}
70+
71+
timeouts {
72+
create = "30m"
73+
delete = "30m"
74+
}
7075
}
7176
```
7277

@@ -98,6 +103,11 @@ resource "tencentcloud_mysql_instance" "example" {
98103
character_set_server = "utf8"
99104
max_connections = "1000"
100105
}
106+
107+
timeouts {
108+
create = "30m"
109+
delete = "30m"
110+
}
101111
}
102112
```
103113

@@ -130,6 +140,11 @@ resource "tencentcloud_mysql_instance" "example" {
130140
character_set_server = "utf8"
131141
max_connections = "1000"
132142
}
143+
144+
timeouts {
145+
create = "30m"
146+
delete = "30m"
147+
}
133148
}
134149
```
135150

@@ -195,6 +210,6 @@ In addition to all arguments above, the following attributes are exported:
195210
MySQL instance can be imported using the id, e.g.
196211

197212
```
198-
$ terraform import tencentcloud_mysql_instance.foo cdb-12345678
213+
$ terraform import tencentcloud_mysql_instance.example cdb-12345678
199214
```
200215

0 commit comments

Comments
 (0)