provider/aws: Fix launch_config waiting for IAM instance profile
AWS changed their error message, which was being used for detection of the specific error that indicates we need to wait for IAM propagation. Behavior is covered by a test now. Fixes #5862
This commit is contained in:
parent
3a44fc7b3f
commit
6c2b511152
|
@ -7,6 +7,7 @@ import (
|
|||
"encoding/hex"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
|
@ -432,7 +433,7 @@ func resourceAwsLaunchConfigurationCreate(d *schema.ResourceData, meta interface
|
|||
_, err := autoscalingconn.CreateLaunchConfiguration(&createLaunchConfigurationOpts)
|
||||
if err != nil {
|
||||
if awsErr, ok := err.(awserr.Error); ok {
|
||||
if awsErr.Message() == "Invalid IamInstanceProfile" {
|
||||
if strings.Contains(awsErr.Message(), "Invalid IamInstanceProfile") {
|
||||
return resource.RetryableError(err)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -89,6 +89,24 @@ func TestAccAWSLaunchConfiguration_withSpotPrice(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestAccAWSLaunchConfiguration_withIAMProfile(t *testing.T) {
|
||||
var conf autoscaling.LaunchConfiguration
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
Providers: testAccProviders,
|
||||
CheckDestroy: testAccCheckAWSLaunchConfigurationDestroy,
|
||||
Steps: []resource.TestStep{
|
||||
resource.TestStep{
|
||||
Config: testAccAWSLaunchConfigurationConfig_withIAMProfile,
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckAWSLaunchConfigurationExists("aws_launch_configuration.bar", &conf),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func testAccCheckAWSLaunchConfigurationWithEncryption(conf *autoscaling.LaunchConfiguration) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
// Map out the block devices by name, which should be unique.
|
||||
|
@ -337,3 +355,35 @@ resource "aws_launch_configuration" "baz" {
|
|||
}
|
||||
}
|
||||
`
|
||||
|
||||
const testAccAWSLaunchConfigurationConfig_withIAMProfile = `
|
||||
resource "aws_iam_role" "role" {
|
||||
name = "TestAccAWSLaunchConfiguration-withIAMProfile"
|
||||
assume_role_policy = <<EOF
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Action": "sts:AssumeRole",
|
||||
"Principal": {
|
||||
"Service": "ec2.amazonaws.com"
|
||||
},
|
||||
"Effect": "Allow",
|
||||
"Sid": ""
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
}
|
||||
|
||||
resource "aws_iam_instance_profile" "profile" {
|
||||
name = "TestAccAWSLaunchConfiguration-withIAMProfile"
|
||||
roles = ["${aws_iam_role.role.name}"]
|
||||
}
|
||||
|
||||
resource "aws_launch_configuration" "bar" {
|
||||
image_id = "ami-5189a661"
|
||||
instance_type = "t2.nano"
|
||||
iam_instance_profile = "${aws_iam_instance_profile.profile.name}"
|
||||
}
|
||||
`
|
||||
|
|
Loading…
Reference in New Issue