providers/aws: set ID after creation

This commit is contained in:
Mitchell Hashimoto 2015-04-13 17:03:13 -07:00
parent 0bd7856942
commit f7a2f2a2e7
1 changed files with 9 additions and 6 deletions

View File

@ -364,23 +364,26 @@ func resourceAwsLaunchConfigurationCreate(d *schema.ResourceData, meta interface
createLaunchConfigurationOpts.BlockDeviceMappings = blockDevices
}
var id string
if v, ok := d.GetOk("name"); ok {
createLaunchConfigurationOpts.LaunchConfigurationName = aws.String(v.(string))
d.SetId(d.Get("name").(string))
id = v.(string)
} else {
hash := sha1.Sum([]byte(fmt.Sprintf("%#v", createLaunchConfigurationOpts)))
config_name := fmt.Sprintf("terraform-%s", base64.URLEncoding.EncodeToString(hash[:]))
log.Printf("[DEBUG] Computed Launch config name: %s", config_name)
createLaunchConfigurationOpts.LaunchConfigurationName = aws.String(config_name)
d.SetId(config_name)
configName := fmt.Sprintf("terraform-%s", base64.URLEncoding.EncodeToString(hash[:]))
log.Printf("[DEBUG] Computed Launch config name: %s", configName)
createLaunchConfigurationOpts.LaunchConfigurationName = aws.String(configName)
id = configName
}
log.Printf("[DEBUG] autoscaling create launch configuration: %#v", createLaunchConfigurationOpts)
log.Printf(
"[DEBUG] autoscaling create launch configuration: %#v", createLaunchConfigurationOpts)
err := autoscalingconn.CreateLaunchConfiguration(&createLaunchConfigurationOpts)
if err != nil {
return fmt.Errorf("Error creating launch configuration: %s", err)
}
d.SetId(id)
log.Printf("[INFO] launch configuration ID: %s", d.Id())
// We put a Retry here since sometimes eventual consistency bites