Skip to content

Commit 72a716b

Browse files
authored
fix(postgresq): [124966207] tencentcloud_postgresql_clone_db_instance optmize doc and code logic (#3414)
* add * add * add
1 parent a859da7 commit 72a716b

File tree

4 files changed

+48
-25
lines changed

4 files changed

+48
-25
lines changed

.changelog/3414.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_postgresql_clone_db_instance: optmize doc and code logic
3+
```

tencentcloud/services/postgresql/resource_tc_postgresql_clone_db_instance.go

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
// Code generated by iacg; DO NOT EDIT.
21
package postgresql
32

43
import (
@@ -110,11 +109,13 @@ func ResourceTencentCloudPostgresqlCloneDbInstance() *schema.Resource {
110109
"tag_key": {
111110
Type: schema.TypeString,
112111
Required: true,
112+
ForceNew: true,
113113
Description: "Tag key.",
114114
},
115115
"tag_value": {
116116
Type: schema.TypeString,
117117
Required: true,
118+
ForceNew: true,
118119
Description: "Tag value.",
119120
},
120121
},
@@ -131,16 +132,19 @@ func ResourceTencentCloudPostgresqlCloneDbInstance() *schema.Resource {
131132
"role": {
132133
Type: schema.TypeString,
133134
Required: true,
135+
ForceNew: true,
134136
Description: "Node type. Valid values:\n`Primary`;\n`Standby`.",
135137
},
136138
"zone": {
137139
Type: schema.TypeString,
138140
Required: true,
141+
ForceNew: true,
139142
Description: "AZ where the node resides, such as ap-guangzhou-1.",
140143
},
141144
"dedicated_cluster_id": {
142145
Type: schema.TypeString,
143146
Optional: true,
147+
ForceNew: true,
144148
Description: "Dedicated cluster ID.",
145149
},
146150
},
@@ -182,14 +186,9 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
182186
defer tccommon.LogElapsed("resource.tencentcloud_postgresql_clone_db_instance.create")()
183187
defer tccommon.InconsistentCheck(d, meta)()
184188

185-
logId := tccommon.GetLogId(tccommon.ContextNil)
186-
187-
ctx := tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
188-
189-
var (
190-
dBInstanceId string
191-
)
192189
var (
190+
logId = tccommon.GetLogId(tccommon.ContextNil)
191+
ctx = tccommon.NewResourceLifeCycleHandleFuncContext(context.Background(), logId, d, meta)
193192
request = postgresv20170312.NewCloneDBInstanceRequest()
194193
response = postgresv20170312.NewCloneDBInstanceResponse()
195194
)
@@ -249,9 +248,11 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
249248
if v, ok := tagListMap["tag_key"]; ok {
250249
tag.TagKey = helper.String(v.(string))
251250
}
251+
252252
if v, ok := tagListMap["tag_value"]; ok {
253253
tag.TagValue = helper.String(v.(string))
254254
}
255+
255256
request.TagList = append(request.TagList, &tag)
256257
}
257258
}
@@ -263,12 +264,15 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
263264
if v, ok := dBNodeSetMap["role"]; ok {
264265
dBNode.Role = helper.String(v.(string))
265266
}
267+
266268
if v, ok := dBNodeSetMap["zone"]; ok {
267269
dBNode.Zone = helper.String(v.(string))
268270
}
271+
269272
if v, ok := dBNodeSetMap["dedicated_cluster_id"]; ok {
270273
dBNode.DedicatedClusterId = helper.String(v.(string))
271274
}
275+
272276
request.DBNodeSet = append(request.DBNodeSet, &dBNode)
273277
}
274278
}
@@ -296,16 +300,26 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
296300
} else {
297301
log.Printf("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n", logId, request.GetAction(), request.ToJsonString(), result.ToJsonString())
298302
}
303+
304+
if result == nil || result.Response == nil {
305+
return resource.NonRetryableError(fmt.Errorf("Create postgresql clone db instance failed, Response is nil."))
306+
}
307+
299308
response = result
300309
return nil
301310
})
311+
302312
if err != nil {
303313
log.Printf("[CRITAL]%s create postgresql clone db instance failed, reason:%+v", logId, err)
304314
return err
305315
}
306316

307-
dBInstanceId = *response.Response.DBInstanceId
317+
if response.Response.DBInstanceId == nil {
318+
return fmt.Errorf("DBInstanceId is nil.")
319+
}
308320

321+
// wait
322+
dBInstanceId := *response.Response.DBInstanceId
309323
if _, err := (&resource.StateChangeConf{
310324
Delay: 10 * time.Second,
311325
MinTimeout: 3 * time.Second,
@@ -316,8 +330,8 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
316330
}).WaitForStateContext(ctx); err != nil {
317331
return err
318332
}
319-
d.SetId(dBInstanceId)
320333

334+
d.SetId(dBInstanceId)
321335
return resourceTencentCloudPostgresqlCloneDbInstanceRead(d, meta)
322336
}
323337

@@ -342,23 +356,27 @@ func resourcePostgresqlCloneDbInstanceCreateStateRefreshFunc_0_0(ctx context.Con
342356
if meta == nil {
343357
return nil, "", fmt.Errorf("resource data can not be nil")
344358
}
359+
345360
if req == nil {
346361
d := tccommon.ResourceDataFromContext(ctx)
347362
if d == nil {
348363
return nil, "", fmt.Errorf("resource data can not be nil")
349364
}
365+
350366
_ = d
351367
req = postgresv20170312.NewDescribeDBInstanceAttributeRequest()
352368
req.DBInstanceId = helper.String(dBInstanceId)
353-
354369
}
370+
355371
resp, err := meta.(tccommon.ProviderMeta).GetAPIV3Conn().UsePostgresV20170312Client().DescribeDBInstanceAttributeWithContext(ctx, req)
356372
if err != nil {
357373
return nil, "", err
358374
}
375+
359376
if resp == nil || resp.Response == nil {
360377
return nil, "", nil
361378
}
379+
362380
state := fmt.Sprintf("%v", *resp.Response.DBInstance.DBInstanceStatus)
363381
return resp.Response, state, nil
364382
}

tencentcloud/services/postgresql/resource_tc_postgresql_clone_db_instance.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ Provides a resource to create a postgresql clone db instance
22

33
Example Usage
44

5-
Clone db instance by `recovery_target_time`
5+
Clone db instance by recovery_target_time
66

77
```hcl
88
resource "tencentcloud_postgresql_clone_db_instance" "example" {
@@ -30,12 +30,12 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
3030
3131
tag_list {
3232
tag_key = "createBy"
33-
tag_value = "terraform"
33+
tag_value = "Terraform"
3434
}
3535
}
3636
```
3737

38-
Clone db instance by `backup_set_id`
38+
Clone db instance by backup_set_id
3939

4040
```hcl
4141
data "tencentcloud_postgresql_base_backups" "base_backups" {
@@ -73,7 +73,7 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
7373
7474
tag_list {
7575
tag_key = "createBy"
76-
tag_value = "terraform"
76+
tag_value = "Terraform"
7777
}
7878
}
7979
```
@@ -108,7 +108,7 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
108108
109109
tag_list {
110110
tag_key = "createBy"
111-
tag_value = "terraform"
111+
tag_value = "Terraform"
112112
}
113113
}
114114
```

website/docs/r/postgresql_clone_db_instance.html.markdown

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ Provides a resource to create a postgresql clone db instance
1313

1414
## Example Usage
1515

16+
### Clone db instance by recovery_target_time
17+
1618
```hcl
1719
resource "tencentcloud_postgresql_clone_db_instance" "example" {
1820
db_instance_id = "postgres-evsqpyap"
@@ -39,12 +41,12 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
3941
4042
tag_list {
4143
tag_key = "createBy"
42-
tag_value = "terraform"
44+
tag_value = "Terraform"
4345
}
4446
}
4547
```
4648

47-
49+
### Clone db instance by backup_set_id
4850

4951
```hcl
5052
data "tencentcloud_postgresql_base_backups" "base_backups" {
@@ -82,7 +84,7 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
8284
8385
tag_list {
8486
tag_key = "createBy"
85-
tag_value = "terraform"
87+
tag_value = "Terraform"
8688
}
8789
}
8890
```
@@ -117,7 +119,7 @@ resource "tencentcloud_postgresql_clone_db_instance" "example" {
117119
118120
tag_list {
119121
tag_key = "createBy"
120-
tag_value = "terraform"
122+
tag_value = "Terraform"
121123
}
122124
}
123125
```
@@ -163,16 +165,16 @@ Default value for the read-only instance: Async.
163165

164166
The `db_node_set` object supports the following:
165167

166-
* `role` - (Required, String) Node type. Valid values:
168+
* `role` - (Required, String, ForceNew) Node type. Valid values:
167169
`Primary`;
168170
`Standby`.
169-
* `zone` - (Required, String) AZ where the node resides, such as ap-guangzhou-1.
170-
* `dedicated_cluster_id` - (Optional, String) Dedicated cluster ID.
171+
* `zone` - (Required, String, ForceNew) AZ where the node resides, such as ap-guangzhou-1.
172+
* `dedicated_cluster_id` - (Optional, String, ForceNew) Dedicated cluster ID.
171173

172174
The `tag_list` object supports the following:
173175

174-
* `tag_key` - (Required, String) Tag key.
175-
* `tag_value` - (Required, String) Tag value.
176+
* `tag_key` - (Required, String, ForceNew) Tag key.
177+
* `tag_value` - (Required, String, ForceNew) Tag value.
176178

177179
## Attributes Reference
178180

0 commit comments

Comments
 (0)