diff --git a/builder/amazonebs/step_run_source_instance.go b/builder/amazonebs/step_run_source_instance.go index d7531668e..90e28e142 100644 --- a/builder/amazonebs/step_run_source_instance.go +++ b/builder/amazonebs/step_run_source_instance.go @@ -65,5 +65,9 @@ func (s *stepRunSourceInstance) Cleanup(state map[string]interface{}) { ui.Say("Terminating the source AWS instance...") if _, err := ec2conn.TerminateInstances([]string{s.instance.InstanceId}); err != nil { ui.Error(fmt.Sprintf("Error terminating instance, may still be around: %s", err)) + return } + + pending := []string{"pending", "running", "shutting-down", "stopped", "stopping"} + waitForState(ec2conn, s.instance, pending, "terminated") } diff --git a/builder/amazonebs/step_security_group.go b/builder/amazonebs/step_security_group.go index ce6ee6fd1..65c71cd7b 100644 --- a/builder/amazonebs/step_security_group.go +++ b/builder/amazonebs/step_security_group.go @@ -67,6 +67,7 @@ func (s *stepSecurityGroup) Cleanup(state map[string]interface{}) { ui.Say("Deleting temporary security group...") _, err := ec2conn.DeleteSecurityGroup(ec2.SecurityGroup{Id: s.groupId}) if err != nil { + log.Printf("Error deleting security group: %s", err) ui.Error(fmt.Sprintf( "Error cleaning up security group. Please delete the group manually: %s", s.groupId)) }