From 48bdae93d102d789d7fa7d287626de756c45d9a5 Mon Sep 17 00:00:00 2001 From: Matthew Hooker Date: Tue, 1 Nov 2016 15:53:04 -0700 Subject: [PATCH] aws-sdk: use session.NewSession --- builder/amazon/chroot/builder.go | 5 ++++- builder/amazon/common/access_config.go | 7 +++++-- builder/amazon/common/artifact.go | 7 +++++-- builder/amazon/common/cli_config.go | 6 +++++- builder/amazon/common/step_ami_region_copy.go | 7 +++++-- builder/amazon/common/step_create_tags.go | 8 +++++++- builder/amazon/common/step_modify_ami_attributes.go | 8 +++++++- builder/amazon/ebs/builder.go | 5 ++++- builder/amazon/ebs/builder_acc_test.go | 5 ++++- builder/amazon/instance/builder.go | 5 ++++- builder/docker/ecr_login.go | 7 +++++-- post-processor/amazon-import/post-processor.go | 5 ++++- 12 files changed, 59 insertions(+), 16 deletions(-) diff --git a/builder/amazon/chroot/builder.go b/builder/amazon/chroot/builder.go index 45f74a69a..52aee12d9 100644 --- a/builder/amazon/chroot/builder.go +++ b/builder/amazon/chroot/builder.go @@ -180,7 +180,10 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe return nil, err } - session := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } ec2conn := ec2.New(session) wrappedCommand := func(command string) (string, error) { diff --git a/builder/amazon/common/access_config.go b/builder/amazon/common/access_config.go index 7c2bc9304..3d1c73a6f 100644 --- a/builder/amazon/common/access_config.go +++ b/builder/amazon/common/access_config.go @@ -45,7 +45,10 @@ func (c *AccessConfig) Config() (*aws.Config, error) { return nil, err } } else { - sess := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } creds = credentials.NewChainCredentials([]credentials.Provider{ &credentials.StaticProvider{Value: credentials.Value{ AccessKeyID: c.AccessKey, @@ -55,7 +58,7 @@ func (c *AccessConfig) Config() (*aws.Config, error) { &credentials.EnvProvider{}, &credentials.SharedCredentialsProvider{Filename: "", Profile: ""}, &ec2rolecreds.EC2RoleProvider{ - Client: ec2metadata.New(sess), + Client: ec2metadata.New(session), }, }) } diff --git a/builder/amazon/common/artifact.go b/builder/amazon/common/artifact.go index 76f4e03e0..bee5fe604 100644 --- a/builder/amazon/common/artifact.go +++ b/builder/amazon/common/artifact.go @@ -73,8 +73,11 @@ func (a *Artifact) Destroy() error { Credentials: a.Conn.Config.Credentials, Region: aws.String(region), } - sess := session.New(regionConfig) - regionConn := ec2.New(sess) + session, err := session.NewSession(regionConfig) + if err != nil { + return err + } + regionConn := ec2.New(session) input := &ec2.DeregisterImageInput{ ImageId: &imageId, diff --git a/builder/amazon/common/cli_config.go b/builder/amazon/common/cli_config.go index 88b7a4afd..fc4d36fd7 100644 --- a/builder/amazon/common/cli_config.go +++ b/builder/amazon/common/cli_config.go @@ -61,7 +61,11 @@ func (c *CLIConfig) CredentialsFromProfile(conf *aws.Config) (*credentials.Crede return c.SourceCredentials, nil } srcCfg := aws.NewConfig().Copy(conf).WithCredentials(c.SourceCredentials) - svc := sts.New(session.New(), srcCfg) + session, err := session.NewSession(srcCfg) + if err != nil { + return nil, err + } + svc := sts.New(session) res, err := svc.AssumeRole(c.AssumeRoleInput) if err != nil { return nil, err diff --git a/builder/amazon/common/step_ami_region_copy.go b/builder/amazon/common/step_ami_region_copy.go index fa955ac7b..108a758c2 100644 --- a/builder/amazon/common/step_ami_region_copy.go +++ b/builder/amazon/common/step_ami_region_copy.go @@ -88,8 +88,11 @@ func amiRegionCopy(state multistep.StateBag, config *AccessConfig, name string, } awsConfig.Region = aws.String(target) - sess := session.New(awsConfig) - regionconn := ec2.New(sess) + session, err := session.NewSession(awsConfig) + if err != nil { + return "", err + } + regionconn := ec2.New(session) resp, err := regionconn.CopyImage(&ec2.CopyImageInput{ SourceRegion: &source, diff --git a/builder/amazon/common/step_create_tags.go b/builder/amazon/common/step_create_tags.go index 0eb98d9a0..8764968d7 100644 --- a/builder/amazon/common/step_create_tags.go +++ b/builder/amazon/common/step_create_tags.go @@ -40,7 +40,13 @@ func (s *StepCreateTags) Run(state multistep.StateBag) multistep.StepAction { Credentials: ec2conn.Config.Credentials, Region: aws.String(region), } - session := session.New(&awsConfig) + session, err := session.NewSession(&awsConfig) + if err != nil { + err := fmt.Errorf("Error creating AWS session: %s", err) + state.Put("error", err) + ui.Error(err.Error()) + return multistep.ActionHalt + } regionconn := ec2.New(session) diff --git a/builder/amazon/common/step_modify_ami_attributes.go b/builder/amazon/common/step_modify_ami_attributes.go index 31d60a392..3763561f6 100644 --- a/builder/amazon/common/step_modify_ami_attributes.go +++ b/builder/amazon/common/step_modify_ami_attributes.go @@ -93,7 +93,13 @@ func (s *StepModifyAMIAttributes) Run(state multistep.StateBag) multistep.StepAc Credentials: ec2conn.Config.Credentials, Region: aws.String(region), } - session := session.New(&awsConfig) + session, err := session.NewSession(&awsConfig) + if err != nil { + err := fmt.Errorf("Error creating AWS session: %s", err) + state.Put("error", err) + ui.Error(err.Error()) + return multistep.ActionHalt + } regionconn := ec2.New(session) for name, input := range options { ui.Message(fmt.Sprintf("Modifying: %s", name)) diff --git a/builder/amazon/ebs/builder.go b/builder/amazon/ebs/builder.go index b98cf19fa..d366a9bd2 100644 --- a/builder/amazon/ebs/builder.go +++ b/builder/amazon/ebs/builder.go @@ -70,7 +70,10 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe return nil, err } - session := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } ec2conn := ec2.New(session) // If the subnet is specified but not the AZ, try to determine the AZ automatically diff --git a/builder/amazon/ebs/builder_acc_test.go b/builder/amazon/ebs/builder_acc_test.go index 44a1a5185..e6ac29c3c 100644 --- a/builder/amazon/ebs/builder_acc_test.go +++ b/builder/amazon/ebs/builder_acc_test.go @@ -206,7 +206,10 @@ func testEC2Conn() (*ec2.EC2, error) { return nil, err } - session := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } return ec2.New(session), nil } diff --git a/builder/amazon/instance/builder.go b/builder/amazon/instance/builder.go index 5672f6dc7..e4f20f0df 100644 --- a/builder/amazon/instance/builder.go +++ b/builder/amazon/instance/builder.go @@ -160,7 +160,10 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe return nil, err } - session := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } ec2conn := ec2.New(session) // If the subnet is specified but not the AZ, try to determine the AZ automatically diff --git a/builder/docker/ecr_login.go b/builder/docker/ecr_login.go index 6b0b5c1a3..1ee984763 100644 --- a/builder/docker/ecr_login.go +++ b/builder/docker/ecr_login.go @@ -27,7 +27,10 @@ func (c *AwsAccessConfig) config(region string) (*aws.Config, error) { var creds *credentials.Credentials config := aws.NewConfig().WithRegion(region).WithMaxRetries(11) - sess := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, err + } creds = credentials.NewChainCredentials([]credentials.Provider{ &credentials.StaticProvider{Value: credentials.Value{ AccessKeyID: c.AccessKey, @@ -37,7 +40,7 @@ func (c *AwsAccessConfig) config(region string) (*aws.Config, error) { &credentials.EnvProvider{}, &credentials.SharedCredentialsProvider{Filename: "", Profile: ""}, &ec2rolecreds.EC2RoleProvider{ - Client: ec2metadata.New(sess), + Client: ec2metadata.New(session), }, }) return config.WithCredentials(creds), nil diff --git a/post-processor/amazon-import/post-processor.go b/post-processor/amazon-import/post-processor.go index a1e57d79d..2d8d77c12 100644 --- a/post-processor/amazon-import/post-processor.go +++ b/post-processor/amazon-import/post-processor.go @@ -124,7 +124,10 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifact) (pac // Set up the AWS session log.Println("Creating AWS session") - session := session.New(config) + session, err := session.NewSession(config) + if err != nil { + return nil, false, err + } // open the source file log.Printf("Opening file %s to upload", source)