@@ -12,8 +12,9 @@ import (
12
12
"github.com/hashicorp/terraform-plugin-sdk/terraform"
13
13
)
14
14
15
- func TestAccAWSEIPAssociation_importInstance (t * testing.T ) {
15
+ func TestAccAWSEIPAssociation_instance (t * testing.T ) {
16
16
resourceName := "aws_eip_association.test"
17
+ var a ec2.Address
17
18
18
19
resource .ParallelTest (t , resource.TestCase {
19
20
PreCheck : func () { testAccPreCheck (t ) },
@@ -22,6 +23,14 @@ func TestAccAWSEIPAssociation_importInstance(t *testing.T) {
22
23
Steps : []resource.TestStep {
23
24
{
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
+ ),
25
34
},
26
35
{
27
36
ResourceName : resourceName ,
@@ -32,8 +41,9 @@ func TestAccAWSEIPAssociation_importInstance(t *testing.T) {
32
41
})
33
42
}
34
43
35
- func TestAccAWSEIPAssociation_importNetworkInterface (t * testing.T ) {
44
+ func TestAccAWSEIPAssociation_networkInterface (t * testing.T ) {
36
45
resourceName := "aws_eip_association.test"
46
+ var a ec2.Address
37
47
38
48
resource .ParallelTest (t , resource.TestCase {
39
49
PreCheck : func () { testAccPreCheck (t ) },
@@ -42,6 +52,12 @@ func TestAccAWSEIPAssociation_importNetworkInterface(t *testing.T) {
42
52
Steps : []resource.TestStep {
43
53
{
44
54
Config : testAccAWSEIPAssociationConfig_networkInterface ,
55
+ Check : resource .ComposeTestCheckFunc (
56
+ testAccCheckAWSEIPExists (
57
+ "aws_eip.test" , & a ),
58
+ testAccCheckAWSEIPAssociationExists (
59
+ resourceName , & a ),
60
+ ),
45
61
},
46
62
{
47
63
ResourceName : resourceName ,
@@ -54,35 +70,42 @@ func TestAccAWSEIPAssociation_importNetworkInterface(t *testing.T) {
54
70
55
71
func TestAccAWSEIPAssociation_basic (t * testing.T ) {
56
72
var a ec2.Address
73
+ resourceName := "aws_eip_association.by_allocation_id"
57
74
58
75
resource .ParallelTest (t , resource.TestCase {
59
- PreCheck : func () { testAccPreCheck (t ) },
76
+ PreCheck : func () { testAccPreCheck (t ); testAccEC2VPCOnlyPreCheck ( t ) },
60
77
Providers : testAccProviders ,
61
78
CheckDestroy : testAccCheckAWSEIPAssociationDestroy ,
62
79
Steps : []resource.TestStep {
63
80
{
64
81
Config : testAccAWSEIPAssociationConfig ,
65
82
Check : resource .ComposeTestCheckFunc (
66
83
testAccCheckAWSEIPExists (
67
- "aws_eip.bar .0" , & a ),
84
+ "aws_eip.test .0" , & a ),
68
85
testAccCheckAWSEIPAssociationExists (
69
86
"aws_eip_association.by_allocation_id" , & a ),
70
87
testAccCheckAWSEIPExists (
71
- "aws_eip.bar .1" , & a ),
88
+ "aws_eip.test .1" , & a ),
72
89
testAccCheckAWSEIPAssociationExists (
73
90
"aws_eip_association.by_public_ip" , & a ),
74
91
testAccCheckAWSEIPExists (
75
- "aws_eip.bar .2" , & a ),
92
+ "aws_eip.test .2" , & a ),
76
93
testAccCheckAWSEIPAssociationExists (
77
94
"aws_eip_association.to_eni" , & a ),
78
95
),
79
96
},
97
+ {
98
+ ResourceName : resourceName ,
99
+ ImportState : true ,
100
+ ImportStateVerify : true ,
101
+ },
80
102
},
81
103
})
82
104
}
83
105
84
106
func TestAccAWSEIPAssociation_ec2Classic (t * testing.T ) {
85
107
var a ec2.Address
108
+ resourceName := "aws_eip_association.test"
86
109
87
110
oldvar := os .Getenv ("AWS_DEFAULT_REGION" )
88
111
os .Setenv ("AWS_DEFAULT_REGION" , "us-east-1" )
@@ -97,19 +120,25 @@ func TestAccAWSEIPAssociation_ec2Classic(t *testing.T) {
97
120
Config : testAccAWSEIPAssociationConfig_ec2Classic ,
98
121
Check : resource .ComposeTestCheckFunc (
99
122
testAccCheckAWSEIPExists ("aws_eip.test" , & a ),
100
- testAccCheckAWSEIPAssociationExists ("aws_eip_association.test" , & a ),
101
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "public_ip" ),
102
- resource .TestCheckResourceAttr ("aws_eip_association.test" , "allocation_id" , "" ),
103
- 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 ),
104
127
),
105
128
},
129
+ {
130
+ ResourceName : resourceName ,
131
+ ImportState : true ,
132
+ ImportStateVerify : true ,
133
+ },
106
134
},
107
135
})
108
136
}
109
137
110
138
func TestAccAWSEIPAssociation_spotInstance (t * testing.T ) {
111
139
var a ec2.Address
112
140
rInt := acctest .RandInt ()
141
+ resourceName := "aws_eip_association.test"
113
142
114
143
resource .ParallelTest (t , resource.TestCase {
115
144
PreCheck : func () { testAccPreCheck (t ) },
@@ -120,11 +149,16 @@ func TestAccAWSEIPAssociation_spotInstance(t *testing.T) {
120
149
Config : testAccAWSEIPAssociationConfig_spotInstance (rInt ),
121
150
Check : resource .ComposeTestCheckFunc (
122
151
testAccCheckAWSEIPExists ("aws_eip.test" , & a ),
123
- testAccCheckAWSEIPAssociationExists ("aws_eip_association.test" , & a ),
124
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "allocation_id" ),
125
- resource .TestCheckResourceAttrSet ("aws_eip_association.test" , "instance_id" ),
152
+ testAccCheckAWSEIPAssociationExists (resourceName , & a ),
153
+ resource .TestCheckResourceAttrSet (resourceName , "allocation_id" ),
154
+ resource .TestCheckResourceAttrSet (resourceName , "instance_id" ),
126
155
),
127
156
},
157
+ {
158
+ ResourceName : resourceName ,
159
+ ImportState : true ,
160
+ ImportStateVerify : true ,
161
+ },
128
162
},
129
163
})
130
164
}
@@ -248,61 +282,90 @@ func testAccCheckAWSEIPAssociationDestroy(s *terraform.State) error {
248
282
}
249
283
250
284
const testAccAWSEIPAssociationConfig = `
251
- resource "aws_vpc" "main" {
285
+ data "aws_availability_zones" "available" {
286
+ state = "available"
287
+ }
288
+
289
+ resource "aws_vpc" "test" {
252
290
cidr_block = "192.168.0.0/24"
253
291
tags = {
254
292
Name = "terraform-testacc-eip-association"
255
293
}
256
294
}
257
- resource "aws_subnet" "sub" {
258
- vpc_id = "${aws_vpc.main.id}"
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
+
306
+ resource "aws_subnet" "test" {
307
+ vpc_id = "${aws_vpc.test.id}"
259
308
cidr_block = "192.168.0.0/25"
260
- availability_zone = "us-west-2a "
309
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
261
310
tags = {
262
311
Name = "tf-acc-eip-association"
263
312
}
264
313
}
265
- resource "aws_internet_gateway" "igw " {
266
- vpc_id = "${aws_vpc.main .id}"
314
+ resource "aws_internet_gateway" "test " {
315
+ vpc_id = "${aws_vpc.test .id}"
267
316
}
268
- resource "aws_instance" "foo " {
317
+ resource "aws_instance" "test " {
269
318
count = 2
270
- ami = "ami-21f78e11 "
271
- availability_zone = "us-west-2a "
272
- instance_type = "t1.micro "
273
- subnet_id = "${aws_subnet.sub .id}"
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 "
322
+ subnet_id = "${aws_subnet.test .id}"
274
323
private_ip = "192.168.0.${count.index+10}"
275
324
}
276
- resource "aws_eip" "bar " {
325
+ resource "aws_eip" "test " {
277
326
count = 3
278
327
vpc = true
279
328
}
280
329
resource "aws_eip_association" "by_allocation_id" {
281
- allocation_id = "${aws_eip.bar .0.id}"
282
- instance_id = "${aws_instance.foo .0.id}"
283
- depends_on = ["aws_instance.foo "]
330
+ allocation_id = "${aws_eip.test .0.id}"
331
+ instance_id = "${aws_instance.test .0.id}"
332
+ depends_on = ["aws_instance.test "]
284
333
}
285
334
resource "aws_eip_association" "by_public_ip" {
286
- public_ip = "${aws_eip.bar .1.public_ip}"
287
- instance_id = "${aws_instance.foo .1.id}"
288
- depends_on = ["aws_instance.foo "]
335
+ public_ip = "${aws_eip.test .1.public_ip}"
336
+ instance_id = "${aws_instance.test .1.id}"
337
+ depends_on = ["aws_instance.test "]
289
338
}
290
339
resource "aws_eip_association" "to_eni" {
291
- allocation_id = "${aws_eip.bar .2.id}"
292
- network_interface_id = "${aws_network_interface.baz .id}"
340
+ allocation_id = "${aws_eip.test .2.id}"
341
+ network_interface_id = "${aws_network_interface.test .id}"
293
342
}
294
- resource "aws_network_interface" "baz " {
295
- subnet_id = "${aws_subnet.sub .id}"
343
+ resource "aws_network_interface" "test " {
344
+ subnet_id = "${aws_subnet.test .id}"
296
345
private_ips = ["192.168.0.50"]
297
- depends_on = ["aws_instance.foo "]
346
+ depends_on = ["aws_instance.test "]
298
347
attachment {
299
- instance = "${aws_instance.foo .0.id}"
348
+ instance = "${aws_instance.test .0.id}"
300
349
device_index = 1
301
350
}
302
351
}
303
352
`
304
353
305
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
+
306
369
resource "aws_vpc" "main" {
307
370
cidr_block = "192.168.0.0/24"
308
371
tags = {
@@ -312,7 +375,7 @@ resource "aws_vpc" "main" {
312
375
resource "aws_subnet" "sub" {
313
376
vpc_id = "${aws_vpc.main.id}"
314
377
cidr_block = "192.168.0.0/25"
315
- availability_zone = "us-west-2a "
378
+ availability_zone = "${data.aws_availability_zones.available.names[0]} "
316
379
tags = {
317
380
Name = "tf-acc-eip-association-disappears"
318
381
}
@@ -321,9 +384,9 @@ resource "aws_internet_gateway" "igw" {
321
384
vpc_id = "${aws_vpc.main.id}"
322
385
}
323
386
resource "aws_instance" "foo" {
324
- ami = "ami-21f78e11 "
325
- availability_zone = "us-west-2a "
326
- 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 "
327
390
subnet_id = "${aws_subnet.sub.id}"
328
391
}
329
392
resource "aws_eip" "bar" {
@@ -341,7 +404,9 @@ provider "aws" {
341
404
342
405
resource "aws_eip" "test" {}
343
406
344
- data "aws_availability_zones" "available" {}
407
+ data "aws_availability_zones" "available" {
408
+ state = "available"
409
+ }
345
410
346
411
data "aws_ami" "ubuntu" {
347
412
most_recent = true
0 commit comments