diff --git a/builder/amazon/common/step_pre_validate.go b/builder/amazon/common/step_pre_validate.go index ae0c6d41c..e11f122cc 100644 --- a/builder/amazon/common/step_pre_validate.go +++ b/builder/amazon/common/step_pre_validate.go @@ -121,8 +121,10 @@ func (s *StepPreValidate) Run(ctx context.Context, state multistep.StateBag) mul } func (s *StepPreValidate) checkVpc(conn ec2iface.EC2API) error { - if s.VpcId != "" && s.SubnetId != "" { - // skip validation if both VpcId and SubnetId are provided; AWS API will error if something is wrong. + if s.VpcId == "" || (s.VpcId != "" && s.SubnetId != "") { + // Skip validation if: + // * The user has not provided a VpcId. + // * Both VpcId and SubnetId are provided; AWS API will error if something is wrong. return nil } diff --git a/builder/amazon/common/step_pre_validate_test.go b/builder/amazon/common/step_pre_validate_test.go index 95448fc21..cb66b76e7 100644 --- a/builder/amazon/common/step_pre_validate_test.go +++ b/builder/amazon/common/step_pre_validate_test.go @@ -11,11 +11,8 @@ import ( //DescribeVpcs mocks an ec2.DescribeVpcsOutput for a given input func (m *mockEC2Conn) DescribeVpcs(input *ec2.DescribeVpcsInput) (*ec2.DescribeVpcsOutput, error) { - m.lock.Lock() - m.copyImageCount++ - m.lock.Unlock() - if input == nil || len(input.VpcIds) == 0 { + if input == nil || aws.StringValue(input.VpcIds[0]) == "" { return nil, fmt.Errorf("oops looks like we need more input") }