From 3e92b1374efc0582f6bcd96e2701e1de434cad1e Mon Sep 17 00:00:00 2001 From: Rong Chen Date: Tue, 19 Dec 2017 10:34:12 -0800 Subject: [PATCH] issue5606: follow the convention to use AccessConfig to create new aws session for step_create_tags etc. --- builder/amazon/chroot/builder.go | 2 ++ builder/amazon/common/artifact.go | 10 +++------- builder/amazon/common/step_create_tags.go | 10 +++------- builder/amazon/ebs/builder.go | 2 ++ builder/amazon/ebssurrogate/builder.go | 2 ++ builder/amazon/instance/builder.go | 2 ++ post-processor/amazon-import/post-processor.go | 1 + 7 files changed, 15 insertions(+), 14 deletions(-) diff --git a/builder/amazon/chroot/builder.go b/builder/amazon/chroot/builder.go index 388061bee..9d3e8c63a 100644 --- a/builder/amazon/chroot/builder.go +++ b/builder/amazon/chroot/builder.go @@ -281,6 +281,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe Ctx: b.config.ctx, }, &awscommon.StepCreateTags{ + AccessConfig: &b.config.AccessConfig, Tags: b.config.AMITags, SnapshotTags: b.config.SnapshotTags, Ctx: b.config.ctx, @@ -303,6 +304,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe // Build the artifact and return it artifact := &awscommon.Artifact{ + AccessConfig: &b.config.AccessConfig, Amis: state.Get("amis").(map[string]string), BuilderIdValue: BuilderId, Conn: ec2conn, diff --git a/builder/amazon/common/artifact.go b/builder/amazon/common/artifact.go index dc50f7721..1c3817d6f 100644 --- a/builder/amazon/common/artifact.go +++ b/builder/amazon/common/artifact.go @@ -6,14 +6,14 @@ import ( "sort" "strings" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" "github.com/hashicorp/packer/packer" ) // Artifact is an artifact implementation that contains built AMIs. type Artifact struct { + AccessConfig *AccessConfig + // A map of regions to AMI IDs. Amis map[string]string @@ -69,11 +69,7 @@ func (a *Artifact) Destroy() error { for region, imageId := range a.Amis { log.Printf("Deregistering image ID (%s) from region (%s)", imageId, region) - regionConfig := &aws.Config{ - Credentials: a.Conn.Config.Credentials, - Region: aws.String(region), - } - session, err := session.NewSession(regionConfig) + session, err := a.AccessConfig.Session() if err != nil { return err } diff --git a/builder/amazon/common/step_create_tags.go b/builder/amazon/common/step_create_tags.go index 791227260..89a388205 100644 --- a/builder/amazon/common/step_create_tags.go +++ b/builder/amazon/common/step_create_tags.go @@ -5,7 +5,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" - "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" retry "github.com/hashicorp/packer/common" "github.com/hashicorp/packer/packer" @@ -14,6 +13,7 @@ import ( ) type StepCreateTags struct { + AccessConfig *AccessConfig Tags map[string]string SnapshotTags map[string]string Ctx interpolate.Context @@ -36,15 +36,11 @@ func (s *StepCreateTags) Run(state multistep.StateBag) multistep.StepAction { } // Adds tags to AMIs and snapshots - for region, ami := range amis { + for ami := range amis { ui.Say(fmt.Sprintf("Adding tags to AMI (%s)...", ami)) // Declare list of resources to tag - awsConfig := aws.Config{ - Credentials: ec2conn.Config.Credentials, - Region: aws.String(region), - } - session, err := session.NewSession(&awsConfig) + session, err := s.AccessConfig.Session() if err != nil { err := fmt.Errorf("Error creating AWS session: %s", err) state.Put("error", err) diff --git a/builder/amazon/ebs/builder.go b/builder/amazon/ebs/builder.go index 392162652..176c62d22 100644 --- a/builder/amazon/ebs/builder.go +++ b/builder/amazon/ebs/builder.go @@ -245,6 +245,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe Ctx: b.config.ctx, }, &awscommon.StepCreateTags{ + AccessConfig: &b.config.AccessConfig, Tags: b.config.AMITags, SnapshotTags: b.config.SnapshotTags, Ctx: b.config.ctx, @@ -267,6 +268,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe // Build the artifact and return it artifact := &awscommon.Artifact{ + AccessConfig: &b.config.AccessConfig, Amis: state.Get("amis").(map[string]string), BuilderIdValue: BuilderId, Conn: ec2conn, diff --git a/builder/amazon/ebssurrogate/builder.go b/builder/amazon/ebssurrogate/builder.go index 4831b8ba7..1ffbcd80f 100644 --- a/builder/amazon/ebssurrogate/builder.go +++ b/builder/amazon/ebssurrogate/builder.go @@ -263,6 +263,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe Ctx: b.config.ctx, }, &awscommon.StepCreateTags{ + AccessConfig: &b.config.AccessConfig, Tags: b.config.AMITags, SnapshotTags: b.config.SnapshotTags, Ctx: b.config.ctx, @@ -281,6 +282,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe if amis, ok := state.GetOk("amis"); ok { // Build the artifact and return it artifact := &awscommon.Artifact{ + AccessConfig: &b.config.AccessConfig, Amis: amis.(map[string]string), BuilderIdValue: BuilderId, Conn: ec2conn, diff --git a/builder/amazon/instance/builder.go b/builder/amazon/instance/builder.go index 59c329515..f80daa954 100644 --- a/builder/amazon/instance/builder.go +++ b/builder/amazon/instance/builder.go @@ -317,6 +317,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe Ctx: b.config.ctx, }, &awscommon.StepCreateTags{ + AccessConfig: &b.config.AccessConfig, Tags: b.config.AMITags, SnapshotTags: b.config.SnapshotTags, Ctx: b.config.ctx, @@ -339,6 +340,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe // Build the artifact and return it artifact := &awscommon.Artifact{ + AccessConfig: &b.config.AccessConfig, Amis: state.Get("amis").(map[string]string), BuilderIdValue: BuilderId, Conn: ec2conn, diff --git a/post-processor/amazon-import/post-processor.go b/post-processor/amazon-import/post-processor.go index c9cbd2077..982defe3f 100644 --- a/post-processor/amazon-import/post-processor.go +++ b/post-processor/amazon-import/post-processor.go @@ -365,6 +365,7 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, artifact packer.Artifact) (pac // Add the reported AMI ID to the artifact list log.Printf("Adding created AMI ID %s in region %s to output artifacts", createdami, *config.Region) artifact = &awscommon.Artifact{ + AccessConfig: &p.config.AccessConfig, Amis: map[string]string{ *config.Region: createdami, },