1- // Code generated by iacg; DO NOT EDIT.
21package postgresql
32
43import (
@@ -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 }
0 commit comments