69 lines
1.5 KiB
Bash
Executable File
69 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
wait_nomad_job_status() {
|
|
local job_name=$1
|
|
local expected_status="$2"
|
|
|
|
local status
|
|
local i=0
|
|
while [ $i -lt 5 ]; do
|
|
status=$(nomad job status $job_name|grep Allocations -A2|tail -n 1 |awk '{print $6}')
|
|
if [ "$status" == "$expected_status" ]; then
|
|
return
|
|
fi
|
|
sleep 4
|
|
i=$((i + 1))
|
|
done
|
|
|
|
echo "ERROR: ${job_name} didn't enter $expected_status status. exit 1."
|
|
exit 1
|
|
}
|
|
|
|
is_container_active() {
|
|
local job_name=$1
|
|
local is_sleep=$2
|
|
|
|
i="0"
|
|
while test $i -lt 5
|
|
do
|
|
sudo CONTAINERD_NAMESPACE=nomad ctr task ls|grep -q RUNNING
|
|
if [ $? -eq 0 ]; then
|
|
echo "INFO: ${job_name} container is up and running"
|
|
if [ "$is_sleep" = true ]; then
|
|
sleep 7s
|
|
fi
|
|
break
|
|
fi
|
|
echo "INFO: ${job_name} container is down, sleep for 4 seconds."
|
|
sleep 4s
|
|
i=$[$i+1]
|
|
done
|
|
|
|
if [ $i -ge 5 ]; then
|
|
echo "ERROR: ${job_name} container didn't come up. exit 1."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
is_systemd_service_active() {
|
|
local service_name=$1
|
|
local is_sleep=$2
|
|
|
|
i="0"
|
|
while test $i -lt 5 && !(systemctl -q is-active "$service_name"); do
|
|
printf "INFO: %s is down, sleep for 4 seconds.\n" $service_name
|
|
sleep 4s
|
|
i=$[$i+1]
|
|
done
|
|
|
|
if [ $i -ge 5 ]; then
|
|
printf "ERROR: %s didn't come up. exit 1.\n" $service_name
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$is_sleep" = true ]; then
|
|
sleep 7s
|
|
fi
|
|
printf "INFO: %s is up and running\n" $service_name
|
|
}
|