Blame SOURCES/bz1011618-pcmk-consistently_use_slave_as_the_role_for_unpromoted_master_slave_resources.patch

ed0026
commit 6bb62a4a2b304de64d8ccf0e38ae6dd3c3d5e772
ed0026
Author: Andrew Beekhof <andrew@beekhof.net>
ed0026
Date:   Wed Sep 25 11:53:35 2013 +1000
ed0026
ed0026
    Fix: Bug rhbz#1011618 - Consistently use 'Slave' as the role for unpromoted master/slave resources
ed0026
    
ed0026
    (cherry picked from commit bc5e0b677b7ee45c022496cb926f91bad3731974)
ed0026
ed0026
diff --git a/lib/pengine/native.c b/lib/pengine/native.c
ed0026
index c81a218..adfd5ba 100644
ed0026
--- a/lib/pengine/native.c
ed0026
+++ b/lib/pengine/native.c
ed0026
@@ -294,16 +294,21 @@ native_print_attr(gpointer key, gpointer value, gpointer user_data)
ed0026
 static void
ed0026
 native_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data)
ed0026
 {
ed0026
+    enum rsc_role_e role = rsc->role;
ed0026
     const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS);
ed0026
     const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER);
ed0026
 
ed0026
+    if(role == RSC_ROLE_STARTED && uber_parent(rsc)->variant == pe_master) {
ed0026
+        role = RSC_ROLE_SLAVE;
ed0026
+    }
ed0026
+
ed0026
     /* resource information. */
ed0026
     status_print("%s
ed0026
     status_print("id=\"%s\" ", rsc_printable_id(rsc));
ed0026
     status_print("resource_agent=\"%s%s%s:%s\" ",
ed0026
                  class,
ed0026
                  prov ? "::" : "", prov ? prov : "", crm_element_value(rsc->xml, XML_ATTR_TYPE));
ed0026
-    status_print("role=\"%s\" ", role2text(rsc->role));
ed0026
+    status_print("role=\"%s\" ", role2text(role));
ed0026
     status_print("active=\"%s\" ", rsc->fns->active(rsc, TRUE) ? "true" : "false");
ed0026
     status_print("orphaned=\"%s\" ", is_set(rsc->flags, pe_rsc_orphan) ? "true" : "false");
ed0026
     status_print("managed=\"%s\" ", is_set(rsc->flags, pe_rsc_managed) ? "true" : "false");