#!/usr/bin/env bash
-#set -x
+set -eu -o pipefail
LIBDIR="$(dirname "$(dirname "$(dirname "$PWD")")")"
declare -i prev_host_state=0
declare -i j=0
echo "Baremetal state: 1 means deprovisioned & 0 means not yet deprovisioned"
- while read -r name username password address; do
+ while IFS=',' read -r name ipmi_username ipmi_password ipmi_address boot_mac os_username os_password os_image_name; do
declare -i current_host_state=0
- state=$(kubectl get baremetalhosts $name -n metal3 -o json | jq -r '.status.provisioning.state')
+ if kubectl get baremetalhost $name -n metal3 &>/dev/null; then
+ state=$(kubectl get baremetalhosts $name -n metal3 -o json | jq -r '.status.provisioning.state')
+ else
+ # When the named BareMetalHost is not found, assume its deprovisioned
+ state="ready"
+ fi
echo "Baremetal host metal3 state - "$name" : "$state
- if [ $state == "ready" ];then
+ if [ "$state" == "ready" ];then
current_host_state=1
fi
echo "Baremetal $name current_host_state : "$current_host_state
echo "Previous Baremetals prev_host_state : "$prev_host_state
- if [ $j -eq 0 ]; then
+ if [ $j -eq 0 ]; then
prev_host_state=$current_host_state
((j+=1))
continue
}
function wait_for_deprovisioned {
- all_bmh_deprovisioned=1
declare -i k=1
while ((timeout > 0)); do
echo "Try $k iteration : Wait for $interval seconds to check all bmh state"
sleep $interval
- list_nodes | check_deprovisioned
- all_bmh_state=$?
- if [[ $all_bmh_state -eq $all_bmh_deprovisioned ]]; then
+ if ! list_nodes | check_deprovisioned; then
echo "All the Baremetal hosts are deprovisioned - success"
warm_up_time
exit 0