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:
parent
2a826d5a43
commit
fe13c0a83f
|
@ -71,13 +71,32 @@ echo
|
||||||
# 3) Complete - The action has completed successfully.
|
# 3) Complete - The action has completed successfully.
|
||||||
# 4) Failed - The action has encountered an error, and has failed.
|
# 4) Failed - The action has encountered an error, and has failed.
|
||||||
# 5) Paused - The action has been paused by a user.
|
# 5) Paused - The action has been paused by a user.
|
||||||
|
# 6) Unknown (*) - Unknown State for corner cases
|
||||||
#
|
#
|
||||||
# Initialize 'action_lifecycle' to 'Pending'
|
# Initialize 'action_lifecycle' to 'Pending'
|
||||||
action_lifecycle="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;
|
while true;
|
||||||
do
|
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
|
# Print final results
|
||||||
echo -e '\nFinal State of Deployment\n'
|
echo -e '\nFinal State of Deployment\n'
|
||||||
cat /tmp/get_action_status.json | jq .
|
cat /tmp/get_action_status.json | jq .
|
||||||
|
@ -100,11 +119,16 @@ do
|
||||||
sleep $query_time
|
sleep $query_time
|
||||||
|
|
||||||
# Check Dag state
|
# 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"
|
echo -e "Dag Execution is in" ${RED}$action_lifecycle${NC} "state\n"
|
||||||
else
|
else
|
||||||
echo -e "Dag Execution is in" ${GREEN}$action_lifecycle${NC} "state\n"
|
echo -e "Dag Execution is in" ${GREEN}$action_lifecycle${NC} "state\n"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Step counter and check if deployment has timed out
|
||||||
|
((deploy_counter++))
|
||||||
|
check_timeout_counter
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue