Skip to content

Commit 89fb3f3

Browse files
Merge pull request #1105 from hjensas/pre_launch_ironic_idempotent
Make pre_launch_ironic.bash idempotent
2 parents 6bac41c + 42cc2fd commit 89fb3f3

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

tests/roles/development_environment/files/pre_launch_ironic.bash

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ for node in $(${BASH_ALIASES[openstack]} baremetal node list -c UUID -f value);
6565
done
6666

6767
# Create a baremetal flavor
68+
${BASH_ALIASES[openstack]} flavor delete baremetal || true
6869
${BASH_ALIASES[openstack]} flavor create baremetal --ram 1024 --vcpus 1 --disk 15 \
6970
--property resources:VCPU=0 \
7071
--property resources:MEMORY_MB=0 \
@@ -77,6 +78,7 @@ IMG=CentOS-Stream-GenericCloud-x86_64-9-latest.x86_64.qcow2
7778
URL=https://cloud.centos.org/centos/9-stream/x86_64/images/$IMG
7879
curl --silent --show-error -o /tmp/${IMG} -L $URL
7980
DISK_FORMAT=$(qemu-img info /tmp/${IMG} | grep "file format:" | awk '{print $NF}')
81+
${BASH_ALIASES[openstack]} image delete CentOS-Stream-GenericCloud-x86_64-9 || true
8082
${BASH_ALIASES[openstack]} image create \
8183
--container-format bare \
8284
--disk-format ${DISK_FORMAT} \
@@ -87,25 +89,35 @@ wait_image_active CentOS-Stream-GenericCloud-x86_64-9
8789

8890

8991
export BAREMETAL_NODES=$(${BASH_ALIASES[openstack]} baremetal node list -c UUID -f value)
90-
# Manage nodes
91-
for node in $BAREMETAL_NODES; do
92-
${BASH_ALIASES[openstack]} baremetal node manage $node
93-
done
94-
wait_node_state "manageable"
9592

96-
# Inspect baremetal nodes
97-
for node in $BAREMETAL_NODES; do
98-
${BASH_ALIASES[openstack]} baremetal node inspect $node
99-
sleep 10
100-
done
101-
wait_node_state "manageable"
93+
# Check if any nodes are active (in use by instances)
94+
ACTIVE_NODES=$(${BASH_ALIASES[openstack]} baremetal node list -c "Provisioning State" -f value | grep -c "active" || true)
10295

103-
# Provide nodes
104-
for node in $BAREMETAL_NODES; do
105-
${BASH_ALIASES[openstack]} baremetal node provide $node
106-
sleep 10
107-
done
108-
wait_node_state "available"
96+
if [ "$ACTIVE_NODES" -eq 0 ]; then
97+
echo "No active nodes found, proceeding with node management operations"
98+
99+
# Manage nodes
100+
for node in $BAREMETAL_NODES; do
101+
${BASH_ALIASES[openstack]} baremetal node manage $node
102+
done
103+
wait_node_state "manageable"
104+
105+
# Inspect baremetal nodes
106+
for node in $BAREMETAL_NODES; do
107+
${BASH_ALIASES[openstack]} baremetal node inspect $node
108+
sleep 10
109+
done
110+
wait_node_state "manageable"
111+
112+
# Provide nodes
113+
for node in $BAREMETAL_NODES; do
114+
${BASH_ALIASES[openstack]} baremetal node provide $node
115+
sleep 10
116+
done
117+
wait_node_state "available"
118+
else
119+
echo "Found $ACTIVE_NODES active node(s), skipping node management operations to preserve deployed instances"
120+
fi
109121

110122
# Wait for nova to be aware of the node
111123
sleep 60

0 commit comments

Comments
 (0)