provider/aws: Switch to session.Copy to build up configs

Found this function which makes the config setup much nicer - looks like
it's meant to be used for the very thing we're doing, which is starting
w/ a base config and customizing it slightly.

https://docs.aws.amazon.com/sdk-for-go/api/aws/session/Session.html#Copy-instance_method

This will make the User-Agent setting code to follow much simpler.
This commit is contained in:
Paul Hinze 2016-03-14 11:40:36 -05:00
parent fe415c2f09
commit 60b239d7d1

View File

@ -159,10 +159,7 @@ func (c *Config) Client() (interface{}, error) {
log.Println("[INFO] Initializing IAM Connection") log.Println("[INFO] Initializing IAM Connection")
sess := session.New(awsConfig) sess := session.New(awsConfig)
awsIamConfig := *awsConfig awsIamSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.IamEndpoint)})
awsIamConfig.Endpoint = aws.String(c.IamEndpoint)
awsIamSess := session.New(&awsIamConfig)
client.iamconn = iam.New(awsIamSess) client.iamconn = iam.New(awsIamSess)
err = c.ValidateCredentials(client.iamconn) err = c.ValidateCredentials(client.iamconn)
@ -175,27 +172,14 @@ func (c *Config) Client() (interface{}, error) {
// signature format v4 requires region to be us-east-1 for global // signature format v4 requires region to be us-east-1 for global
// endpoints: // endpoints:
// http://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html // http://docs.aws.amazon.com/general/latest/gr/sigv4_changes.html
usEast1AwsConfig := &aws.Config{ usEast1Sess := sess.Copy(&aws.Config{Region: aws.String("us-east-1")})
Credentials: creds,
Region: aws.String("us-east-1"),
MaxRetries: aws.Int(c.MaxRetries),
HTTPClient: cleanhttp.DefaultClient(),
}
usEast1Sess := session.New(usEast1AwsConfig)
awsDynamoDBConfig := *awsConfig
awsDynamoDBConfig.Endpoint = aws.String(c.DynamoDBEndpoint)
log.Println("[INFO] Initializing DynamoDB connection") log.Println("[INFO] Initializing DynamoDB connection")
dynamoSess := session.New(&awsDynamoDBConfig) dynamoSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.DynamoDBEndpoint)})
client.dynamodbconn = dynamodb.New(dynamoSess) client.dynamodbconn = dynamodb.New(dynamoSess)
log.Println("[INFO] Initializing ELB connection") log.Println("[INFO] Initializing ELB connection")
awsElbConfig := *awsConfig awsElbSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.ElbEndpoint)})
awsElbConfig.Endpoint = aws.String(c.ElbEndpoint)
awsElbSess := session.New(&awsElbConfig)
client.elbconn = elb.New(awsElbSess) client.elbconn = elb.New(awsElbSess)
log.Println("[INFO] Initializing S3 connection") log.Println("[INFO] Initializing S3 connection")
@ -210,11 +194,8 @@ func (c *Config) Client() (interface{}, error) {
log.Println("[INFO] Initializing RDS Connection") log.Println("[INFO] Initializing RDS Connection")
client.rdsconn = rds.New(sess) client.rdsconn = rds.New(sess)
awsKinesisConfig := *awsConfig
awsKinesisConfig.Endpoint = aws.String(c.KinesisEndpoint)
log.Println("[INFO] Initializing Kinesis Connection") log.Println("[INFO] Initializing Kinesis Connection")
kinesisSess := session.New(&awsKinesisConfig) kinesisSess := sess.Copy(&aws.Config{Endpoint: aws.String(c.KinesisEndpoint)})
client.kinesisconn = kinesis.New(kinesisSess) client.kinesisconn = kinesis.New(kinesisSess)
log.Println("[INFO] Initializing Elastic Beanstalk Connection") log.Println("[INFO] Initializing Elastic Beanstalk Connection")
@ -233,10 +214,7 @@ func (c *Config) Client() (interface{}, error) {
log.Println("[INFO] Initializing EC2 Connection") log.Println("[INFO] Initializing EC2 Connection")
awsEc2Config := *awsConfig awsEc2Sess := sess.Copy(&aws.Config{Endpoint: aws.String(c.Ec2Endpoint)})
awsEc2Config.Endpoint = aws.String(c.Ec2Endpoint)
awsEc2Sess := session.New(&awsEc2Config)
client.ec2conn = ec2.New(awsEc2Sess) client.ec2conn = ec2.New(awsEc2Sess)
log.Println("[INFO] Initializing ECR Connection") log.Println("[INFO] Initializing ECR Connection")