|
|
|
|
@ -62,11 +62,16 @@ func InstanceStateRefreshFunc(conn *ec2.EC2, i *ec2.Instance) StateRefreshFunc {
|
|
|
|
|
return func() (interface{}, string, error) {
|
|
|
|
|
resp, err := conn.Instances([]string{i.InstanceId}, ec2.NewFilter())
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Printf("Error on InstanceStateRefresh: %s", err)
|
|
|
|
|
return nil, "", err
|
|
|
|
|
if ec2err, ok := err.(*ec2.Error); ok && ec2err.Code == "InvalidInstanceID.NotFound" {
|
|
|
|
|
// Set this to nil as if we didn't find anything.
|
|
|
|
|
resp = nil
|
|
|
|
|
} else {
|
|
|
|
|
log.Printf("Error on InstanceStateRefresh: %s", err)
|
|
|
|
|
return nil, "", err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(resp.Reservations) == 0 || len(resp.Reservations[0].Instances) == 0 {
|
|
|
|
|
if resp == nil || len(resp.Reservations) == 0 || len(resp.Reservations[0].Instances) == 0 {
|
|
|
|
|
// Sometimes AWS just has consistency issues and doesn't see
|
|
|
|
|
// our instance yet. Return an empty state.
|
|
|
|
|
return nil, "", nil
|
|
|
|
|
|