provider/aws: Add some tests for the Import for aws_eip
The Read func of the EIP has changed to set the `vpc` boolean value on the response object having an Address. This is required as an EIP that was specified, without a domain and then imported, would cause a perpetual plan. ``` % make testacc TEST=./builtin/providers/aws TESTARGS='-run=TestAccAWSEIP_' ==> Checking that code complies with gofmt requirements... go generate $(go list ./... | grep -v /terraform/vendor/) 2016/09/23 09:28:32 Generated command/internal_plugin_list.go TF_ACC=1 go test ./builtin/providers/aws -v -run=TestAccAWSEIP_ -timeout 120m === RUN TestAccAWSEIP_importEc2Classic --- PASS: TestAccAWSEIP_importEc2Classic (116.16s) === RUN TestAccAWSEIP_importVpc --- PASS: TestAccAWSEIP_importVpc (61.89s) === RUN TestAccAWSEIP_basic --- PASS: TestAccAWSEIP_basic (18.86s) === RUN TestAccAWSEIP_instance --- PASS: TestAccAWSEIP_instance (185.95s) === RUN TestAccAWSEIP_network_interface --- PASS: TestAccAWSEIP_network_interface (63.20s) === RUN TestAccAWSEIP_twoEIPsOneNetworkInterface --- PASS: TestAccAWSEIP_twoEIPsOneNetworkInterface (65.64s) === RUN TestAccAWSEIP_associated_user_private_ip --- PASS: TestAccAWSEIP_associated_user_private_ip (201.34s) PASS ok github.com/hashicorp/terraform/builtin/providers/aws 713.072s ```
This commit is contained in:
parent
a8a1f6d166
commit
5479e178b9
|
@ -29,6 +29,7 @@ func resourceAwsEip() *schema.Resource {
|
|||
Type: schema.TypeBool,
|
||||
Optional: true,
|
||||
ForceNew: true,
|
||||
Computed: true,
|
||||
},
|
||||
|
||||
"instance": &schema.Schema{
|
||||
|
@ -168,7 +169,7 @@ func resourceAwsEipRead(d *schema.ResourceData, meta interface{}) error {
|
|||
|
||||
// On import (domain never set, which it must've been if we created),
|
||||
// set the 'vpc' attribute depending on if we're in a VPC.
|
||||
if _, ok := d.GetOk("domain"); !ok {
|
||||
if address.Domain != nil {
|
||||
d.Set("vpc", *address.Domain == "vpc")
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package aws
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
|
@ -12,6 +13,50 @@ import (
|
|||
"github.com/hashicorp/terraform/terraform"
|
||||
)
|
||||
|
||||
func TestAccAWSEIP_importEc2Classic(t *testing.T) {
|
||||
oldvar := os.Getenv("AWS_DEFAULT_REGION")
|
||||
os.Setenv("AWS_DEFAULT_REGION", "us-east-1")
|
||||
defer os.Setenv("AWS_DEFAULT_REGION", oldvar)
|
||||
|
||||
resourceName := "aws_eip.bar"
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckAWSEIPDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
Config: testAccAWSEIPInstanceEc2Classic,
|
||||
},
|
||||
{
|
||||
ResourceName: resourceName,
|
||||
ImportState: true,
|
||||
ImportStateVerify: true,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccAWSEIP_importVpc(t *testing.T) {
|
||||
resourceName := "aws_eip.bar"
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckAWSEIPDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
{
|
||||
Config: testAccAWSEIPNetworkInterfaceConfig,
|
||||
},
|
||||
{
|
||||
ResourceName: resourceName,
|
||||
ImportState: true,
|
||||
ImportStateVerify: true,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccAWSEIP_basic(t *testing.T) {
|
||||
var conf ec2.Address
|
||||
|
||||
|
@ -152,7 +197,7 @@ func testAccCheckAWSEIPDestroy(s *terraform.State) error {
|
|||
describe, err := conn.DescribeAddresses(req)
|
||||
if err != nil {
|
||||
// Verify the error is what we want
|
||||
if ae, ok := err.(awserr.Error); ok && ae.Code() == "InvalidAllocationID.NotFound" {
|
||||
if ae, ok := err.(awserr.Error); ok && ae.Code() == "InvalidAllocationID.NotFound" || ae.Code() == "InvalidAddress.NotFound" {
|
||||
continue
|
||||
}
|
||||
return err
|
||||
|
@ -168,7 +213,7 @@ func testAccCheckAWSEIPDestroy(s *terraform.State) error {
|
|||
describe, err := conn.DescribeAddresses(req)
|
||||
if err != nil {
|
||||
// Verify the error is what we want
|
||||
if ae, ok := err.(awserr.Error); ok && ae.Code() == "InvalidAllocationID.NotFound" {
|
||||
if ae, ok := err.(awserr.Error); ok && ae.Code() == "InvalidAllocationID.NotFound" || ae.Code() == "InvalidAddress.NotFound" {
|
||||
continue
|
||||
}
|
||||
return err
|
||||
|
@ -256,6 +301,20 @@ resource "aws_eip" "bar" {
|
|||
}
|
||||
`
|
||||
|
||||
const testAccAWSEIPInstanceEc2Classic = `
|
||||
provider "aws" {
|
||||
region = "us-east-1"
|
||||
}
|
||||
resource "aws_instance" "foo" {
|
||||
ami = "ami-5469ae3c"
|
||||
instance_type = "m1.small"
|
||||
}
|
||||
|
||||
resource "aws_eip" "bar" {
|
||||
instance = "${aws_instance.foo.id}"
|
||||
}
|
||||
`
|
||||
|
||||
const testAccAWSEIPInstanceConfig = `
|
||||
resource "aws_instance" "foo" {
|
||||
# us-west-2
|
||||
|
|
Loading…
Reference in New Issue