diff --git a/builtin/providers/aws/resource_aws_launch_configuration.go b/builtin/providers/aws/resource_aws_launch_configuration.go index a136f4ea3..87ee85f32 100644 --- a/builtin/providers/aws/resource_aws_launch_configuration.go +++ b/builtin/providers/aws/resource_aws_launch_configuration.go @@ -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