File pacemaker-scheduler-improve-failed-op-message.patch of Package pacemaker.13283

commit 23aeaaa29064eddf6fe2b3e22a974ef07657c1f6
Author: Ken Gaillot <kgaillot@redhat.com>
Date:   Wed May 2 18:23:58 2018 -0500

    Log: scheduler: improve failed op message
    
    Particularly, if a probe fails due to an error (as opposed to an unexpected
    running status), point the user to the resource-discovery option.

Index: pacemaker-1.1.18+20180430.b12c320f5/cts/CTStests.py
===================================================================
--- pacemaker-1.1.18+20180430.b12c320f5.orig/cts/CTStests.py
+++ pacemaker-1.1.18+20180430.b12c320f5/cts/CTStests.py
@@ -1087,7 +1087,7 @@ class MaintenanceMode(CTSTest):
         # fail the resource right after turning Maintenance mode on
         # verify it is not recovered until maintenance mode is turned off
         if action == "On":
-            pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for %s on" % (self.action, self.rid))
+            pats.append(r"pengine.*:\s+warning:.*Processing failed %s of %s on" % (self.action, self.rid))
         else:
             pats.append(self.templates["Pat:RscOpOK"] % ("stop", self.rid))
             pats.append(self.templates["Pat:RscOpOK"] % ("start", self.rid))
@@ -1296,7 +1296,7 @@ class ResourceRecover(CTSTest):
         self.debug("Shooting %s aka. %s" % (rsc.clone_id, rsc.id))
 
         pats = []
-        pats.append(r"pengine.*:\s+warning:.*Processing failed op %s for (%s|%s) on" % (self.action,
+        pats.append(r"pengine.*:\s+warning:.*Processing failed %s of (%s|%s) on" % (self.action,
             rsc.id, rsc.clone_id))
 
         if rsc.managed():
Index: pacemaker-1.1.18+20180430.b12c320f5/lib/pengine/unpack.c
===================================================================
--- pacemaker-1.1.18+20180430.b12c320f5.orig/lib/pengine/unpack.c
+++ pacemaker-1.1.18+20180430.b12c320f5/lib/pengine/unpack.c
@@ -2504,9 +2504,21 @@ unpack_rsc_op_failure(resource_t * rsc,
     }
 
     if (rc != PCMK_OCF_NOT_INSTALLED || is_set(data_set->flags, pe_flag_symmetric_cluster)) {
-        crm_warn("Processing failed op %s for %s on %s: %s (%d)",
-                 task, rsc->id, node->details->uname, services_ocf_exitcode_str(rc),
-                 rc);
+        crm_warn("Processing failed %s of %s on %s: %s " CRM_XS " rc=%d",
+                 (is_probe? "probe" : task), rsc->id, node->details->uname,
+                 services_ocf_exitcode_str(rc), rc);
+
+        if (is_probe && (rc != PCMK_OCF_OK)
+            && (rc != PCMK_OCF_NOT_RUNNING)
+            && (rc != PCMK_OCF_RUNNING_MASTER)) {
+
+            /* A failed (not just unexpected) probe result could mean the user
+             * didn't know resources will be probed even where they can't run.
+             */
+            crm_notice("If it is not possible for %s to run on %s, see "
+                       "the resource-discovery option for location constraints",
+                       rsc->id, node->details->uname);
+        }
 
         record_failed_op(xml_op, node, rsc, data_set);
 
openSUSE Build Service is sponsored by