Update deploy_site script

It seems that there is a possibility for Airflow to respond
with 'unknown' state for some corner cases. This will cause
the deploy_site script to get into infinite loop. The codes
in Shipyard has been updated to return 'Unknown (*)' as the
state of the action lifecycle in such situations.

This P.S. is meant to update the script and to set a default time
out of 1.5 hr for the workflow. The time out can be changed by
setting a value for $2 (Note that we will need to set query_time,
i.e. $1 as well)

    $ ./deploy_site.sh 120 7200

Change-Id: Ic56ce85f55e9b5fa0c3f537c6158ddc3dc56fab2
This commit is contained in:
Anthony Lin 2017-11-07 17:49:16 +00:00
parent 2a826d5a43
commit fe13c0a83f
1 changed files with 26 additions and 2 deletions

View File

@ -71,13 +71,32 @@ echo
# 3) Complete - The action has completed successfully.
# 4) Failed - The action has encountered an error, and has failed.
# 5) Paused - The action has been paused by a user.
# 6) Unknown (*) - Unknown State for corner cases
#
# Initialize 'action_lifecycle' to 'Pending'
action_lifecycle="Pending"
# Polling for site_deploy action
# Define 'deploy_time_out' and default to 1.5 hrs (5400 seconds) if not provided
# Note that user will need to define query time in this case
deploy_timeout=${2:-5400}
deploy_counter=1
check_timeout_counter() {
# Check total elapsed time
# The default time out is set to 1.5 hrs
# This value can be changed by setting $2
if [[ $deploy_counter -eq $deploy_timeout ]]; then
echo 'Deploy Site task has timed out.'
break
fi
}
while true;
do
if [[ $action_lifecycle == "Complete" ]] || [[ $action_lifecycle == "Failed" ]] || [[ $action_lifecycle == "Paused" ]]; then
if [[ $action_lifecycle == "Complete" ]] || [[ $action_lifecycle == "Failed" ]] || \
[[ $action_lifecycle == "Paused" ]] || [[ $action_lifecycle == 'Unknown'* ]]; then
# Print final results
echo -e '\nFinal State of Deployment\n'
cat /tmp/get_action_status.json | jq .
@ -100,11 +119,16 @@ do
sleep $query_time
# Check Dag state
if [[ $action_lifecycle == "Failed" ]] || [[ $action_lifecycle == "Paused" ]]; then
if [[ $action_lifecycle == "Failed" ]] || [[ $action_lifecycle == "Paused" ]] || \
[[ $action_lifecycle == 'Unknown'* ]]; then
echo -e "Dag Execution is in" ${RED}$action_lifecycle${NC} "state\n"
else
echo -e "Dag Execution is in" ${GREEN}$action_lifecycle${NC} "state\n"
fi
# Step counter and check if deployment has timed out
((deploy_counter++))
check_timeout_counter
fi
done