@@ -52,16 +52,14 @@ func ResourceTencentCloudDasbResource() *schema.Resource {
5252 Description : "Number of resource nodes." ,
5353 },
5454 "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." ,
5958 },
6059 "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." ,
6563 },
6664 "auto_renew_flag" : {
6765 Required : true ,
@@ -70,22 +68,32 @@ func ResourceTencentCloudDasbResource() *schema.Resource {
7068 Description : "Automatic renewal. 1 is auto renew flag, 0 is not." ,
7169 },
7270 "deploy_zone" : {
73- Optional : true ,
71+ Required : true ,
7472 Type : schema .TypeString ,
7573 Description : "Deploy zone." ,
7674 },
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." ,
8284 },
83- "package_node " : {
85+ "package_bandwidth " : {
8486 Optional : true ,
8587 Computed : true ,
8688 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 ." ,
8890 },
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+ //},
8997 },
9098 }
9199}
@@ -98,21 +106,31 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
98106 logId = tccommon .GetLogId (tccommon .ContextNil )
99107 request = dasb .NewCreateResourceRequest ()
100108 response = dasb .NewCreateResourceResponse ()
109+ deployRequest = dasb .NewDeployResourceRequest ()
101110 describeRequest = dasb .NewDescribeResourcesRequest ()
102111 modifyRequest = dasb .NewModifyResourceRequest ()
103112 resourceId string
113+ vpcId string
114+ subnetId string
115+ deployRegion string
116+ deployZone string
117+ cidrBlock string
118+ vpcCidrBlock string
104119 )
105120
106121 if v , ok := d .GetOk ("deploy_region" ); ok {
107122 request .DeployRegion = helper .String (v .(string ))
123+ deployRegion = v .(string )
108124 }
109125
110126 if v , ok := d .GetOk ("vpc_id" ); ok {
111127 request .VpcId = helper .String (v .(string ))
128+ vpcId = v .(string )
112129 }
113130
114131 if v , ok := d .GetOk ("subnet_id" ); ok {
115132 request .SubnetId = helper .String (v .(string ))
133+ subnetId = v .(string )
116134 }
117135
118136 if v , ok := d .GetOk ("resource_edition" ); ok {
@@ -139,6 +157,15 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
139157
140158 if v , ok := d .GetOk ("deploy_zone" ); ok {
141159 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 )
142169 }
143170
144171 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
@@ -167,10 +194,38 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
167194 d .SetId (resourceId )
168195
169196 // 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+ }
170225
171226 // wait
172227 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 {
174229 result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().DescribeResources (describeRequest )
175230 if e != nil {
176231 return tccommon .RetryError (e )
@@ -183,6 +238,11 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
183238 return resource .NonRetryableError (e )
184239 }
185240
241+ if * result .Response .ResourceSet [0 ].Status == 4 {
242+ e = fmt .Errorf ("dasb Resource deploy error" )
243+ return resource .NonRetryableError (e )
244+ }
245+
186246 if * result .Response .ResourceSet [0 ].Status == 1 {
187247 return nil
188248 }
@@ -195,15 +255,16 @@ func resourceTencentCloudDasbResourceCreate(d *schema.ResourceData, meta interfa
195255 return err
196256 }
197257
258+ // modify
198259 if v , ok := d .GetOkExists ("package_bandwidth" ); ok {
199260 modifyRequest .PackageBandwidth = helper .IntInt64 (v .(int ))
200261 }
201262
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+ // }
205266
206- if modifyRequest .PackageBandwidth != nil || modifyRequest . PackageNode != nil {
267+ if modifyRequest .PackageBandwidth != nil {
207268 modifyRequest .ResourceId = & resourceId
208269 err = resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
209270 result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().ModifyResource (modifyRequest )
@@ -284,13 +345,21 @@ func resourceTencentCloudDasbResourceRead(d *schema.ResourceData, meta interface
284345 _ = d .Set ("deploy_zone" , Resource .Zone )
285346 }
286347
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+
287356 if Resource .PackageBandwidth != nil {
288357 _ = d .Set ("package_bandwidth" , Resource .PackageBandwidth )
289358 }
290359
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+ // }
294363
295364 return nil
296365}
@@ -305,7 +374,7 @@ func resourceTencentCloudDasbResourceUpdate(d *schema.ResourceData, meta interfa
305374 resourceId = d .Id ()
306375 )
307376
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" }
309378
310379 for _ , v := range immutableArgs {
311380 if d .HasChange (v ) {
@@ -338,11 +407,11 @@ func resourceTencentCloudDasbResourceUpdate(d *schema.ResourceData, meta interfa
338407 }
339408 }
340409
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+ // }
346415
347416 err := resource .Retry (tccommon .WriteRetryTimeout , func () * resource.RetryError {
348417 result , e := meta .(tccommon.ProviderMeta ).GetAPIV3Conn ().UseDasbClient ().ModifyResource (request )
0 commit comments