nomad-driver-containerd/tests/002-test-signal-handler.sh
Shishir Mahajan 42fc67cc80 Update versions, run nomad in non-dev mode and fix tests.
Signed-off-by: Shishir Mahajan <smahajan@roblox.com>
2021-09-02 16:39:33 -07:00

61 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
source $SRCDIR/utils.sh
test_signal_handler_nomad_job() {
pushd ~/go/src/github.com/Roblox/nomad-driver-containerd/example
echo "INFO: Starting nomad signal handler job using nomad-driver-containerd."
nomad job run -detach signal.nomad
echo "INFO: Checking status of signal handler job."
signal_status=$(nomad job status -short signal|grep Status|awk '{split($0,a,"="); print a[2]}'|tr -d ' ')
if [ $signal_status != "running" ];then
echo "ERROR: Error in getting signal handler job status."
exit 1
fi
echo "INFO: Inspecting signal handler job."
signal_status=$(nomad job inspect signal|jq -r '.Job .Status')
if [ $signal_status != "running" ]; then
echo "ERROR: Error in inspecting signal handler job."
exit 1
fi
# Even though $(nomad job status) reports signal job status as "running"
# The actual container process might not be running yet.
# We need to wait for actual container to start running before trying to send invalid signal.
echo "INFO: Wait for signal container to get into RUNNING state, before trying to send invalid signal."
is_container_active signal false
echo "INFO: Test invalid signal."
alloc_id=$(nomad job status signal|awk 'END{print}'|cut -d ' ' -f 1)
local outfile=$(mktemp /tmp/signal.XXXXXX)
nomad alloc signal -s INVALID $alloc_id >> $outfile 2>&1
if ! grep -q "Invalid signal" $outfile; then
echo "ERROR: Invalid signal didn't error out."
cleanup "$outfile"
exit 1
fi
cleanup "$outfile"
echo "INFO: Stopping nomad signal handler job."
nomad job stop -detach signal
signal_status=$(nomad job status -short signal|grep Status|awk '{split($0,a,"="); print a[2]}'|tr -d ' ')
if [ $signal_status != "dead(stopped)" ];then
echo "ERROR: Error in stopping signal handler job."
exit 1
fi
echo "INFO: purge nomad signal handler job."
nomad job stop -detach -purge signal
popd
}
cleanup() {
local tmpfile=$1
rm $tmpfile > /dev/null 2>&1
}
test_signal_handler_nomad_job