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