bb3c742e36
Deployments using external LB will file like this: deploy_stderr: | + RESTART_FOLDER=/var/lib/tripleo/pacemaker-restarts + [[ -d /var/lib/tripleo/pacemaker-restarts ]] ++ systemctl is-active haproxy + haproxy_status=unknown deploy_status_code: 3 openstack software deployment show 4f339ca4-7600-4ca0-b0ef-f798bc47b6cf The reason is that via https://review.openstack.org/#/c/393644/ we introducted the haproxy restart like this: haproxy_status=$(systemctl is-active haproxy) if [ "$haproxy_status" = "active" ]; then systemctl reload haproxy fi The problem is that if haproxy is not running/installed systemctl is-active can fail and the script will terminate with an error return code. Let's just move the call inside the if so the script does not fail in case haproxy is not there. The snippet before the change (on a system without haproxy installed): [root@mrg-09 tmp]# ./test.sh ++ systemctl is-active haproxy + haproxy_status=unknown [root@mrg-09 tmp]# echo $? 3 After this change: [root@mrg-09 tmp]# ./test.sh ++ systemctl is-active haproxy + '[' unknown = active ']' [root@mrg-09 tmp]# echo $? 0 Change-Id: I837c63a9dbcde8c922f843c442974fa79cf1eede Closes-Bug: #1641904
34 lines
889 B
Bash
Executable File
34 lines
889 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -eux
|
|
|
|
# Run if pacemaker is running, we're the bootstrap node,
|
|
# and we're updating the deployment (not creating).
|
|
|
|
RESTART_FOLDER="/var/lib/tripleo/pacemaker-restarts"
|
|
|
|
if [[ -d "$RESTART_FOLDER" && -n $(pcmk_running) && -n $(is_bootstrap_node) ]]; then
|
|
|
|
TIMEOUT=600
|
|
PCS_STATUS_OUTPUT="$(pcs status)"
|
|
SERVICES_TO_RESTART="$(ls $RESTART_FOLDER)"
|
|
|
|
for service in $SERVICES_TO_RESTART; do
|
|
if ! echo "$PCS_STATUS_OUTPUT" | grep $service; then
|
|
echo "Service $service not found as a pacemaker resource, cannot restart it."
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
for service in $SERVICES_TO_RESTART; do
|
|
echo "Restarting $service..."
|
|
pcs resource restart --wait=$TIMEOUT $service
|
|
rm -f "$RESTART_FOLDER"/$service
|
|
done
|
|
|
|
fi
|
|
|
|
if [ $(systemctl is-active haproxy) = "active" ]; then
|
|
systemctl reload haproxy
|
|
fi
|