Skip to content

Commit b4d870d

Browse files
committed
fix nightly cleanup for duplicate server names
1 parent 4efb739 commit b4d870d

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

.github/workflows/nightly-cleanup.yml

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,31 +67,33 @@ jobs:
6767
for cluster_prefix in ${ci_clusters}
6868
do
6969
echo "Processing cluster: $cluster_prefix"
70+
7071
# 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)
7390
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')
9091
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"
9293
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
9496
fi
95-
fi
97+
done
9698
done
9799
shell: bash

0 commit comments

Comments
 (0)