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