mirror of
https://github.com/hashicorp/packer.git
synced 2026-02-27 03:51:20 -05:00
The "ssh_private_ip" key works with either boolean values or string representations of booleans. The fixer errors when the value is defined as, for example, "true" (with quotation marks). This commit will attempt to convert the string into a bool when necessary to ensure this case is handled. Signed-off-by: Brendan Devenney <brendan.devenney@cloudreach.com>
77 lines
1.5 KiB
Go
77 lines
1.5 KiB
Go
package fix
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestFixerAmazonPrivateIP_Impl(t *testing.T) {
|
|
var _ Fixer = new(FixerAmazonPrivateIP)
|
|
}
|
|
|
|
func TestFixerAmazonPrivateIP(t *testing.T) {
|
|
cases := []struct {
|
|
Input map[string]interface{}
|
|
Expected map[string]interface{}
|
|
}{
|
|
// Attach field == false
|
|
{
|
|
Input: map[string]interface{}{
|
|
"type": "amazon-ebs",
|
|
"ssh_private_ip": false,
|
|
},
|
|
|
|
Expected: map[string]interface{}{
|
|
"type": "amazon-ebs",
|
|
"ssh_interface": "public_ip",
|
|
},
|
|
},
|
|
|
|
// Attach field == true
|
|
{
|
|
Input: map[string]interface{}{
|
|
"type": "amazon-ebs",
|
|
"ssh_private_ip": true,
|
|
},
|
|
|
|
Expected: map[string]interface{}{
|
|
"type": "amazon-ebs",
|
|
"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 {
|
|
var f FixerAmazonPrivateIP
|
|
|
|
input := map[string]interface{}{
|
|
"builders": []map[string]interface{}{tc.Input},
|
|
}
|
|
|
|
expected := map[string]interface{}{
|
|
"builders": []map[string]interface{}{tc.Expected},
|
|
}
|
|
|
|
output, err := f.Fix(input)
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
if !reflect.DeepEqual(output, expected) {
|
|
t.Fatalf("unexpected: %#v\nexpected: %#v\n", output, expected)
|
|
}
|
|
}
|
|
}
|