@@ -31,6 +31,16 @@ var accTestVpcSubnetUpdateAttributes = map[string]string{
31
31
"reserved_ip_ranges" : "11.11.50.4-11.11.50.6" ,
32
32
}
33
33
34
+ var accTestVpcSubnetReservedIPRangeAttributes = map [string ]string {
35
+ "display_name" : getAccTestResourceName (),
36
+ "description" : "terraform created" ,
37
+ "access_mode" : "Isolated" ,
38
+ "enabled" : "true" ,
39
+ "ipv4_subnet_size" : "32" ,
40
+ "ip_addresses" : "10.110.1.0/26" ,
41
+ "reserved_ip_ranges" : "10.110.1.3-10.110.1.15" ,
42
+ }
43
+
34
44
func TestAccResourceNsxtVpcSubnet_basic (t * testing.T ) {
35
45
testResourceName := "nsxt_vpc_subnet.test"
36
46
@@ -116,8 +126,6 @@ func TestAccResourceNsxtVpcSubnet_subnetSize(t *testing.T) {
116
126
resource .TestCheckResourceAttr (testResourceName , "ip_addresses.#" , "1" ),
117
127
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.#" , "1" ),
118
128
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.#" , "1" ),
119
- resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.#" , "1" ),
120
- resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.0" , accTestVpcSubnetCreateAttributes ["reserved_ip_ranges" ]),
121
129
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.#" , "1" ),
122
130
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.option121.#" , "1" ),
123
131
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.other.#" , "1" ),
@@ -138,8 +146,6 @@ func TestAccResourceNsxtVpcSubnet_subnetSize(t *testing.T) {
138
146
resource .TestCheckResourceAttr (testResourceName , "ipv4_subnet_size" , accTestVpcSubnetCreateAttributes ["ipv4_subnet_size" ]),
139
147
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.#" , "1" ),
140
148
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.#" , "1" ),
141
- resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.#" , "1" ),
142
- resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.0" , accTestVpcSubnetUpdateAttributes ["reserved_ip_ranges" ]),
143
149
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.#" , "1" ),
144
150
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.option121.#" , "1" ),
145
151
resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.other.#" , "1" ),
@@ -166,6 +172,44 @@ func TestAccResourceNsxtVpcSubnet_subnetSize(t *testing.T) {
166
172
})
167
173
}
168
174
175
+ func TestAccResourceNsxtVpcSubnet_reservedIPRange (t * testing.T ) {
176
+ testResourceName := "nsxt_vpc_subnet.test"
177
+
178
+ resource .ParallelTest (t , resource.TestCase {
179
+ PreCheck : func () {
180
+ testAccPreCheck (t )
181
+ testAccOnlyVPC (t )
182
+ },
183
+ Providers : testAccProviders ,
184
+ CheckDestroy : func (state * terraform.State ) error {
185
+ return testAccNsxtVpcSubnetCheckDestroy (state , accTestVpcSubnetUpdateAttributes ["display_name" ])
186
+ },
187
+ Steps : []resource.TestStep {
188
+ {
189
+ Config : testAccNsxtVpcSubnetReservedIPRangeTemplate (true ),
190
+ Check : resource .ComposeTestCheckFunc (
191
+ testAccNsxtVpcSubnetExists (accTestVpcSubnetCreateAttributes ["display_name" ], testResourceName ),
192
+ resource .TestCheckResourceAttr (testResourceName , "display_name" , accTestVpcSubnetReservedIPRangeAttributes ["display_name" ]),
193
+ resource .TestCheckResourceAttr (testResourceName , "description" , accTestVpcSubnetReservedIPRangeAttributes ["description" ]),
194
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.#" , "1" ),
195
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.reserved_ip_ranges.0" , accTestVpcSubnetReservedIPRangeAttributes ["reserved_ip_ranges" ]),
196
+ resource .TestCheckResourceAttr (testResourceName , "ip_addresses.#" , "1" ),
197
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.#" , "1" ),
198
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.#" , "1" ),
199
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.#" , "1" ),
200
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.option121.#" , "1" ),
201
+ resource .TestCheckResourceAttr (testResourceName , "dhcp_config.0.dhcp_server_additional_config.0.options.0.other.#" , "1" ),
202
+
203
+ resource .TestCheckResourceAttrSet (testResourceName , "nsx_id" ),
204
+ resource .TestCheckResourceAttrSet (testResourceName , "path" ),
205
+ resource .TestCheckResourceAttrSet (testResourceName , "revision" ),
206
+ resource .TestCheckResourceAttr (testResourceName , "tag.#" , "0" ),
207
+ ),
208
+ },
209
+ },
210
+ })
211
+ }
212
+
169
213
func TestAccResourceNsxtVpcSubnet_importBasic (t * testing.T ) {
170
214
name := getAccTestResourceName ()
171
215
testResourceName := "nsxt_vpc_subnet.test"
@@ -301,10 +345,9 @@ resource "nsxt_vpc_subnet" "test" {
301
345
values = ["abc", "def"]
302
346
}
303
347
}
304
- reserved_ip_ranges = ["%s"]
305
348
}
306
349
}
307
- }` , testAccNsxtPolicyMultitenancyContext (), attrMap ["display_name" ], attrMap ["description" ], attrMap ["ipv4_subnet_size" ], attrMap [ "reserved_ip_ranges" ] )
350
+ }` , testAccNsxtPolicyMultitenancyContext (), attrMap ["display_name" ], attrMap ["description" ], attrMap ["ipv4_subnet_size" ])
308
351
}
309
352
310
353
func testAccNsxtVpcSubnetMinimalisticIsolated () string {
@@ -325,3 +368,37 @@ resource "nsxt_vpc_subnet" "test" {
325
368
access_mode = "Public"
326
369
}` , testAccNsxtPolicyMultitenancyContext (), accTestVpcSubnetUpdateAttributes ["display_name" ])
327
370
}
371
+
372
+ func testAccNsxtVpcSubnetReservedIPRangeTemplate (createFlow bool ) string {
373
+ attrMap := accTestVpcSubnetReservedIPRangeAttributes
374
+
375
+ return fmt .Sprintf (`
376
+ resource "nsxt_vpc_subnet" "test" {
377
+ %s
378
+ display_name = "%s"
379
+ description = "%s"
380
+ ip_addresses = ["%s"]
381
+
382
+ access_mode = "Public"
383
+
384
+ dhcp_config {
385
+ mode = "DHCP_SERVER"
386
+
387
+ dhcp_server_additional_config {
388
+ options {
389
+ option121 {
390
+ static_route {
391
+ network = "2.1.1.0/24"
392
+ next_hop = "2.3.1.3"
393
+ }
394
+ }
395
+ other {
396
+ code = "119"
397
+ values = ["abc", "def"]
398
+ }
399
+ }
400
+ reserved_ip_ranges = ["%s"]
401
+ }
402
+ }
403
+ }` , testAccNsxtPolicyMultitenancyContext (), attrMap ["display_name" ], attrMap ["description" ], attrMap ["ip_addresses" ], attrMap ["reserved_ip_ranges" ])
404
+ }
0 commit comments