From 23f62f221e6ed929f5b640d5ab83cb0e7045095b Mon Sep 17 00:00:00 2001 From: Rickard von Essen Date: Fri, 24 Aug 2018 19:47:11 +0200 Subject: [PATCH] Only filter SG's on VPC if it's set. Only use VPC's and Subnets that are available --- builder/amazon/common/step_network_info.go | 2 ++ builder/amazon/common/step_security_group.go | 10 +++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/builder/amazon/common/step_network_info.go b/builder/amazon/common/step_network_info.go index 7fc026335..27cd99d73 100644 --- a/builder/amazon/common/step_network_info.go +++ b/builder/amazon/common/step_network_info.go @@ -53,6 +53,7 @@ func (s *StepNetworkInfo) Run(_ context.Context, state multistep.StateBag) multi if s.VpcId == "" && !s.VpcFilter.Empty() { params := &ec2.DescribeVpcsInput{} params.Filters = buildEc2Filters(s.VpcFilter.Filters) + s.VpcFilter.Filters[aws.String("state")] = aws.String("available") log.Printf("Using VPC Filters %v", params) @@ -78,6 +79,7 @@ func (s *StepNetworkInfo) Run(_ context.Context, state multistep.StateBag) multi // Subnet if s.SubnetId == "" && !s.SubnetFilter.Empty() { params := &ec2.DescribeSubnetsInput{} + s.SubnetFilter.Filters[aws.String("state")] = aws.String("available") if s.VpcId != "" { s.SubnetFilter.Filters[aws.String("vpc-id")] = &s.VpcId diff --git a/builder/amazon/common/step_security_group.go b/builder/amazon/common/step_security_group.go index 4f8788222..6c358b9a9 100644 --- a/builder/amazon/common/step_security_group.go +++ b/builder/amazon/common/step_security_group.go @@ -50,14 +50,10 @@ func (s *StepSecurityGroup) Run(_ context.Context, state multistep.StateBag) mul if !s.SecurityGroupFilter.Empty() { params := &ec2.DescribeSecurityGroupsInput{} - params.Filters = buildEc2Filters(s.SecurityGroupFilter.Filters) - vpcFilter := ec2.Filter{ - Name: aws.String("vpc-id"), - Values: []*string{ - aws.String(vpcId), - }, + if vpcId != "" { + s.SecurityGroupFilter.Filters[aws.String("vpc-id")] = &vpcId } - params.Filters = append(params.Filters, &vpcFilter) + params.Filters = buildEc2Filters(s.SecurityGroupFilter.Filters) log.Printf("Using SecurityGroup Filters %v", params)