Skip to content

Commit 3664b16

Browse files
author
Sean Sundberg
committed
Fixes bugs manually deleting vpcs using script
- Checks for the owner of the reserved ip before trying to delete (skip reserved ips owned by the provider) - Replaces hard coded vpc name in public gateway delete with variable to clean up public gateways - Adds 10 second sleep between public gateway delete and vpc delete to address timing issue closes #65 Signed-off-by: Sean Sundberg <[email protected]>
1 parent cbb52a9 commit 3664b16

File tree

1 file changed

+19
-7
lines changed

1 file changed

+19
-7
lines changed

scripts/delete-vpc.sh

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22

33
VPC_NAME="$1"
44

5+
if [[ -z "${VPC_NAME}" ]]; then
6+
echo "usage: delete-vpc.sh VPC_NAME" >&2
7+
exit 1
8+
fi
9+
510
set -e
611

7-
echo "*** Deleting instances..."
12+
echo "*** Deleting virtual server instances..."
813
echo ""
914

1015
ibmcloud is instances --all-resource-groups --output JSON | \
@@ -99,18 +104,23 @@ do
99104

100105
if [[ -n "${public_gateway_id}" ]]; then
101106
echo "Detach public gateway from subnet: ${public_gateway_name} (${public_gateway_id})"
102-
ibmcloud is subnet-public-gateway-detach "${id}"
107+
ibmcloud is subnet-public-gateway-detach "${id}" --force
103108
fi
104109

105-
ibmcloud is subnet-reserved-ips "${id}" | \
110+
ibmcloud is subnet-reserved-ips "${id}" --output json | \
106111
jq -c '.[]' | \
107112
while read reserved_ip;
108113
do
109114
ip_id=$(echo "$reserved_ip" | jq -r '.id')
110115
ip_name=$(echo "$reserved_ip" | jq -r '.name')
111-
112-
echo "Deleting reserved ip: ${ip_name} (${ip_id})"
113-
ibmcloud is subnet-reserved-ip-delete -f "${id}" "${ip_id}"
116+
ip_owner=$(echo "$reserved_ip" | jq -r '.owner')
117+
118+
if [[ "${ip_owner}" != "provider" ]]; then
119+
echo "Deleting reserved ip: ${ip_name} (${ip_id})"
120+
ibmcloud is subnet-reserved-ip-delete -f "${id}" "${ip_id}" || echo "Error deleting reserved ip"
121+
else
122+
echo "Skipping reserved ip owned by provider: ${ip_name} (${ip_id})"
123+
fi
114124
done
115125

116126
echo "Deleting subnet: ${name} (${id})"
@@ -122,7 +132,7 @@ echo "*** Deleting public gateways..."
122132
echo ""
123133

124134
ibmcloud is public-gateways --all-resource-groups --output JSON | \
125-
jq -c --arg VPC_NAME sms-vpn-vpc '.[] | select(.vpc.name == $VPC_NAME)' | \
135+
jq -c --arg VPC_NAME "${VPC_NAME}" '.[] | select(.vpc.name == $VPC_NAME)' | \
126136
while read gateway;
127137
do
128138

@@ -140,6 +150,8 @@ do
140150
# fi
141151
done
142152

153+
sleep 10
154+
143155
echo ""
144156
echo "*** Deleting VPC..."
145157
echo ""

0 commit comments

Comments
 (0)