From a3ceb25dd700f8bf72f36250b55d6d75f27a2c19 Mon Sep 17 00:00:00 2001 From: Jonathan McCall Date: Fri, 23 Sep 2016 16:21:19 -0400 Subject: [PATCH] Skip DetachVolume if volume is not attached --- .../aws/resource_aws_volume_attachment.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/builtin/providers/aws/resource_aws_volume_attachment.go b/builtin/providers/aws/resource_aws_volume_attachment.go index 74566700d2..801f06190f 100644 --- a/builtin/providers/aws/resource_aws_volume_attachment.go +++ b/builtin/providers/aws/resource_aws_volume_attachment.go @@ -153,6 +153,20 @@ func resourceAwsVolumeAttachmentDelete(d *schema.ResourceData, meta interface{}) vID := d.Get("volume_id").(string) iID := d.Get("instance_id").(string) + desc_opts := &ec2.DescribeVolumesInput{ + VolumeIds: []*string{aws.String(vID)}, + } + + attr, desc_err := conn.DescribeVolumes(desc_opts) + if desc_err != nil { + return fmt.Errorf("Error reading EC2 volume %s: %s", vID, desc_err) + } + + if *attr.Volumes[0].State == "available" { + d.SetId("") + return nil + } + opts := &ec2.DetachVolumeInput{ Device: aws.String(d.Get("device_name").(string)), InstanceId: aws.String(iID),