aboutsummaryrefslogtreecommitdiffstats
path: root/extraconfig/tasks/pacemaker_resource_restart.sh
blob: fd1fd0dc73bd36b7199974be00c8f90582147c4f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/bash

set -eux

pacemaker_status=$(systemctl is-active pacemaker)

# Run if pacemaker is running, we're the bootstrap node,
# and we're updating the deployment (not creating).
if [ "$pacemaker_status" = "active" -a \
     "$(hiera bootstrap_nodeid)" = "$(facter hostname)" ]; then

    TIMEOUT=600
    SERVICES_TO_RESTART="$(ls /var/lib/tripleo/pacemaker-restarts)"
    PCS_STATUS_OUTPUT="$(pcs status)"

    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 /var/lib/tripleo/pacemaker-restarts/$service
    done

fi