Skip to content

Commit

Permalink
provider/aws: allow local kinesis
Browse files Browse the repository at this point in the history
  • Loading branch information
Garrett Heel committed Oct 13, 2015
1 parent 95832c2 commit 9c2725e
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
17 changes: 9 additions & 8 deletions builtin/providers/aws/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ type Config struct {
ForbiddenAccountIds []interface{}

DynamoDBEndpoint string
KinesisEndpoint string
}

type AWSClient struct {
Expand Down Expand Up @@ -108,12 +109,6 @@ func (c *Config) Client() (interface{}, error) {
errs = append(errs, err)
}

awsDynamoDBConfig := &aws.Config{
Credentials: creds,
Region: aws.String(c.Region),
MaxRetries: aws.Int(c.MaxRetries),
Endpoint: aws.String(c.DynamoDBEndpoint),
}
// Some services exist only in us-east-1, e.g. because they manage
// resources that can span across multiple regions, or because
// signature format v4 requires region to be us-east-1 for global
Expand All @@ -125,8 +120,11 @@ func (c *Config) Client() (interface{}, error) {
MaxRetries: aws.Int(c.MaxRetries),
}

awsDynamoDBConfig := *awsConfig
awsDynamoDBConfig.Endpoint = aws.String(c.DynamoDBEndpoint)

log.Println("[INFO] Initializing DynamoDB connection")
client.dynamodbconn = dynamodb.New(awsDynamoDBConfig)
client.dynamodbconn = dynamodb.New(&awsDynamoDBConfig)

log.Println("[INFO] Initializing ELB connection")
client.elbconn = elb.New(awsConfig)
Expand All @@ -143,8 +141,11 @@ func (c *Config) Client() (interface{}, error) {
log.Println("[INFO] Initializing RDS Connection")
client.rdsconn = rds.New(awsConfig)

awsKinesisConfig := *awsConfig
awsKinesisConfig.Endpoint = aws.String(c.KinesisEndpoint)

log.Println("[INFO] Initializing Kinesis Connection")
client.kinesisconn = kinesis.New(awsConfig)
client.kinesisconn = kinesis.New(&awsKinesisConfig)

authErr := c.ValidateAccountId(client.iamconn)
if authErr != nil {
Expand Down
11 changes: 11 additions & 0 deletions builtin/providers/aws/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,13 @@ func Provider() terraform.ResourceProvider {
Default: "",
Description: descriptions["dynamodb_endpoint"],
},

"kinesis_endpoint": &schema.Schema{
Type: schema.TypeString,
Optional: true,
Default: "",
Description: descriptions["kinesis_endpoint"],
},
},

ResourcesMap: map[string]*schema.Resource{
Expand Down Expand Up @@ -279,6 +286,9 @@ func init() {

"dynamodb_endpoint": "Use this to override the default endpoint URL constructed from the `region`.\n" +
"It's typically used to connect to dynamodb-local.",

"kinesis_endpoint": "Use this to override the default endpoint URL constructed from the `region`.\n" +
"It's typically used to connect to kinesalite.",
}
}

Expand All @@ -290,6 +300,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
Region: d.Get("region").(string),
MaxRetries: d.Get("max_retries").(int),
DynamoDBEndpoint: d.Get("dynamodb_endpoint").(string),
KinesisEndpoint: d.Get("kinesis_endpoint").(string),
}

if v, ok := d.GetOk("allowed_account_ids"); ok {
Expand Down
2 changes: 2 additions & 0 deletions website/source/docs/providers/aws/index.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,7 @@ The following arguments are supported in the `provider` block:

* `dynamodb_endpoint` - (Optional) Use this to override the default endpoint URL constructed from the `region`. It's typically used to connect to dynamodb-local.

* `kinesis_endpoint` - (Optional) Use this to override the default endpoint URL constructed from the `region`. It's typically used to connect to kinesalite.

In addition to the above parameters, the `AWS_SESSION_TOKEN` environmental
variable can be set to set an MFA token.

0 comments on commit 9c2725e

Please sign in to comment.