@@ -79,6 +79,28 @@ func TestAccCloudStackNIC_update(t *testing.T) {
7979 })
8080}
8181
82+ func TestAccCloudStackNIC_macaddress (t * testing.T ) {
83+ var nic cloudstack.Nic
84+
85+ resource .Test (t , resource.TestCase {
86+ PreCheck : func () { testAccPreCheck (t ) },
87+ Providers : testAccProviders ,
88+ CheckDestroy : testAccCheckCloudStackNICDestroy ,
89+ Steps : []resource.TestStep {
90+ {
91+ Config : testAccCloudStackNIC_macaddress ,
92+ Check : resource .ComposeTestCheckFunc (
93+ testAccCheckCloudStackNICExists (
94+ "cloudstack_instance.foobar" , "cloudstack_nic.foo" , & nic ),
95+ testAccCheckCloudStackNICMacAddress (& nic ),
96+ resource .TestCheckResourceAttr (
97+ "cloudstack_nic.foo" , "mac_address" , "02:1a:4b:3c:5d:6e" ),
98+ ),
99+ },
100+ },
101+ })
102+ }
103+
82104func testAccCheckCloudStackNICExists (
83105 v , n string , nic * cloudstack.Nic ) resource.TestCheckFunc {
84106 return func (s * terraform.State ) error {
@@ -122,7 +144,7 @@ func testAccCheckCloudStackNICAttributes(
122144 nic * cloudstack.Nic ) resource.TestCheckFunc {
123145 return func (s * terraform.State ) error {
124146
125- if nic .Networkname != "terraform-network" {
147+ if nic .Networkname != "terraform-network-secondary " {
126148 return fmt .Errorf ("Bad network name: %s" , nic .Networkname )
127149 }
128150
@@ -134,7 +156,7 @@ func testAccCheckCloudStackNICIPAddress(
134156 nic * cloudstack.Nic ) resource.TestCheckFunc {
135157 return func (s * terraform.State ) error {
136158
137- if nic .Networkname != "terraform-network" {
159+ if nic .Networkname != "terraform-network-secondary " {
138160 return fmt .Errorf ("Bad network name: %s" , nic .Networkname )
139161 }
140162
@@ -146,6 +168,22 @@ func testAccCheckCloudStackNICIPAddress(
146168 }
147169}
148170
171+ func testAccCheckCloudStackNICMacAddress (
172+ nic * cloudstack.Nic ) resource.TestCheckFunc {
173+ return func (s * terraform.State ) error {
174+
175+ if nic .Networkname != "terraform-network-secondary" {
176+ return fmt .Errorf ("Bad network name: %s" , nic .Networkname )
177+ }
178+
179+ if nic .Macaddress != "02:1a:4b:3c:5d:6e" {
180+ return fmt .Errorf ("Bad MAC address: %s" , nic .Macaddress )
181+ }
182+
183+ return nil
184+ }
185+ }
186+
149187func testAccCheckCloudStackNICDestroy (s * terraform.State ) error {
150188 cs := testAccProvider .Meta ().(* cloudstack.CloudStackClient )
151189
@@ -170,16 +208,16 @@ func testAccCheckCloudStackNICDestroy(s *terraform.State) error {
170208
171209const testAccCloudStackNIC_basic = `
172210resource "cloudstack_network" "foo" {
173- name = "terraform-network"
174- display_text = "terraform-network"
211+ name = "terraform-network-primary "
212+ display_text = "terraform-network-primary "
175213 cidr = "10.1.1.0/24"
176214 network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
177215 zone = "Sandbox-simulator"
178216}
179217
180218resource "cloudstack_network" "bar" {
181- name = "terraform-network"
182- display_text = "terraform-network"
219+ name = "terraform-network-secondary "
220+ display_text = "terraform-network-secondary "
183221 cidr = "10.1.2.0/24"
184222 network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
185223 zone = "Sandbox-simulator"
@@ -202,16 +240,16 @@ resource "cloudstack_nic" "foo" {
202240
203241const testAccCloudStackNIC_ipaddress = `
204242resource "cloudstack_network" "foo" {
205- name = "terraform-network"
206- display_text = "terraform-network"
243+ name = "terraform-network-primary "
244+ display_text = "terraform-network-primary "
207245 cidr = "10.1.1.0/24"
208246 network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
209247 zone = "Sandbox-simulator"
210248}
211249
212250resource "cloudstack_network" "bar" {
213- name = "terraform-network"
214- display_text = "terraform-network"
251+ name = "terraform-network-secondary "
252+ display_text = "terraform-network-secondary "
215253 cidr = "10.1.2.0/24"
216254 network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
217255 zone = "Sandbox-simulator"
@@ -232,3 +270,36 @@ resource "cloudstack_nic" "foo" {
232270 virtual_machine_id = cloudstack_instance.foobar.id
233271 ip_address = "10.1.2.123"
234272}`
273+
274+ const testAccCloudStackNIC_macaddress = `
275+ resource "cloudstack_network" "foo" {
276+ name = "terraform-network-primary"
277+ display_text = "terraform-network-primary"
278+ cidr = "10.1.1.0/24"
279+ network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
280+ zone = "Sandbox-simulator"
281+ }
282+
283+ resource "cloudstack_network" "bar" {
284+ name = "terraform-network-secondary"
285+ display_text = "terraform-network-secondary"
286+ cidr = "10.1.2.0/24"
287+ network_offering = "DefaultIsolatedNetworkOfferingWithSourceNatService"
288+ zone = "Sandbox-simulator"
289+ }
290+
291+ resource "cloudstack_instance" "foobar" {
292+ name = "terraform-test"
293+ display_name = "terraform"
294+ service_offering= "Medium Instance"
295+ network_id = cloudstack_network.foo.id
296+ template = "CentOS 5.6 (64-bit) no GUI (Simulator)"
297+ zone = "Sandbox-simulator"
298+ expunge = true
299+ }
300+
301+ resource "cloudstack_nic" "foo" {
302+ network_id = cloudstack_network.bar.id
303+ virtual_machine_id = cloudstack_instance.foobar.id
304+ mac_address = "02:1a:4b:3c:5d:6e"
305+ }`
0 commit comments