From 8e228030991016ac76740c252b9ca60d8e4e894d Mon Sep 17 00:00:00 2001 From: Megan Marsh Date: Wed, 11 Jul 2018 13:10:38 -0700 Subject: [PATCH] fix loading of environment variables for managing aws waiters --- builder/amazon/common/state.go | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/builder/amazon/common/state.go b/builder/amazon/common/state.go index 73280afaa..c2390d8b1 100644 --- a/builder/amazon/common/state.go +++ b/builder/amazon/common/state.go @@ -260,6 +260,20 @@ func getWaiterOptions() []request.WaiterOption { return waitOpts } +func getOverride(varInfo envInfo) envInfo { + override := os.Getenv(varInfo.envKey) + if override != "" { + n, err := strconv.Atoi(override) + if err != nil { + log.Printf("Invalid %s '%s', using default", varInfo.envKey, override) + } else { + varInfo.overridden = true + varInfo.Val = n + } + } + + return varInfo +} func getEnvOverrides() overridableWaitVars { // Load env vars from environment, and use them to override defaults envValues := overridableWaitVars{ @@ -268,18 +282,9 @@ func getEnvOverrides() overridableWaitVars { envInfo{"AWS_TIMEOUT_SECONDS", 300, false}, } - for _, varInfo := range []envInfo{envValues.awsPollDelaySeconds, envValues.awsMaxAttempts, envValues.awsTimeoutSeconds} { - override := os.Getenv(varInfo.envKey) - if override != "" { - n, err := strconv.Atoi(override) - if err != nil { - log.Printf("Invalid %s '%s', using default", varInfo.envKey, override) - } else { - varInfo.overridden = true - varInfo.Val = n - } - } - } + envValues.awsMaxAttempts = getOverride(envValues.awsMaxAttempts) + envValues.awsPollDelaySeconds = getOverride(envValues.awsPollDelaySeconds) + envValues.awsTimeoutSeconds = getOverride(envValues.awsTimeoutSeconds) return envValues }