Relax pre-upgrade check for failed actions
authorMichele Baldessari <michele@acksyn.org>
Wed, 28 Sep 2016 20:55:25 +0000 (22:55 +0200)
committerMichele Baldessari <michele@acksyn.org>
Thu, 29 Sep 2016 07:02:24 +0000 (09:02 +0200)
Before this change we checked the cluster for any failed actions and
we stopped the upgrade process if there were any.
This is likely eccessive as a failed action could have happened in the
past and the cluster is now fully functional.

Better to check if any of the resources are in Stopped state and break
the upgrade process if any of them are.

We also need to restrict this check to the bootstrap node because
otherwise the following might happen:
1) Bootstrap node does the check, it is successful and it starts
   the full HA -> HA NG migration which *will* create failed actions
   and will start stopping resources
2) If the check now starts on a non-bootstrap node while 1) is ongoing,
   it will find either failed actions or stopped resources so it will
   fail.

Change-Id: Ib091f6dd8884025d2e23bf2fa700169e2dec778f
Closes-Bug: #1628653

extraconfig/tasks/major_upgrade_check.sh
extraconfig/tasks/major_upgrade_controller_pacemaker_1.sh

index dc7ec71..b65f691 100755 (executable)
@@ -88,8 +88,8 @@ check_python_rpm()
 
 check_clean_cluster()
 {
-    if crm_mon -1 | grep -A3 Failed; then
-        echo_error "ERROR: upgrade cannot start with failed resources on the cluster. Clean them up before starting: pcs resource cleanup."
+    if pcs status | grep -q Stopped:; then
+        echo_error "ERROR: upgrade cannot start with stopped resources on the cluster. Make sure that all the resources are up and running."
         exit 1
     fi
 }
index cdf3fa7..d4200e5 100755 (executable)
@@ -6,7 +6,9 @@ cluster_sync_timeout=1800
 
 check_cluster
 check_pcsd
-check_clean_cluster
+if [[ -n $(is_bootstrap_node) ]]; then
+    check_clean_cluster
+fi
 check_python_rpm
 check_galera_root_password
 check_disk_for_mysql_dump