From 09e4f7e49c435e7911b70eaa3327ef495e2c391a Mon Sep 17 00:00:00 2001 From: Michael Vines Date: Sun, 28 Apr 2019 09:09:02 -0700 Subject: [PATCH] Correctly terminate instances across multiple zones --- net/scripts/ec2-provider.sh | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/net/scripts/ec2-provider.sh b/net/scripts/ec2-provider.sh index 9f2af9585b..f1e421ee4e 100755 --- a/net/scripts/ec2-provider.sh +++ b/net/scripts/ec2-provider.sh @@ -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=$(\