|
|
|
|
@ -8,17 +8,42 @@ import (
|
|
|
|
|
"github.com/aws/aws-sdk-go/aws"
|
|
|
|
|
"github.com/aws/aws-sdk-go/aws/awserr"
|
|
|
|
|
"github.com/aws/aws-sdk-go/service/iam"
|
|
|
|
|
"github.com/hashicorp/terraform/helper/acctest"
|
|
|
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
|
|
|
"github.com/hashicorp/terraform/terraform"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestAccAWSIAMInstanceProfile_importBasic(t *testing.T) {
|
|
|
|
|
resourceName := "aws_iam_instance_profile.test"
|
|
|
|
|
rName := acctest.RandString(5)
|
|
|
|
|
|
|
|
|
|
resource.Test(t, resource.TestCase{
|
|
|
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
|
|
|
Providers: testAccProviders,
|
|
|
|
|
CheckDestroy: testAccCheckAWSInstanceProfileDestroy,
|
|
|
|
|
Steps: []resource.TestStep{
|
|
|
|
|
{
|
|
|
|
|
Config: testAccAWSInstanceProfilePrefixNameConfig(rName),
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
ResourceName: resourceName,
|
|
|
|
|
ImportState: true,
|
|
|
|
|
ImportStateVerify: true,
|
|
|
|
|
ImportStateVerifyIgnore: []string{"name_prefix"},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestAccAWSIAMInstanceProfile_basic(t *testing.T) {
|
|
|
|
|
rName := acctest.RandString(5)
|
|
|
|
|
resource.Test(t, resource.TestCase{
|
|
|
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
|
|
|
Providers: testAccProviders,
|
|
|
|
|
Steps: []resource.TestStep{
|
|
|
|
|
resource.TestStep{
|
|
|
|
|
Config: testAccAwsIamInstanceProfileConfig,
|
|
|
|
|
{
|
|
|
|
|
Config: testAccAwsIamInstanceProfileConfig(rName),
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
@ -26,6 +51,7 @@ func TestAccAWSIAMInstanceProfile_basic(t *testing.T) {
|
|
|
|
|
|
|
|
|
|
func TestAccAWSIAMInstanceProfile_namePrefix(t *testing.T) {
|
|
|
|
|
var conf iam.GetInstanceProfileOutput
|
|
|
|
|
rName := acctest.RandString(5)
|
|
|
|
|
|
|
|
|
|
resource.Test(t, resource.TestCase{
|
|
|
|
|
PreCheck: func() { testAccPreCheck(t) },
|
|
|
|
|
@ -34,8 +60,8 @@ func TestAccAWSIAMInstanceProfile_namePrefix(t *testing.T) {
|
|
|
|
|
Providers: testAccProviders,
|
|
|
|
|
CheckDestroy: testAccCheckAWSInstanceProfileDestroy,
|
|
|
|
|
Steps: []resource.TestStep{
|
|
|
|
|
resource.TestStep{
|
|
|
|
|
Config: testAccAWSInstanceProfilePrefixNameConfig,
|
|
|
|
|
{
|
|
|
|
|
Config: testAccAWSInstanceProfilePrefixNameConfig(rName),
|
|
|
|
|
Check: resource.ComposeTestCheckFunc(
|
|
|
|
|
testAccCheckAWSInstanceProfileExists("aws_iam_instance_profile.test", &conf),
|
|
|
|
|
testAccCheckAWSInstanceProfileGeneratedNamePrefix(
|
|
|
|
|
@ -118,26 +144,28 @@ func testAccCheckAWSInstanceProfileExists(n string, res *iam.GetInstanceProfileO
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const testAccAwsIamInstanceProfileConfig = `
|
|
|
|
|
func testAccAwsIamInstanceProfileConfig(rName string) string {
|
|
|
|
|
return fmt.Sprintf(`
|
|
|
|
|
resource "aws_iam_role" "test" {
|
|
|
|
|
name = "test"
|
|
|
|
|
name = "test-%s"
|
|
|
|
|
assume_role_policy = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_iam_instance_profile" "test" {
|
|
|
|
|
name = "test"
|
|
|
|
|
roles = ["${aws_iam_role.test.name}"]
|
|
|
|
|
}`, rName)
|
|
|
|
|
}
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
const testAccAWSInstanceProfilePrefixNameConfig = `
|
|
|
|
|
func testAccAWSInstanceProfilePrefixNameConfig(rName string) string {
|
|
|
|
|
return fmt.Sprintf(`
|
|
|
|
|
resource "aws_iam_role" "test" {
|
|
|
|
|
name = "test"
|
|
|
|
|
name = "test-%s"
|
|
|
|
|
assume_role_policy = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
resource "aws_iam_instance_profile" "test" {
|
|
|
|
|
name_prefix = "test-"
|
|
|
|
|
roles = ["${aws_iam_role.test.name}"]
|
|
|
|
|
}`, rName)
|
|
|
|
|
}
|
|
|
|
|
`
|
|
|
|
|
|