@@ -37,6 +37,83 @@ 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 , "enable" , resourceName , "enable" ),
69+ ),
70+ },
71+ },
72+ })
73+ }
74+
75+ func TestAccNetworkOfferingDataSource_withServices (t * testing.T ) {
76+ resourceName := "cloudstack_network_offering.net-off-resource"
77+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
78+
79+ resource .Test (t , resource.TestCase {
80+ PreCheck : func () { testAccPreCheck (t ) },
81+ Providers : testAccProviders ,
82+ Steps : []resource.TestStep {
83+ {
84+ Config : testNetworkOfferingDataSourceConfig_withServices ,
85+ Check : resource .ComposeTestCheckFunc (
86+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
87+ resource .TestCheckResourceAttrPair (datasourceName , "supported_services.#" , resourceName , "supported_services.#" ),
88+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.%" , resourceName , "service_provider_list.%" ),
89+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.Dhcp" , resourceName , "service_provider_list.Dhcp" ),
90+ resource .TestCheckResourceAttrPair (datasourceName , "service_provider_list.Dns" , resourceName , "service_provider_list.Dns" ),
91+ resource .TestCheckResourceAttrPair (datasourceName , "enable" , resourceName , "enable" ),
92+ resource .TestCheckResourceAttrPair (datasourceName , "max_connections" , resourceName , "max_connections" ),
93+ ),
94+ },
95+ },
96+ })
97+ }
98+
99+ func TestAccNetworkOfferingDataSource_allOptionalParams (t * testing.T ) {
100+ resourceName := "cloudstack_network_offering.net-off-resource"
101+ datasourceName := "data.cloudstack_network_offering.net-off-data-source"
102+
103+ resource .Test (t , resource.TestCase {
104+ PreCheck : func () { testAccPreCheck (t ) },
105+ Providers : testAccProviders ,
106+ Steps : []resource.TestStep {
107+ {
108+ Config : testNetworkOfferingDataSourceConfig_allOptionalParams ,
109+ Check : resource .ComposeTestCheckFunc (
110+ resource .TestCheckResourceAttrPair (datasourceName , "name" , resourceName , "name" ),
111+ resource .TestCheckResourceAttrPair (datasourceName , "display_text" , resourceName , "display_text" ),
112+ resource .TestCheckResourceAttrPair (datasourceName , "for_nsx" , resourceName , "for_nsx" ),
113+ resource .TestCheckResourceAttrPair (datasourceName , "specify_as_number" , resourceName , "specify_as_number" ),
114+ resource .TestCheckResourceAttrPair (datasourceName , "internet_protocol" , resourceName , "internet_protocol" ),
115+ resource .TestCheckResourceAttr (datasourceName , "enable" , "true" ),
116+ resource .TestCheckResourceAttr (datasourceName , "for_nsx" , "false" ),
40117 ),
41118 },
42119 },
@@ -62,3 +139,101 @@ resource "cloudstack_network_offering" "net-off-resource"{
62139 ]
63140 }
64141 `
142+
143+ const testNetworkOfferingDataSourceConfig_withAdditionalParams = `
144+ resource "cloudstack_network_offering" "net-off-resource"{
145+ name = "TestNetworkDisplayAdvanced01"
146+ display_text = "TestNetworkDisplayAdvanced01"
147+ guest_ip_type = "Isolated"
148+ traffic_type = "Guest"
149+ network_rate = 100
150+ conserve_mode = true
151+ enable = true
152+ for_vpc = false
153+ specify_vlan = true
154+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat"]
155+ service_provider_list = {
156+ Dhcp = "VirtualRouter"
157+ Dns = "VirtualRouter"
158+ Firewall = "VirtualRouter"
159+ Lb = "VirtualRouter"
160+ SourceNat = "VirtualRouter"
161+ }
162+ }
163+
164+ data "cloudstack_network_offering" "net-off-data-source"{
165+ filter{
166+ name = "name"
167+ value = "TestNetworkDisplayAdvanced01"
168+ }
169+ depends_on = [
170+ cloudstack_network_offering.net-off-resource
171+ ]
172+ }
173+ `
174+
175+ const testNetworkOfferingDataSourceConfig_withServices = `
176+ resource "cloudstack_network_offering" "net-off-resource"{
177+ name = "TestNetworkServices01"
178+ display_text = "TestNetworkServices01"
179+ guest_ip_type = "Isolated"
180+ traffic_type = "Guest"
181+ enable = true
182+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat", "StaticNat", "PortForwarding"]
183+ service_provider_list = {
184+ Dhcp = "VirtualRouter"
185+ Dns = "VirtualRouter"
186+ Firewall = "VirtualRouter"
187+ Lb = "VirtualRouter"
188+ SourceNat = "VirtualRouter"
189+ StaticNat = "VirtualRouter"
190+ PortForwarding = "VirtualRouter"
191+ }
192+ }
193+
194+ data "cloudstack_network_offering" "net-off-data-source"{
195+ filter{
196+ name = "name"
197+ value = "TestNetworkServices01"
198+ }
199+ depends_on = [
200+ cloudstack_network_offering.net-off-resource
201+ ]
202+ }
203+ `
204+
205+ const testNetworkOfferingDataSourceConfig_allOptionalParams = `
206+ resource "cloudstack_network_offering" "net-off-resource"{
207+ name = "TestNetworkDisplayAll01"
208+ display_text = "TestNetworkDisplayAll01"
209+ guest_ip_type = "Isolated"
210+ traffic_type = "Guest"
211+ network_rate = 200
212+ conserve_mode = true
213+ enable = true
214+ for_vpc = false
215+ for_nsx = false
216+ specify_vlan = true
217+ specify_as_number = false
218+ internet_protocol = "IPv4"
219+ max_connections = 1000
220+ supported_services = ["Dhcp", "Dns", "Firewall", "Lb", "SourceNat"]
221+ service_provider_list = {
222+ Dhcp = "VirtualRouter"
223+ Dns = "VirtualRouter"
224+ Firewall = "VirtualRouter"
225+ Lb = "VirtualRouter"
226+ SourceNat = "VirtualRouter"
227+ }
228+ }
229+
230+ data "cloudstack_network_offering" "net-off-data-source"{
231+ filter{
232+ name = "name"
233+ value = "TestNetworkDisplayAll01"
234+ }
235+ depends_on = [
236+ cloudstack_network_offering.net-off-resource
237+ ]
238+ }
239+ `
0 commit comments