Fix the stonith property during upgrades
authorMichele Baldessari <michele@acksyn.org>
Thu, 20 Oct 2016 18:16:28 +0000 (20:16 +0200)
committerMichele Baldessari <michele@acksyn.org>
Thu, 20 Oct 2016 18:16:28 +0000 (20:16 +0200)
We currently set the stonith property from all controller nodes during
upgrade. This is racy and can actually end up disabling stonith after
the upgrade even if when it was enabled.

Let's set the property only from the bootstrap node.

Change-Id: Id4afb867b485ac853be874a0179a7ed7cc914068
Closes-Bug: #1635294

extraconfig/tasks/major_upgrade_controller_pacemaker_1.sh

index 23074fc..71279d4 100755 (executable)
@@ -17,8 +17,10 @@ check_disk_for_mysql_dump
 # nodes where a service fails to stop, which could be fatal during an upgrade
 # procedure. So we remember the stonith state. If it was enabled we reenable it
 # at the end of this script
-STONITH_STATE=$(pcs property show stonith-enabled | grep "stonith-enabled" | awk '{ print $2 }')
-pcs property set stonith-enabled=false
+if [[ -n $(is_bootstrap_node) ]]; then
+    STONITH_STATE=$(pcs property show stonith-enabled | grep "stonith-enabled" | awk '{ print $2 }')
+    pcs property set stonith-enabled=false
+fi
 
 # Migrate to HA NG and fix up rabbitmq queues
 # We fix up the rabbitmq ha queues after the migration because it will
@@ -170,8 +172,10 @@ if [ $DO_MYSQL_UPGRADE -eq 1 ]; then
 fi
 
 # Let's reset the stonith back to true if it was true, before starting the cluster
-if [ $STONITH_STATE == "true" ]; then
-    pcs -f /var/lib/pacemaker/cib/cib.xml property set stonith-enabled=true
+if [[ -n $(is_bootstrap_node) ]]; then
+    if [ $STONITH_STATE == "true" ]; then
+        pcs -f /var/lib/pacemaker/cib/cib.xml property set stonith-enabled=true
+    fi
 fi
 
 # Pin messages sent to compute nodes to kilo, these will be upgraded later