cloud_DeleteInstances() now waits for the instances to be terminated
This commit is contained in:
		@@ -59,7 +59,7 @@ __cloud_FindInstances() {
 | 
				
			|||||||
               "Name=tag:name,Values=$filter" \
 | 
					               "Name=tag:name,Values=$filter" \
 | 
				
			||||||
               "Name=instance-state-name,Values=pending,running" \
 | 
					               "Name=instance-state-name,Values=pending,running" \
 | 
				
			||||||
             --query "Reservations[].Instances[].[InstanceId,PublicIpAddress,PrivateIpAddress]" \
 | 
					             --query "Reservations[].Instances[].[InstanceId,PublicIpAddress,PrivateIpAddress]" \
 | 
				
			||||||
             --output text
 | 
					             --output text \
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -223,11 +223,32 @@ cloud_DeleteInstances() {
 | 
				
			|||||||
    echo No instances to delete
 | 
					    echo No instances to delete
 | 
				
			||||||
    return
 | 
					    return
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  declare names=("${instances[@]/:*/}")
 | 
					  declare names=("${instances[@]/:*/}")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  (
 | 
					  (
 | 
				
			||||||
    set -x
 | 
					    set -x
 | 
				
			||||||
    aws ec2 terminate-instances --region "$region" --instance-ids "${names[@]}"
 | 
					    aws ec2 terminate-instances --region "$region" --instance-ids "${names[@]}"
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Wait until the instances are terminated
 | 
				
			||||||
 | 
					  for name in "${names[@]}"; do
 | 
				
			||||||
 | 
					    while true; do
 | 
				
			||||||
 | 
					      declare instanceState
 | 
				
			||||||
 | 
					      instanceState=$(\
 | 
				
			||||||
 | 
					        aws ec2 describe-instances \
 | 
				
			||||||
 | 
					          --region "$region" \
 | 
				
			||||||
 | 
					          --instance-ids "$name" \
 | 
				
			||||||
 | 
					          --query "Reservations[].Instances[].State.Name" \
 | 
				
			||||||
 | 
					          --output text \
 | 
				
			||||||
 | 
					      )
 | 
				
			||||||
 | 
					      echo "$name: $instanceState"
 | 
				
			||||||
 | 
					      if [[ $instanceState = terminated ]]; then
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      fi
 | 
				
			||||||
 | 
					      sleep 2
 | 
				
			||||||
 | 
					    done
 | 
				
			||||||
 | 
					  done
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user