@@ -52,16 +52,14 @@ func ResourceTencentCloudDasbResource() *schema.Resource {
52
52
Description : "Number of resource nodes." ,
53
53
},
54
54
"time_unit" : {
55
- Required : true ,
56
- Type : schema .TypeString ,
57
- ValidateFunc : tccommon .ValidateAllowedStringValue ([]string {"m" }),
58
- Description : "Billing cycle, only support m: month." ,
55
+ Optional : true ,
56
+ Type : schema .TypeString ,
57
+ Description : "Billing cycle, only support m: month. This field is mandatory, fill in m." ,
59
58
},
60
59
"time_span" : {
61
- Required : true ,
62
- Type : schema .TypeInt ,
63
- ValidateFunc : tccommon .ValidateIntegerMin (1 ),
64
- Description : "Billing time." ,
60
+ Optional : true ,
61
+ Type : schema .TypeInt ,
62
+ Description : "Billing time. This field is mandatory, with a minimum value of 1." ,
65
63
},
66
64
"auto_renew_flag" : {
67
65
Required : true ,
@@ -70,22 +68,32 @@ func ResourceTencentCloudDasbResource() *schema.Resource {
70
68
Description : "Automatic renewal. 1 is auto renew flag, 0 is not." ,
71
69
},
72
70
"deploy_zone" : {
73
- Optional : true ,
71
+ Required : true ,
74
72
Type : schema .TypeString ,
75
73
Description : "Deploy zone." ,
76
74
},
77
- "package_bandwidth" : {
78
- Optional : true ,
79
- Computed : true ,
80
- Type : schema .TypeInt ,
81
- Description : "Number of bandwidth expansion packets (4M)." ,
75
+ "cidr_block" : {
76
+ Required : true ,
77
+ Type : schema .TypeString ,
78
+ Description : "Subnet segments that require service activation." ,
79
+ },
80
+ "vpc_cidr_block" : {
81
+ Required : true ,
82
+ Type : schema .TypeString ,
83
+ Description : "The network segment corresponding to the VPC that requires service activation." ,
82
84
},
83
- "package_node " : {
85
+ "package_bandwidth " : {
84
86
Optional : true ,
85
87
Computed : true ,
86
88
Type : schema .TypeInt ,
87
- Description : "Number of authorized point extension packages (50 points) ." ,
89
+ Description : "Number of bandwidth expansion packets (4M), The set value is an integer multiple of 4 ." ,
88
90
},
91
+ //"package_node": {
92
+ // Optional: true,
93
+ // Computed: true,
94
+ // Type: schema.TypeInt,
95
+ // Description: "Number of authorized point extension packages (50 points). Cannot exceed 100.",
96
+ //},
89
97
},
90
98
}
91
99
}
@@ -98,21 +106,31 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
98
106
logId = tccommon .GetLogId (tccommon .ContextNil )
99
107
request = dasb .NewCreateResourceRequest ()
100
108
response = dasb .NewCreateResourceResponse ()
109
+ deployRequest = dasb .NewDeployResourceRequest ()
101
110
describeRequest = dasb .NewDescribeResourcesRequest ()
102
111
modifyRequest = dasb .NewModifyResourceRequest ()
103
112
resourceId string
113
+ vpcId string
114
+ subnetId string
115
+ deployRegion string
116
+ deployZone string
117
+ cidrBlock string
118
+ vpcCidrBlock string
104
119
)
105
120
106
121
if v , ok := d .GetOk ("deploy_region" ); ok {
107
122
request .DeployRegion = helper .String (v .(string ))
123
+ deployRegion = v .(string )
108
124
}
109
125
110
126
if v , ok := d .GetOk ("vpc_id" ); ok {
111
127
request .VpcId = helper .String (v .(string ))
128
+ vpcId = v .(string )
112
129
}
113
130
114
131
if v , ok := d .GetOk ("subnet_id" ); ok {
115
132
request .SubnetId = helper .String (v .(string ))
133
+ subnetId = v .(string )
116
134
}
117
135
118
136
if v , ok := d .GetOk ("resource_edition" ); ok {
@@ -139,6 +157,15 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
139
157
140
158
if v , ok := d .GetOk ("deploy_zone" ); ok {
141
159
request .DeployZone = helper .String (v .(string ))
160
+ deployZone = v .(string )
161
+ }
162
+
163
+ if v , ok := d .GetOk ("cidr_block" ); ok {
164
+ cidrBlock = v .(string )
165
+ }
166
+
167
+ if v , ok := d .GetOk ("vpc_cidr_block" ); ok {
168
+ vpcCidrBlock = v .(string )
142
169
}
143
170
144
171
err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
@@ -167,10 +194,38 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
167
194
d .SetId (resourceId )
168
195
169
196
// deploy resource
197
+ deployRequest .ResourceId = helper .String (resourceId )
198
+ deployRequest .ApCode = helper .String (deployRegion )
199
+ deployRequest .Zone = helper .String (deployZone )
200
+ deployRequest .VpcId = helper .String (vpcId )
201
+ deployRequest .SubnetId = helper .String (subnetId )
202
+ deployRequest .CidrBlock = helper .String (cidrBlock )
203
+ deployRequest .VpcCidrBlock = helper .String (vpcCidrBlock )
204
+
205
+ err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
206
+ result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().DeployResource (deployRequest )
207
+ if e != nil {
208
+ return tccommon .RetryError (e )
209
+ } else {
210
+ log .Printf ("[DEBUG]%s api[%s] success, request body [%s], response body [%s]\n " , logId , deployRequest .GetAction (), deployRequest .ToJsonString (), deployRequest .ToJsonString ())
211
+ }
212
+
213
+ if result == nil {
214
+ e = fmt .Errorf ("dasb Resource deploy error" )
215
+ return resource .NonRetryableError (e )
216
+ }
217
+
218
+ return nil
219
+ })
220
+
221
+ if err != nil {
222
+ log .Printf ("[CRITAL]%s deploy dasb Resource failed, reason:%+v" , logId , err )
223
+ return err
224
+ }
170
225
171
226
// wait
172
227
describeRequest .ResourceIds = helper .Strings ([]string {resourceId })
173
- err = resource .Retry (tccommon .WriteRetryTimeout * 4 , func () * resource.RetryError {
228
+ err = resource .Retry (tccommon .WriteRetryTimeout * 6 , func () * resource.RetryError {
174
229
result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().DescribeResources (describeRequest )
175
230
if e != nil {
176
231
return tccommon .RetryError (e )
@@ -183,6 +238,11 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
183
238
return resource .NonRetryableError (e )
184
239
}
185
240
241
+ if * result .Response .ResourceSet [0 ].Status == 4 {
242
+ e = fmt .Errorf ("dasb Resource deploy error" )
243
+ return resource .NonRetryableError (e )
244
+ }
245
+
186
246
if * result .Response .ResourceSet [0 ].Status == 1 {
187
247
return nil
188
248
}
@@ -195,15 +255,16 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
195
255
return err
196
256
}
197
257
258
+ // modify
198
259
if v , ok := d .GetOkExists ("package_bandwidth" ); ok {
199
260
modifyRequest .PackageBandwidth = helper .IntInt64 (v .(int ))
200
261
}
201
262
202
- if v , ok := d .GetOkExists ("package_node" ); ok {
203
- modifyRequest .PackageNode = helper .IntInt64 (v .(int ))
204
- }
263
+ // if v, ok := d.GetOkExists("package_node"); ok {
264
+ // modifyRequest.PackageNode = helper.IntInt64(v.(int))
265
+ // }
205
266
206
- if modifyRequest .PackageBandwidth != nil || modifyRequest . PackageNode != nil {
267
+ if modifyRequest .PackageBandwidth != nil {
207
268
modifyRequest .ResourceId = & resourceId
208
269
err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
209
270
result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().ModifyResource (modifyRequest )
@@ -284,13 +345,21 @@ func resourceTencentCloudDasbResourceRead(d *schema.ResourceData, meta interface
284
345
_ = d .Set ("deploy_zone" , Resource .Zone )
285
346
}
286
347
348
+ if Resource .CidrBlock != nil {
349
+ _ = d .Set ("cidr_block" , Resource .CidrBlock )
350
+ }
351
+
352
+ if Resource .VpcCidrBlock != nil {
353
+ _ = d .Set ("vpc_cidr_block" , Resource .VpcCidrBlock )
354
+ }
355
+
287
356
if Resource .PackageBandwidth != nil {
288
357
_ = d .Set ("package_bandwidth" , Resource .PackageBandwidth )
289
358
}
290
359
291
- if Resource .PackageNode != nil {
292
- _ = d .Set ("package_node" , Resource .PackageNode )
293
- }
360
+ // if Resource.PackageNode != nil {
361
+ // _ = d.Set("package_node", Resource.PackageNode)
362
+ // }
294
363
295
364
return nil
296
365
}
@@ -305,7 +374,7 @@ func resourceTencentCloudDasbResourceUpdate(d *schema.ResourceData, meta interfa
305
374
resourceId = d .Id ()
306
375
)
307
376
308
- immutableArgs := []string {"deploy_region" , "vpc_id" , "subnet_id" , "time_unit" , "time_span" , "pay_mode" , "deploy_zone" }
377
+ immutableArgs := []string {"deploy_region" , "vpc_id" , "subnet_id" , "time_unit" , "time_span" , "pay_mode" , "deploy_zone" , "cidr_block" , "vpc_cidr_block" }
309
378
310
379
for _ , v := range immutableArgs {
311
380
if d .HasChange (v ) {
@@ -338,11 +407,11 @@ func resourceTencentCloudDasbResourceUpdate(d *schema.ResourceData, meta interfa
338
407
}
339
408
}
340
409
341
- if d .HasChange ("package_node" ) {
342
- if v , ok := d .GetOkExists ("package_node" ); ok {
343
- request .PackageNode = helper .IntInt64 (v .(int ))
344
- }
345
- }
410
+ // if d.HasChange("package_node") {
411
+ // if v, ok := d.GetOkExists("package_node"); ok {
412
+ // request.PackageNode = helper.IntInt64(v.(int))
413
+ // }
414
+ // }
346
415
347
416
err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
348
417
result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().ModifyResource (request )
0 commit comments