terraform/builtin/providers/aws/data_source_aws_ebs_volume_...

107 lines
2.5 KiB
Go

package aws
import (
"fmt"
"testing"
"github.com/hashicorp/terraform/helper/resource"
"github.com/hashicorp/terraform/terraform"
)
func TestAccAWSEbsVolumeDataSource_basic(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Steps: []resource.TestStep{
{
Config: testAccCheckAwsEbsVolumeDataSourceConfig,
Check: resource.ComposeTestCheckFunc(
testAccCheckAwsEbsVolumeDataSourceID("data.aws_ebs_volume.ebs_volume"),
resource.TestCheckResourceAttr("data.aws_ebs_volume.ebs_volume", "size", "40"),
),
},
},
})
}
func TestAccAWSEbsVolumeDataSource_multipleFilters(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
Steps: []resource.TestStep{
{
Config: testAccCheckAwsEbsVolumeDataSourceConfigWithMultipleFilters,
Check: resource.ComposeTestCheckFunc(
testAccCheckAwsEbsVolumeDataSourceID("data.aws_ebs_volume.ebs_volume"),
resource.TestCheckResourceAttr("data.aws_ebs_volume.ebs_volume", "size", "10"),
resource.TestCheckResourceAttr("data.aws_ebs_volume.ebs_volume", "volume_type", "gp2"),
),
},
},
})
}
func testAccCheckAwsEbsVolumeDataSourceID(n string) resource.TestCheckFunc {
return func(s *terraform.State) error {
rs, ok := s.RootModule().Resources[n]
if !ok {
return fmt.Errorf("Can't find Volume data source: %s", n)
}
if rs.Primary.ID == "" {
return fmt.Errorf("Volume data source ID not set")
}
return nil
}
}
const testAccCheckAwsEbsVolumeDataSourceConfig = `
resource "aws_ebs_volume" "example" {
availability_zone = "us-west-2a"
type = "gp2"
size = 40
tags {
Name = "External Volume"
}
}
data "aws_ebs_volume" "ebs_volume" {
most_recent = true
filter {
name = "tag:Name"
values = ["External Volume"]
}
filter {
name = "volume-type"
values = ["${aws_ebs_volume.example.type}"]
}
}
`
const testAccCheckAwsEbsVolumeDataSourceConfigWithMultipleFilters = `
resource "aws_ebs_volume" "external1" {
availability_zone = "us-west-2a"
type = "gp2"
size = 10
tags {
Name = "External Volume 1"
}
}
data "aws_ebs_volume" "ebs_volume" {
most_recent = true
filter {
name = "tag:Name"
values = ["External Volume 1"]
}
filter {
name = "size"
values = ["${aws_ebs_volume.external1.size}"]
}
filter {
name = "volume-type"
values = ["${aws_ebs_volume.external1.type}"]
}
}
`