tripleo-heat-templates/extraconfig/tasks/pacemaker_resource_restart.sh
Jiri Stransky aa0bd9eb1b Fix distinguishing between stack-create and stack-update
Previously we tried to use UpdateIdentifier for two different things:
tell whether to perform package update, and also to tell whether the
top-level stack is being created or updated (which was incorrect and
resulted in bug 1567384, and an attempt to work around that bug resulted
in bug 1567385).

We cannot use Heat's "action" conditionals in some cases, because they
refer to the direct parent stack, which can yield undesirable results
when introducing new nested stacks or temporarily no-opping something
and then adding it back (in both these cases, "action" would be
considered "CREATE", even though the top-level stack is in "UPDATE").

So tripleoclient passes a new parameter StackAction to tell whether the
top-level stack is being created or updated, and we make use of
that. (It seems there's no better way of getting this info from within
the nested Heat stacks.)

Change-Id: Ie14ddbff15e7ed21aaa3fcdacf36e0040f912382
Depends-On: I9dc3b4cd8a6a71df34d8babf0e4c6505041f5311
Closes-Bug: #1567384
Related-Bug: #1567385
2016-04-11 14:31:42 +02:00

39 lines
1.2 KiB
Bash
Executable File

#!/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)" -a \
"$(hiera stack_action)" = "UPDATE" ]; then
#ensure neutron constraints like
#https://review.openstack.org/#/c/245093/
if pcs constraint order show | grep "start neutron-server-clone then start neutron-ovs-cleanup-clone"; then
pcs constraint remove order-neutron-server-clone-neutron-ovs-cleanup-clone-mandatory
fi
pcs resource disable httpd
check_resource httpd stopped 300
pcs resource disable openstack-core
check_resource openstack-core stopped 1800
if pcs status | grep haproxy-clone; then
pcs resource restart haproxy-clone
fi
pcs resource restart redis-master
pcs resource restart mongod-clone
pcs resource restart rabbitmq-clone
pcs resource restart memcached-clone
pcs resource restart galera-master
pcs resource enable openstack-core
check_resource openstack-core started 1800
pcs resource enable httpd
check_resource httpd started 800
fi