From e5e2bfa83f82c26d249bade7da24bdf394a92d07 Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:09:32 -0700 Subject: [PATCH 1/6] builder/amazon/common: remove nil check on slice, len() on nil slices is zero --- builder/amazon/common/ami_config_test.go | 1 - builder/amazon/common/errors.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/builder/amazon/common/ami_config_test.go b/builder/amazon/common/ami_config_test.go index 8430c964c..2448965db 100644 --- a/builder/amazon/common/ami_config_test.go +++ b/builder/amazon/common/ami_config_test.go @@ -69,7 +69,6 @@ func TestAMIConfigPrepare_regions(t *testing.T) { if errs = c.prepareRegions(accessConf); len(errs) > 0 { t.Fatalf("shouldn't have err: %#v", errs) } - errs = errs[:0] c.AMIRegions = []string{"us-east-1", "us-west-1", "us-east-1"} if errs = c.prepareRegions(accessConf); len(errs) > 0 { diff --git a/builder/amazon/common/errors.go b/builder/amazon/common/errors.go index f12f58e7d..bca247bfa 100644 --- a/builder/amazon/common/errors.go +++ b/builder/amazon/common/errors.go @@ -24,7 +24,7 @@ type stsDecoder interface { func decodeAWSError(decoder stsDecoder, err error) error { groups := encodedFailureMessagePattern.FindStringSubmatch(err.Error()) - if groups != nil && len(groups) > 1 { + if len(groups) > 1 { result, decodeErr := decoder.DecodeAuthorizationMessage(&sts.DecodeAuthorizationMessageInput{ EncodedMessage: aws.String(groups[2]), }) From c74df8b6529c8c9e3b49f3c935bd08f8ae622a2e Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:15:53 -0700 Subject: [PATCH 2/6] builder/amazon/common: remove dead test function getMockConnSpot() --- builder/amazon/common/step_run_spot_instance_test.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/builder/amazon/common/step_run_spot_instance_test.go b/builder/amazon/common/step_run_spot_instance_test.go index e39e05db9..7036e45c9 100644 --- a/builder/amazon/common/step_run_spot_instance_test.go +++ b/builder/amazon/common/step_run_spot_instance_test.go @@ -57,14 +57,6 @@ func (m *mockEC2ConnSpot) DescribeSpotPriceHistory(copyInput *ec2.DescribeSpotPr } -func getMockConnSpot() ec2iface.EC2API { - mockConn := &mockEC2ConnSpot{ - Config: aws.NewConfig(), - } - - return mockConn -} - // Create statebag for running test func tStateSpot() multistep.StateBag { state := new(multistep.BasicStateBag) From 0a13b620d6b48683a571f294ed6e9f607868edf3 Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:19:28 -0700 Subject: [PATCH 3/6] builder/amazon/common: remove dead test function StepModifyEBSBackedInstance_EnableAMIENASupport() --- .../common/step_modify_ebs_instance_test.go | 62 ------------------- 1 file changed, 62 deletions(-) diff --git a/builder/amazon/common/step_modify_ebs_instance_test.go b/builder/amazon/common/step_modify_ebs_instance_test.go index cb8a4b020..fea4bc2d6 100644 --- a/builder/amazon/common/step_modify_ebs_instance_test.go +++ b/builder/amazon/common/step_modify_ebs_instance_test.go @@ -2,14 +2,11 @@ package common import ( "bytes" - "context" "fmt" - "testing" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/aws-sdk-go/service/ec2/ec2iface" - helperconfig "github.com/hashicorp/packer/helper/config" "github.com/hashicorp/packer/helper/multistep" "github.com/hashicorp/packer/packer" ) @@ -44,62 +41,3 @@ func fakeModifyEBSBackedInstanceState() multistep.StateBag { state.Put("instance", "i-12345") return state } - -func StepModifyEBSBackedInstance_EnableAMIENASupport(t *testing.T) { - // Value is unset, so we shouldn't modify - stepModifyEBSBackedInstance := StepModifyEBSBackedInstance{ - EnableAMIENASupport: helperconfig.TriUnset, - EnableAMISriovNetSupport: false, - } - - // mock out the region connection code - mockConn := &mockEC2Conn_ModifyEBS{ - Config: aws.NewConfig(), - } - - state := fakeModifyEBSBackedInstanceState() - state.Put("ec2", mockConn) - stepModifyEBSBackedInstance.Run(context.Background(), state) - - if mockConn.modifyImageAttrCount > 0 { - t.Fatalf("Should not have modified image since EnableAMIENASupport is unset") - } - - // Value is true, so we should modify - stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{ - EnableAMIENASupport: helperconfig.TriTrue, - EnableAMISriovNetSupport: false, - } - - // mock out the region connection code - mockConn = &mockEC2Conn_ModifyEBS{ - Config: aws.NewConfig(), - } - - state = fakeModifyEBSBackedInstanceState() - state.Put("ec2", mockConn) - stepModifyEBSBackedInstance.Run(context.Background(), state) - - if mockConn.modifyImageAttrCount != 1 { - t.Fatalf("Should have modified image, since EnableAMIENASupport is true") - } - - // Value is false, so we should modify - stepModifyEBSBackedInstance = StepModifyEBSBackedInstance{ - EnableAMIENASupport: helperconfig.TriFalse, - EnableAMISriovNetSupport: false, - } - - // mock out the region connection code - mockConn = &mockEC2Conn_ModifyEBS{ - Config: aws.NewConfig(), - } - - state = fakeModifyEBSBackedInstanceState() - state.Put("ec2", mockConn) - stepModifyEBSBackedInstance.Run(context.Background(), state) - - if mockConn.modifyImageAttrCount != 1 { - t.Fatalf("Should have modified image, since EnableAMIENASupport is true") - } -} From 7a09f9c678de2e8424dfd5e698843c2c99087a8a Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:22:10 -0700 Subject: [PATCH 4/6] builder/amazon/common: remove dead test function fakeModifyEBSBackedInstanceState() --- .../amazon/common/step_modify_ebs_instance_test.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/builder/amazon/common/step_modify_ebs_instance_test.go b/builder/amazon/common/step_modify_ebs_instance_test.go index fea4bc2d6..c3142b057 100644 --- a/builder/amazon/common/step_modify_ebs_instance_test.go +++ b/builder/amazon/common/step_modify_ebs_instance_test.go @@ -1,14 +1,11 @@ package common import ( - "bytes" "fmt" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/aws-sdk-go/service/ec2/ec2iface" - "github.com/hashicorp/packer/helper/multistep" - "github.com/hashicorp/packer/packer" ) // Define a mock struct to be used in unit tests for common aws steps. @@ -30,14 +27,3 @@ func (m *mockEC2Conn_ModifyEBS) ModifyInstanceAttribute(modifyInput *ec2.ModifyI } return output, nil } - -// Create statebag for running test -func fakeModifyEBSBackedInstanceState() multistep.StateBag { - state := new(multistep.BasicStateBag) - state.Put("ui", &packer.BasicUi{ - Reader: new(bytes.Buffer), - Writer: new(bytes.Buffer), - }) - state.Put("instance", "i-12345") - return state -} From 953be1603b725ed9c04f9a849c6094cb4286add2 Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:34:11 -0700 Subject: [PATCH 5/6] builder/amazon/common: remove dead test type and function mockEC2ConnSpot.DescribeSpotPriceHistory() --- .../common/step_run_spot_instance_test.go | 45 ------------------- 1 file changed, 45 deletions(-) diff --git a/builder/amazon/common/step_run_spot_instance_test.go b/builder/amazon/common/step_run_spot_instance_test.go index 7036e45c9..3122ef9d9 100644 --- a/builder/amazon/common/step_run_spot_instance_test.go +++ b/builder/amazon/common/step_run_spot_instance_test.go @@ -4,59 +4,14 @@ import ( "bytes" "fmt" "testing" - "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go/service/ec2/ec2iface" "github.com/hashicorp/packer/helper/communicator" "github.com/hashicorp/packer/helper/multistep" "github.com/hashicorp/packer/packer" ) -// Define a mock struct to be used in unit tests for common aws steps. -type mockEC2ConnSpot struct { - ec2iface.EC2API - Config *aws.Config - - // Counters to figure out what code path was taken - describeSpotPriceHistoryCount int -} - -// Generates fake SpotPriceHistory data and returns it in the expected output -// format. Also increments a -func (m *mockEC2ConnSpot) DescribeSpotPriceHistory(copyInput *ec2.DescribeSpotPriceHistoryInput) (*ec2.DescribeSpotPriceHistoryOutput, error) { - m.describeSpotPriceHistoryCount++ - testTime := time.Now().Add(-1 * time.Hour) - sp := []*ec2.SpotPrice{ - { - AvailabilityZone: aws.String("us-east-1c"), - InstanceType: aws.String("t2.micro"), - ProductDescription: aws.String("Linux/UNIX"), - SpotPrice: aws.String("0.003500"), - Timestamp: &testTime, - }, - { - AvailabilityZone: aws.String("us-east-1f"), - InstanceType: aws.String("t2.micro"), - ProductDescription: aws.String("Linux/UNIX"), - SpotPrice: aws.String("0.003500"), - Timestamp: &testTime, - }, - { - AvailabilityZone: aws.String("us-east-1b"), - InstanceType: aws.String("t2.micro"), - ProductDescription: aws.String("Linux/UNIX"), - SpotPrice: aws.String("0.003500"), - Timestamp: &testTime, - }, - } - output := &ec2.DescribeSpotPriceHistoryOutput{SpotPriceHistory: sp} - - return output, nil - -} - // Create statebag for running test func tStateSpot() multistep.StateBag { state := new(multistep.BasicStateBag) From d07207989989c204bb8cee2687a7c37fa2909f79 Mon Sep 17 00:00:00 2001 From: Lars Lehtonen Date: Thu, 31 Oct 2019 12:38:32 -0700 Subject: [PATCH 6/6] builder/amazon/common: remove dead test type and function mockEC2Conn_Modify_EBS.ModifyInstanceAttribute() --- .../common/step_modify_ebs_instance_test.go | 29 ------------------- 1 file changed, 29 deletions(-) delete mode 100644 builder/amazon/common/step_modify_ebs_instance_test.go diff --git a/builder/amazon/common/step_modify_ebs_instance_test.go b/builder/amazon/common/step_modify_ebs_instance_test.go deleted file mode 100644 index c3142b057..000000000 --- a/builder/amazon/common/step_modify_ebs_instance_test.go +++ /dev/null @@ -1,29 +0,0 @@ -package common - -import ( - "fmt" - - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go/service/ec2/ec2iface" -) - -// Define a mock struct to be used in unit tests for common aws steps. -type mockEC2Conn_ModifyEBS struct { - ec2iface.EC2API - Config *aws.Config - - // Counters to figure out what code path was taken - shouldError bool - modifyImageAttrCount int -} - -func (m *mockEC2Conn_ModifyEBS) ModifyInstanceAttribute(modifyInput *ec2.ModifyInstanceAttributeInput) (*ec2.ModifyInstanceAttributeOutput, error) { - m.modifyImageAttrCount++ - // don't need to define output since we always discard it anyway. - output := &ec2.ModifyInstanceAttributeOutput{} - if m.shouldError { - return output, fmt.Errorf("fake ModifyInstanceAttribute error") - } - return output, nil -}