Blame SOURCES/bz720543-pcmk-tools_fixes_formatting_of_remote_nodes_in_crm_mon_and_crm_simulate.patch

7100e8
commit 27adba1575f508166e7203225a3ff6d580842dfd
7100e8
Author: David Vossel <dvossel@redhat.com>
7100e8
Date:   Tue Aug 27 17:46:28 2013 -0500
7100e8
7100e8
    Fix: tools: Fixes formatting of remote-nodes in crm_mon and crm_simulate
7100e8
    
7100e8
    (cherry picked from commit b32b60ec6d0963ea3767196f0fdd50746d27fafa)
7100e8
    
7100e8
    Conflicts:
7100e8
    	pengine/test10/whitebox-ms-ordering.summary
7100e8
7100e8
diff --git a/pengine/test10/whitebox-asymmetric.summary b/pengine/test10/whitebox-asymmetric.summary
7100e8
index c4a8e0a..1a68802 100644
7100e8
--- a/pengine/test10/whitebox-asymmetric.summary
7100e8
+++ b/pengine/test10/whitebox-asymmetric.summary
7100e8
@@ -1,7 +1,6 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
 Online: [ 18builder ]
7100e8
-OFFLINE: [ 18node2:container2 ]
7100e8
 
7100e8
  fence_false	(stonith:fence_false):	Stopped 
7100e8
  container2	(ocf::pacemaker:Dummy):	Started 18builder 
7100e8
@@ -22,7 +21,8 @@ Executing cluster transition:
7100e8
  * Resource action: nfs_mount       monitor=10000 on 18node2
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18builder 18node2:container2 ]
7100e8
+Online: [ 18builder ]
7100e8
+Containers: [ 18node2:container2 ]
7100e8
 
7100e8
  fence_false	(stonith:fence_false):	Stopped 
7100e8
  container2	(ocf::pacemaker:Dummy):	Started 18builder 
7100e8
diff --git a/pengine/test10/whitebox-fail1.summary b/pengine/test10/whitebox-fail1.summary
7100e8
index 02d0f8e..5e5887b 100644
7100e8
--- a/pengine/test10/whitebox-fail1.summary
7100e8
+++ b/pengine/test10/whitebox-fail1.summary
7100e8
@@ -1,7 +1,7 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc2:container2 ]
7100e8
-OFFLINE: [ lxc1:container1 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	FAILED 18node2 
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
@@ -38,7 +38,8 @@ Executing cluster transition:
7100e8
  * Resource action: B               monitor=10000 on lxc1
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
diff --git a/pengine/test10/whitebox-fail2.summary b/pengine/test10/whitebox-fail2.summary
7100e8
index 0e53524..338173d 100644
7100e8
--- a/pengine/test10/whitebox-fail2.summary
7100e8
+++ b/pengine/test10/whitebox-fail2.summary
7100e8
@@ -1,7 +1,7 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc2:container2 ]
7100e8
-OFFLINE: [ lxc1:container1 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	FAILED 18node2 
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
@@ -38,7 +38,8 @@ Executing cluster transition:
7100e8
  * Resource action: B               monitor=10000 on lxc1
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
diff --git a/pengine/test10/whitebox-fail3.summary b/pengine/test10/whitebox-fail3.summary
7100e8
index 1d25724..395d218 100644
7100e8
--- a/pengine/test10/whitebox-fail3.summary
7100e8
+++ b/pengine/test10/whitebox-fail3.summary
7100e8
@@ -1,7 +1,6 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
 Online: [ dvossel-laptop2 ]
7100e8
-OFFLINE: [ 18builder:vm 18node1:vm2 ]
7100e8
 
7100e8
  vm	(ocf::heartbeat:VirtualDomain):	Stopped 
7100e8
  vm2	(ocf::heartbeat:VirtualDomain):	Stopped 
7100e8
@@ -39,8 +38,8 @@ Executing cluster transition:
7100e8
  * Resource action: X               monitor=10000 on 18builder
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18builder:vm dvossel-laptop2 ]
7100e8
-OFFLINE: [ 18node1:vm2 ]
7100e8
+Online: [ dvossel-laptop2 ]
7100e8
+Containers: [ 18builder:vm ]
7100e8
 
7100e8
  vm	(ocf::heartbeat:VirtualDomain):	Started dvossel-laptop2 
7100e8
  vm2	(ocf::heartbeat:VirtualDomain):	Stopped 
7100e8
diff --git a/pengine/test10/whitebox-move.summary b/pengine/test10/whitebox-move.summary
7100e8
index 6dc2f6f..3422ac7 100644
7100e8
--- a/pengine/test10/whitebox-move.summary
7100e8
+++ b/pengine/test10/whitebox-move.summary
7100e8
@@ -1,6 +1,7 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node1
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
@@ -34,7 +35,8 @@ Executing cluster transition:
7100e8
  * Resource action: lxc1            monitor=30000 on 18node2
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
diff --git a/pengine/test10/whitebox-start.summary b/pengine/test10/whitebox-start.summary
7100e8
index e5d654b..2801abe 100644
7100e8
--- a/pengine/test10/whitebox-start.summary
7100e8
+++ b/pengine/test10/whitebox-start.summary
7100e8
@@ -1,7 +1,7 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc2:container2 ]
7100e8
-OFFLINE: [ lxc1:container1 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Stopped 
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
@@ -29,7 +29,8 @@ Executing cluster transition:
7100e8
  * Resource action: M               monitor=10000 on lxc1
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node1
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
diff --git a/pengine/test10/whitebox-stop.summary b/pengine/test10/whitebox-stop.summary
7100e8
index 4116571..51357b9 100644
7100e8
--- a/pengine/test10/whitebox-stop.summary
7100e8
+++ b/pengine/test10/whitebox-stop.summary
7100e8
@@ -1,6 +1,7 @@
7100e8
 
7100e8
 Current cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc1:container1 lxc2:container2 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc1:container1 lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
@@ -30,8 +31,8 @@ Executing cluster transition:
7100e8
  * Pseudo action:   all_stopped
7100e8
 
7100e8
 Revised cluster status:
7100e8
-Online: [ 18node1 18node2 18node3 lxc2:container2 ]
7100e8
-OFFLINE: [ lxc1:container1 ]
7100e8
+Online: [ 18node1 18node2 18node3 ]
7100e8
+Containers: [ lxc2:container2 ]
7100e8
 
7100e8
  container1	(ocf::heartbeat:VirtualDomain):	Stopped 
7100e8
  container2	(ocf::heartbeat:VirtualDomain):	Started 18node2
7100e8
diff --git a/tools/crm_mon.c b/tools/crm_mon.c
7100e8
index 7c6e495..599df02 100644
7100e8
--- a/tools/crm_mon.c
7100e8
+++ b/tools/crm_mon.c
7100e8
@@ -1153,7 +1153,10 @@ print_status(pe_working_set_t * data_set)
7100e8
     node_t *dc = NULL;
7100e8
     char *since_epoch = NULL;
7100e8
     char *online_nodes = NULL;
7100e8
+    char *online_remote_nodes = NULL;
7100e8
+    char *online_remote_containers = NULL;
7100e8
     char *offline_nodes = NULL;
7100e8
+    char *offline_remote_nodes = NULL;
7100e8
     const char *stack_s = NULL;
7100e8
     xmlNode *dc_version = NULL;
7100e8
     xmlNode *quorum_node = NULL;
7100e8
@@ -1246,7 +1249,7 @@ print_status(pe_working_set_t * data_set)
7100e8
         const char *node_mode = NULL;
7100e8
         char *node_name = NULL;
7100e8
 
7100e8
-        if(node->details->remote_rsc) {
7100e8
+        if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
             node_name = g_strdup_printf("%s:%s", node->details->uname, node->details->remote_rsc->container->id);
7100e8
         } else {
7100e8
             node_name = g_strdup_printf("%s", node->details->uname);
7100e8
@@ -1286,23 +1289,37 @@ print_status(pe_working_set_t * data_set)
7100e8
         } else if (node->details->online) {
7100e8
             node_mode = "online";
7100e8
             if (group_by_node == FALSE) {
7100e8
-                online_nodes = add_list_element(online_nodes, node_name);
7100e8
+                if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
+                    online_remote_containers = add_list_element(online_remote_containers, node_name);
7100e8
+                } else if (node->details->remote_rsc) {
7100e8
+                    online_remote_nodes = add_list_element(online_remote_nodes, node_name);
7100e8
+                } else {
7100e8
+                    online_nodes = add_list_element(online_nodes, node_name);
7100e8
+                }
7100e8
                 continue;
7100e8
             }
7100e8
-
7100e8
         } else {
7100e8
             node_mode = "OFFLINE";
7100e8
             if (group_by_node == FALSE) {
7100e8
-                offline_nodes = add_list_element(offline_nodes, node_name);
7100e8
+
7100e8
+                if (node->details->remote_rsc) {
7100e8
+                    if (node->details->remote_rsc->container == NULL) {
7100e8
+                        offline_remote_nodes = add_list_element(offline_remote_nodes, node_name);
7100e8
+                    } else {
7100e8
+                        /* ignore displaying offline container nodes */
7100e8
+                    }
7100e8
+                } else {
7100e8
+                    offline_nodes = add_list_element(offline_nodes, node_name);
7100e8
+                }
7100e8
                 continue;
7100e8
             }
7100e8
         }
7100e8
 
7100e8
-        if(node->details->remote_rsc) {
7100e8
-            online_nodes = add_list_element(online_nodes, node->details->remote_rsc->id);
7100e8
-        }
7100e8
-
7100e8
-        if (safe_str_eq(node->details->uname, node->details->id)) {
7100e8
+        if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
+            print_as("ContainerNode %s: %s\n", node_name, node_mode);
7100e8
+        } else if (node->details->remote_rsc) {
7100e8
+            print_as("RemoteNode %s: %s\n", node_name, node_mode);
7100e8
+        } else if (safe_str_eq(node->details->uname, node->details->id)) {
7100e8
             print_as("Node %s: %s\n", node_name, node_mode);
7100e8
         } else {
7100e8
             print_as("Node %s (%s): %s\n", node_name, node->details->id, node_mode);
7100e8
@@ -1328,6 +1345,18 @@ print_status(pe_working_set_t * data_set)
7100e8
         print_as("OFFLINE: [%s ]\n", offline_nodes);
7100e8
         free(offline_nodes);
7100e8
     }
7100e8
+    if (online_remote_nodes) {
7100e8
+        print_as("RemoteOnline: [%s ]\n", online_remote_nodes);
7100e8
+        free(online_remote_nodes);
7100e8
+    }
7100e8
+    if (offline_remote_nodes) {
7100e8
+        print_as("RemoteOFFLINE: [%s ]\n", offline_remote_nodes);
7100e8
+        free(offline_remote_nodes);
7100e8
+    }
7100e8
+    if (online_remote_containers) {
7100e8
+        print_as("Containers: [%s ]\n", online_remote_containers);
7100e8
+        free(online_remote_containers);
7100e8
+    }
7100e8
 
7100e8
     if (group_by_node == FALSE && inactive_resources) {
7100e8
         print_as("\nFull list of resources:\n");
7100e8
diff --git a/tools/crm_simulate.c b/tools/crm_simulate.c
7100e8
index 0d95e53..78cab50 100644
7100e8
--- a/tools/crm_simulate.c
7100e8
+++ b/tools/crm_simulate.c
7100e8
@@ -530,7 +530,10 @@ static void
7100e8
 print_cluster_status(pe_working_set_t * data_set)
7100e8
 {
7100e8
     char *online_nodes = NULL;
7100e8
+    char *online_remote_nodes = NULL;
7100e8
+    char *online_remote_containers = NULL;
7100e8
     char *offline_nodes = NULL;
7100e8
+    char *offline_remote_nodes = NULL;
7100e8
 
7100e8
     GListPtr gIter = NULL;
7100e8
 
7100e8
@@ -539,7 +542,7 @@ print_cluster_status(pe_working_set_t * data_set)
7100e8
         const char *node_mode = NULL;
7100e8
         char *node_name = NULL;
7100e8
 
7100e8
-        if(node->details->remote_rsc) {
7100e8
+        if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
             node_name = g_strdup_printf("%s:%s", node->details->uname, node->details->remote_rsc->container->id);
7100e8
         } else {
7100e8
             node_name = g_strdup_printf("%s", node->details->uname);
7100e8
@@ -576,24 +579,45 @@ print_cluster_status(pe_working_set_t * data_set)
7100e8
                 node_mode = "OFFLINE (maintenance)";
7100e8
             }
7100e8
 
7100e8
+
7100e8
+
7100e8
         } else if (node->details->online) {
7100e8
             node_mode = "online";
7100e8
-            online_nodes = add_list_element(online_nodes, node_name);
7100e8
+            if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
+                online_remote_containers = add_list_element(online_remote_containers, node_name);
7100e8
+            } else if (node->details->remote_rsc) {
7100e8
+                online_remote_nodes = add_list_element(online_remote_nodes, node_name);
7100e8
+            } else {
7100e8
+                online_nodes = add_list_element(online_nodes, node_name);
7100e8
+            }
7100e8
             free(node_name);
7100e8
             continue;
7100e8
 
7100e8
         } else {
7100e8
             node_mode = "OFFLINE";
7100e8
-            offline_nodes = add_list_element(offline_nodes, node_name);
7100e8
+            if (node->details->remote_rsc) {
7100e8
+                if (node->details->remote_rsc->container == NULL) {
7100e8
+                    offline_remote_nodes = add_list_element(offline_remote_nodes, node_name);
7100e8
+                } else {
7100e8
+                    /* ignore displaying offline container nodes */
7100e8
+                }
7100e8
+            } else {
7100e8
+                offline_nodes = add_list_element(offline_nodes, node_name);
7100e8
+            }
7100e8
             free(node_name);
7100e8
             continue;
7100e8
         }
7100e8
 
7100e8
-        if (safe_str_eq(node_name, node->details->id)) {
7100e8
+        if (node->details->remote_rsc && node->details->remote_rsc->container) {
7100e8
+            printf("ContainerNode %s: %s\n", node_name, node_mode);
7100e8
+        } else if (node->details->remote_rsc) {
7100e8
+            printf("RemoteNode %s: %s\n", node_name, node_mode);
7100e8
+        } else if (safe_str_eq(node->details->uname, node->details->id)) {
7100e8
             printf("Node %s: %s\n", node_name, node_mode);
7100e8
         } else {
7100e8
             printf("Node %s (%s): %s\n", node_name, node->details->id, node_mode);
7100e8
         }
7100e8
+
7100e8
         free(node_name);
7100e8
     }
7100e8
 
7100e8
@@ -605,6 +629,18 @@ print_cluster_status(pe_working_set_t * data_set)
7100e8
         printf("OFFLINE: [%s ]\n", offline_nodes);
7100e8
         free(offline_nodes);
7100e8
     }
7100e8
+    if (online_remote_nodes) {
7100e8
+        printf("RemoteOnline: [%s ]\n", online_remote_nodes);
7100e8
+        free(online_remote_nodes);
7100e8
+    }
7100e8
+    if (offline_remote_nodes) {
7100e8
+        printf("RemoteOFFLINE: [%s ]\n", offline_remote_nodes);
7100e8
+        free(offline_remote_nodes);
7100e8
+    }
7100e8
+    if (online_remote_containers) {
7100e8
+        printf("Containers: [%s ]\n", online_remote_containers);
7100e8
+        free(online_remote_containers);
7100e8
+    }
7100e8
 
7100e8
     fprintf(stdout, "\n");
7100e8
     for (gIter = data_set->resources; gIter != NULL; gIter = gIter->next) {