Skip to content

Commit

Permalink
Merge pull request #4579 from terraform-providers/b-aws_cloudwatch_ev…
Browse files Browse the repository at this point in the history
…ent_rule-prevent-double-events

resource/aws_cloudwatch_event_rule: Prevent multiple names on creation
  • Loading branch information
bflad authored May 23, 2018
2 parents 85598ef + 74f99f2 commit 38abf74
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions aws/resource_aws_cloudwatch_event_rule.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,16 @@ func resourceAwsCloudWatchEventRule() *schema.Resource {
func resourceAwsCloudWatchEventRuleCreate(d *schema.ResourceData, meta interface{}) error {
conn := meta.(*AWSClient).cloudwatcheventsconn

input, err := buildPutRuleInputStruct(d)
var name string
if v, ok := d.GetOk("name"); ok {
name = v.(string)
} else if v, ok := d.GetOk("name_prefix"); ok {
name = resource.PrefixedUniqueId(v.(string))
} else {
name = resource.UniqueId()
}

input, err := buildPutRuleInputStruct(d, name)
if err != nil {
return errwrap.Wrapf("Creating CloudWatch Event Rule failed: {{err}}", err)
}
Expand Down Expand Up @@ -172,7 +181,7 @@ func resourceAwsCloudWatchEventRuleUpdate(d *schema.ResourceData, meta interface
log.Printf("[DEBUG] CloudWatch Event Rule (%q) enabled", d.Id())
}

input, err := buildPutRuleInputStruct(d)
input, err := buildPutRuleInputStruct(d, d.Id())
if err != nil {
return errwrap.Wrapf("Updating CloudWatch Event Rule failed: {{err}}", err)
}
Expand Down Expand Up @@ -226,16 +235,7 @@ func resourceAwsCloudWatchEventRuleDelete(d *schema.ResourceData, meta interface
return nil
}

func buildPutRuleInputStruct(d *schema.ResourceData) (*events.PutRuleInput, error) {
var name string
if v, ok := d.GetOk("name"); ok {
name = v.(string)
} else if v, ok := d.GetOk("name_prefix"); ok {
name = resource.PrefixedUniqueId(v.(string))
} else {
name = resource.UniqueId()
}

func buildPutRuleInputStruct(d *schema.ResourceData, name string) (*events.PutRuleInput, error) {
input := events.PutRuleInput{
Name: aws.String(name),
}
Expand Down

0 comments on commit 38abf74

Please sign in to comment.