1
- // Code generated by iacg; DO NOT EDIT.
2
1
package postgresql
3
2
4
3
import (
@@ -110,11 +109,13 @@ func ResourceTencentCloudPostgresqlCloneDbInstance() *schema.Resource {
110
109
"tag_key" : {
111
110
Type : schema .TypeString ,
112
111
Required : true ,
112
+ ForceNew : true ,
113
113
Description : "Tag key." ,
114
114
},
115
115
"tag_value" : {
116
116
Type : schema .TypeString ,
117
117
Required : true ,
118
+ ForceNew : true ,
118
119
Description : "Tag value." ,
119
120
},
120
121
},
@@ -131,16 +132,19 @@ func ResourceTencentCloudPostgresqlCloneDbInstance() *schema.Resource {
131
132
"role" : {
132
133
Type : schema .TypeString ,
133
134
Required : true ,
135
+ ForceNew : true ,
134
136
Description : "Node type. Valid values:\n `Primary`;\n `Standby`." ,
135
137
},
136
138
"zone" : {
137
139
Type : schema .TypeString ,
138
140
Required : true ,
141
+ ForceNew : true ,
139
142
Description : "AZ where the node resides, such as ap-guangzhou-1." ,
140
143
},
141
144
"dedicated_cluster_id" : {
142
145
Type : schema .TypeString ,
143
146
Optional : true ,
147
+ ForceNew : true ,
144
148
Description : "Dedicated cluster ID." ,
145
149
},
146
150
},
@@ -182,14 +186,9 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
182
186
defer tccommon .LogElapsed ("resource.tencentcloud_postgresql_clone_db_instance.create" )()
183
187
defer tccommon .InconsistentCheck (d , meta )()
184
188
185
- logId := tccommon .GetLogId (tccommon .ContextNil )
186
-
187
- ctx := tccommon .NewResourceLifeCycleHandleFuncContext (context .Background (), logId , d , meta )
188
-
189
- var (
190
- dBInstanceId string
191
- )
192
189
var (
190
+ logId = tccommon .GetLogId (tccommon .ContextNil )
191
+ ctx = tccommon .NewResourceLifeCycleHandleFuncContext (context .Background (), logId , d , meta )
193
192
request = postgresv20170312 .NewCloneDBInstanceRequest ()
194
193
response = postgresv20170312 .NewCloneDBInstanceResponse ()
195
194
)
@@ -249,9 +248,11 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
249
248
if v , ok := tagListMap ["tag_key" ]; ok {
250
249
tag .TagKey = helper .String (v .(string ))
251
250
}
251
+
252
252
if v , ok := tagListMap ["tag_value" ]; ok {
253
253
tag .TagValue = helper .String (v .(string ))
254
254
}
255
+
255
256
request .TagList = append (request .TagList , & tag )
256
257
}
257
258
}
@@ -263,12 +264,15 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
263
264
if v , ok := dBNodeSetMap ["role" ]; ok {
264
265
dBNode .Role = helper .String (v .(string ))
265
266
}
267
+
266
268
if v , ok := dBNodeSetMap ["zone" ]; ok {
267
269
dBNode .Zone = helper .String (v .(string ))
268
270
}
271
+
269
272
if v , ok := dBNodeSetMap ["dedicated_cluster_id" ]; ok {
270
273
dBNode .DedicatedClusterId = helper .String (v .(string ))
271
274
}
275
+
272
276
request .DBNodeSet = append (request .DBNodeSet , & dBNode )
273
277
}
274
278
}
@@ -296,16 +300,26 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
296
300
} else {
297
301
log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , request .GetAction (), request .ToJsonString (), result .ToJsonString ())
298
302
}
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
+
299
308
response = result
300
309
return nil
301
310
})
311
+
302
312
if err != nil {
303
313
log .Printf ("[CRITAL]%s create postgresql clone db instance failed, reason:%+v" , logId , err )
304
314
return err
305
315
}
306
316
307
- dBInstanceId = * response .Response .DBInstanceId
317
+ if response .Response .DBInstanceId == nil {
318
+ return fmt .Errorf ("DBInstanceId is nil." )
319
+ }
308
320
321
+ // wait
322
+ dBInstanceId := * response .Response .DBInstanceId
309
323
if _ , err := (& resource.StateChangeConf {
310
324
Delay : 10 * time .Second ,
311
325
MinTimeout : 3 * time .Second ,
@@ -316,8 +330,8 @@ func resourceTencentCloudPostgresqlCloneDbInstanceCreate(d *schema.ResourceData,
316
330
}).WaitForStateContext (ctx ); err != nil {
317
331
return err
318
332
}
319
- d .SetId (dBInstanceId )
320
333
334
+ d .SetId (dBInstanceId )
321
335
return resourceTencentCloudPostgresqlCloneDbInstanceRead (d , meta )
322
336
}
323
337
@@ -342,23 +356,27 @@ func resourcePostgresqlCloneDbInstanceCreateStateRefreshFunc_0_0(ctx context.Con
342
356
if meta == nil {
343
357
return nil , "" , fmt .Errorf ("resource data can not be nil" )
344
358
}
359
+
345
360
if req == nil {
346
361
d := tccommon .ResourceDataFromContext (ctx )
347
362
if d == nil {
348
363
return nil , "" , fmt .Errorf ("resource data can not be nil" )
349
364
}
365
+
350
366
_ = d
351
367
req = postgresv20170312 .NewDescribeDBInstanceAttributeRequest ()
352
368
req .DBInstanceId = helper .String (dBInstanceId )
353
-
354
369
}
370
+
355
371
resp , err := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UsePostgresV20170312Client ().DescribeDBInstanceAttributeWithContext (ctx , req )
356
372
if err != nil {
357
373
return nil , "" , err
358
374
}
375
+
359
376
if resp == nil || resp .Response == nil {
360
377
return nil , "" , nil
361
378
}
379
+
362
380
state := fmt .Sprintf ("%v" , * resp .Response .DBInstance .DBInstanceStatus )
363
381
return resp .Response , state , nil
364
382
}
0 commit comments