@@ -67,31 +67,33 @@ jobs:
67
67
for cluster_prefix in ${ci_clusters}
68
68
do
69
69
echo "Processing cluster: $cluster_prefix"
70
+
70
71
# Get all servers with the matching name for control node
71
- CONTROL_SERVERS=$(openstack server list --name ${cluster_prefix}-control --format json)
72
- SERVER_COUNT=$(echo "$CONTROL_SERVERS" | jq length)
72
+ CONTROL_SERVERS=$(openstack server list --name ${cluster_prefix}-control --long --format json)
73
+
74
+ # Get unique server names to avoid duplicate cleanup
75
+ UNIQUE_NAMES=$(echo "$CONTROL_SERVERS" | jq -r '.[].Name' | sort | uniq)
76
+ for name in $UNIQUE_NAMES; do
77
+ echo "Checking control node: $name"
78
+
79
+ # Get the first matching server ID by name
80
+ server=$(echo "$CONTROL_SERVERS" | jq -r '.[] | select(.Name=="'"$name"'") | .ID' | head -n1)
81
+
82
+ # Make sure server still exists (wasn't deleted earlier)
83
+ if ! openstack server show "$server" &>/dev/null; then
84
+ echo "Server $server no longer exists, skipping $name."
85
+ continue
86
+ fi
87
+
88
+ # Get tags for the server
89
+ TAGS=$(openstack server show "$server" --column tags --format value)
73
90
74
- if [[ $SERVER_COUNT -gt 1 ]]; then
75
- echo "Multiple servers found for control node '${cluster_prefix}-control'. Checking tags for each..."
76
-
77
- for server in $(echo "$CONTROL_SERVERS" | jq -r '.[].ID'); do
78
- # Get tags for each control node
79
- TAGS=$(openstack server show "$server" --column tags --format value)
80
-
81
- if [[ $TAGS =~ "keep" ]]; then
82
- echo "Skipping ${cluster_prefix} (server ${server}) - control instance is tagged as keep"
83
- else
84
- ./dev/delete-cluster.py ${cluster_prefix} --force
85
- fi
86
- done
87
- else
88
- # If only one server, extract its tags and proceed
89
- TAGS=$(echo "$CONTROL_SERVERS" | jq -r '.[0].Tags')
90
91
if [[ $TAGS =~ "keep" ]]; then
91
- echo "Skipping ${ cluster_prefix} - control instance is tagged as keep"
92
+ echo "Skipping $cluster_prefix - control instance is tagged as keep"
92
93
else
93
- ./dev/delete-cluster.py ${cluster_prefix} --force
94
+ echo "Deleting cluster $cluster_prefix (server $server)..."
95
+ ./dev/delete-cluster.py $cluster_prefix --force
94
96
fi
95
- fi
97
+ done
96
98
done
97
99
shell : bash
0 commit comments