@@ -12,12 +12,68 @@ import (
12
12
"github.com/hashicorp/terraform/terraform"
13
13
)
14
14
15
+ func TestAccAWSEIPAssociation_instance (t * testing.T ) {
16
+ resourceName := "aws_eip_association.test"
17
+ var a ec2.Address
18
+
19
+ resource .ParallelTest (t , resource.TestCase {
20
+ PreCheck : func () { testAccPreCheck (t ) },
21
+ Providers : testAccProviders ,
22
+ CheckDestroy : testAccCheckAWSEIPAssociationDestroy ,
23
+ Steps : []resource.TestStep {
24
+ {
25
+ Config : testAccAWSEIPAssociationConfig_instance ,
26
+ Check : resource .ComposeTestCheckFunc (
27
+ testAccCheckAWSEIPExists (
28
+ "aws_eip.test" , & a ),
29
+ testAccCheckAWSEIPAssociationExists (
30
+ resourceName , & a ),
31
+ testAccCheckAWSEIPAssociationExists (
32
+ resourceName , & a ),
33
+ ),
34
+ },
35
+ {
36
+ ResourceName : resourceName ,
37
+ ImportState : true ,
38
+ ImportStateVerify : true ,
39
+ },
40
+ },
41
+ })
42
+ }
43
+
44
+ func TestAccAWSEIPAssociation_networkInterface (t * testing.T ) {
45
+ resourceName := "aws_eip_association.test"
46
+ var a ec2.Address
47
+
48
+ resource .ParallelTest (t , resource.TestCase {
49
+ PreCheck : func () { testAccPreCheck (t ) },
50
+ Providers : testAccProviders ,
51
+ CheckDestroy : testAccCheckAWSEIPAssociationDestroy ,
52
+ Steps : []resource.TestStep {
53
+ {
54
+ Config : testAccAWSEIPAssociationConfig_networkInterface ,
55
+ Check : resource .ComposeTestCheckFunc (
56
+ testAccCheckAWSEIPExists (
57
+ "aws_eip.test" , & a ),
58
+ testAccCheckAWSEIPAssociationExists (
59
+ resourceName , & a ),
60
+ ),
61
+ },
62
+ {
63
+ ResourceName : resourceName ,
64
+ ImportState : true ,
65
+ ImportStateVerify : true ,
66
+ },
67
+ },
68
+ })
69
+ }
70
+
15
71
func TestAccAWSEIPAssociation_basic (t * testing.T ) {
16
72
var a ec2.Address
17
73
resourceName := "aws_eip_association.by_allocation_id"
18
74
19
75
resource .ParallelTest (t , resource.TestCase {
20
- PreCheck : func () { testAccPreCheck (t ) },
76
+ PreCheck : func () { testAccPreCheck (t ); testAccEC2VPCOnlyPreCheck ( t ) },
21
77
Providers : testAccProviders ,
22
78
CheckDestroy : testAccCheckAWSEIPAssociationDestroy ,
23
79
Steps : []resource.TestStep {
@@ -64,10 +120,10 @@ func TestAccAWSEIPAssociation_ec2Classic(t *testing.T) {
64
120
Config : testAccAWSEIPAssociationConfig_ec2Classic ,
65
121
Check : resource .ComposeTestCheckFunc (
66
122
testAccCheckAWSEIPExists ("aws_eip.test" , & a ),
67
- testAccCheckAWSEIPAssociationExists ("aws_eip_association.test" , & a ),
68
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "public_ip" ),
69
- resource .TestCheckResourceAttr ("aws_eip_association.test" , "allocation_id" , "" ),
70
- testAccCheckAWSEIPAssociationHasIpBasedId ("aws_eip_association.test" , & a ),
123
+ testAccCheckAWSEIPAssociationExists (resourceName , & a ),
124
+ resource .TestCheckResourceAttrSet (resourceName , "public_ip" ),
125
+ resource .TestCheckResourceAttr (resourceName , "allocation_id" , "" ),
126
+ testAccCheckAWSEIPAssociationHasIpBasedId (resourceName , & a ),
71
127
),
72
128
},
73
129
{
@@ -93,9 +149,9 @@ func TestAccAWSEIPAssociation_spotInstance(t *testing.T) {
93
149
Config : testAccAWSEIPAssociationConfig_spotInstance (rInt ),
94
150
Check : resource .ComposeTestCheckFunc (
95
151
testAccCheckAWSEIPExists ("aws_eip.test" , & a ),
96
- testAccCheckAWSEIPAssociationExists ("aws_eip_association.test" , & a ),
97
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "allocation_id" ),
98
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "instance_id" ),
152
+ testAccCheckAWSEIPAssociationExists (resourceName , & a ),
153
+ resource .TestCheckResourceAttrSet (resourceName , "allocation_id" ),
154
+ resource .TestCheckResourceAttrSet (resourceName , "instance_id" ),
99
155
),
100
156
},
101
157
{
@@ -226,16 +282,31 @@ func testAccCheckAWSEIPAssociationDestroy(s *terraform.State) error {
226
282
}
227
283
228
284
const testAccAWSEIPAssociationConfig = `
285
+ data "aws_availability_zones" "available" {
286
+ state = "available"
287
+ }
288
+
229
289
resource "aws_vpc" "test" {
230
290
cidr_block = "192.168.0.0/24"
231
291
tags = {
232
292
Name = "terraform-testacc-eip-association"
233
293
}
234
294
}
295
+
296
+ data "aws_ami" "amzn-ami-minimal-pv" {
297
+ most_recent = true
298
+ owners = ["amazon"]
299
+
300
+ filter {
301
+ name = "name"
302
+ values = ["amzn-ami-minimal-pv-*"]
303
+ }
304
+ }
305
+
235
306
resource "aws_subnet" "test" {
236
307
vpc_id = "${aws_vpc.test.id}"
237
308
cidr_block = "192.168.0.0/25"
238
- availability_zone = "us-west-2a "
309
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
239
310
tags = {
240
311
Name = "tf-acc-eip-association"
241
312
}
@@ -245,9 +316,9 @@ resource "aws_internet_gateway" "test" {
245
316
}
246
317
resource "aws_instance" "test" {
247
318
count = 2
248
- ami = "ami-21f78e11 "
249
- availability_zone = "us-west-2a "
250
- instance_type = "t1.micro "
319
+ ami = "${data.aws_ami.amzn- ami-minimal-pv.id} "
320
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
321
+ instance_type = "m1.small "
251
322
subnet_id = "${aws_subnet.test.id}"
252
323
private_ip = "192.168.0.${count.index+10}"
253
324
}
@@ -281,6 +352,20 @@ resource "aws_network_interface" "test" {
281
352
`
282
353
283
354
const testAccAWSEIPAssociationConfigDisappears = `
355
+ data "aws_availability_zones" "available" {
356
+ state = "available"
357
+ }
358
+
359
+ data "aws_ami" "amzn-ami-minimal-pv" {
360
+ most_recent = true
361
+ owners = ["amazon"]
362
+
363
+ filter {
364
+ name = "name"
365
+ values = ["amzn-ami-minimal-pv-*"]
366
+ }
367
+ }
368
+
284
369
resource "aws_vpc" "main" {
285
370
cidr_block = "192.168.0.0/24"
286
371
tags = {
@@ -290,7 +375,7 @@ resource "aws_vpc" "main" {
290
375
resource "aws_subnet" "sub" {
291
376
vpc_id = "${aws_vpc.main.id}"
292
377
cidr_block = "192.168.0.0/25"
293
- availability_zone = "us-west-2a "
378
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
294
379
tags = {
295
380
Name = "tf-acc-eip-association-disappears"
296
381
}
@@ -299,9 +384,9 @@ resource "aws_internet_gateway" "igw" {
299
384
vpc_id = "${aws_vpc.main.id}"
300
385
}
301
386
resource "aws_instance" "foo" {
302
- ami = "ami-21f78e11 "
303
- availability_zone = "us-west-2a "
304
- instance_type = "t1.micro "
387
+ ami = "${data.aws_ami.amzn- ami-minimal-pv.id} "
388
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
389
+ instance_type = "m1.small "
305
390
subnet_id = "${aws_subnet.sub.id}"
306
391
}
307
392
resource "aws_eip" "bar" {
@@ -319,7 +404,9 @@ provider "aws" {
319
404
320
405
resource "aws_eip" "test" {}
321
406
322
- data "aws_availability_zones" "available" {}
407
+ data "aws_availability_zones" "available" {
408
+ state = "available"
409
+ }
323
410
324
411
data "aws_ami" "ubuntu" {
325
412
most_recent = true
0 commit comments