@@ -37,6 +37,109 @@ func TestAccNetworkOfferingDataSource_basic(t *testing.T) {
3737 Config : testNetworkOfferingDataSourceConfig_basic ,
3838 Check : resource .ComposeTestCheckFunc (
3939 resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
40+ resource .TestCheckResourceAttrPair (datasourceName , "display_text" , resourceName , "display_text" ),
41+ resource .TestCheckResourceAttrPair (datasourceName , "guest_ip_type" , resourceName , "guest_ip_type" ),
42+ resource .TestCheckResourceAttrPair (datasourceName , "traffic_type" , resourceName , "traffic_type" ),
43+ ),
44+ },
45+ },
46+ })
47+ }
48+
49+ func TestAccNetworkOfferingDataSource_withAdditionalParams (t * testing.T ) {
50+ resourceName := "cloudstack_network_offering.net-off-resource"
51+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
52+
53+ resource .Test (t , resource.TestCase {
54+ PreCheck : func () { testAccPreCheck (t ) },
55+ Providers : testAccProviders ,
56+ Steps : []resource.TestStep {
57+ {
58+ Config : testNetworkOfferingDataSourceConfig_withAdditionalParams ,
59+ Check : resource .ComposeTestCheckFunc (
60+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
61+ resource .TestCheckResourceAttrPair (datasourceName , "display_text" , resourceName , "display_text" ),
62+ resource .TestCheckResourceAttrPair (datasourceName , "guest_ip_type" , resourceName , "guest_ip_type" ),
63+ resource .TestCheckResourceAttrPair (datasourceName , "traffic_type" , resourceName , "traffic_type" ),
64+ resource .TestCheckResourceAttrPair (datasourceName , "network_rate" , resourceName , "network_rate" ),
65+ resource .TestCheckResourceAttrPair (datasourceName , "conserve_mode" , resourceName , "conserve_mode" ),
66+ resource .TestCheckResourceAttrPair (datasourceName , "for_vpc" , resourceName , "for_vpc" ),
67+ resource .TestCheckResourceAttrPair (datasourceName , "specify_vlan" , resourceName , "specify_vlan" ),
68+ resource .TestCheckResourceAttrPair (datasourceName , "specify_ip_ranges" , resourceName , "specify_ip_ranges" ),
69+ resource .TestCheckResourceAttrPair (datasourceName , "network_mode" , resourceName , "network_mode" ),
70+ resource .TestCheckResourceAttrPair (datasourceName , "enable" , resourceName , "enable" ),
71+ ),
72+ },
73+ },
74+ })
75+ }
76+
77+ func TestAccNetworkOfferingDataSource_withServices (t * testing.T ) {
78+ resourceName := "cloudstack_network_offering.net-off-resource"
79+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
80+
81+ resource .Test (t , resource.TestCase {
82+ PreCheck : func () { testAccPreCheck (t ) },
83+ Providers : testAccProviders ,
84+ Steps : []resource.TestStep {
85+ {
86+ Config : testNetworkOfferingDataSourceConfig_withServices ,
87+ Check : resource .ComposeTestCheckFunc (
88+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
89+ resource .TestCheckResourceAttrPair (datasourceName , "supported_services.#" , resourceName , "supported_services.#" ),
90+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.%" , resourceName , "service_provider_list.%" ),
91+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.Dhcp" , resourceName , "service_provider_list.Dhcp" ),
92+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.Dns" , resourceName , "service_provider_list.Dns" ),
93+ resource .TestCheckResourceAttrPair (datasourceName , "enable" , resourceName , "enable" ),
94+ resource .TestCheckResourceAttrPair (datasourceName , "max_connections" , resourceName , "max_connections" ),
95+ ),
96+ },
97+ },
98+ })
99+ }
100+
101+ func TestAccNetworkOfferingDataSource_forVPC (t * testing.T ) {
102+ resourceName := "cloudstack_network_offering.net-off-resource"
103+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
104+
105+ resource .Test (t , resource.TestCase {
106+ PreCheck : func () { testAccPreCheck (t ) },
107+ Providers : testAccProviders ,
108+ Steps : []resource.TestStep {
109+ {
110+ Config : testNetworkOfferingDataSourceConfig_forVPC ,
111+ Check : resource .ComposeTestCheckFunc (
112+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
113+ resource .TestCheckResourceAttrPair (datasourceName , "for_vpc" , resourceName , "for_vpc" ),
114+ resource .TestCheckResourceAttrPair (datasourceName , "routing_mode" , resourceName , "routing_mode" ),
115+ resource .TestCheckResourceAttrPair (datasourceName , "internet_protocol" , resourceName , "internet_protocol" ),
116+ resource .TestCheckResourceAttr (datasourceName , "for_vpc" , "true" ),
117+ ),
118+ },
119+ },
120+ })
121+ }
122+
123+ func TestAccNetworkOfferingDataSource_allOptionalParams (t * testing.T ) {
124+ resourceName := "cloudstack_network_offering.net-off-resource"
125+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
126+
127+ resource .Test (t , resource.TestCase {
128+ PreCheck : func () { testAccPreCheck (t ) },
129+ Providers : testAccProviders ,
130+ Steps : []resource.TestStep {
131+ {
132+ Config : testNetworkOfferingDataSourceConfig_allOptionalParams ,
133+ Check : resource .ComposeTestCheckFunc (
134+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
135+ resource .TestCheckResourceAttrPair (datasourceName , "display_text" , resourceName , "display_text" ),
136+ resource .TestCheckResourceAttrPair (datasourceName , "network_mode" , resourceName , "network_mode" ),
137+ resource .TestCheckResourceAttrPair (datasourceName , "for_nsx" , resourceName , "for_nsx" ),
138+ resource .TestCheckResourceAttrPair (datasourceName , "specify_as_number" , resourceName , "specify_as_number" ),
139+ resource .TestCheckResourceAttrPair (datasourceName , "internet_protocol" , resourceName , "internet_protocol" ),
140+ resource .TestCheckResourceAttrPair (datasourceName , "routing_mode" , resourceName , "routing_mode" ),
141+ resource .TestCheckResourceAttr (datasourceName , "enable" , "true" ),
142+ resource .TestCheckResourceAttr (datasourceName , "for_nsx" , "false" ),
40143 ),
41144 },
42145 },
@@ -62,3 +165,138 @@ resource "cloudstack_network_offering" "net-off-resource"{
62165 ]
63166 }
64167 `
168+
169+ const testNetworkOfferingDataSourceConfig_withAdditionalParams = `
170+ resource "cloudstack_network_offering" "net-off-resource"{
171+ name = "TestNetworkDisplayAdvanced01"
172+ display_text = "TestNetworkDisplayAdvanced01"
173+ guest_ip_type = "Isolated"
174+ traffic_type = "Guest"
175+ network_rate = 100
176+ network_mode = "NATTED"
177+ conserve_mode = true
178+ enable = true
179+ for_vpc = false
180+ specify_vlan = true
181+ specify_ip_ranges = true
182+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat"]
183+ service_provider_list = {
184+ Dhcp = "VirtualRouter"
185+ Dns = "VirtualRouter"
186+ Firewall = "VirtualRouter"
187+ Lb = "VirtualRouter"
188+ SourceNat = "VirtualRouter"
189+ }
190+ }
191+
192+ data "cloudstack_network_offering" "net-off-data-source"{
193+ filter{
194+ name = "name"
195+ value = "TestNetworkDisplayAdvanced01"
196+ }
197+ depends_on = [
198+ cloudstack_network_offering.net-off-resource
199+ ]
200+ }
201+ `
202+
203+ const testNetworkOfferingDataSourceConfig_withServices = `
204+ resource "cloudstack_network_offering" "net-off-resource"{
205+ name = "TestNetworkServices01"
206+ display_text = "TestNetworkServices01"
207+ guest_ip_type = "Isolated"
208+ traffic_type = "Guest"
209+ enable = true
210+ max_connections = 256
211+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat", "StaticNat", "PortForwarding"]
212+ service_provider_list = {
213+ Dhcp = "VirtualRouter"
214+ Dns = "VirtualRouter"
215+ Firewall = "VirtualRouter"
216+ Lb = "VirtualRouter"
217+ SourceNat = "VirtualRouter"
218+ StaticNat = "VirtualRouter"
219+ PortForwarding = "VirtualRouter"
220+ }
221+ }
222+
223+ data "cloudstack_network_offering" "net-off-data-source"{
224+ filter{
225+ name = "name"
226+ value = "TestNetworkServices01"
227+ }
228+ depends_on = [
229+ cloudstack_network_offering.net-off-resource
230+ ]
231+ }
232+ `
233+
234+ const testNetworkOfferingDataSourceConfig_forVPC = `
235+ resource "cloudstack_network_offering" "net-off-resource"{
236+ name = "TestNetworkVPC01"
237+ display_text = "TestNetworkVPC01"
238+ guest_ip_type = "Isolated"
239+ traffic_type = "Guest"
240+ for_vpc = true
241+ routing_mode = "Static"
242+ internet_protocol = "IPv4"
243+ conserve_mode = false
244+ supported_services = ["Dhcp", "Dns", "NetworkACL", "StaticNat", "PortForwarding"]
245+ service_provider_list = {
246+ Dhcp = "VpcVirtualRouter"
247+ Dns = "VpcVirtualRouter"
248+ NetworkACL = "VpcVirtualRouter"
249+ StaticNat = "VpcVirtualRouter"
250+ PortForwarding = "VpcVirtualRouter"
251+ }
252+ }
253+
254+ data "cloudstack_network_offering" "net-off-data-source"{
255+ filter{
256+ name = "name"
257+ value = "TestNetworkVPC01"
258+ }
259+ depends_on = [
260+ cloudstack_network_offering.net-off-resource
261+ ]
262+ }
263+ `
264+
265+ const testNetworkOfferingDataSourceConfig_allOptionalParams = `
266+ resource "cloudstack_network_offering" "net-off-resource"{
267+ name = "TestNetworkDisplayAll01"
268+ display_text = "TestNetworkDisplayAll01"
269+ guest_ip_type = "Isolated"
270+ traffic_type = "Guest"
271+ network_rate = 200
272+ network_mode = "NATTED"
273+ conserve_mode = true
274+ enable = true
275+ for_vpc = false
276+ for_nsx = false
277+ specify_vlan = true
278+ specify_ip_ranges = true
279+ specify_as_number = false
280+ internet_protocol = "IPv4"
281+ routing_mode = "Static"
282+ max_connections = 1000
283+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat"]
284+ service_provider_list = {
285+ Dhcp = "VirtualRouter"
286+ Dns = "VirtualRouter"
287+ Firewall = "VirtualRouter"
288+ Lb = "VirtualRouter"
289+ SourceNat = "VirtualRouter"
290+ }
291+ }
292+
293+ data "cloudstack_network_offering" "net-off-data-source"{
294+ filter{
295+ name = "name"
296+ value = "TestNetworkDisplayAll01"
297+ }
298+ depends_on = [
299+ cloudstack_network_offering.net-off-resource
300+ ]
301+ }
302+ `
0 commit comments