From 0a8b94e7480a27b1d5fec18370c1491f3661b1ff Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Sat, 9 Jul 2016 02:43:29 -0400 Subject: [PATCH] More tweaks to the IAM async creation tolerance Issue #35 --- upup/pkg/fi/cloudup/awstasks/launchconfiguration.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go b/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go index f5a2367f52..9b27a29672 100644 --- a/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go +++ b/upup/pkg/fi/cloudup/awstasks/launchconfiguration.go @@ -253,10 +253,14 @@ func (_ *LaunchConfiguration) RenderAWS(t *awsup.AWSAPITarget, a, e, changes *La _, err = t.Cloud.Autoscaling.CreateLaunchConfiguration(request) if err != nil { - if awsup.AWSErrorCode(err) == "ValidationError" && strings.Contains(awsup.AWSErrorMessage(err), "Invalid IamInstanceProfile") { - // IAM instance profile creation is notoriously async - return fmt.Errorf("IAM instance profile %q not yet created/propagated", err) + if awsup.AWSErrorCode(err) == "ValidationError" { + message := awsup.AWSErrorMessage(err) + if strings.Contains(message, "not authorized") || strings.Contains(message, "Invalid IamInstance") { + // IAM instance profile creation is notoriously async + return fmt.Errorf("IAM instance profile not yet created/propagated") + } } + glog.V(4).Infof("ErrorCode=%q, Message=%q", awsup.AWSErrorCode(err), awsup.AWSErrorMessage(err)) return fmt.Errorf("error creating AutoscalingLaunchConfiguration: %v", err) }