Correctly terminate instances across multiple zones

This commit is contained in:
Michael Vines 2019-04-28 09:09:02 -07:00
parent 0b7269b64e
commit 6f56501034
No known key found for this signature in database
GPG Key ID: 33F4FDEC4E0E88BD
1 changed files with 16 additions and 10 deletions

View File

@ -310,18 +310,24 @@ cloud_DeleteInstances() {
return
fi
declare names=("${instances[@]/:*/}")
declare zones=("${instances[@]/*:/}")
declare region=
region=$(__cloud_GetRegion "${zones[0]}")
(
set -x
aws ec2 terminate-instances --region "$region" --instance-ids "${names[@]}"
)
# Terminate the instances
for instance in "${instances[@]}"; do
declare name="${instance/:*/}"
declare zone="${instance/*:/}"
declare region=
region=$(__cloud_GetRegion "$zone")
(
set -x
aws ec2 terminate-instances --region "$region" --instance-ids "$name"
)
done
# Wait until the instances are terminated
for name in "${names[@]}"; do
for instance in "${instances[@]}"; do
declare name="${instance/:*/}"
declare zone="${instance/*:/}"
declare region=
region=$(__cloud_GetRegion "$zone")
while true; do
declare instanceState
instanceState=$(\