diff --git a/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py b/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py index c7e997b7..2c65f83e 100755 --- a/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py +++ b/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py @@ -26,7 +26,7 @@ def describe_queue_state(): except etcd.EtcdKeyNotFound: # There's no clearwater keys yet print " No queue exists for {}".format(queue_key) - return + return 2 values = json.loads(result.value) @@ -34,13 +34,16 @@ def describe_queue_state(): print " Nodes currently queued:" for node in values["QUEUED"]: print " Node ID: {}, Node status: {}".format(node["ID"], node["STATUS"].lower()) + return_code = 1 else: print " No nodes are currently queued" + return_code = 0 if values["ERRORED"]: print " Nodes in an errored state:" for node in values["ERRORED"]: print " Node ID: {}, Node status: {}".format(node["ID"], node["STATUS"].lower()) + return_code = 2 if values["COMPLETED"]: @@ -49,4 +52,6 @@ def describe_queue_state(): print " Node ID: {}".format(node["ID"]) print "\n" + return return_code + describe_queue_state() diff --git a/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_restart_queue_state b/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_restart_queue_state index 102de9f5..76e265ff 100755 --- a/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_restart_queue_state +++ b/clearwater-queue-manager.root/usr/share/clearwater/clearwater-queue-manager/scripts/check_restart_queue_state @@ -18,14 +18,19 @@ then exit 1 fi +# Return 2 if any error occurs. Else return 1 if any node is queueing, and 0 if +# restart completed. if [[ $use_single_restart_queue == "Y" ]] ; then /usr/share/clearwater/clearwater-queue-manager/env/bin/python /usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py "${management_local_ip:-$local_ip}" "$local_site_name" apply_config else + rc=0 for apply_config_key in $( clearwater-etcdctl ls -p --recursive | grep apply_config_ | sort -n); do prefix="/clearwater/$local_site_name/configuration/" # Remove the prefix to get apply_config_ as etcd-key apply_config_key=${apply_config_key#$prefix} /usr/share/clearwater/clearwater-queue-manager/env/bin/python /usr/share/clearwater/clearwater-queue-manager/scripts/check_queue_state.py "${management_local_ip:-$local_ip}" "$local_site_name" "$apply_config_key" + rc=$(($?>rc?$?:rc)) done + exit $rc fi