diff --git a/fix/fixer_amazon_private_ip.go b/fix/fixer_amazon_private_ip.go index 7bfce1291..7b0189ca5 100644 --- a/fix/fixer_amazon_private_ip.go +++ b/fix/fixer_amazon_private_ip.go @@ -2,6 +2,7 @@ package fix import ( "log" + "strconv" "strings" "github.com/mitchellh/mapstructure" @@ -49,8 +50,12 @@ func (FixerAmazonPrivateIP) Fix(input map[string]interface{}) (map[string]interf } privateIP, ok := privateIPi.(bool) if !ok { - log.Fatalf("Wrong type for ssh_private_ip") - continue + var err error + privateIP, err = strconv.ParseBool(privateIPi.(string)) + if err != nil { + log.Fatalf("Wrong type for ssh_private_ip") + continue + } } delete(builder, "ssh_private_ip") diff --git a/fix/fixer_amazon_private_ip_test.go b/fix/fixer_amazon_private_ip_test.go index 554584ded..71961f2f8 100644 --- a/fix/fixer_amazon_private_ip_test.go +++ b/fix/fixer_amazon_private_ip_test.go @@ -39,6 +39,19 @@ func TestFixerAmazonPrivateIP(t *testing.T) { "ssh_interface": "private_ip", }, }, + + // ssh_private_ip specified as string + { + Input: map[string]interface{}{ + "type": "amazon-ebs", + "ssh_private_ip": "true", + }, + + Expected: map[string]interface{}{ + "type": "amazon-ebs", + "ssh_interface": "private_ip", + }, + }, } for _, tc := range cases {