diff --git a/crm/admin/cibadmin.c b/crm/admin/cibadmin.c index 575270310a..d795f99fe0 100644 --- a/crm/admin/cibadmin.c +++ b/crm/admin/cibadmin.c @@ -1,566 +1,566 @@ -/* $Id: cibadmin.c,v 1.55 2006/07/03 15:15:30 andrew Exp $ */ +/* $Id: cibadmin.c,v 1.56 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GETOPT_H # include #endif #include /* someone complaining about _ha_msg_mod not being found */ #include int exit_code = cib_ok; int message_timer_id = -1; int message_timeout_ms = 30*1000; GMainLoop *mainloop = NULL; const char *crm_system_name = "cibadmin"; IPC_Channel *crmd_channel = NULL; const char *host = NULL; void usage(const char *cmd, int exit_status); enum cib_errors do_init(void); int do_work(crm_data_t *input, int command_options, crm_data_t **output); gboolean admin_msg_callback(IPC_Channel * source_data, void *private_data); gboolean admin_message_timeout(gpointer data); void cib_connection_destroy(gpointer user_data); void cibadmin_op_callback(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void *user_data); int command_options = 0; const char *cib_action = NULL; typedef struct str_list_s { int num_items; char *value; struct str_list_s *next; } str_list_t; char *this_msg_reference = NULL; char *obj_type = NULL; char *status = NULL; char *migrate_from = NULL; char *migrate_res = NULL; char *subtype = NULL; char *reset = NULL; int request_id = 0; int operation_status = 0; cib_t *the_cib = NULL; #define OPTARGS "V?o:QDUCEX:t:Srwlsh:MmBfbdRx:pP" int main(int argc, char **argv) { int argerr = 0; int flag; char *admin_input_xml = NULL; char *admin_input_file = NULL; gboolean admin_input_stdin = FALSE; crm_data_t *output = NULL; crm_data_t *input = NULL; #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {CIB_OP_ERASE, 0, 0, 'E'}, {CIB_OP_QUERY, 0, 0, 'Q'}, {CIB_OP_CREATE, 0, 0, 'C'}, {CIB_OP_REPLACE, 0, 0, 'R'}, {CIB_OP_UPDATE, 0, 0, 'U'}, {CIB_OP_MODIFY, 0, 0, 'M'}, {"patch", 0, 0, 'P'}, {CIB_OP_DELETE, 0, 0, 'D'}, {CIB_OP_DELETE_ALT, 0, 0, 'd'}, {CIB_OP_BUMP, 0, 0, 'B'}, {CIB_OP_SYNC, 0, 0, 'S'}, {CIB_OP_SLAVE, 0, 0, 'r'}, {CIB_OP_MASTER, 0, 0, 'w'}, {CIB_OP_ISMASTER,0, 0, 'm'}, {"force-quorum",0, 0, 'f'}, {"local", 0, 0, 'l'}, {"sync-call", 0, 0, 's'}, {"no-bcast", 0, 0, 'b'}, {"host", 0, 0, 'h'}, {F_CRM_DATA, 1, 0, 'X'}, {"xml-file", 1, 0, 'x'}, {"xml-pipe", 0, 0, 'p'}, {"verbose", 0, 0, 'V'}, {"help", 0, 0, '?'}, {"reference", 1, 0, 0}, {"timeout", 1, 0, 't'}, /* common options */ {"obj_type", 1, 0, 'o'}, {0, 0, 0, 0} }; #endif cl_log_set_entity("cibadmin"); cl_log_set_facility(LOG_USER); set_crm_log_level(LOG_CRIT-1); if(argc < 2) { usage(crm_system_name, LSB_EXIT_EINVAL); } while (1) { #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { #ifdef HAVE_GETOPT_H case 0: printf("option %s", long_options[option_index].name); if (optarg) printf(" with arg %s", optarg); printf("\n"); if (safe_str_eq("reference", long_options[option_index].name)) { this_msg_reference = crm_strdup(optarg); } else { printf("Long option (--%s) is not (yet?) properly supported\n", long_options[option_index].name); ++argerr; } break; #endif case 't': message_timeout_ms = atoi(optarg); if(message_timeout_ms < 1) { message_timeout_ms = 30*1000; } break; case 'E': cib_action = CIB_OP_ERASE; break; case 'Q': cib_action = CIB_OP_QUERY; break; case 'P': cib_action = CIB_OP_APPLY_DIFF; break; case 'S': cib_action = CIB_OP_SYNC; break; case 'U': case 'M': cib_action = CIB_OP_MODIFY; break; case 'R': cib_action = CIB_OP_REPLACE; break; case 'C': cib_action = CIB_OP_CREATE; break; case 'D': cib_action = CIB_OP_DELETE; break; case 'd': cib_action = CIB_OP_DELETE_ALT; break; case 'm': cib_action = CIB_OP_ISMASTER; command_options |= cib_scope_local; break; case 'B': cib_action = CIB_OP_BUMP; break; case 'r': cib_action = CIB_OP_SLAVE; break; case 'w': cib_action = CIB_OP_MASTER; command_options |= cib_scope_local; break; case 'V': command_options = command_options | cib_verbose; cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; case '?': usage(crm_system_name, LSB_EXIT_OK); break; case 'o': crm_debug_2("Option %c => %s", flag, optarg); obj_type = crm_strdup(optarg); break; case 'X': crm_debug_2("Option %c => %s", flag, optarg); admin_input_xml = crm_strdup(optarg); break; case 'x': crm_debug_2("Option %c => %s", flag, optarg); admin_input_file = crm_strdup(optarg); break; case 'p': admin_input_stdin = TRUE; break; case 'h': host = crm_strdup(optarg); break; case 'l': command_options |= cib_scope_local; break; case 'b': command_options |= cib_inhibit_bcast; command_options |= cib_scope_local; break; case 's': command_options |= cib_sync_call; break; case 'f': command_options |= cib_quorum_override; break; default: printf("Argument code 0%o (%c)" " is not (?yet?) supported\n", flag, flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) printf("%s ", argv[optind++]); printf("\n"); } if (optind > argc) { ++argerr; } if(cib_action == NULL) { usage(crm_system_name, cib_operation); } if (argerr) { usage(crm_system_name, LSB_EXIT_GENERIC); } if(admin_input_file != NULL) { FILE *xml_strm = fopen(admin_input_file, "r"); - input = file2xml(xml_strm); + input = file2xml(xml_strm, FALSE); if(input == NULL) { fprintf(stderr, "Couldn't parse input file: %s\n", admin_input_file); return 1; } } else if(admin_input_xml != NULL) { input = string2xml(admin_input_xml); if(input == NULL) { fprintf(stderr, "Couldn't parse input string: %s\n", admin_input_xml); return 1; } } else if(admin_input_stdin) { input = stdin2xml(); if(input == NULL) { fprintf(stderr, "Couldn't parse input from STDIN.\n"); return 1; } } if(input != NULL) { crm_log_xml_debug(input, "[admin input]"); } exit_code = do_init(); if(exit_code != cib_ok) { crm_err("Init failed, could not perform requested operations"); fprintf(stderr, "Init failed, could not perform requested operations\n"); return -exit_code; } exit_code = do_work(input, command_options, &output); if (exit_code > 0) { /* wait for the reply by creating a mainloop and running it until * the callbacks are invoked... */ request_id = exit_code; add_cib_op_callback( request_id, FALSE, NULL, cibadmin_op_callback); mainloop = g_main_new(FALSE); crm_debug("Setting operation timeout to %dms for call %d", message_timeout_ms, request_id); message_timer_id = Gmain_timeout_add( message_timeout_ms, admin_message_timeout, NULL); crm_debug_3("%s waiting for reply from the local CIB", crm_system_name); crm_info("Starting mainloop"); g_main_run(mainloop); } else if(exit_code < 0) { crm_err("Call failed: %s", cib_error2string(exit_code)); fprintf(stderr, "Call failed: %s\n", cib_error2string(exit_code)); operation_status = exit_code; } if(output != NULL) { char *buffer = dump_xml_formatted(output); fprintf(stdout, "%s", crm_str(buffer)); crm_free(buffer); } crm_debug_3("%s exiting normally", crm_system_name); return -exit_code; } int do_work(crm_data_t *input, int call_options, crm_data_t **output) { /* construct the request */ if (strcasecmp(CIB_OP_SYNC, cib_action) == 0) { crm_debug_4("Performing %s op...", cib_action); return the_cib->cmds->sync_from( the_cib, host, obj_type, call_options); } else if (strcasecmp(CIB_OP_SLAVE, cib_action) == 0 && (call_options ^ cib_scope_local) ) { crm_debug_4("Performing %s op on all nodes...", cib_action); return the_cib->cmds->set_slave_all(the_cib, call_options); } else if (strcasecmp(CIB_OP_MASTER, cib_action) == 0) { crm_debug_4("Performing %s op on all nodes...", cib_action); return the_cib->cmds->set_master(the_cib, call_options); } else if(cib_action != NULL) { crm_debug_4("Passing \"%s\" to variant_op...", cib_action); if(input != NULL && do_id_check(input, NULL, TRUE, FALSE)) { crm_err("ID Check failed."); return cib_id_check; } return the_cib->cmds->variant_op( the_cib, cib_action, host, obj_type, input, output, call_options); } else { crm_err("You must specify an operation"); } return cib_operation; } enum cib_errors do_init(void) { enum cib_errors rc = cib_ok; the_cib = cib_new(); rc = the_cib->cmds->signon(the_cib, crm_system_name, cib_command); if(rc != cib_ok) { crm_err("Signon to CIB failed: %s", cib_error2string(rc)); fprintf(stderr, "Signon to CIB failed: %s\n", cib_error2string(rc)); } return rc; } void usage(const char *cmd, int exit_status) { FILE *stream; stream = exit_status != 0 ? stderr : stdout; fprintf(stream, "usage: %s [%s] command\n" "\twhere necessary, XML data will be obtained using -X," " -x, or -p options\n", cmd, OPTARGS); fprintf(stream, "Options\n"); fprintf(stream, "\t--%s (-%c) \tobject type being operated on\n", "obj_type", 'o'); fprintf(stream, "\t\tValid values are: nodes, resources, constraints, crm_config, status\n"); fprintf(stream, "\t--%s (-%c)\tturn on debug info." " additional instance increase verbosity\n", "verbose", 'V'); fprintf(stream, "\t--%s (-%c)\tthis help message\n", "help", '?'); fprintf(stream, "\nCommands\n"); fprintf(stream, "\t--%s (-%c)\tErase the contents of the whole CIB\n", CIB_OP_ERASE, 'E'); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_QUERY, 'Q'); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_CREATE, 'C'); fprintf(stream, "\t--%s (-%c)\tRecursivly replace an object in the CIB\n", CIB_OP_REPLACE,'R'); fprintf(stream, "\t--%s (-%c)\tRecursivly update an object in the CIB\n", CIB_OP_UPDATE, 'U'); fprintf(stream, "\t--%s (-%c)\tFind the object somewhere in the CIB's XML tree and update is as --"CIB_OP_UPDATE" would\n", CIB_OP_MODIFY, 'M'); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_DELETE, 'D'); fprintf(stream, "\t\t\tDelete the first object matching the supplied criteria\n"); fprintf(stream, "\t\t\tEg. \n"); fprintf(stream, "\t\t\tThe tagname and all attributes must match in order for the element to be deleted\n"); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_DELETE_ALT, 'd'); fprintf(stream, "\t\t\tDelete the object at specified fully qualified location\n"); fprintf(stream, "\t\t\tEg. ...\n"); fprintf(stream, "\t\t\tRequires -o\n"); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_BUMP, 'B'); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_ISMASTER,'m'); fprintf(stream, "\t--%s (-%c)\t\n", CIB_OP_SYNC, 'S'); fprintf(stream, "\nXML data\n"); fprintf(stream, "\t--%s (-%c) \t\tRetrieve XML from the supplied string\n", F_CRM_DATA, 'X'); fprintf(stream, "\t--%s (-%c) \tRetrieve XML from the named file\n", "xml-file", 'x'); fprintf(stream, "\t--%s (-%c)\t\t\tRetrieve XML from STDIN\n", "xml-pipe", 'p'); fprintf(stream, "\nAdvanced Options\n"); fprintf(stream, "\t--%s (-%c)\tsend command to specified host." " Applies to %s and %s commands only\n", "host", 'h', CIB_OP_QUERY, CIB_OP_SYNC); fprintf(stream, "\t--%s (-%c)\tcommand takes effect locally" " on the specified host\n", "local", 'l'); fprintf(stream, "\t--%s (-%c)\tcommand will not be broadcast even if" " it altered the CIB\n", "no-bcast", 'b'); fprintf(stream, "\t--%s (-%c)\twait for call to complete before" " returning\n", "sync-call", 's'); fflush(stream); exit(exit_status); } gboolean admin_message_timeout(gpointer data) { if(safe_str_eq(cib_action, CIB_OP_SLAVE)) { exit_code = cib_ok; fprintf(stdout, "CIB service(s) are in slave mode.\n"); } else { exit_code = cib_reply_failed; fprintf(stderr, "No messages received in %d seconds.. aborting\n", (int)message_timeout_ms/1000); crm_err("No messages received in %d seconds", (int)message_timeout_ms/1000); } g_main_quit(mainloop); return FALSE; } void cib_connection_destroy(gpointer user_data) { crm_err("Connection to the CIB terminated... exiting"); g_main_quit(mainloop); return; } void cibadmin_op_callback(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void *user_data) { char *admin_input_xml = NULL; crm_info("our callback was invoked"); crm_log_message(LOG_MSG, msg); exit_code = rc; if(output != NULL) { admin_input_xml = dump_xml_formatted(output); } if(safe_str_eq(cib_action, CIB_OP_ISMASTER) && rc != cib_ok) { crm_info("CIB on %s is _not_ the master instance", host?host:"localhost"); fprintf(stderr, "CIB on %s is _not_ the master instance\n", host?host:"localhost"); } else if(safe_str_eq(cib_action, CIB_OP_ISMASTER)) { crm_info("CIB on %s _is_ the master instance", host?host:"localhost"); fprintf(stderr, "CIB on %s _is_ the master instance\n", host?host:"localhost"); } else if(rc != 0) { crm_warn("Call %s failed (%d): %s", cib_action, rc, cib_error2string(rc)); fprintf(stderr, "Call %s failed (%d): %s\n", cib_action, rc, cib_error2string(rc)); fprintf(stdout, "%s\n", crm_str(admin_input_xml)); } else if(safe_str_eq(cib_action, CIB_OP_QUERY) && output==NULL) { crm_err("Output expected in query response"); crm_log_message(LOG_ERR, msg); } else if(output == NULL) { crm_info("Call passed"); } else { crm_info("Call passed"); fprintf(stdout, "%s\n", crm_str(admin_input_xml)); } crm_free(admin_input_xml); if(call_id == request_id) { g_main_quit(mainloop); } else { crm_info("Message was not the response we were looking for (%d vs. %d", call_id, request_id); } } diff --git a/crm/admin/crm_mon.c b/crm/admin/crm_mon.c index 474db0e774..1c91e58884 100644 --- a/crm/admin/crm_mon.c +++ b/crm/admin/crm_mon.c @@ -1,690 +1,695 @@ -/* $Id: crm_mon.c,v 1.28 2006/06/19 10:56:50 andrew Exp $ */ +/* $Id: crm_mon.c,v 1.29 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GETOPT_H # include #endif #include /* GMainLoop *mainloop = NULL; */ const char *crm_system_name = "crm_mon"; #define OPTARGS "V?i:nrh:cdp:1X:" void usage(const char *cmd, int exit_status); void blank_screen(void); int print_status(crm_data_t *cib); /* #define printw_at(line, fmt...) move(line, 0); printw(fmt); line++ */ void wait_for_refresh(int offset, const char *prefix, int msec); int print_html_status(crm_data_t *cib, const char *filename); void make_daemon(gboolean daemonize, const char *pidfile); gboolean mon_timer_popped(gpointer data); void mon_update(const HA_Message*, int, int, crm_data_t*,void*); char *xml_file = NULL; char *as_html_file = NULL; char *pid_file = NULL; gboolean as_console = FALSE; gboolean group_by_node = FALSE; gboolean inactive_resources = FALSE; int interval = 15000; gboolean daemonize = FALSE; GMainLoop* mainloop = NULL; guint timer_id = 0; cib_t *cib_conn = NULL; int failed_connections = 0; gboolean one_shot = FALSE; #if CURSES_ENABLED # define print_as(fmt...) if(as_console) { \ printw(fmt); \ } else { \ fprintf(stdout, fmt); \ } #else # define print_as(fmt...) fprintf(stdout, fmt); #endif int main(int argc, char **argv) { int argerr = 0; int flag; #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {"verbose", 0, 0, 'V'}, {"help", 0, 0, '?'}, {"interval", 1, 0, 'i'}, {"group-by-node", 0, 0, 'n'}, {"inactive", 0, 0, 'r'}, {"as-html", 1, 0, 'h'}, {"as-console", 0, 0, 'c'}, {"one-shot", 0, 0, '1'}, {"daemonize", 0, 0, 'd'}, {"pid-file", 0, 0, 'p'}, {"xml-file", 0, 0, 'X'}, {0, 0, 0, 0} }; #endif pid_file = crm_strdup("/tmp/ClusterMon.pid"); crm_system_name = basename(argv[0]); crm_log_init(crm_system_name); crm_log_level = LOG_ERR -1; while (1) { #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { case 'V': cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; case 'i': interval = crm_get_msec(optarg); break; case 'n': group_by_node = TRUE; break; case 'r': inactive_resources = TRUE; break; case 'd': daemonize = TRUE; break; case 'p': pid_file = crm_strdup(optarg); break; case 'X': xml_file = crm_strdup(optarg); one_shot = TRUE; break; case 'h': as_html_file = crm_strdup(optarg); break; case 'c': #if CURSES_ENABLED as_console = TRUE; #else printf("You need to have curses available at compile time to enable console mode\n"); argerr++; #endif break; case '1': one_shot = TRUE; break; default: printf("Argument code 0%o (%c) is not (?yet?) supported\n", flag, flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) printf("%s ", argv[optind++]); printf("\n"); } if (argerr) { usage(crm_system_name, LSB_EXIT_GENERIC); } if(as_html_file == NULL) { #if CURSES_ENABLED as_console = TRUE; #else printf("Defaulting to one-shot mode\n"); printf("You need to have curses available at compile time to enable console mode\n"); one_shot = TRUE; #endif } if(daemonize) { as_console = FALSE; } if(one_shot) { daemonize = FALSE; as_console = FALSE; } if(daemonize && as_html_file == NULL) { usage(crm_system_name, LSB_EXIT_GENERIC); } make_daemon(daemonize, pid_file); if(as_console) { initscr(); cbreak(); noecho(); } crm_info("Starting %s", crm_system_name); mainloop = g_main_new(FALSE); if(one_shot == FALSE) { timer_id = Gmain_timeout_add( interval, mon_timer_popped, NULL); } else if(xml_file != NULL) { FILE *xml_strm = fopen(xml_file, "r"); - crm_data_t *cib_object = file2xml(xml_strm); + crm_data_t *cib_object = NULL; + if(strstr(xml_file, ".bz2") != NULL) { + cib_object = file2xml(xml_strm, TRUE); + } else { + cib_object = file2xml(xml_strm, FALSE); + } one_shot = TRUE; mon_update(NULL, 0, cib_ok, cib_object, NULL); } mon_timer_popped(NULL); g_main_run(mainloop); return_to_orig_privs(); crm_info("Exiting %s", crm_system_name); if(as_console) { echo(); nocbreak(); endwin(); } return 0; } gboolean mon_timer_popped(gpointer data) { int rc = cib_ok; int options = cib_scope_local; if(timer_id > 0) { Gmain_timeout_remove(timer_id); } if(as_console) { #if CURSES_ENABLED move(0, 0); printw("Updating...\n"); clrtoeol(); refresh(); #endif } else { crm_notice("Updating..."); } if(cib_conn == NULL) { crm_debug_4("Creating CIB connection"); cib_conn = cib_new(); } CRM_DEV_ASSERT(cib_conn != NULL); if(crm_assert_failed) { return FALSE; } else if(cib_conn->state != cib_connected_query){ crm_debug_4("Connecting to the CIB"); #if CURSES_ENABLED if(as_console) { printw("Signing on...\n"); clrtoeol(); refresh(); } #endif if(cib_ok == cib_conn->cmds->signon( cib_conn, crm_system_name, cib_query)) { failed_connections = 0; } else { failed_connections++; CRM_DEV_ASSERT(cib_conn->cmds->signoff(cib_conn) == cib_ok); wait_for_refresh(0, "Not connected: ", 2*interval); return FALSE; } #if CURSES_ENABLED if(as_console) { printw("Querying...\n"); clrtoeol(); refresh(); } #endif } if(as_console) { blank_screen(); } rc = cib_conn->cmds->query(cib_conn, NULL, NULL, options); add_cib_op_callback(rc, FALSE, NULL, mon_update); return FALSE; } void mon_update(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void*user_data) { const char *prefix = NULL; if(rc == cib_ok) { crm_data_t *cib = NULL; #if CRM_DEPRECATED_SINCE_2_0_4 if( safe_str_eq(crm_element_name(output), XML_TAG_CIB) ) { cib = output; } else { cib = find_xml_node(output,XML_TAG_CIB,TRUE); } #else cib = output; CRM_DEV_ASSERT(safe_str_eq(crm_element_name(cib), XML_TAG_CIB)); #endif if(as_html_file) { print_html_status(cib, as_html_file); } else { print_status(cib); } if(one_shot) { exit(LSB_EXIT_OK); } } else if(one_shot) { fprintf(stderr, "Query failed: %s", cib_error2string(rc)); exit(LSB_EXIT_OK); } else { CRM_DEV_ASSERT(cib_conn->cmds->signoff(cib_conn) == cib_ok); crm_err("Query failed: %s", cib_error2string(rc)); prefix = "Query failed! "; } wait_for_refresh(0, prefix, interval); } void wait_for_refresh(int offset, const char *prefix, int msec) { int lpc = msec / 1000; if(as_console == FALSE) { timer_id = Gmain_timeout_add(msec, mon_timer_popped, NULL); return; } crm_notice("%sRefresh in %ds...", prefix?prefix:"", lpc); while(lpc > 0) { #if CURSES_ENABLED move(0, 0); /* printw("%sRefresh in \033[01;32m%ds\033[00m...", prefix?prefix:"", lpc); */ printw("%sRefresh in %ds...\n", prefix?prefix:"", lpc); clrtoeol(); refresh(); #endif lpc--; if(lpc == 0) { timer_id = Gmain_timeout_add( 1000, mon_timer_popped, NULL); } else { sleep(1); } } } int print_status(crm_data_t *cib) { node_t *dc = NULL; static int updates = 0; pe_working_set_t data_set; char *since_epoch = NULL; time_t a_time = time(NULL); int print_opts = pe_print_ncurses; if(as_console) { blank_screen(); } else { print_opts = pe_print_printf; } updates++; set_working_set_defaults(&data_set); data_set.input = cib; cluster_status(&data_set); dc = data_set.dc_node; print_as("\n\n============\n"); if(a_time == (time_t)-1) { cl_perror("set_node_tstamp(): Invalid time returned"); return 1; } since_epoch = ctime(&a_time); if(since_epoch != NULL) { print_as("Last updated: %s", since_epoch); } if(dc == NULL) { print_as("Current DC: NONE\n"); } else { print_as("Current DC: %s (%s)\n", dc->details->uname, dc->details->id); } print_as("%d Nodes configured.\n", g_list_length(data_set.nodes)); print_as("%d Resources configured.\n", g_list_length(data_set.resources)); print_as("============\n\n"); slist_iter(node, node_t, data_set.nodes, lpc2, const char *node_mode = "OFFLINE"; if(node->details->standby) { node_mode = "standby"; } else if(node->details->online) { node_mode = "online"; } print_as("Node: %s (%s): %s\n", node->details->uname, node->details->id, node_mode); if(group_by_node) { slist_iter(rsc, resource_t, node->details->running_rsc, lpc2, rsc->fns->print( rsc, "\t", print_opts|pe_print_rsconly, stdout); ); } ); if(group_by_node == FALSE && inactive_resources) { print_as("\nFull list of resources:\n"); } else if(inactive_resources) { print_as("\nInactive resources:\n"); } if(group_by_node == FALSE || inactive_resources) { print_as("\n"); slist_iter(rsc, resource_t, data_set.resources, lpc2, gboolean is_active = rsc->fns->active(rsc, TRUE); gboolean partially_active = rsc->fns->active(rsc, FALSE); if(rsc->orphan && is_active == FALSE) { continue; } else if(group_by_node == FALSE) { if(partially_active || inactive_resources) { rsc->fns->print(rsc, NULL, print_opts, stdout); } } else if(is_active == FALSE && inactive_resources) { rsc->fns->print(rsc, NULL, print_opts, stdout); } ); } #if CURSES_ENABLED if(as_console) { refresh(); } #endif data_set.input = NULL; cleanup_calculations(&data_set); return 0; } int print_html_status(crm_data_t *cib, const char *filename) { static int updates = 0; pe_working_set_t data_set; node_t *dc = NULL; char *filename_tmp = crm_concat(filename, "tmp", '.'); FILE *stream = fopen(filename_tmp, "w"); if(stream == NULL) { crm_free(filename_tmp); return -1; } updates++; set_working_set_defaults(&data_set); data_set.input = cib; cluster_status(&data_set); dc = data_set.dc_node; fprintf(stream, ""); fprintf(stream, ""); fprintf(stream, "Cluster status"); /* content="%d;url=http://webdesign.about.com" */ fprintf(stream, "", interval); fprintf(stream, ""); /*** SUMMARY ***/ fprintf(stream, "

Cluster summary

"); { char *now_str = NULL; time_t now = time(NULL); now_str = ctime(&now); now_str[24] = EOS; /* replace the newline */ fprintf(stream, "Last updated: %s
\n", now_str); } if(dc == NULL) { fprintf(stream, "Current DC: NONE
"); } else { fprintf(stream, "Current DC: %s (%s)
", dc->details->uname, dc->details->id); } fprintf(stream, "%d Nodes configured.
", g_list_length(data_set.nodes)); fprintf(stream, "%d Resources configured.
", g_list_length(data_set.resources)); /*** CONFIG ***/ fprintf(stream, "

Config Options

\n"); fprintf(stream, "\n"); fprintf(stream, "\n", data_set.default_resource_stickiness); fprintf(stream, "\n", data_set.stonith_enabled?"enabled":"disabled"); fprintf(stream, "\n", data_set.symmetric_cluster?"":"a-"); fprintf(stream, "\n
Default resource stickiness:%d
STONITH of failed nodes:%s
Cluster is:%ssymmetric
No Quorum Policy:"); switch (data_set.no_quorum_policy) { case no_quorum_freeze: fprintf(stream, "Freeze resources"); break; case no_quorum_stop: fprintf(stream, "Stop ALL resources"); break; case no_quorum_ignore: fprintf(stream, "Ignore"); break; } fprintf(stream, "\n
\n"); /*** NODE LIST ***/ fprintf(stream, "

Node List

\n"); fprintf(stream, "
    \n"); slist_iter(node, node_t, data_set.nodes, lpc2, fprintf(stream, "
  • "); fprintf(stream, "Node: %s (%s): %s", node->details->uname, node->details->id, node->details->online?"online\n":"OFFLINE\n"); if(group_by_node) { fprintf(stream, "
      \n"); slist_iter(rsc, resource_t, node->details->running_rsc, lpc2, fprintf(stream, "
    • "); rsc->fns->print(rsc, NULL, pe_print_html, stream); fprintf(stream, "
    • \n"); ); fprintf(stream, "
    \n"); } fprintf(stream, "
  • \n"); ); fprintf(stream, "
\n"); if(group_by_node && inactive_resources) { fprintf(stream, "

(Partially) Inactive Resources

\n"); } else if(group_by_node == FALSE) { fprintf(stream, "

Resource List

\n"); } if(group_by_node == FALSE || inactive_resources) { slist_iter(rsc, resource_t, data_set.resources, lpc2, if(group_by_node && rsc->fns->active(rsc, TRUE)) { continue; } rsc->fns->print(rsc, NULL, pe_print_html, stream); ); } data_set.input = NULL; cleanup_calculations(&data_set); fprintf(stream, ""); fflush(stream); fclose(stream); if(rename(filename_tmp, filename) != 0) { cl_perror("Unable to rename %s->%s", filename_tmp, filename); } crm_free(filename_tmp); return 0; } void blank_screen(void) { #if CURSES_ENABLED int lpc = 0; for(lpc = 0; lpc < LINES; lpc++) { move(lpc, 0); clrtoeol(); } move(0, 0); #endif } void usage(const char *cmd, int exit_status) { FILE *stream; stream = exit_status ? stderr : stdout; fprintf(stream, "usage: %s [-%s]\n", cmd, OPTARGS); fprintf(stream, "\t--%s (-%c) \t: This text\n", "help", '?'); fprintf(stream, "\t--%s (-%c) \t: Increase the debug output\n", "verbose", 'V'); fprintf(stream, "\t--%s (-%c) \t: Update frequency\n", "interval", 'i'); fprintf(stream, "\t--%s (-%c) \t:Group resources by node\n", "group-by-node", 'n'); fprintf(stream, "\t--%s (-%c) \t:Display inactive resources\n", "inactive", 'r'); fprintf(stream, "\t--%s (-%c) \t: Display cluster status on the console\n", "as-console", 'c'); fprintf(stream, "\t--%s (-%c) \t: Display the cluster status once on " "the console and exit (doesnt use ncurses)\n", "one-shot", '1'); fprintf(stream, "\t--%s (-%c) \t: Write cluster status to the named file\n", "as-html", 'h'); fprintf(stream, "\t--%s (-%c) \t: Run in the background as a daemon\n", "daemonize", 'd'); fprintf(stream, "\t--%s (-%c) \t: Daemon pid file location\n", "pid-file", 'p'); fflush(stream); exit(exit_status); } void make_daemon(gboolean daemonize, const char *pidfile) { long pid; const char *devnull = "/dev/null"; if (daemonize == FALSE){ return; } pid = fork(); if (pid < 0) { fprintf(stderr, "%s: could not start daemon\n", crm_system_name); perror("fork"); exit(LSB_EXIT_GENERIC); } else if (pid > 0) { exit(LSB_EXIT_OK); } if (cl_lock_pidfile(pidfile) < 0 ){ pid = cl_read_pidfile(pidfile); fprintf(stderr, "%s: already running [pid %ld].\n", crm_system_name, pid); exit(LSB_EXIT_OK); } umask(022); close(FD_STDIN); (void)open(devnull, O_RDONLY); /* Stdin: fd 0 */ close(FD_STDOUT); (void)open(devnull, O_WRONLY); /* Stdout: fd 1 */ close(FD_STDERR); (void)open(devnull, O_WRONLY); /* Stderr: fd 2 */ } diff --git a/crm/admin/crm_resource.c b/crm/admin/crm_resource.c index 48a06c5872..0edc777e4e 100644 --- a/crm/admin/crm_resource.c +++ b/crm/admin/crm_resource.c @@ -1,1057 +1,1062 @@ -/* $Id: crm_resource.c,v 1.43 2006/07/06 09:30:27 andrew Exp $ */ +/* $Id: crm_resource.c,v 1.44 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GETOPT_H # include #endif #include void usage(const char *cmd, int exit_status); gboolean do_force = FALSE; gboolean BE_QUIET = FALSE; char *host_id = NULL; const char *rsc_id = NULL; const char *host_uname = NULL; const char *crm_system_name = NULL; const char *prop_name = NULL; const char *prop_value = NULL; const char *rsc_type = NULL; const char *prop_id = NULL; const char *prop_set = NULL; char rsc_cmd = 'L'; char *our_pid = NULL; IPC_Channel *crmd_channel = NULL; char *xml_file = NULL; #define OPTARGS "V?LRQxDCPp:WMUr:H:v:t:p:g:d:i:s:G:S:fX:l" static int do_find_resource(const char *rsc, pe_working_set_t *data_set) { int found = 0; resource_t *the_rsc = pe_find_resource(data_set->resources, rsc); if(the_rsc == NULL) { return cib_NOTEXISTS; } slist_iter(node, node_t, the_rsc->running_on, lpc, crm_debug_3("resource %s is running on: %s", rsc, node->details->uname); if(BE_QUIET) { fprintf(stdout, "%s\n ", node->details->uname); } else { fprintf(stdout, "resource %s is running on: %s\n", rsc, node->details->uname); } found++; ); if(BE_QUIET == FALSE && found == 0) { fprintf(stderr, "resource %s is NOT running\n", rsc); } return 0; } static void print_raw_rsc(resource_t *rsc, int level) { int lpc = 0; GListPtr children = NULL; for(; lpc < level; lpc++) { printf(" "); } printf(" * %s\n", rsc->id); children = rsc->fns->children(rsc); slist_iter(child, resource_t, children, lpc, print_raw_rsc(child, level+1); ); } static int do_find_resource_list(pe_working_set_t *data_set, gboolean raw) { int found = 0; slist_iter( rsc, resource_t, data_set->resources, lpc, if(raw) { found++; print_raw_rsc(rsc, 0); continue; } else if(rsc->orphan && rsc->fns->active(rsc, TRUE) == FALSE) { continue; } rsc->fns->print( rsc, NULL, pe_print_printf|pe_print_rsconly, stdout); found++; ); if(found == 0) { printf("NO resources configured\n"); return cib_NOTEXISTS; } return 0; } static int dump_resource(const char *rsc, pe_working_set_t *data_set) { char *rsc_xml = NULL; resource_t *the_rsc = pe_find_resource(data_set->resources, rsc); if(the_rsc == NULL) { return cib_NOTEXISTS; } the_rsc->fns->print(the_rsc, NULL, pe_print_printf, stdout); rsc_xml = dump_xml_formatted(the_rsc->xml); fprintf(stdout, "raw xml:\n%s", rsc_xml); crm_free(rsc_xml); return 0; } static int dump_resource_attr( const char *rsc, const char *attr, pe_working_set_t *data_set) { node_t *current = NULL; resource_t *the_rsc = pe_find_resource(data_set->resources, rsc); const char *value = NULL; if(the_rsc == NULL) { return cib_NOTEXISTS; } if(g_list_length(the_rsc->running_on) == 1) { current = the_rsc->running_on->data; } else if(g_list_length(the_rsc->running_on) > 1) { fprintf(stderr, "%s is active on more than one node," " returning the default value for %s\n", the_rsc->id, value); } unpack_instance_attributes( the_rsc->xml, XML_TAG_ATTR_SETS, current?current->details->attrs:NULL, the_rsc->parameters, NULL, data_set->now); if(the_rsc->parameters != NULL) { crm_debug("Looking up %s in %s", attr, the_rsc->id); value = g_hash_table_lookup(the_rsc->parameters, attr); } if(value != NULL) { fprintf(stdout, "%s\n", value); return 0; } return cib_NOTEXISTS; } static int set_resource_attr(const char *rsc_id, const char *attr_set, const char *attr_id, const char *attr_name, const char *attr_value, cib_t *cib, pe_working_set_t *data_set) { int rc = cib_ok; int cib_options = cib_sync_call; crm_data_t *xml_top = NULL; crm_data_t *xml_obj = NULL; resource_t *rsc = pe_find_resource(data_set->resources, rsc_id); char *local_attr_id = NULL; char *local_attr_set = NULL; if(do_force) { crm_debug("Forcing..."); cib_options |= cib_scope_local|cib_quorum_override; } if(rsc == NULL) { return cib_NOTEXISTS; } if(attr_set == NULL) { local_attr_set = crm_strdup(rsc->id); attr_set = local_attr_set; } if(attr_id == NULL) { local_attr_id = crm_concat(attr_set, attr_name, '-'); attr_id = local_attr_id; } xml_top = create_xml_node(NULL, crm_element_name(rsc->xml)); crm_xml_add(xml_top, XML_ATTR_ID, rsc->id); xml_obj = create_xml_node(xml_top, XML_TAG_ATTR_SETS); crm_xml_add(xml_obj, XML_ATTR_ID, attr_set); xml_obj = create_xml_node(xml_obj, XML_TAG_ATTRS); xml_obj = create_xml_node(xml_obj, XML_CIB_TAG_NVPAIR); crm_xml_add(xml_obj, XML_ATTR_ID, attr_id); crm_xml_add(xml_obj, XML_NVPAIR_ATTR_NAME, attr_name); crm_xml_add(xml_obj, XML_NVPAIR_ATTR_VALUE, attr_value); crm_log_xml_debug(xml_top, "Update"); rc = cib->cmds->modify(cib, XML_CIB_TAG_RESOURCES, xml_top, NULL, cib_options); free_xml(xml_top); crm_free(local_attr_id); crm_free(local_attr_set); return rc; } static int delete_resource_attr( const char *rsc_id, const char *attr_set, const char *attr_id, const char *attr_name, cib_t *cib, pe_working_set_t *data_set) { int rc = cib_ok; int cib_options = cib_sync_call; crm_data_t *xml_obj = NULL; resource_t *rsc = pe_find_resource(data_set->resources, rsc_id); char *local_attr_id = NULL; char *local_attr_set = NULL; if(do_force) { crm_debug("Forcing..."); cib_options |= cib_scope_local|cib_quorum_override; } if(rsc == NULL) { return cib_NOTEXISTS; } if(attr_set == NULL) { local_attr_set = crm_strdup(rsc->id); attr_set = local_attr_set; } if(attr_id == NULL) { local_attr_id = crm_concat(attr_set, attr_name, '-'); attr_id = local_attr_id; } xml_obj = create_xml_node(NULL, XML_CIB_TAG_NVPAIR); crm_xml_add(xml_obj, XML_ATTR_ID, attr_id); crm_xml_add(xml_obj, XML_NVPAIR_ATTR_NAME, attr_name); crm_log_xml_debug(xml_obj, "Delete"); rc = cib->cmds->delete(cib, XML_CIB_TAG_RESOURCES, xml_obj, NULL, cib_options); crm_free(local_attr_id); crm_free(local_attr_set); free_xml(xml_obj); return rc; } static int dump_resource_prop( const char *rsc, const char *attr, pe_working_set_t *data_set) { const char *value = NULL; resource_t *the_rsc = pe_find_resource(data_set->resources, rsc); if(the_rsc == NULL) { return cib_NOTEXISTS; } value = crm_element_value(the_rsc->xml, attr); if(value != NULL) { fprintf(stdout, "%s\n", value); return 0; } return cib_NOTEXISTS; } static void resource_ipc_connection_destroy(gpointer user_data) { crm_info("Connection to CRMd was terminated"); exit(1); } static gboolean crmd_msg_callback(IPC_Channel * server, void *private_data) { int lpc = 0; IPC_Message *msg = NULL; ha_msg_input_t *new_input = NULL; gboolean hack_return_good = TRUE; while (server->ch_status != IPC_DISCONNECT && server->ops->is_message_pending(server) == TRUE) { if(new_input != NULL) { delete_ha_msg_input(new_input); } if (server->ops->recv(server, &msg) != IPC_OK) { perror("Receive failure:"); return !hack_return_good; } if (msg == NULL) { crm_debug_4("No message this time"); continue; } lpc++; new_input = new_ipc_msg_input(msg); crm_log_message(LOG_MSG, new_input->msg); msg->msg_done(msg); if (validate_crm_message( new_input->msg, crm_system_name, our_pid, XML_ATTR_RESPONSE) == FALSE) { crm_info("Message was not a CRM response. Discarding."); continue; } /* result = cl_get_string(new_input->msg, XML_ATTR_RESULT); */ /* if(result == NULL || strcasecmp(result, "ok") == 0) { */ /* result = "pass"; */ /* } else { */ /* result = "fail"; */ /* } */ } if (server->ch_status == IPC_DISCONNECT) { crm_debug_2("admin_msg_callback: received HUP"); return !hack_return_good; } return hack_return_good; } static int delete_lrm_rsc( IPC_Channel *crmd_channel, const char *host_uname, const char *rsc_id, const char *rsc_long_id) { int rc = cib_send_failed; HA_Message *cmd = NULL; crm_data_t *msg_data = NULL; crm_data_t *rsc = NULL; HA_Message *params = NULL; char *key = crm_concat(crm_system_name, our_pid, '-'); CRM_DEV_ASSERT(rsc_id != NULL); msg_data = create_xml_node(NULL, XML_GRAPH_TAG_RSC_OP); crm_xml_add(msg_data, XML_ATTR_TRANSITION_KEY, key); rsc = create_xml_node(msg_data, XML_CIB_TAG_RESOURCE); crm_xml_add(rsc, XML_ATTR_ID, rsc_id); crm_xml_add(rsc, XML_ATTR_ID_LONG, rsc_long_id); params = create_xml_node(msg_data, XML_TAG_ATTRS); crm_xml_add(params, XML_ATTR_CRM_VERSION, CRM_FEATURE_SET); cmd = create_request(CRM_OP_LRM_DELETE, msg_data, host_uname, CRM_SYSTEM_CRMD, crm_system_name, our_pid); free_xml(msg_data); crm_free(key); if(send_ipc_message(crmd_channel, cmd)) { rc = 0; } crm_msg_del(cmd); return rc; } static int refresh_lrm(IPC_Channel *crmd_channel, const char *host_uname) { HA_Message *cmd = NULL; int rc = cib_send_failed; cmd = create_request(CRM_OP_LRM_REFRESH, NULL, host_uname, CRM_SYSTEM_CRMD, crm_system_name, our_pid); if(send_ipc_message(crmd_channel, cmd)) { rc = 0; } crm_msg_del(cmd); return rc; } static int migrate_resource( const char *rsc_id, const char *existing_node, const char *preferred_node, cib_t * cib_conn) { enum cib_errors rc = cib_ok; char *id = NULL; crm_data_t *cib = NULL; crm_data_t *rule = NULL; crm_data_t *expr = NULL; crm_data_t *constraints = NULL; crm_data_t *fragment = NULL; crm_data_t *can_run = NULL; crm_data_t *dont_run = NULL; fragment = create_cib_fragment(NULL, NULL); cib = fragment; CRM_DEV_ASSERT(safe_str_eq(crm_element_name(cib), XML_TAG_CIB)); constraints = get_object_root(XML_CIB_TAG_CONSTRAINTS, cib); id = crm_concat("cli-prefer", rsc_id, '-'); can_run = create_xml_node(NULL, XML_CONS_TAG_RSC_LOCATION); crm_xml_add(can_run, XML_ATTR_ID, id); crm_free(id); id = crm_concat("cli-standby", rsc_id, '-'); dont_run = create_xml_node(NULL, XML_CONS_TAG_RSC_LOCATION); crm_xml_add(dont_run, XML_ATTR_ID, id); crm_free(id); if(existing_node == NULL) { crm_log_xml_notice(can_run, "Deleting"); rc = cib_conn->cmds->delete(cib_conn, XML_CIB_TAG_CONSTRAINTS, dont_run, NULL, cib_sync_call); if(rc == cib_NOTEXISTS) { rc = cib_ok; } else if(rc != cib_ok) { return rc; } } else { if(BE_QUIET == FALSE) { fprintf(stderr, "WARNING: Creating rsc_location constraint '%s'" " with a score of -INFINITY for resource %s" " on %s.\n", ID(dont_run), rsc_id, existing_node); fprintf(stderr, "\tThis will prevent %s from running" " on %s until the constraint is removed using" " the 'crm_resource -U' command or manually" " with cibadmin\n", rsc_id, existing_node); fprintf(stderr, "\tThis will be the case even if %s is" " the last node in the cluster\n", existing_node); fprintf(stderr, "\tThis messgae can be disabled with -Q\n"); } crm_xml_add(dont_run, "rsc", rsc_id); rule = create_xml_node(dont_run, XML_TAG_RULE); expr = create_xml_node(rule, XML_TAG_EXPRESSION); id = crm_concat("cli-standby-rule", rsc_id, '-'); crm_xml_add(rule, XML_ATTR_ID, id); crm_free(id); crm_xml_add(rule, XML_RULE_ATTR_SCORE, MINUS_INFINITY_S); id = crm_concat("cli-standby-expr", rsc_id, '-'); crm_xml_add(expr, XML_ATTR_ID, id); crm_free(id); crm_xml_add(expr, XML_EXPR_ATTR_ATTRIBUTE, "#uname"); crm_xml_add(expr, XML_EXPR_ATTR_OPERATION, "eq"); crm_xml_add(expr, XML_EXPR_ATTR_VALUE, existing_node); crm_xml_add(expr, XML_EXPR_ATTR_TYPE, "string"); add_node_copy(constraints, dont_run); } if(preferred_node == NULL) { crm_log_xml_notice(can_run, "Deleting"); rc = cib_conn->cmds->delete(cib_conn, XML_CIB_TAG_CONSTRAINTS, can_run, NULL, cib_sync_call); if(rc == cib_NOTEXISTS) { rc = cib_ok; } else if(rc != cib_ok) { return rc; } } else { crm_xml_add(can_run, "rsc", rsc_id); rule = create_xml_node(can_run, XML_TAG_RULE); expr = create_xml_node(rule, XML_TAG_EXPRESSION); id = crm_concat("cli-prefer-rule", rsc_id, '-'); crm_xml_add(rule, XML_ATTR_ID, id); crm_free(id); crm_xml_add(rule, XML_RULE_ATTR_SCORE, INFINITY_S); id = crm_concat("cli-prefer-expr", rsc_id, '-'); crm_xml_add(expr, XML_ATTR_ID, id); crm_free(id); crm_xml_add(expr, XML_EXPR_ATTR_ATTRIBUTE, "#uname"); crm_xml_add(expr, XML_EXPR_ATTR_OPERATION, "eq"); crm_xml_add(expr, XML_EXPR_ATTR_VALUE, preferred_node); crm_xml_add(expr, XML_EXPR_ATTR_TYPE, "string"); add_node_copy(constraints, can_run); } if(preferred_node != NULL || existing_node != NULL) { crm_log_xml_notice(fragment, "CLI Update"); rc = cib_conn->cmds->update(cib_conn, XML_CIB_TAG_CONSTRAINTS, fragment, NULL, cib_sync_call); } free_xml(fragment); free_xml(dont_run); free_xml(can_run); return rc; } int main(int argc, char **argv) { pe_working_set_t data_set; crm_data_t *cib_xml_copy = NULL; cib_t * cib_conn = NULL; enum cib_errors rc = cib_ok; int argerr = 0; int flag; #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {"verbose", 0, 0, 'V'}, {"help", 0, 0, '?'}, {"quiet", 0, 0, 'Q'}, {"list", 0, 0, 'L'}, {"list-raw", 0, 0, 'l'}, {"refresh", 0, 0, 'R'}, {"reprobe", 0, 0, 'P'}, {"query-xml", 0, 0, 'x'}, {"delete", 0, 0, 'D'}, {"cleanup", 0, 0, 'C'}, {"locate", 0, 0, 'W'}, {"migrate", 0, 0, 'M'}, {"un-migrate", 0, 0, 'U'}, {"resource", 1, 0, 'r'}, {"host-uname", 1, 0, 'H'}, {"force", 0, 0, 'f'}, {"set-parameter", 1, 0, 'p'}, {"get-parameter", 1, 0, 'g'}, {"delete-parameter",1, 0, 'd'}, {"property-value", 1, 0, 'v'}, {"get-property", 1, 0, 'G'}, {"set-property", 1, 0, 'S'}, {"resource-type", 1, 0, 't'}, {"xml-file", 0, 0, 'X'}, {0, 0, 0, 0} }; #endif crm_system_name = basename(argv[0]); cl_log_set_entity(crm_system_name); cl_log_set_facility(LOG_USER); set_crm_log_level(LOG_ERR); cl_log_enable_stderr(TRUE); if(argc < 2) { usage(crm_system_name, LSB_EXIT_EINVAL); } while (1) { #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { case 'V': cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; case '?': usage(crm_system_name, LSB_EXIT_OK); break; case 'X': xml_file = crm_strdup(optarg); break; case 'Q': BE_QUIET = TRUE; break; case 'L': case 'l': case 'R': case 'x': case 'D': case 'C': case 'P': case 'W': case 'M': case 'U': rsc_cmd = flag; break; case 'p': crm_debug_2("Option %c => %s", flag, optarg); prop_name = optarg; rsc_cmd = flag; break; case 'g': crm_debug_2("Option %c => %s", flag, optarg); prop_name = optarg; rsc_cmd = flag; break; case 'd': crm_debug_2("Option %c => %s", flag, optarg); prop_name = optarg; rsc_cmd = flag; break; case 'S': crm_debug_2("Option %c => %s", flag, optarg); prop_name = optarg; rsc_cmd = flag; break; case 'G': crm_debug_2("Option %c => %s", flag, optarg); prop_name = optarg; rsc_cmd = flag; break; case 'f': do_force = TRUE; break; case 'i': crm_debug_2("Option %c => %s", flag, optarg); prop_id = optarg; break; case 's': crm_debug_2("Option %c => %s", flag, optarg); prop_set = optarg; break; case 'r': crm_debug_2("Option %c => %s", flag, optarg); rsc_id = optarg; break; case 'v': crm_debug_2("Option %c => %s", flag, optarg); prop_value = optarg; break; case 't': crm_debug_2("Option %c => %s", flag, optarg); rsc_type = optarg; break; case 'H': crm_debug_2("Option %c => %s", flag, optarg); host_uname = optarg; break; default: fprintf(stderr, "Argument code 0%o (%c) is not (?yet?) supported\n", flag, flag); ++argerr; break; } } if (optind < argc) { fprintf(stderr, "non-option ARGV-elements: "); while (optind < argc) { fprintf(stderr, "%s ", argv[optind++]); } fprintf(stderr, "\n"); } if (optind > argc) { ++argerr; } if (argerr) { usage(crm_system_name, LSB_EXIT_GENERIC); } crm_malloc0(our_pid, 11); if(our_pid != NULL) { snprintf(our_pid, 10, "%d", getpid()); our_pid[10] = '\0'; } if(rsc_cmd == 'L' || rsc_cmd == 'W' || rsc_cmd == 'D' || rsc_cmd == 'x' || rsc_cmd == 'M' || rsc_cmd == 'U' || rsc_cmd == 'C' || rsc_cmd == 'p' || rsc_cmd == 'd' || rsc_cmd == 'g' || rsc_cmd == 'G' || rsc_cmd == 'S' || rsc_cmd == 'l') { resource_t *rsc = NULL; if(xml_file != NULL) { FILE *xml_strm = fopen(xml_file, "r"); - cib_xml_copy = file2xml(xml_strm); + if(strstr(xml_file, ".bz2") != NULL) { + cib_xml_copy = file2xml(xml_strm, TRUE); + } else { + cib_xml_copy = file2xml(xml_strm, FALSE); + } + } else { cib_conn = cib_new(); rc = cib_conn->cmds->signon( cib_conn, crm_system_name, cib_command_synchronous); if(rc != cib_ok) { fprintf(stderr, "Error signing on to the CIB service: %s\n", cib_error2string(rc)); return rc; } cib_xml_copy = get_cib_copy(cib_conn); } set_working_set_defaults(&data_set); data_set.input = cib_xml_copy; data_set.now = new_ha_date(TRUE); cluster_status(&data_set); rsc = pe_find_resource(data_set.resources, rsc_id); if(rsc != NULL) { rsc_id = rsc->id; } else { rc = cib_NOTEXISTS; } } if(rsc_cmd == 'R' || rsc_cmd == 'C' || rsc_cmd == 'P') { GCHSource *src = NULL; src = init_client_ipc_comms(CRM_SYSTEM_CRMD, crmd_msg_callback, NULL, &crmd_channel); if(src == NULL) { fprintf(stderr, "Error signing on to the CRMd service\n"); return 1; } send_hello_message( crmd_channel, our_pid, crm_system_name, "0", "1"); set_IPC_Channel_dnotify(src, resource_ipc_connection_destroy); } if(rsc_cmd == 'L') { rc = cib_ok; do_find_resource_list(&data_set, FALSE); } else if(rsc_cmd == 'l') { rc = cib_ok; do_find_resource_list(&data_set, TRUE); } else if(rsc_cmd == 'C') { resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); delete_lrm_rsc(crmd_channel, host_uname, rsc?rsc->id:rsc_id, rsc?rsc->long_name:NULL); sleep(5); refresh_lrm(crmd_channel, host_uname); if(rsc != NULL) { char *now_s = NULL; time_t now = time(NULL); /* force the TE to start a transition */ sleep(5); /* wait for the refresh */ now_s = crm_itoa(now); update_attr(cib_conn, cib_sync_call, NULL, NULL, NULL, NULL, "last-lrm-refresh", now_s); crm_free(now_s); } } else if(rc == cib_NOTEXISTS) { fprintf(stderr, "Resource %s not found: %s\n", crm_str(rsc_id), cib_error2string(rc)); } else if(rsc_cmd == 'W') { CRM_DEV_ASSERT(rsc_id != NULL); rc = do_find_resource(rsc_id, &data_set); } else if(rsc_cmd == 'x') { CRM_DEV_ASSERT(rsc_id != NULL); rc = dump_resource(rsc_id, &data_set); } else if(rsc_cmd == 'U') { rc = migrate_resource(rsc_id, NULL, NULL, cib_conn); } else if(rsc_cmd == 'M') { const char *current_uname = NULL; resource_t *rsc = pe_find_resource(data_set.resources, rsc_id); if(rsc != NULL && rsc->running_on != NULL) { node_t *current = rsc->running_on->data; if(current != NULL) { current_uname = current->details->uname; } } if(rsc == NULL) { fprintf(stderr, "Resource %s not migrated:" " not found\n", rsc_id); } else if(g_list_length(rsc->running_on) > 1) { fprintf(stderr, "Resource %s not migrated:" " active on multiple nodes\n", rsc_id); } else if(host_uname != NULL && safe_str_eq(current_uname, host_uname)) { fprintf(stderr, "Error performing operation: " "%s is already active on %s", rsc_id, host_uname); } else if(current_uname != NULL && (do_force || host_uname == NULL)) { rc = migrate_resource(rsc_id, current_uname, host_uname, cib_conn); } else if(host_uname != NULL) { rc = migrate_resource( rsc_id, NULL, host_uname, cib_conn); } else { fprintf(stderr, "Resource %s not migrated: " "not-active and no prefered location" " specified.\n", rsc_id); } } else if(rsc_cmd == 'G') { CRM_DEV_ASSERT(rsc_id != NULL); rc = dump_resource_prop(rsc_id, prop_name, &data_set); } else if(rsc_cmd == 'S') { crm_data_t *msg_data = NULL; if(prop_value == NULL) { fprintf(stderr, "You need to supply a value with the -v option\n"); return CIBRES_MISSING_FIELD; } CRM_DEV_ASSERT(rsc_id != NULL); CRM_DEV_ASSERT(rsc_type != NULL); CRM_DEV_ASSERT(prop_name != NULL); CRM_DEV_ASSERT(prop_value != NULL); msg_data = create_xml_node(NULL, rsc_type); crm_xml_add(msg_data, XML_ATTR_ID, rsc_id); crm_xml_add(msg_data, prop_name, prop_value); rc = cib_conn->cmds->modify(cib_conn, XML_CIB_TAG_RESOURCES, msg_data, NULL, cib_sync_call); free_xml(msg_data); } else if(rsc_cmd == 'g') { CRM_DEV_ASSERT(rsc_id != NULL); rc = dump_resource_attr(rsc_id, prop_name, &data_set); } else if(rsc_cmd == 'p') { CRM_DEV_ASSERT(rsc_id != NULL); if(prop_value == NULL) { fprintf(stderr, "You need to supply a value with the -v option\n"); return CIBRES_MISSING_FIELD; } rc = set_resource_attr(rsc_id, prop_set, prop_id, prop_name, prop_value, cib_conn, &data_set); } else if(rsc_cmd == 'd') { CRM_DEV_ASSERT(rsc_id != NULL); rc = delete_resource_attr(rsc_id, prop_id, prop_set, prop_name, cib_conn, &data_set); } else if(rsc_cmd == 'P') { HA_Message *cmd = NULL; cmd = create_request(CRM_OP_REPROBE, NULL, host_uname, CRM_SYSTEM_CRMD, crm_system_name, our_pid); send_ipc_message(crmd_channel, cmd); crm_msg_del(cmd); } else if(rsc_cmd == 'R') { refresh_lrm(crmd_channel, host_uname); } else if(rsc_cmd == 'D') { crm_data_t *msg_data = NULL; int cib_options = cib_sync_call; CRM_CHECK(rsc_id != NULL, return cib_NOTEXISTS); if(rsc_type == NULL) { fprintf(stderr, "You need to specify a resource type with -t"); return cib_NOTEXISTS; } if(do_force) { cib_options |= cib_scope_local|cib_quorum_override; } msg_data = create_xml_node(NULL, rsc_type); crm_xml_add(msg_data, XML_ATTR_ID, rsc_id); rc = cib_conn->cmds->delete(cib_conn, XML_CIB_TAG_RESOURCES, msg_data, NULL, cib_options); free_xml(msg_data); } else { fprintf(stderr, "Unknown command: %c\n", rsc_cmd); } if(cib_conn != NULL) { cleanup_calculations(&data_set); cib_conn->cmds->signoff(cib_conn); } if(rc == cib_no_quorum) { fprintf(stderr, "Error performing operation: %s\n", cib_error2string(rc)); fprintf(stderr, "Try using -f\n"); } else if(rc != cib_ok) { fprintf(stderr, "Error performing operation: %s\n", cib_error2string(rc)); } return rc; } void usage(const char *cmd, int exit_status) { FILE *stream; stream = exit_status ? stderr : stdout; fprintf(stream, "usage: %s [-?VS] -(L|Q|W|D|C|P|p) [options]\n", cmd); fprintf(stream, "\t--%s (-%c)\t: this help message\n", "help", '?'); fprintf(stream, "\t--%s (-%c)\t: " "turn on debug info. additional instances increase verbosity\n", "verbose", 'V'); fprintf(stream, "\t--%s (-%c)\t: Print only the value on stdout (for use with -W)\n", "quiet", 'Q'); fprintf(stream, "\nCommands\n"); fprintf(stream, "\t--%s (-%c)\t: List all resources\n", "list", 'L'); fprintf(stream, "\t--%s (-%c)\t: Query a resource\n" "\t\t\t Requires: -r\n", "query-xml", 'x'); fprintf(stream, "\t--%s (-%c)\t: Locate a resource\n" "\t\t\t Requires: -r\n", "locate", 'W'); fprintf(stream, "\t--%s (-%c)\t: Migrate a resource from it current" " location. Use -H to specify a destination\n" "\t\tIf -H is not specified, we will force the resource to move by" " creating a rule for the current location and a score of -INFINITY\n" "\t\tNOTE: This will prevent the resource from running on this" " node until the constraint is removed with -U\n" "\t\t\t Requires: -r, Optional: -H, -f\n", "migrate", 'M'); fprintf(stream, "\t--%s (-%c)\t: Remove all constraints created by -M\n" "\t\t\t Requires: -r\n", "un-migrate", 'U'); fprintf(stream, "\t--%s (-%c)\t: Delete a resource from the CIB\n" "\t\t\t Requires: -r, -t\n", "delete", 'D'); fprintf(stream, "\t--%s (-%c)\t: Delete a resource from the LRM\n" "\t\t\t Requires: -r. Optional: -H\n", "cleanup", 'C'); fprintf(stream, "\t--%s (-%c)\t: Recheck for resources started outside of the CRM\n" "\t\t\t Optional: -H\n", "reprobe", 'P'); fprintf(stream, "\t--%s (-%c)\t: Refresh the CIB from the LRM\n" "\t\t\t Optional: -H\n", "refresh", 'R'); fprintf(stream, "\t--%s (-%c) \t: " "Set the named parameter for a resource\n" "\t\t\t Requires: -r, -v. Optional: -i, -s\n", "set-parameter", 'p'); fprintf(stream, "\t--%s (-%c) \t: " "Get the named parameter for a resource\n" "\t\t\t Requires: -r. Optional: -i, -s\n", "get-parameter", 'g'); fprintf(stream, "\t--%s (-%c) : " "Delete the named parameter for a resource\n" "\t\t\t Requires: -r. Optional: -i\n", "delete-parameter", 'd'); fprintf(stream, "\t--%s (-%c) \t: " "Get the named property (eg. class, type, is_managed) a resource\n" "\t\t\t Requires: -r\n", "get-property", 'G'); fprintf(stream, "\t--%s (-%c) \t: " "Set the named property (not parameter) for a resource\n" "\t\t\t Requires: -r, -t, -v", "set-property", 'S'); fprintf(stream, "\nOptions\n"); fprintf(stream, "\t--%s (-%c) \t: Resource ID\n", "resource", 'r'); fprintf(stream, "\t--%s (-%c) \t: " "Resource type (primitive, clone, group, ...)\n", "resource-type", 't'); fprintf(stream, "\t--%s (-%c) \t: " "Property value\n", "property-value", 'v'); fprintf(stream, "\t--%s (-%c) \t: " "Host name\n", "host-uname", 'H'); fprintf(stream, "\t--%s (-%c)\t: " "Force the resource to move by creating a rule for the" " current location and a score of -INFINITY\n" "\t\tThis should be used if the resource's stickiness and" " constraint scores total more than INFINITY (Currently 10,000)\n" "\t\tNOTE: This will prevent the resource from running on this" " node until the constraint is removed with -U\n", "force-relocation", 'f'); fprintf(stream, "\t-%c \t: (Advanced Use Only) ID of the instance_attributes object to change\n", 's'); fprintf(stream, "\t-%c \t: (Advanced Use Only) ID of the nvpair object to change/delete\n", 'i'); fflush(stream); exit(exit_status); } diff --git a/crm/admin/crm_verify.c b/crm/admin/crm_verify.c index eb895fd248..4acfb241ac 100644 --- a/crm/admin/crm_verify.c +++ b/crm/admin/crm_verify.c @@ -1,295 +1,295 @@ -/* $Id: crm_verify.c,v 1.17 2006/07/12 15:42:35 andrew Exp $ */ +/* $Id: crm_verify.c,v 1.18 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define OPTARGS "V?X:LS:" #ifdef HAVE_GETOPT_H # include #endif #include #include gboolean USE_LIVE_CIB = FALSE; char *cib_save = NULL; const char *crm_system_name = NULL; void usage(const char *cmd, int exit_status); extern gboolean stage0(pe_working_set_t *data_set); void cleanup_alloc_calculations(pe_working_set_t *data_set); int main(int argc, char **argv) { crm_data_t *cib_object = NULL; crm_data_t *status = NULL; int argerr = 0; int flag; pe_working_set_t data_set; cib_t * cib_conn = NULL; enum cib_errors rc = cib_ok; const char *xml_file = NULL; crm_system_name = basename(argv[0]); g_log_set_handler(NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG | G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL, cl_glib_msg_handler, NULL); /* and for good measure... - this enum is a bit field (!) */ g_log_set_always_fatal((GLogLevelFlags)0); /*value out of range*/ cl_log_set_entity(crm_system_name); cl_log_set_facility(LOG_LOCAL7); cl_log_enable_stderr(TRUE); set_crm_log_level(LOG_ERR); CL_SIGNAL(DEBUG_INC, alter_debug); CL_SIGNAL(DEBUG_DEC, alter_debug); while (1) { #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {"xml-file", 1, 0, 'X'}, {"save-xml", 1, 0, 'S'}, {"live-check", 0, 0, 'L'}, {"help", 0, 0, '?'}, {0, 0, 0, 0} }; #endif #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { #ifdef HAVE_GETOPT_H case 0: printf("option %s", long_options[option_index].name); if (optarg) printf(" with arg %s", optarg); printf("\n"); break; #endif case 'X': xml_file = crm_strdup(optarg); break; case 'S': cib_save = crm_strdup(optarg); break; case 'V': alter_debug(DEBUG_INC); break; case 'L': USE_LIVE_CIB = TRUE; break; case '?': usage(crm_system_name, LSB_EXIT_GENERIC); break; default: printf("?? getopt returned character code 0%o ??\n", flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) { printf("%s ", argv[optind++]); } printf("\n"); } if (optind > argc) { ++argerr; } if (argerr) { crm_err("%d errors in option parsing", argerr); usage(crm_system_name, LSB_EXIT_GENERIC); } crm_info("=#=#=#=#= Getting XML =#=#=#=#="); crm_zero_mem_stats(NULL); #ifdef HA_MALLOC_TRACK cl_malloc_dump_allocated(LOG_DEBUG_2, TRUE); #endif if(USE_LIVE_CIB) { cib_conn = cib_new(); rc = cib_conn->cmds->signon( cib_conn, crm_system_name, cib_command_synchronous); } if(USE_LIVE_CIB) { if(rc == cib_ok) { int options = cib_scope_local|cib_sync_call; crm_info("Reading XML from: live cluster"); rc = cib_conn->cmds->query( cib_conn, NULL, &cib_object, options); } if(rc != cib_ok) { fprintf(stderr, "Live CIB query failed: %s\n", cib_error2string(rc)); return 3; } if(cib_object == NULL) { fprintf(stderr, "Live CIB query failed: empty result\n"); return 3; } } else if(xml_file != NULL) { FILE *xml_strm = fopen(xml_file, "r"); crm_info("Reading XML from: %s", xml_file); - cib_object = file2xml(xml_strm); + cib_object = file2xml(xml_strm, FALSE); } else { fprintf(stderr, "Reading XML from: stdin\n"); cib_object = stdin2xml(); } CRM_CHECK(cib_object != NULL, fprintf(stderr, "No config supplied\n"); return 3; ); if(cib_save != NULL) { write_xml_file(cib_object, cib_save, FALSE); } status = get_object_root(XML_CIB_TAG_STATUS, cib_object); #if CRM_DEPRECATED_SINCE_2_0_4 xml_child_iter_filter(status, node_state, XML_CIB_TAG_STATE, xml_remove_prop(node_state, XML_CIB_TAG_LRM); ); #endif crm_notice("Required feature set: %s", feature_set(cib_object)); if(do_id_check(cib_object, NULL, FALSE, FALSE)) { pe_config_err("ID Check failed"); } if(validate_with_dtd( cib_object, FALSE, HA_LIBDIR"/heartbeat/crm.dtd") == FALSE) { pe_config_err("CIB did not pass DTD validation"); } set_working_set_defaults(&data_set); data_set.input = cib_object; data_set.now = new_ha_date(TRUE); stage0(&data_set); cleanup_alloc_calculations(&data_set); #if 0 if(USE_LIVE_CIB) { /* Calling msg2ipcchan() seems to initialize something * which isn't free'd when we disconnect and free the * CIB connection. * Fake this extra free and move along. */ volatile cl_mem_stats_t *active_stats = cl_malloc_getstats(); active_stats->numfree++; } #endif if(was_config_error) { fprintf(stderr, "Errors found during check: config not valid\n"); if(crm_log_level < LOG_WARNING) { fprintf(stderr, " -V may provide more details\n"); } rc = 2; } else if(was_config_warning) { fprintf(stderr, "Warnings found during check: config may not be valid\n"); if(crm_log_level < LOG_WARNING) { fprintf(stderr, " Use -V for more details\n"); } rc = 1; } if(USE_LIVE_CIB) { cib_conn->cmds->signoff(cib_conn); cib_delete(cib_conn); } CRM_CHECK(crm_mem_stats(NULL) == FALSE, ; ); #ifdef HA_MALLOC_TRACK cl_malloc_dump_allocated(LOG_ERR, TRUE); #endif return rc; } void usage(const char *cmd, int exit_status) { FILE *stream; stream = exit_status ? stderr : stdout; fprintf(stream, "usage: %s [-V] -(?|L|X)\n", cmd); fprintf(stream, "\t--%s (-%c)\t: this help message\n", "help", '?'); fprintf(stream, "\t--%s (-%c)\t: " "turn on debug info. additional instances increase verbosity\n", "verbose", 'V'); fprintf(stream, "\t--%s (-%c)\t: Connect to the running cluster\n", "live-check", 'L'); fprintf(stream, "\t--%s (-%c) \t: Use the configuration in the named file\n", "xml-file", 'X'); fflush(stream); exit(exit_status); } diff --git a/crm/admin/xml_diff.c b/crm/admin/xml_diff.c index 3d717f1d13..21cef1de62 100644 --- a/crm/admin/xml_diff.c +++ b/crm/admin/xml_diff.c @@ -1,273 +1,273 @@ -/* $Id: xml_diff.c,v 1.10 2006/07/06 16:48:38 andrew Exp $ */ +/* $Id: xml_diff.c,v 1.11 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef HAVE_GETOPT_H #include #endif #include /* someone complaining about _ha_msg_mod not being found */ #include const char *crm_system_name = "diff"; void usage(const char *cmd, int exit_status); #define OPTARGS "V?o:n:p:scfO:N:" int main(int argc, char **argv) { gboolean apply = FALSE; gboolean raw_1 = FALSE; gboolean raw_2 = FALSE; gboolean filter = FALSE; gboolean use_stdin = FALSE; gboolean as_cib = FALSE; int argerr = 0; int flag; crm_data_t *object_1 = NULL; crm_data_t *object_2 = NULL; crm_data_t *output = NULL; const char *xml_file_1 = NULL; const char *xml_file_2 = NULL; long new_bytes = 0, new_allocs = 0, new_frees = 0; long old_bytes = 0, old_allocs = 0, old_frees = 0; #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {"original", 1, 0, 'o'}, {"new", 1, 0, 'n'}, {"original-string", 1, 0, 'O'}, {"new-string", 1, 0, 'N'}, {"patch", 1, 0, 'p'}, {"stdin", 0, 0, 's'}, {"cib", 0, 0, 'c'}, {"verbose", 0, 0, 'V'}, {"help", 0, 0, '?'}, {0, 0, 0, 0} }; #endif cl_log_set_entity(crm_system_name); cl_log_set_facility(LOG_USER); set_crm_log_level(LOG_CRIT-1); if(argc < 2) { usage(crm_system_name, LSB_EXIT_EINVAL); } while (1) { #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { case 'o': xml_file_1 = optarg; break; case 'O': xml_file_1 = optarg; raw_1 = TRUE; break; case 'n': xml_file_2 = optarg; break; case 'N': xml_file_2 = optarg; raw_2 = TRUE; break; case 'p': xml_file_2 = optarg; apply = TRUE; break; case 'f': filter = TRUE; break; case 's': use_stdin = TRUE; break; case 'c': as_cib = TRUE; break; case 'V': cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; default: printf("Argument code 0%o (%c)" " is not (?yet?) supported\n", flag, flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) printf("%s ", argv[optind++]); printf("\n"); } if (optind > argc) { ++argerr; } if (argerr) { usage(crm_system_name, LSB_EXIT_GENERIC); } crm_zero_mem_stats(NULL); if(raw_1) { object_1 = string2xml(xml_file_1); } else if(use_stdin) { fprintf(stderr, "Input first XML fragment:"); object_1 = stdin2xml(); } else if(xml_file_1 != NULL) { FILE *xml_strm = fopen(xml_file_1, "r"); if(xml_strm != NULL) { crm_debug("Reading: %s", xml_file_1); - object_1 = file2xml(xml_strm); + object_1 = file2xml(xml_strm, FALSE); } else { cl_perror("File not found: %s", xml_file_1); } } if(raw_2) { object_2 = string2xml(xml_file_2); } else if(use_stdin) { fprintf(stderr, "Input second XML fragment:"); object_2 = stdin2xml(); } else if(xml_file_2 != NULL) { FILE *xml_strm = fopen(xml_file_2, "r"); if(xml_strm != NULL) { crm_debug("Reading: %s", xml_file_2); - object_2 = file2xml(xml_strm); + object_2 = file2xml(xml_strm, FALSE); } else { cl_perror("File not found: %s", xml_file_2); } } CRM_ASSERT(object_1 != NULL); CRM_ASSERT(object_2 != NULL); crm_zero_mem_stats(NULL); if(apply) { if(as_cib == FALSE) { apply_xml_diff(object_1, object_2, &output); } else { apply_cib_diff(object_1, object_2, &output); } } else { if(as_cib == FALSE) { output = diff_xml_object(object_1, object_2, filter); } else { output = diff_cib_object(object_1, object_2, filter); } } if(output != NULL) { char *buffer = dump_xml_formatted(output); fprintf(stdout, "%s", crm_str(buffer)); crm_free(buffer); } crm_xml_nbytes(output, &new_bytes, &new_allocs, &new_frees); crm_adjust_mem_stats(crm_running_stats, new_bytes - old_bytes, new_allocs - old_allocs, new_frees - old_frees); crm_mem_stats(NULL); free_xml(object_1); free_xml(object_2); free_xml(output); if(apply == FALSE && output != NULL) { return 1; } return 0; } void usage(const char *cmd, int exit_status) { FILE *stream; stream = exit_status != 0 ? stderr : stdout; fprintf(stream, "usage: %s [-?V] [oO] [pnN]\n", cmd); fprintf(stream, "Options\n"); fprintf(stream, "\t--%s (-%c)\tthis help message\n", "help", '?'); fprintf(stream, "\t--%s (-%c) \t\n", "original", 'o'); fprintf(stream, "\t--%s (-%c) \t\n", "new", 'n'); fprintf(stream, "\t--%s (-%c) \t\n", "original-string", 'O'); fprintf(stream, "\t--%s (-%c) \t\n", "new-string", 'N'); fprintf(stream, "\t--%s (-%c) \tApply a patch to the original XML\n", "patch", 'p'); fprintf(stream, "\t--%s (-%c)\tCompare/patch the inputs as a CIB\n", "cib", 'c'); fprintf(stream, "\t--%s (-%c)\tRead the inputs from stdin\n", "stdin", 's'); fflush(stream); exit(exit_status); } diff --git a/crm/cib/io.c b/crm/cib/io.c index e2c423763d..512a2748b0 100644 --- a/crm/cib/io.c +++ b/crm/cib/io.c @@ -1,773 +1,773 @@ -/* $Id: io.c,v 1.80 2006/07/07 20:54:42 andrew Exp $ */ +/* $Id: io.c,v 1.81 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include const char * local_resource_path[] = { XML_CIB_TAG_STATUS, }; const char * resource_path[] = { XML_CIB_TAG_RESOURCES, }; const char * node_path[] = { XML_CIB_TAG_NODES, }; const char * constraint_path[] = { XML_CIB_TAG_CONSTRAINTS, }; gboolean initialized = FALSE; crm_data_t *the_cib = NULL; crm_data_t *node_search = NULL; crm_data_t *resource_search = NULL; crm_data_t *constraint_search = NULL; crm_data_t *status_search = NULL; extern gboolean cib_writes_enabled; extern char *ccm_transition_id; extern gboolean cib_have_quorum; extern GHashTable *peer_hash; extern GHashTable *ccm_membership; extern GTRIGSource *cib_writer; extern enum cib_errors cib_status; int set_connected_peers(crm_data_t *xml_obj); void GHFunc_count_peers(gpointer key, gpointer value, gpointer user_data); int write_cib_contents(gpointer p); #include #include #include static gboolean validate_cib_digest(crm_data_t *local_cib) { int s_res = -1; struct stat buf; char *digest = NULL; char *expected = NULL; gboolean passed = FALSE; FILE *expected_strm = NULL; int start = 0, length = 0, read_len = 0; s_res = stat(CIB_FILENAME ".sig", &buf); if (s_res != 0) { crm_warn("No on-disk digest present"); return TRUE; } if(local_cib != NULL) { digest = calculate_xml_digest(local_cib, FALSE); } expected_strm = fopen(CIB_FILENAME ".sig", "r"); start = ftell(expected_strm); fseek(expected_strm, 0L, SEEK_END); length = ftell(expected_strm); fseek(expected_strm, 0L, start); CRM_ASSERT(start == ftell(expected_strm)); crm_debug_3("Reading %d bytes from file", length); crm_malloc0(expected, (length+1)); read_len = fread(expected, 1, length, expected_strm); CRM_ASSERT(read_len == length); if(expected == NULL) { crm_err("On-disk digest is empty"); } else if(safe_str_eq(expected, digest)) { crm_debug("Digest comparision passed: %s", digest); passed = TRUE; } else { crm_err("Digest comparision failed: %s vs. %s", expected, digest); } crm_free(digest); crm_free(expected); return passed; } static int write_cib_digest(crm_data_t *local_cib, char *digest) { int rc = 0; FILE *digest_strm = fopen(CIB_FILENAME ".sig", "w"); char *local_digest = NULL; CRM_ASSERT(digest_strm != NULL); if(digest == NULL) { local_digest = calculate_xml_digest(local_cib, FALSE); CRM_ASSERT(digest != NULL); digest = local_digest; } rc = fprintf(digest_strm, "%s", digest); if(rc < 0) { cl_perror("Cannot write output to %s.sig", CIB_FILENAME); } fflush(digest_strm); fclose(digest_strm); crm_free(local_digest); return rc; } static gboolean validate_on_disk_cib(const char *filename, crm_data_t **on_disk_cib) { int s_res = -1; struct stat buf; FILE *cib_file = NULL; gboolean passed = TRUE; crm_data_t *root = NULL; if(filename != NULL) { s_res = stat(filename, &buf); } if (s_res == 0) { cib_file = fopen(filename, "r"); crm_debug_2("Reading cluster configuration from: %s", filename); - root = file2xml(cib_file); + root = file2xml(cib_file, FALSE); fclose(cib_file); if(validate_cib_digest(root) == FALSE) { passed = FALSE; } } if(on_disk_cib != NULL) { *on_disk_cib = root; } else { free_xml(root); } return passed; } /* * It is the callers responsibility to free the output of this function */ crm_data_t* readCibXmlFile(const char *filename, gboolean discard_status) { int s_res = -1; struct stat buf; gboolean valid = TRUE; const char *name = NULL; const char *value = NULL; crm_data_t *root = NULL; crm_data_t *status = NULL; struct passwd *cib_user = NULL; gboolean user_readwritable = FALSE; if(filename != NULL) { s_res = stat(filename, &buf); } if (s_res != 0) { return NULL; } cib_user = getpwnam(HA_CCMUSER); user_readwritable = (cib_user != NULL && buf.st_uid == cib_user->pw_uid && (buf.st_mode & (S_IRUSR|S_IWUSR))); if( S_ISREG(buf.st_mode) == FALSE ) { cib_status = cib_bad_permissions; crm_err("%s must be a regular file", filename); } else if( user_readwritable == FALSE ) { struct group *cib_grp = getgrnam(HA_APIGROUP); gboolean group_readwritable = ( cib_grp != NULL && buf.st_gid == cib_grp->gr_gid && (buf.st_mode & (S_IRGRP|S_IWGRP))); if( group_readwritable == FALSE ) { crm_err("%s must be owned and read/writeable by user %s," " or owned and read/writable by group %s", filename, HA_CCMUSER, HA_APIGROUP); cib_status = cib_bad_permissions; return NULL; } crm_warn("%s should be owned and read/writeable by user %s", filename, HA_CCMUSER); } crm_info("Reading cluster configuration from: %s", filename); if(validate_on_disk_cib(filename, &root) == FALSE) { valid = FALSE; crm_err("%s has been manually changed" " - if this was intended, please remove the md5 digest in %s.sig", filename, filename); cib_status = cib_bad_digest; return NULL; } status = find_xml_node(root, XML_CIB_TAG_STATUS, FALSE); if(root != NULL && discard_status && status != NULL) { /* strip out the status section if there is one */ free_xml_from_parent(root, status); status = NULL; } if(status == NULL) { create_xml_node(root, XML_CIB_TAG_STATUS); } /* Do this before DTD validation happens */ if(root != NULL) { /* fill in some defaults */ name = XML_ATTR_GENERATION_ADMIN; value = crm_element_value(root, name); if(value == NULL) { crm_xml_add_int(root, name, 0); } name = XML_ATTR_GENERATION; value = crm_element_value(root, name); if(value == NULL) { crm_xml_add_int(root, name, 0); } name = XML_ATTR_NUMUPDATES; value = crm_element_value(root, name); if(value == NULL) { crm_xml_add_int(root, name, 0); } /* unset these and require the DC/CCM to update as needed */ update_counters(__FILE__, __PRETTY_FUNCTION__, root); xml_remove_prop(root, XML_ATTR_DC_UUID); } if(discard_status) { crm_log_xml_info(root, "[on-disk]"); } if(root != NULL) { const char *ignore_dtd = crm_element_value(root, "ignore_dtd"); gboolean dtd_ok = validate_with_dtd( root, TRUE, HA_LIBDIR"/heartbeat/crm.dtd"); if(dtd_ok == FALSE #if CRM_DEPRECATED_SINCE_2_0_4 && ignore_dtd != NULL #endif && crm_is_true(ignore_dtd) == FALSE) { crm_err("On disk CIB does not conform to the DTD"); valid = FALSE; } } if(root == NULL) { crm_crit("Parse ERROR reading %s.", filename); cib_status = cib_bad_config; return NULL; } else if(valid == FALSE) { crm_err("%s does not contain a valid configuration", filename); cib_status = cib_bad_config; } crm_xml_add(root, "generated", XML_BOOLEAN_FALSE); if(do_id_check(root, NULL, FALSE, FALSE)) { crm_crit("%s does not contain a vaild configuration.", filename); cib_status = cib_bad_config; } if (verifyCibXml(root) == FALSE) { crm_crit("%s does not contain a vaild configuration.", filename); cib_status = cib_bad_config; } return root; } /* * The caller should never free the return value */ crm_data_t* get_the_CIB(void) { return the_cib; } gboolean uninitializeCib(void) { crm_data_t *tmp_cib = the_cib; if(tmp_cib == NULL) { crm_debug("The CIB has already been deallocated."); return FALSE; } initialized = FALSE; the_cib = NULL; node_search = NULL; resource_search = NULL; constraint_search = NULL; status_search = NULL; crm_debug("Deallocating the CIB."); free_xml(tmp_cib); crm_info("The CIB has been deallocated."); return TRUE; } /* * This method will not free the old CIB pointer or the new one. * We rely on the caller to have saved a pointer to the old CIB * and to free the old/bad one depending on what is appropriate. */ gboolean initializeCib(crm_data_t *new_cib) { gboolean is_valid = TRUE; crm_data_t *tmp_node = NULL; if(new_cib == NULL) { return FALSE; } xml_validate(new_cib); tmp_node = get_object_root(XML_CIB_TAG_NODES, new_cib); if (tmp_node == NULL) { is_valid = FALSE; } tmp_node = get_object_root(XML_CIB_TAG_RESOURCES, new_cib); if (tmp_node == NULL) { is_valid = FALSE; } tmp_node = get_object_root(XML_CIB_TAG_CONSTRAINTS, new_cib); if (tmp_node == NULL) { is_valid = FALSE; } tmp_node = get_object_root(XML_CIB_TAG_CRMCONFIG, new_cib); if (tmp_node == NULL) { is_valid = FALSE; } tmp_node = get_object_root(XML_CIB_TAG_STATUS, new_cib); if (is_valid && tmp_node == NULL) { create_xml_node(new_cib, XML_CIB_TAG_STATUS); } if(is_valid == FALSE) { crm_warn("CIB Verification failed"); return FALSE; } update_counters(__FILE__, __FUNCTION__, new_cib); the_cib = new_cib; initialized = TRUE; return TRUE; } static int archive_file(const char *oldname, const char *newname, const char *ext) { /* move 'oldname' to 'newname' by creating a hard link to it * and then removing the original hard link */ int rc = 0; int res = 0; struct stat tmp; int s_res = 0; char *backup_file = NULL; static const char *back_ext = "bak"; /* calculate the backup name if required */ if(newname != NULL) { backup_file = crm_strdup(newname); } else { int max_name_len = 1024; crm_malloc0(backup_file, max_name_len); if (ext == NULL) { ext = back_ext; } snprintf(backup_file, max_name_len - 1, "%s.%s", oldname, ext); } if(backup_file == NULL || strlen(backup_file) == 0) { crm_err("%s backup filename was %s", newname == NULL?"calculated":"supplied", backup_file == NULL?"null":"empty"); rc = -4; } s_res = stat(backup_file, &tmp); /* unlink the old backup */ if (rc == 0 && s_res >= 0) { res = unlink(backup_file); if (res < 0) { cl_perror("Could not unlink %s", backup_file); rc = -1; } } s_res = stat(oldname, &tmp); /* copy */ if (rc == 0 && s_res >= 0) { res = link(oldname, backup_file); if (res < 0) { cl_perror("Could not create backup %s from %s", backup_file, oldname); rc = -2; } } /* unlink the original */ if (rc == 0 && s_res >= 0) { res = unlink(oldname); if (res < 0) { cl_perror("Could not unlink %s", oldname); rc = -3; } } crm_free(backup_file); return rc; } /* * This method will free the old CIB pointer on success and the new one * on failure. */ int activateCibXml(crm_data_t *new_cib, const char *ignored) { int error_code = cib_ok; crm_data_t *saved_cib = the_cib; const char *ignore_dtd = NULL; long new_bytes, new_allocs, new_frees; long old_bytes, old_allocs, old_frees; crm_log_xml_debug_4(new_cib, "Attempting to activate CIB"); CRM_ASSERT(new_cib != saved_cib); if(saved_cib != NULL) { crm_validate_data(saved_cib); } ignore_dtd = crm_element_value(new_cib, "ignore_dtd"); if( #if CRM_DEPRECATED_SINCE_2_0_4 ignore_dtd != NULL && #endif crm_is_true(ignore_dtd) == FALSE && validate_with_dtd( new_cib, TRUE, HA_LIBDIR"/heartbeat/crm.dtd") == FALSE) { error_code = cib_dtd_validation; crm_err("Ignoring invalid CIB"); } if(error_code == cib_ok && initializeCib(new_cib) == FALSE) { error_code = cib_ACTIVATION; crm_err("Ignoring invalid or NULL CIB"); } if(error_code != cib_ok) { if(saved_cib != NULL) { crm_warn("Reverting to last known CIB"); if (initializeCib(saved_cib) == FALSE) { /* oh we are so dead */ crm_crit("Couldn't re-initialize the old CIB!"); cl_flush_logs(); exit(1); } } else { crm_crit("Could not write out new CIB and no saved" " version to revert to"); } } else if(per_action_cib && cib_writes_enabled && cib_status == cib_ok) { write_cib_contents(the_cib); } else if(cib_writes_enabled && cib_status == cib_ok) { crm_debug_2("Triggering CIB write"); G_main_set_trigger(cib_writer); crm_xml_nbytes(new_cib, &new_bytes, &new_allocs, &new_frees); crm_xml_nbytes(saved_cib, &old_bytes, &old_allocs, &old_frees); if(new_bytes != old_bytes) { crm_info("CIB size is %ld bytes (was %ld)", new_bytes, old_bytes); crm_adjust_mem_stats(NULL, new_bytes - old_bytes, new_allocs - old_allocs, new_frees - old_frees); if(crm_running_stats != NULL) { crm_adjust_mem_stats( crm_running_stats, new_bytes - old_bytes, new_allocs - old_allocs, new_frees - old_frees); } } } if(the_cib != saved_cib && the_cib != new_cib) { CRM_DEV_ASSERT(error_code != cib_ok); CRM_DEV_ASSERT(the_cib == NULL); } if(the_cib != new_cib) { free_xml(new_cib); CRM_DEV_ASSERT(error_code != cib_ok); } if(the_cib != saved_cib) { free_xml(saved_cib); } return error_code; } int write_cib_contents(gpointer p) { int rc = 0; char *digest = NULL; crm_data_t *cib_status_root = NULL; const char *digest_filename = CIB_FILENAME ".sig"; /* we can scribble on "the_cib" here and not affect the parent */ const char *epoch = crm_element_value(the_cib, XML_ATTR_GENERATION); const char *updates = crm_element_value(the_cib, XML_ATTR_NUMUPDATES); const char *admin_epoch = crm_element_value( the_cib, XML_ATTR_GENERATION_ADMIN); /* check the admin didnt modify it underneath us */ if(validate_on_disk_cib(CIB_FILENAME, NULL) == FALSE) { crm_err("%s was manually modified while Heartbeat was active!", CIB_FILENAME); exit(LSB_EXIT_GENERIC); } rc = archive_file(CIB_FILENAME, NULL, "last"); if(rc != 0) { crm_err("Could not make backup of the existing CIB: %d", rc); exit(LSB_EXIT_GENERIC); } rc = archive_file(digest_filename, NULL, "last"); if(rc != 0) { crm_warn("Could not make backup of the existing CIB digest: %d", rc); } /* Given that we discard the status section on startup * there is no point writing it out in the first place * since users just get confused by it * * Although, it does help me once in a while * * So delete the status section before we write it out */ if(p == NULL) { cib_status_root = find_xml_node( the_cib, XML_CIB_TAG_STATUS, TRUE); CRM_DEV_ASSERT(cib_status_root != NULL); if(cib_status_root != NULL) { free_xml_from_parent(the_cib, cib_status_root); } } rc = write_xml_file(the_cib, CIB_FILENAME, FALSE); if(rc <= 0) { crm_err("Changes couldn't be written to disk"); exit(LSB_EXIT_GENERIC); } digest = calculate_xml_digest(the_cib, FALSE); crm_info("Wrote version %s.%s.%s of the CIB to disk (digest: %s)", admin_epoch?admin_epoch:"0", epoch?epoch:"0", updates?updates:"0", digest); rc = write_cib_digest(the_cib, digest); if(rc <= 0) { crm_err("Digest couldn't be written to disk"); exit(LSB_EXIT_GENERIC); } #if 0 if(validate_on_disk_cib(CIB_FILENAME, NULL) == FALSE) { crm_err("wrote incorrect digest"); exit(LSB_EXIT_GENERIC); } #endif if(p == NULL) { exit(LSB_EXIT_OK); } crm_free(digest); return HA_OK; } gboolean set_transition(crm_data_t *xml_obj) { const char *current = NULL; if(xml_obj == NULL) { return FALSE; } current = crm_element_value(xml_obj, XML_ATTR_CCM_TRANSITION); if(safe_str_neq(current, ccm_transition_id)) { crm_debug("CCM transition: old=%s, new=%s", current, ccm_transition_id); crm_xml_add(xml_obj, XML_ATTR_CCM_TRANSITION,ccm_transition_id); return TRUE; } return FALSE; } gboolean set_connected_peers(crm_data_t *xml_obj) { int active = 0; int current = 0; char *peers_s = NULL; const char *current_s = NULL; if(xml_obj == NULL) { return FALSE; } current_s = crm_element_value(xml_obj, XML_ATTR_NUMPEERS); g_hash_table_foreach(peer_hash, GHFunc_count_peers, &active); current = crm_parse_int(current_s, "0"); if(current != active) { peers_s = crm_itoa(active); crm_xml_add(xml_obj, XML_ATTR_NUMPEERS, peers_s); crm_debug("We now have %s active peers", peers_s); crm_free(peers_s); return TRUE; } return FALSE; } gboolean update_quorum(crm_data_t *xml_obj) { const char *quorum_value = XML_BOOLEAN_FALSE; const char *current = NULL; if(xml_obj == NULL) { return FALSE; } current = crm_element_value(xml_obj, XML_ATTR_HAVE_QUORUM); if(cib_have_quorum) { quorum_value = XML_BOOLEAN_TRUE; } if(safe_str_neq(current, quorum_value)) { crm_debug("CCM quorum: old=%s, new=%s", current, quorum_value); crm_xml_add(xml_obj, XML_ATTR_HAVE_QUORUM, quorum_value); return TRUE; } return FALSE; } gboolean update_counters(const char *file, const char *fn, crm_data_t *xml_obj) { gboolean did_update = FALSE; did_update = did_update || update_quorum(xml_obj); did_update = did_update || set_transition(xml_obj); did_update = did_update || set_connected_peers(xml_obj); if(did_update) { do_crm_log(LOG_DEBUG, file, fn, "Counters updated"); } return did_update; } void GHFunc_count_peers(gpointer key, gpointer value, gpointer user_data) { int *active = user_data; if(safe_str_eq(value, ONLINESTATUS)) { (*active)++; } else if(safe_str_eq(value, JOINSTATUS)) { (*active)++; } } diff --git a/crm/pengine/ptest.c b/crm/pengine/ptest.c index f7a38599c6..8d21c82939 100644 --- a/crm/pengine/ptest.c +++ b/crm/pengine/ptest.c @@ -1,436 +1,447 @@ -/* $Id: ptest.c,v 1.79 2006/07/12 15:42:35 andrew Exp $ */ +/* $Id: ptest.c,v 1.80 2006/07/18 06:15:54 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include -#define OPTARGS "V?X:D:G:I:Lwxd:" +#define OPTARGS "V?X:D:G:I:Lwxd:a" #ifdef HAVE_GETOPT_H # include #endif #include #include #include #include gboolean use_stdin = FALSE; gboolean inhibit_exit = FALSE; +gboolean all_actions = FALSE; extern crm_data_t * do_calculations( pe_working_set_t *data_set, crm_data_t *xml_input, ha_time_t *now); extern void cleanup_calculations(pe_working_set_t *data_set); char *use_date = NULL; FILE *dot_strm = NULL; #define DOT_PREFIX "PE_DOT: " /* #define DOT_PREFIX "" */ #define dot_write(fmt...) if(dot_strm != NULL) { \ fprintf(dot_strm, fmt); \ fprintf(dot_strm, "\n"); \ fflush(dot_strm); \ } else { \ crm_debug(DOT_PREFIX""fmt); \ } static void init_dotfile(void) { dot_write("digraph \"g\" {"); dot_write(" size = \"30,30\""); /* dot_write(" graph ["); */ /* dot_write(" fontsize = \"12\""); */ /* dot_write(" fontname = \"Times-Roman\""); */ /* dot_write(" fontcolor = \"black\""); */ /* dot_write(" bb = \"0,0,398.922306,478.927856\""); */ /* dot_write(" color = \"black\""); */ /* dot_write(" ]"); */ /* dot_write(" node ["); */ /* dot_write(" fontsize = \"12\""); */ /* dot_write(" fontname = \"Times-Roman\""); */ /* dot_write(" fontcolor = \"black\""); */ /* dot_write(" shape = \"ellipse\""); */ /* dot_write(" color = \"black\""); */ /* dot_write(" ]"); */ /* dot_write(" edge ["); */ /* dot_write(" fontsize = \"12\""); */ /* dot_write(" fontname = \"Times-Roman\""); */ /* dot_write(" fontcolor = \"black\""); */ /* dot_write(" color = \"black\""); */ /* dot_write(" ]"); */ } static void usage(const char *cli, int exitcode) { FILE *out = exitcode?stderr:stdout; fprintf(out, "Usage: %s -(?|L|X|x) [-V] [-D] [-G] [-I]\n", cli); fprintf(out, " --%s (-%c): This text\n\n", "help", '?'); fprintf(out, " --%s (-%c): Increase verbosity (can be supplied multiple times)\n\n", "verbose", 'V'); fprintf(out, " --%s (-%c): Connect to the CIB and use the current contents as input\n", "live-check", 'L'); fprintf(out, " --%s (-%c): Look for xml on stdin\n", "xml-stream", 'x'); fprintf(out, " --%s (-%c)\t : Look for xml in the named file\n\n", "xml-file", 'X'); fprintf(out, " --%s (-%c)\t : Save the transition graph to the named file\n", "save-graph", 'G'); fprintf(out, " --%s (-%c)\t : Save the DOT formatted transition graph to the named file\n", "save-dotfile", 'D'); fprintf(out, " --%s (-%c)\t : Save the input to the named file\n", "save-input", 'I'); exit(exitcode); } static char * create_action_name(action_t *action) { char *action_name = NULL; const char *action_host = NULL; if(action->node) { action_host = action->node->details->uname; action_name = crm_concat(action->uuid, action_host, ' '); } else if(action->pseudo) { action_name = crm_strdup(action->uuid); } else { action_host = ""; action_name = crm_concat(action->uuid, action_host, ' '); } return action_name; } gboolean USE_LIVE_CIB = FALSE; int main(int argc, char **argv) { gboolean all_good = TRUE; enum transition_status graph_rc = -1; crm_graph_t *transition = NULL; ha_time_t *a_date = NULL; cib_t * cib_conn = NULL; crm_data_t * cib_object = NULL; int argerr = 0; int flag; char *msg_buffer = NULL; gboolean optional = FALSE; pe_working_set_t data_set; const char *xml_file = NULL; const char *dot_file = NULL; const char *graph_file = NULL; const char *input_file = NULL; cl_log_set_entity("ptest"); cl_log_set_facility(LOG_USER); set_crm_log_level(LOG_CRIT-1); while (1) { #ifdef HAVE_GETOPT_H int option_index = 0; static struct option long_options[] = { /* Top-level Options */ {"help", 0, 0, '?'}, {"verbose", 0, 0, 'V'}, {"live-check", 0, 0, 'L'}, {"xml-stream", 0, 0, 'x'}, {"xml-file", 1, 0, 'X'}, {"save-graph", 1, 0, 'G'}, {"save-dotfile",1, 0, 'D'}, {"save-input", 1, 0, 'I'}, {0, 0, 0, 0} }; #endif #ifdef HAVE_GETOPT_H flag = getopt_long(argc, argv, OPTARGS, long_options, &option_index); #else flag = getopt(argc, argv, OPTARGS); #endif if (flag == -1) break; switch(flag) { #ifdef HAVE_GETOPT_H case 0: printf("option %s", long_options[option_index].name); if (optarg) printf(" with arg %s", optarg); printf("\n"); break; #endif - + case 'a': + all_actions = TRUE; + break; case 'w': inhibit_exit = TRUE; break; case 'x': use_stdin = TRUE; break; case 'X': xml_file = crm_strdup(optarg); break; case 'd': use_date = crm_strdup(optarg); break; case 'D': dot_file = crm_strdup(optarg); break; case 'G': graph_file = crm_strdup(optarg); break; case 'I': input_file = crm_strdup(optarg); break; case 'V': cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; case 'L': USE_LIVE_CIB = TRUE; break; case '?': usage("ptest", 0); break; default: printf("?? getopt returned character code 0%o ??\n", flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) { printf("%s ", argv[optind++]); } printf("\n"); } if (optind > argc) { ++argerr; } if (argerr) { crm_err("%d errors in option parsing", argerr); usage("ptest", 1); } crm_info("=#=#=#=#= Getting XML =#=#=#=#="); if(USE_LIVE_CIB) { int rc = cib_ok; cib_conn = cib_new(); rc = cib_conn->cmds->signon( cib_conn, "ptest", cib_command_synchronous); if(rc == cib_ok) { crm_info("Reading XML from: live cluster"); cib_object = get_cib_copy(cib_conn); } else { fprintf(stderr, "Live CIB query failed: %s\n", cib_error2string(rc)); return 3; } if(cib_object == NULL) { fprintf(stderr, "Live CIB query failed: empty result\n"); return 3; } } else if(xml_file != NULL) { FILE *xml_strm = fopen(xml_file, "r"); - cib_object = file2xml(xml_strm); - + if(strstr(xml_file, ".bz2") != NULL) { + cib_object = file2xml(xml_strm, TRUE); + } else { + cib_object = file2xml(xml_strm, FALSE); + } + } else if(use_stdin) { cib_object = stdin2xml(); } else { usage("ptest", 1); } #ifdef MCHECK mtrace(); #endif CRM_CHECK(cib_object != NULL, return 4); crm_notice("Required feature set: %s", feature_set(cib_object)); do_id_check(cib_object, NULL, FALSE, FALSE); if(!validate_with_dtd(cib_object,FALSE,HA_LIBDIR"/heartbeat/crm.dtd")) { crm_crit("%s is not a valid configuration", xml_file?xml_file:"stding"); all_good = FALSE; } if(input_file != NULL) { FILE *input_strm = fopen(input_file, "w"); msg_buffer = dump_xml_formatted(cib_object); fprintf(input_strm, "%s\n", msg_buffer); fflush(input_strm); fclose(input_strm); crm_free(msg_buffer); } crm_zero_mem_stats(NULL); #ifdef HA_MALLOC_TRACK cl_malloc_dump_allocated(LOG_DEBUG_2, TRUE); #endif if(use_date != NULL) { a_date = parse_date(&use_date); log_date(LOG_WARNING, "Set fake 'now' to", a_date, ha_log_date|ha_log_time); log_date(LOG_WARNING, "Set fake 'now' to (localtime)", a_date, ha_log_date|ha_log_time|ha_log_local); } do_calculations(&data_set, cib_object, a_date); msg_buffer = dump_xml_formatted(data_set.graph); if(graph_file != NULL) { FILE *graph_strm = fopen(graph_file, "w"); fprintf(graph_strm, "%s\n", msg_buffer); fflush(graph_strm); fclose(graph_strm); } else { fprintf(stdout, "%s\n", msg_buffer); fflush(stdout); } crm_free(msg_buffer); dot_strm = fopen(dot_file, "w"); init_dotfile(); slist_iter( action, action_t, data_set.actions, lpc, char *action_name = create_action_name(action); crm_debug_3("Action %d: %p", action->id, action); if(action->dumped == FALSE) { if(action->rsc != NULL && action->rsc->is_managed == FALSE) { dot_write("\"%s\" [ font_color=black style=filled fillcolor=%s ]", action_name, "purple"); } else if(action->optional) { - dot_write("\"%s\" [ style=\"dashed\" color=\"%s\" fontcolor=\"%s\" ]", - action_name, "blue", - action->pseudo?"orange":"black"); - + if(all_actions) { + dot_write("\"%s\" [ style=\"dashed\" color=\"%s\" fontcolor=\"%s\" ]", + action_name, "blue", + action->pseudo?"orange":"black"); + } + } else { dot_write("\"%s\" [ font_color=purple style=filled fillcolor=%s ]", action_name, "red"); CRM_CHECK(action->runnable == FALSE, ;); } } else { dot_write("\"%s\" [ style=bold color=\"%s\" fontcolor=\"%s\" ]", action_name, "green", action->pseudo?"orange":"black"); } crm_free(action_name); ); slist_iter( action, action_t, data_set.actions, lpc, int last_action = -1; slist_iter( before, action_wrapper_t, action->actions_before, lpc2, char *before_name = NULL; char *after_name = NULL; optional = FALSE; if(last_action == before->action->id) { continue; } last_action = before->action->id; if(action->dumped && before->action->dumped) { } else if(action->optional || before->action->optional) { optional = TRUE; } before_name = create_action_name(before->action); after_name = create_action_name(action); - dot_write("\"%s\" -> \"%s\" [ style = %s]", - before_name, after_name, - optional?"dashed":"bold"); + if(all_actions || optional == FALSE) { + dot_write("\"%s\" -> \"%s\" [ style = %s]", + before_name, after_name, + optional?"dashed":"bold"); + } crm_free(before_name); crm_free(after_name); ); ); dot_write("}"); transition = unpack_graph(data_set.graph); print_graph(LOG_NOTICE, transition); do { graph_rc = run_graph(transition); } while(graph_rc == transition_active); if(graph_rc != transition_complete) { crm_crit("Transition failed: %s", transition_status(graph_rc)); print_graph(LOG_ERR, transition); } data_set.input = NULL; cleanup_alloc_calculations(&data_set); destroy_graph(transition); crm_mem_stats(NULL); #ifdef HA_MALLOC_TRACK cl_malloc_dump_allocated(LOG_ERR, TRUE); #endif CRM_CHECK(crm_mem_stats(NULL) == FALSE, all_good = FALSE; crm_err("Memory leak detected")); CRM_CHECK(graph_rc == transition_complete, all_good = FALSE; crm_err("An invalid transition was produced")); crm_free(cib_object); #ifdef MCHECK muntrace(); #endif /* required for MallocDebug.app */ if(inhibit_exit) { GMainLoop* mainloop = g_main_new(FALSE); g_main_run(mainloop); } if(all_good) { return 0; } return 5; } diff --git a/crm/pengine/testcases/1360.dot b/crm/pengine/testcases/1360.dot index a603f039d2..0f315c795e 100644 --- a/crm/pengine/testcases/1360.dot +++ b/crm/pengine/testcases/1360.dot @@ -1,38 +1,18 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete ssgtest1a" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete ssgtest1b" [ style="dashed" color="blue" fontcolor="black" ] -"VIP_stop_0 ssgtest1a" [ style="dashed" color="blue" fontcolor="black" ] -"VIP_start_0 ssgtest1a" [ style="dashed" color="blue" fontcolor="black" ] -"ClusterAlias_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ClusterAlias_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ClusterAlias_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ClusterAlias_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "dollies:0_stop_0 ssgtest1a" [ style=bold color="green" fontcolor="black" ] "dollies:0_start_0 ssgtest1b" [ style=bold color="green" fontcolor="black" ] "dolly_start_0" [ style=bold color="green" fontcolor="orange" ] "dolly_running_0" [ style=bold color="green" fontcolor="orange" ] "dolly_stop_0" [ style=bold color="green" fontcolor="orange" ] "dolly_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"probe_complete ssgtest1a" -> "probe_complete" [ style = dashed] -"probe_complete ssgtest1b" -> "probe_complete" [ style = dashed] -"ClusterAlias_stop_0" -> "VIP_stop_0 ssgtest1a" [ style = dashed] -"VIP_stop_0 ssgtest1a" -> "VIP_start_0 ssgtest1a" [ style = dashed] -"ClusterAlias_start_0" -> "VIP_start_0 ssgtest1a" [ style = dashed] -"ClusterAlias_stop_0" -> "ClusterAlias_start_0" [ style = dashed] -"ClusterAlias_stopped_0" -> "ClusterAlias_start_0" [ style = dashed] -"ClusterAlias_start_0" -> "ClusterAlias_running_0" [ style = dashed] -"VIP_start_0 ssgtest1a" -> "ClusterAlias_running_0" [ style = dashed] -"ClusterAlias_stop_0" -> "ClusterAlias_stopped_0" [ style = dashed] -"VIP_stop_0 ssgtest1a" -> "ClusterAlias_stopped_0" [ style = dashed] "dolly_stop_0" -> "dollies:0_stop_0 ssgtest1a" [ style = bold] "dollies:0_stop_0 ssgtest1a" -> "dollies:0_start_0 ssgtest1b" [ style = bold] "dolly_start_0" -> "dollies:0_start_0 ssgtest1b" [ style = bold] "dolly_stop_0" -> "dolly_start_0" [ style = bold] "dolly_stopped_0" -> "dolly_start_0" [ style = bold] "dollies:0_start_0 ssgtest1b" -> "dolly_running_0" [ style = bold] "dolly_start_0" -> "dolly_running_0" [ style = bold] "dollies:0_stop_0 ssgtest1a" -> "dolly_stopped_0" [ style = bold] "dolly_stop_0" -> "dolly_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/594.dot b/crm/pengine/testcases/594.dot index 32bfd3b1e8..0f3767f4aa 100644 --- a/crm/pengine/testcases/594.dot +++ b/crm/pengine/testcases/594.dot @@ -1,75 +1,44 @@ digraph "g" { size = "30,30" -"child_DoFencing:0_monitor_5000 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev2_monitor_5000 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev1_monitor_5000 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_5000 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev3_monitor_5000 hadev1" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev3_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "probe_complete hadev1" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 hadev2" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_start_0 hadev1" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 hadev1" [ style=bold color="green" fontcolor="black" ] -"rsc_hadev3_stop_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev3_start_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] "rsc_hadev2_stop_0 hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_start_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_5000 hadev1" [ style=bold color="green" fontcolor="black" ] -"rsc_hadev1_stop_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev1_start_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 hadev2" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:1_stop_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 hadev1" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:2_stop_0 hadev1" [ style=bold color="green" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] "stonith hadev3" [ style=bold color="green" fontcolor="black" ] "do_shutdown hadev2" [ style=bold color="green" fontcolor="black" ] -"rsc_hadev1_start_0 hadev1" -> "rsc_hadev1_monitor_5000 hadev1" [ style = dashed] -"child_DoFencing:1_start_0 hadev1" -> "child_DoFencing:1_monitor_5000 hadev1" [ style = dashed] -"rsc_hadev3_start_0 hadev1" -> "rsc_hadev3_monitor_5000 hadev1" [ style = dashed] "probe_complete hadev2" -> "probe_complete" [ style = bold] "probe_complete hadev1" -> "probe_complete" [ style = bold] "rsc_hadev3_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:2_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "DcIPaddr_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "rsc_hadev2_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "child_DoFencing:0_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "probe_complete" -> "DcIPaddr_start_0 hadev1" [ style = bold] "DcIPaddr_stop_0 hadev2" -> "DcIPaddr_start_0 hadev1" [ style = bold] "DcIPaddr_start_0 hadev1" -> "DcIPaddr_monitor_5000 hadev1" [ style = bold] -"probe_complete" -> "rsc_hadev3_start_0 hadev1" [ style = dashed] -"rsc_hadev3_stop_0 hadev1" -> "rsc_hadev3_start_0 hadev1" [ style = dashed] "probe_complete" -> "rsc_hadev2_start_0 hadev1" [ style = bold] "rsc_hadev2_stop_0 hadev2" -> "rsc_hadev2_start_0 hadev1" [ style = bold] "rsc_hadev2_start_0 hadev1" -> "rsc_hadev2_monitor_5000 hadev1" [ style = bold] -"rsc_hadev1_stop_0 hadev1" -> "rsc_hadev1_start_0 hadev1" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 hadev2" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 hadev1" [ style = dashed] -"child_DoFencing:1_stop_0 hadev1" -> "child_DoFencing:1_start_0 hadev1" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 hadev1" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:2_stop_0 hadev1" [ style = bold] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 hadev1" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:0_stop_0 hadev2" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:1_stop_0 hadev1" -> "DoFencing_stopped_0" [ style = dashed] "child_DoFencing:2_stop_0 hadev1" -> "DoFencing_stopped_0" [ style = bold] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] -"DoFencing_running_0" -> "stonith hadev3" [ style = dashed] "DcIPaddr_stop_0 hadev2" -> "do_shutdown hadev2" [ style = bold] "rsc_hadev2_stop_0 hadev2" -> "do_shutdown hadev2" [ style = bold] "child_DoFencing:0_stop_0 hadev2" -> "do_shutdown hadev2" [ style = bold] } diff --git a/crm/pengine/testcases/662.dot b/crm/pengine/testcases/662.dot index 0ecf053360..da3e06698b 100644 --- a/crm/pengine/testcases/662.dot +++ b/crm/pengine/testcases/662.dot @@ -1,132 +1,73 @@ digraph "g" { size = "30,30" -"rsc_c001n09_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] "do_shutdown c001n02" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n09_start_0 c001n09" -> "rsc_c001n09_monitor_5000 c001n09" [ style = dashed] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:3_start_0 c001n09" -> "child_DoFencing:3_monitor_5000 c001n09" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"rsc_c001n04_start_0 c001n04" -> "rsc_c001n04_monitor_5000 c001n04" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] -"rsc_c001n09_stop_0 c001n09" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] "probe_complete" -> "rsc_c001n02_start_0 c001n03" [ style = bold] "rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n03" [ style = bold] "rsc_c001n02_start_0 c001n03" -> "rsc_c001n02_monitor_5000 c001n03" [ style = bold] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n09" [ style = dashed] -"child_DoFencing:3_stop_0 c001n09" -> "child_DoFencing:3_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] "rsc_c001n02_stop_0 c001n02" -> "do_shutdown c001n02" [ style = bold] "child_DoFencing:0_stop_0 c001n02" -> "do_shutdown c001n02" [ style = bold] } diff --git a/crm/pengine/testcases/696.dot b/crm/pengine/testcases/696.dot index 558b06c678..c3869671d7 100644 --- a/crm/pengine/testcases/696.dot +++ b/crm/pengine/testcases/696.dot @@ -1,92 +1,66 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete hadev1" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev3_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev1" [ style=bold color="green" fontcolor="black" ] "probe_complete hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev3_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "probe_complete hadev3" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_stop_0 hadev3" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_start_0 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_monitor_5000 hadev1" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] -"rsc_hadev3_stop_0 hadev3" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev3_start_0 hadev3" [ style="dashed" color="blue" fontcolor="black" ] "rsc_hadev3_monitor_5000 hadev3" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:0_stop_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:1_stop_0 hadev3" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 hadev3" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:1_monitor_5000 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_start_0 hadev1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_5000 hadev1" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete hadev1" -> "probe_complete" [ style = bold] "probe_complete hadev2" -> "probe_complete" [ style = bold] "probe_complete hadev3" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "rsc_hadev1_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "rsc_hadev2_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "rsc_hadev3_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "child_DoFencing:0_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "child_DoFencing:1_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "child_DoFencing:2_monitor_0 hadev1" -> "probe_complete hadev1" [ style = bold] "rsc_hadev1_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "rsc_hadev3_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:1_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:2_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "DcIPaddr_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "rsc_hadev2_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "child_DoFencing:0_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "child_DoFencing:2_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "probe_complete" -> "DcIPaddr_start_0 hadev2" [ style = bold] "DcIPaddr_start_0 hadev2" -> "DcIPaddr_monitor_5000 hadev2" [ style = bold] "probe_complete" -> "rsc_hadev1_start_0 hadev1" [ style = bold] "rsc_hadev1_stop_0 hadev3" -> "rsc_hadev1_start_0 hadev1" [ style = bold] "rsc_hadev1_start_0 hadev1" -> "rsc_hadev1_monitor_5000 hadev1" [ style = bold] "probe_complete" -> "rsc_hadev2_start_0 hadev2" [ style = bold] "rsc_hadev2_start_0 hadev2" -> "rsc_hadev2_monitor_5000 hadev2" [ style = bold] -"probe_complete" -> "rsc_hadev3_start_0 hadev3" [ style = dashed] -"rsc_hadev3_stop_0 hadev3" -> "rsc_hadev3_start_0 hadev3" [ style = dashed] -"rsc_hadev3_start_0 hadev3" -> "rsc_hadev3_monitor_5000 hadev3" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 hadev2" [ style = dashed] -"child_DoFencing:0_stop_0 hadev2" -> "child_DoFencing:0_start_0 hadev2" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 hadev2" [ style = dashed] -"child_DoFencing:0_start_0 hadev2" -> "child_DoFencing:0_monitor_5000 hadev2" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 hadev3" [ style = dashed] -"child_DoFencing:1_stop_0 hadev3" -> "child_DoFencing:1_start_0 hadev3" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 hadev3" [ style = dashed] -"child_DoFencing:1_start_0 hadev3" -> "child_DoFencing:1_monitor_5000 hadev3" [ style = dashed] "DoFencing_start_0" -> "child_DoFencing:2_start_0 hadev1" [ style = bold] "child_DoFencing:2_start_0 hadev1" -> "child_DoFencing:2_monitor_5000 hadev1" [ style = bold] "probe_complete" -> "DoFencing_start_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"child_DoFencing:0_start_0 hadev2" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 hadev3" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:2_start_0 hadev1" -> "DoFencing_running_0" [ style = bold] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 hadev2" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 hadev3" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/726.dot b/crm/pengine/testcases/726.dot index 4123b55e0a..0e3f8e64c6 100644 --- a/crm/pengine/testcases/726.dot +++ b/crm/pengine/testcases/726.dot @@ -1,127 +1,112 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete test03" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_monitor_0 test03" [ style=bold color="green" fontcolor="black" ] "rsc_test02_monitor_0 test03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 test03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 test03" [ style=bold color="green" fontcolor="black" ] "probe_complete test02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "rsc_test02_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "rsc_test03_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 test02" [ style=bold color="green" fontcolor="black" ] "probe_complete sgi2" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_test02_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_test03_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 sgi2" [ style=bold color="green" fontcolor="black" ] "probe_complete ibm1" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_test02_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_test03_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 test03" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 test03" [ style="dashed" color="blue" fontcolor="black" ] "DcIPaddr_monitor_5000 test03" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_start_0 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_sgi2_monitor_5000 sgi2" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_stop_0 test03" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_start_0 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_ibm1_monitor_5000 ibm1" [ style=bold color="green" fontcolor="black" ] "rsc_test02_start_0 test02" [ style=bold color="green" fontcolor="black" ] "rsc_test02_monitor_5000 test02" [ style=bold color="green" fontcolor="black" ] -"rsc_test03_stop_0 test03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_test03_start_0 test03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_test03_monitor_5000 test03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 test02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_5000 test02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_start_0 test03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_5000 test03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_start_0 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_5000 sgi2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_start_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_5000 ibm1" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete test03" -> "probe_complete" [ style = bold] "probe_complete test02" -> "probe_complete" [ style = bold] "probe_complete sgi2" -> "probe_complete" [ style = bold] "probe_complete ibm1" -> "probe_complete" [ style = bold] "rsc_sgi2_monitor_0 test03" -> "probe_complete test03" [ style = bold] "rsc_test02_monitor_0 test03" -> "probe_complete test03" [ style = bold] "child_DoFencing:2_monitor_0 test03" -> "probe_complete test03" [ style = bold] "child_DoFencing:3_monitor_0 test03" -> "probe_complete test03" [ style = bold] "DcIPaddr_monitor_0 test02" -> "probe_complete test02" [ style = bold] "rsc_sgi2_monitor_0 test02" -> "probe_complete test02" [ style = bold] "rsc_ibm1_monitor_0 test02" -> "probe_complete test02" [ style = bold] "rsc_test02_monitor_0 test02" -> "probe_complete test02" [ style = bold] "rsc_test03_monitor_0 test02" -> "probe_complete test02" [ style = bold] "child_DoFencing:1_monitor_0 test02" -> "probe_complete test02" [ style = bold] "child_DoFencing:2_monitor_0 test02" -> "probe_complete test02" [ style = bold] "child_DoFencing:3_monitor_0 test02" -> "probe_complete test02" [ style = bold] "DcIPaddr_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "rsc_sgi2_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "rsc_ibm1_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "rsc_test02_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "rsc_test03_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "child_DoFencing:0_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "child_DoFencing:1_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "child_DoFencing:2_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "child_DoFencing:3_monitor_0 sgi2" -> "probe_complete sgi2" [ style = bold] "DcIPaddr_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "rsc_sgi2_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "rsc_ibm1_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "rsc_test02_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "rsc_test03_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "child_DoFencing:0_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "child_DoFencing:1_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "child_DoFencing:2_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "child_DoFencing:3_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 test03" [ style = dashed] -"DcIPaddr_stop_0 test03" -> "DcIPaddr_start_0 test03" [ style = dashed] -"DcIPaddr_start_0 test03" -> "DcIPaddr_monitor_5000 test03" [ style = dashed] "probe_complete" -> "rsc_sgi2_start_0 sgi2" [ style = bold] "rsc_sgi2_start_0 sgi2" -> "rsc_sgi2_monitor_5000 sgi2" [ style = bold] "probe_complete" -> "rsc_ibm1_start_0 ibm1" [ style = bold] "rsc_ibm1_stop_0 test03" -> "rsc_ibm1_start_0 ibm1" [ style = bold] "rsc_ibm1_start_0 ibm1" -> "rsc_ibm1_monitor_5000 ibm1" [ style = bold] "probe_complete" -> "rsc_test02_start_0 test02" [ style = bold] "rsc_test02_start_0 test02" -> "rsc_test02_monitor_5000 test02" [ style = bold] -"probe_complete" -> "rsc_test03_start_0 test03" [ style = dashed] -"rsc_test03_stop_0 test03" -> "rsc_test03_start_0 test03" [ style = dashed] -"rsc_test03_start_0 test03" -> "rsc_test03_monitor_5000 test03" [ style = dashed] "DoFencing_start_0" -> "child_DoFencing:0_start_0 test02" [ style = bold] "child_DoFencing:0_start_0 test02" -> "child_DoFencing:0_monitor_5000 test02" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:1_start_0 test03" [ style = bold] "child_DoFencing:1_start_0 test03" -> "child_DoFencing:1_monitor_5000 test03" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:2_start_0 sgi2" [ style = bold] "child_DoFencing:2_start_0 sgi2" -> "child_DoFencing:2_monitor_5000 sgi2" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:3_start_0 ibm1" [ style = bold] "child_DoFencing:3_start_0 ibm1" -> "child_DoFencing:3_monitor_5000 ibm1" [ style = bold] "probe_complete" -> "DoFencing_start_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] "child_DoFencing:0_start_0 test02" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:1_start_0 test03" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:2_start_0 sgi2" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:3_start_0 ibm1" -> "DoFencing_running_0" [ style = bold] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/735.dot b/crm/pengine/testcases/735.dot index bae6293264..db467fcbe2 100644 --- a/crm/pengine/testcases/735.dot +++ b/crm/pengine/testcases/735.dot @@ -1,55 +1,36 @@ digraph "g" { size = "30,30" -"rsc_hadev2_monitor_5000 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 hadev2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] -"probe_complete hadev2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete hadev3" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "rsc_hadev2_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev3" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] "rsc_hadev1_stop_0 hadev2" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_start_0 hadev3" [ style=bold color="green" fontcolor="black" ] "rsc_hadev1_monitor_5000 hadev3" [ style=bold color="green" fontcolor="black" ] -"rsc_hadev2_stop_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_hadev2_start_0 hadev2" [ style="dashed" color="blue" fontcolor="black" ] "rsc_hadev3_start_0 hadev3" [ style=bold color="green" fontcolor="black" ] "rsc_hadev3_monitor_5000 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_start_0 hadev3" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_5000 hadev3" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_hadev2_start_0 hadev2" -> "rsc_hadev2_monitor_5000 hadev2" [ style = dashed] -"DcIPaddr_start_0 hadev2" -> "DcIPaddr_monitor_5000 hadev2" [ style = dashed] -"probe_complete hadev2" -> "probe_complete" [ style = dashed] "probe_complete hadev3" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "rsc_hadev2_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "child_DoFencing:0_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] "child_DoFencing:2_monitor_0 hadev3" -> "probe_complete hadev3" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 hadev2" [ style = dashed] -"DcIPaddr_stop_0 hadev2" -> "DcIPaddr_start_0 hadev2" [ style = dashed] "rsc_hadev1_stop_0 hadev2" -> "rsc_hadev1_start_0 hadev3" [ style = bold] "rsc_hadev1_start_0 hadev3" -> "rsc_hadev1_monitor_5000 hadev3" [ style = bold] -"probe_complete" -> "rsc_hadev2_start_0 hadev2" [ style = dashed] -"rsc_hadev2_stop_0 hadev2" -> "rsc_hadev2_start_0 hadev2" [ style = dashed] "rsc_hadev3_start_0 hadev3" -> "rsc_hadev3_monitor_5000 hadev3" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:0_start_0 hadev2" [ style = bold] "child_DoFencing:0_start_0 hadev2" -> "child_DoFencing:0_monitor_5000 hadev2" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:1_start_0 hadev3" [ style = bold] "child_DoFencing:1_start_0 hadev3" -> "child_DoFencing:1_monitor_5000 hadev3" [ style = bold] "probe_complete" -> "DoFencing_start_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] "child_DoFencing:0_start_0 hadev2" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:1_start_0 hadev3" -> "DoFencing_running_0" [ style = bold] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/764.dot b/crm/pengine/testcases/764.dot index 633b39617b..514878d8e3 100644 --- a/crm/pengine/testcases/764.dot +++ b/crm/pengine/testcases/764.dot @@ -1,74 +1,31 @@ digraph "g" { size = "30,30" -"rsc_posic041_monitor_5000 posic041" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_posic043_monitor_5000 posic043" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 posic043" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete posic041" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 posic041" [ style=bold color="green" fontcolor="black" ] "rsc_posic043_monitor_0 posic041" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 posic041" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 posic041" [ style=bold color="green" fontcolor="black" ] "probe_complete posic043" [ style=bold color="green" fontcolor="black" ] "rsc_posic041_monitor_0 posic043" [ style=bold color="green" fontcolor="black" ] "rsc_posic042_monitor_0 posic043" [ style=bold color="green" fontcolor="black" ] "rsc_posic044_monitor_0 posic043" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 posic043" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 posic043" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_start_0 posic043" [ style="dashed" color="blue" fontcolor="black" ] "rsc_posic041_stop_0 posic041" [ style=bold color="green" fontcolor="black" ] -"rsc_posic041_start_0 posic041" [ style="dashed" color="blue" fontcolor="black" ] "rsc_posic042_stop_0 posic041" [ style=bold color="green" fontcolor="black" ] -"rsc_posic042_start_0 posic041" [ style="dashed" color="blue" fontcolor="black" ] "rsc_posic043_stop_0 posic043" [ style=bold color="green" fontcolor="black" ] -"rsc_posic043_start_0 posic043" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_posic044_start_0 posic041" [ style="dashed" color="blue" fontcolor="black" ] "rsc_posic044_stop_0 posic041" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:0_stop_0 posic043" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 posic043" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_monitor_5000 posic043" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:1_stop_0 posic041" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 posic041" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:1_monitor_5000 posic041" [ style=bold color="green" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete posic041" -> "probe_complete" [ style = bold] "probe_complete posic043" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 posic041" -> "probe_complete posic041" [ style = bold] "rsc_posic043_monitor_0 posic041" -> "probe_complete posic041" [ style = bold] "child_DoFencing:2_monitor_0 posic041" -> "probe_complete posic041" [ style = bold] "child_DoFencing:3_monitor_0 posic041" -> "probe_complete posic041" [ style = bold] "rsc_posic041_monitor_0 posic043" -> "probe_complete posic043" [ style = bold] "rsc_posic042_monitor_0 posic043" -> "probe_complete posic043" [ style = bold] "rsc_posic044_monitor_0 posic043" -> "probe_complete posic043" [ style = bold] "child_DoFencing:1_monitor_0 posic043" -> "probe_complete posic043" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 posic043" [ style = dashed] -"DcIPaddr_stop_0 posic043" -> "DcIPaddr_start_0 posic043" [ style = dashed] -"probe_complete" -> "rsc_posic041_start_0 posic041" [ style = dashed] -"rsc_posic041_stop_0 posic041" -> "rsc_posic041_start_0 posic041" [ style = dashed] -"probe_complete" -> "rsc_posic042_start_0 posic041" [ style = dashed] -"rsc_posic042_stop_0 posic041" -> "rsc_posic042_start_0 posic041" [ style = dashed] -"probe_complete" -> "rsc_posic043_start_0 posic043" [ style = dashed] -"rsc_posic043_stop_0 posic043" -> "rsc_posic043_start_0 posic043" [ style = dashed] -"probe_complete" -> "rsc_posic044_start_0 posic041" [ style = dashed] -"rsc_posic044_stop_0 posic041" -> "rsc_posic044_start_0 posic041" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 posic043" [ style = dashed] -"child_DoFencing:0_stop_0 posic043" -> "child_DoFencing:0_start_0 posic043" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 posic043" [ style = dashed] -"child_DoFencing:0_start_0 posic043" -> "child_DoFencing:0_monitor_5000 posic043" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 posic041" [ style = dashed] -"child_DoFencing:1_stop_0 posic041" -> "child_DoFencing:1_start_0 posic041" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 posic041" [ style = dashed] -"child_DoFencing:1_start_0 posic041" -> "child_DoFencing:1_monitor_5000 posic041" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 posic043" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 posic041" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 posic043" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 posic041" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/797.dot b/crm/pengine/testcases/797.dot index 80c1449fdf..d26679abbc 100644 --- a/crm/pengine/testcases/797.dot +++ b/crm/pengine/testcases/797.dot @@ -1,109 +1,84 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:2_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_delete_0 c001n03" [ style=bold color="green" fontcolor="black" ] "lrm_refresh c001n03" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_start_0 c001n01" [ font_color=purple style=filled fillcolor=red ] "rsc_c001n08_monitor_5000 c001n01" [ font_color=purple style=filled fillcolor=red ] "rsc_c001n02_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_start_0 c001n01" [ font_color=purple style=filled fillcolor=red ] "rsc_c001n02_monitor_5000 c001n01" [ font_color=purple style=filled fillcolor=red ] "rsc_c001n03_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n01_stop_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] "do_shutdown c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 c001n01" -> "child_DoFencing:0_monitor_5000 c001n01" [ style = bold] -"child_DoFencing:2_start_0 c001n03" -> "child_DoFencing:2_monitor_5000 c001n03" [ style = dashed] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:2_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_stop_0 c001n03" -> "DcIPaddr_delete_0 c001n03" [ style = bold] "DcIPaddr_delete_0 c001n03" -> "lrm_refresh c001n03" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n03" [ style = dashed] -"DcIPaddr_stop_0 c001n03" -> "DcIPaddr_start_0 c001n03" [ style = dashed] -"DcIPaddr_delete_0 c001n03" -> "DcIPaddr_start_0 c001n03" [ style = dashed] "probe_complete" -> "rsc_c001n08_start_0 c001n01" [ style = bold] "rsc_c001n08_stop_0 c001n02" -> "rsc_c001n08_start_0 c001n01" [ style = bold] "rsc_c001n08_start_0 c001n01" -> "rsc_c001n08_monitor_5000 c001n01" [ style = bold] "probe_complete" -> "rsc_c001n02_start_0 c001n01" [ style = bold] "rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n01" [ style = bold] "rsc_c001n02_start_0 c001n01" -> "rsc_c001n02_monitor_5000 c001n01" [ style = bold] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n03" [ style = bold] "child_DoFencing:0_stop_0 c001n01" -> "child_DoFencing:0_start_0 c001n01" [ style = bold] "child_DoFencing:0_stop_0 c001n03" -> "child_DoFencing:0_start_0 c001n01" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n01" [ style = bold] "DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n02" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n03" [ style = dashed] -"child_DoFencing:2_stop_0 c001n03" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] "probe_complete" -> "DoFencing_start_0" [ style = bold] "DoFencing_stop_0" -> "DoFencing_start_0" [ style = bold] "DoFencing_stopped_0" -> "DoFencing_start_0" [ style = bold] "child_DoFencing:0_start_0 c001n01" -> "DoFencing_running_0" [ style = bold] -"child_DoFencing:2_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = bold] "child_DoFencing:0_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = bold] "child_DoFencing:1_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:2_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] "rsc_c001n08_stop_0 c001n02" -> "do_shutdown c001n02" [ style = bold] "rsc_c001n02_stop_0 c001n02" -> "do_shutdown c001n02" [ style = bold] "child_DoFencing:1_stop_0 c001n02" -> "do_shutdown c001n02" [ style = bold] } diff --git a/crm/pengine/testcases/829.dot b/crm/pengine/testcases/829.dot index 5b443d21d2..2ab206b40e 100644 --- a/crm/pengine/testcases/829.dot +++ b/crm/pengine/testcases/829.dot @@ -1,117 +1,59 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ style=bold color="green" fontcolor="orange" ] "rsc_c001n02_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n02" [ style=bold color="green" fontcolor="orange" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] "stonith c001n02" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "child_DoFencing:3_monitor_5000 c001n08" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "child_DoFencing:2_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:0_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n08" [ style = dashed] -"DcIPaddr_stop_0 c001n08" -> "DcIPaddr_start_0 c001n08" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] "stonith c001n02" -> "rsc_c001n02_stop_0 c001n02" [ style = bold] "probe_complete" -> "rsc_c001n02_start_0 c001n03" [ style = bold] "rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n03" [ style = bold] "rsc_c001n02_start_0 c001n03" -> "rsc_c001n02_monitor_5000 c001n03" [ style = bold] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold] "stonith c001n02" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n01" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n08" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] -"DoFencing_running_0" -> "stonith c001n02" [ style = dashed] } diff --git a/crm/pengine/testcases/994.dot b/crm/pengine/testcases/994.dot index 7deca1d7a6..2c4ef34215 100644 --- a/crm/pengine/testcases/994.dot +++ b/crm/pengine/testcases/994.dot @@ -1,44 +1,18 @@ digraph "g" { size = "30,30" -"Filesystem_2_monitor_120000 paul" [ style="dashed" color="blue" fontcolor="black" ] "postfix_9_monitor_120000 paul" [ style=bold color="green" fontcolor="black" ] "postfix_9_stop_0 paul" [ style=bold color="green" fontcolor="black" ] -"datadisk_1_monitor_120000 paul" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_5_monitor_5000 paul" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete paul" [ style="dashed" color="blue" fontcolor="black" ] -"datadisk_1_stop_0 paul" [ style="dashed" color="blue" fontcolor="black" ] -"datadisk_1_start_0 paul" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_2_stop_0 paul" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_2_start_0 paul" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_5_stop_0 paul" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_5_start_0 paul" [ style="dashed" color="blue" fontcolor="black" ] "postfix_9_start_0 paul" [ style=bold color="green" fontcolor="black" ] "group_1_start_0" [ style=bold color="green" fontcolor="orange" ] "group_1_running_0" [ style=bold color="green" fontcolor="orange" ] "group_1_stop_0" [ style=bold color="green" fontcolor="orange" ] "group_1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"Filesystem_2_start_0 paul" -> "Filesystem_2_monitor_120000 paul" [ style = dashed] "postfix_9_start_0 paul" -> "postfix_9_monitor_120000 paul" [ style = bold] "group_1_stop_0" -> "postfix_9_stop_0 paul" [ style = bold] -"datadisk_1_start_0 paul" -> "datadisk_1_monitor_120000 paul" [ style = dashed] -"IPaddr_5_start_0 paul" -> "IPaddr_5_monitor_5000 paul" [ style = dashed] -"probe_complete paul" -> "probe_complete" [ style = dashed] -"Filesystem_2_stop_0 paul" -> "datadisk_1_stop_0 paul" [ style = dashed] -"datadisk_1_stop_0 paul" -> "datadisk_1_start_0 paul" [ style = dashed] -"group_1_start_0" -> "datadisk_1_start_0 paul" [ style = dashed] -"IPaddr_5_stop_0 paul" -> "Filesystem_2_stop_0 paul" [ style = dashed] -"Filesystem_2_stop_0 paul" -> "Filesystem_2_start_0 paul" [ style = dashed] -"datadisk_1_start_0 paul" -> "Filesystem_2_start_0 paul" [ style = dashed] -"postfix_9_stop_0 paul" -> "IPaddr_5_stop_0 paul" [ style = dashed] -"IPaddr_5_stop_0 paul" -> "IPaddr_5_start_0 paul" [ style = dashed] -"Filesystem_2_start_0 paul" -> "IPaddr_5_start_0 paul" [ style = dashed] "postfix_9_stop_0 paul" -> "postfix_9_start_0 paul" [ style = bold] -"IPaddr_5_start_0 paul" -> "postfix_9_start_0 paul" [ style = dashed] "group_1_stop_0" -> "group_1_start_0" [ style = bold] "group_1_stopped_0" -> "group_1_start_0" [ style = bold] "postfix_9_start_0 paul" -> "group_1_running_0" [ style = bold] "group_1_start_0" -> "group_1_running_0" [ style = bold] -"datadisk_1_stop_0 paul" -> "group_1_stopped_0" [ style = dashed] "group_1_stop_0" -> "group_1_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/group1.dot b/crm/pengine/testcases/group1.dot index d2f3a02292..d62ebf0d92 100644 --- a/crm/pengine/testcases/group1.dot +++ b/crm/pengine/testcases/group1.dot @@ -1,36 +1,31 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1_start_0 node1" [ style = bold] "child_rsc1_start_0 node1" -> "child_rsc2_start_0 node1" [ style = bold] "child_rsc2_start_0 node1" -> "child_rsc3_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] "child_rsc3_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group10.dot b/crm/pengine/testcases/group10.dot index d1c7e7e710..1959c3a95e 100644 --- a/crm/pengine/testcases/group10.dot +++ b/crm/pengine/testcases/group10.dot @@ -1,131 +1,61 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_20000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.182_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.183_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.181_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.181_stop_0 c001n01" [ style=bold color="green" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.181_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.182_stop_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.182_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.183_stop_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.183_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "group-1_start_0" [ style=bold color="green" fontcolor="orange" ] "group-1_running_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stop_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "child_DoFencing:3_monitor_20000 c001n08" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n02" -> "child_DoFencing:1_monitor_20000 c001n02" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n03" -> "child_DoFencing:2_monitor_20000 c001n03" [ style = dashed] -"child_DoFencing:0_start_0 c001n01" -> "child_DoFencing:0_monitor_20000 c001n01" [ style = dashed] "child_192.168.100.182_start_0 c001n01" -> "child_192.168.100.182_monitor_5000 c001n01" [ style = bold] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "child_192.168.100.183_start_0 c001n01" -> "child_192.168.100.183_monitor_5000 c001n01" [ style = bold] "child_192.168.100.181_start_0 c001n01" -> "child_192.168.100.181_monitor_5000 c001n01" [ style = bold] "child_192.168.100.182_stop_0 c001n01" -> "child_192.168.100.181_stop_0 c001n01" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:2_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"DcIPaddr_stop_0 c001n08" -> "DcIPaddr_start_0 c001n08" [ style = dashed] "child_192.168.100.181_stop_0 c001n01" -> "child_192.168.100.181_start_0 c001n01" [ style = bold] "group-1_start_0" -> "child_192.168.100.181_start_0 c001n01" [ style = bold] "child_192.168.100.183_stop_0 c001n01" -> "child_192.168.100.182_stop_0 c001n01" [ style = bold] "child_192.168.100.181_start_0 c001n01" -> "child_192.168.100.182_start_0 c001n01" [ style = bold] "child_192.168.100.182_stop_0 c001n01" -> "child_192.168.100.182_start_0 c001n01" [ style = bold] "group-1_stop_0" -> "child_192.168.100.183_stop_0 c001n01" [ style = bold] "child_192.168.100.182_start_0 c001n01" -> "child_192.168.100.183_start_0 c001n01" [ style = bold] "child_192.168.100.183_stop_0 c001n01" -> "child_192.168.100.183_start_0 c001n01" [ style = bold] "group-1_stop_0" -> "group-1_start_0" [ style = bold] "group-1_stopped_0" -> "group-1_start_0" [ style = bold] "child_192.168.100.183_start_0 c001n01" -> "group-1_running_0" [ style = bold] "group-1_start_0" -> "group-1_running_0" [ style = bold] "child_192.168.100.181_stop_0 c001n01" -> "group-1_stopped_0" [ style = bold] "group-1_stop_0" -> "group-1_stopped_0" [ style = bold] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = dashed] -"child_DoFencing:0_stop_0 c001n01" -> "child_DoFencing:0_start_0 c001n01" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n02" [ style = dashed] -"child_DoFencing:1_stop_0 c001n02" -> "child_DoFencing:1_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n03" [ style = dashed] -"child_DoFencing:2_stop_0 c001n03" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n08" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n01" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group11.dot b/crm/pengine/testcases/group11.dot index 075cf1fbc9..0fcba38ddb 100644 --- a/crm/pengine/testcases/group11.dot +++ b/crm/pengine/testcases/group11.dot @@ -1,21 +1,14 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "1_stop_0" [ style=bold color="green" fontcolor="orange" ] "1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] "rsc2_stop_0 node1" -> "rsc1_stop_0 node1" [ style = bold] "rsc3_stop_0 node1" -> "rsc2_stop_0 node1" [ style = bold] "1_stop_0" -> "rsc3_stop_0 node1" [ style = bold] -"1_stop_0" -> "1_start_0" [ style = dashed] -"1_stopped_0" -> "1_start_0" [ style = dashed] -"1_start_0" -> "1_running_0" [ style = dashed] "rsc1_stop_0 node1" -> "1_stopped_0" [ style = bold] "1_stop_0" -> "1_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/group13.dot b/crm/pengine/testcases/group13.dot index 60a891be7b..659ba12dc6 100644 --- a/crm/pengine/testcases/group13.dot +++ b/crm/pengine/testcases/group13.dot @@ -1,25 +1,9 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete jamesltc" [ style="dashed" color="blue" fontcolor="black" ] "resource_nfs_stop_0 jamesltc" [ style=bold color="green" fontcolor="black" ] -"nfs_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"nfs_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "nfs_stop_0" [ style=bold color="green" fontcolor="orange" ] "nfs_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"fs_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"fs_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"fs_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"fs_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete jamesltc" -> "probe_complete" [ style = dashed] "nfs_stop_0" -> "resource_nfs_stop_0 jamesltc" [ style = bold] -"nfs_stop_0" -> "nfs_start_0" [ style = dashed] -"nfs_stopped_0" -> "nfs_start_0" [ style = dashed] -"nfs_start_0" -> "nfs_running_0" [ style = dashed] "resource_nfs_stop_0 jamesltc" -> "nfs_stopped_0" [ style = bold] "nfs_stop_0" -> "nfs_stopped_0" [ style = bold] -"fs_stop_0" -> "fs_start_0" [ style = dashed] -"fs_stopped_0" -> "fs_start_0" [ style = dashed] -"fs_start_0" -> "fs_running_0" [ style = dashed] -"fs_stop_0" -> "fs_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group2.dot b/crm/pengine/testcases/group2.dot index 923a499e31..43ef4e56e5 100644 --- a/crm/pengine/testcases/group2.dot +++ b/crm/pengine/testcases/group2.dot @@ -1,50 +1,45 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc1_start_0 node2" [ style = bold] "child_rsc1_start_0 node2" -> "child_rsc2_start_0 node2" [ style = bold] "child_rsc2_start_0 node2" -> "child_rsc3_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "rsc1_start_0 node1" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc3_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] "probe_complete" -> "rsc3_start_0 node1" [ style = bold] "rsc2_running_0" -> "rsc3_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/group3.dot b/crm/pengine/testcases/group3.dot index f73af3d1bf..d0619a0519 100644 --- a/crm/pengine/testcases/group3.dot +++ b/crm/pengine/testcases/group3.dot @@ -1,66 +1,55 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1_start_0 node1" [ style = bold] "child_rsc1_start_0 node1" -> "child_rsc2_start_0 node1" [ style = bold] "child_rsc2_start_0 node1" -> "child_rsc3_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] "child_rsc3_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc2_stopped_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] "rsc2_start_0" -> "child_rsc4_start_0 node2" [ style = bold] "child_rsc4_start_0 node2" -> "child_rsc5_start_0 node2" [ style = bold] "child_rsc5_start_0 node2" -> "child_rsc6_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "rsc1_running_0" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc6_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group4.dot b/crm/pengine/testcases/group4.dot index 1d590cd74a..0db507ac20 100644 --- a/crm/pengine/testcases/group4.dot +++ b/crm/pengine/testcases/group4.dot @@ -1,56 +1,18 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"rsc2_stopped_0" -> "rsc1_stop_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0 node2" [ style = dashed] -"rsc1_stop_0 node2" -> "rsc1_start_0 node2" [ style = dashed] -"child_rsc2_stop_0 node2" -> "child_rsc1_stop_0 node2" [ style = dashed] -"child_rsc1_stop_0 node2" -> "child_rsc1_start_0 node2" [ style = dashed] -"rsc2_start_0" -> "child_rsc1_start_0 node2" [ style = dashed] -"child_rsc3_stop_0 node2" -> "child_rsc2_stop_0 node2" [ style = dashed] -"child_rsc2_stop_0 node2" -> "child_rsc2_start_0 node2" [ style = dashed] -"child_rsc1_start_0 node2" -> "child_rsc2_start_0 node2" [ style = dashed] -"rsc2_stop_0" -> "child_rsc3_stop_0 node2" [ style = dashed] -"child_rsc3_stop_0 node2" -> "child_rsc3_start_0 node2" [ style = dashed] -"child_rsc2_start_0 node2" -> "child_rsc3_start_0 node2" [ style = dashed] -"rsc1_start_0 node2" -> "rsc2_start_0" [ style = dashed] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] -"child_rsc3_start_0 node2" -> "rsc2_running_0" [ style = dashed] -"rsc3_stop_0 node2" -> "rsc2_stop_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] -"child_rsc1_stop_0 node2" -> "rsc2_stopped_0" [ style = dashed] -"rsc2_running_0" -> "rsc3_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc3_start_0 node2" [ style = dashed] -"rsc3_stop_0 node2" -> "rsc3_start_0 node2" [ style = dashed] } diff --git a/crm/pengine/testcases/group7.dot b/crm/pengine/testcases/group7.dot index 3403942af2..5cda2512ff 100644 --- a/crm/pengine/testcases/group7.dot +++ b/crm/pengine/testcases/group7.dot @@ -1,88 +1,77 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node3" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc3_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc3_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "probe_complete node3" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc3_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc4_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc5_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc6_monitor_0 node3" -> "probe_complete node3" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc1_start_0 node2" [ style = bold] "child_rsc1_start_0 node2" -> "child_rsc2_start_0 node2" [ style = bold] "child_rsc2_start_0 node2" -> "child_rsc3_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc3_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc3_stopped_0" -> "rsc2_stop_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] "rsc3_start_0" -> "child_rsc4_start_0 node2" [ style = bold] "child_rsc4_start_0 node2" -> "child_rsc5_start_0 node2" [ style = bold] "child_rsc5_start_0 node2" -> "child_rsc6_start_0 node2" [ style = bold] "probe_complete" -> "rsc3_start_0" [ style = bold] "rsc2_running_0" -> "rsc3_start_0" [ style = bold] -"rsc3_stop_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_stopped_0" -> "rsc3_start_0" [ style = dashed] "child_rsc6_start_0 node2" -> "rsc3_running_0" [ style = bold] "rsc3_start_0" -> "rsc3_running_0" [ style = bold] -"rsc3_stop_0" -> "rsc3_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group8.dot b/crm/pengine/testcases/group8.dot index 65f350f55d..428376453d 100644 --- a/crm/pengine/testcases/group8.dot +++ b/crm/pengine/testcases/group8.dot @@ -1,47 +1,33 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6_monitor_0 node1" -> "probe_complete node1" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc1_start_0 node1" [ style = bold] "child_rsc1_start_0 node1" -> "child_rsc2_start_0 node1" [ style = bold] "child_rsc2_start_0 node1" -> "child_rsc3_start_0 node1" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc3_start_0 node1" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] -"probe_complete" -> "rsc3_start_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_stopped_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_start_0" -> "rsc3_running_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/group9.dot b/crm/pengine/testcases/group9.dot index c35b60a0f7..f2c8d622e5 100644 --- a/crm/pengine/testcases/group9.dot +++ b/crm/pengine/testcases/group9.dot @@ -1,84 +1,69 @@ digraph "g" { size = "30,30" "rsc4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc7_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc6_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc7_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc8_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc2_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc2_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc4_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc5_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc5_start_0 node1" [ style=bold color="green" fontcolor="black" ] "foo_start_0" [ style=bold color="green" fontcolor="orange" ] "foo_running_0" [ style=bold color="green" fontcolor="orange" ] "foo_stop_0" [ style=bold color="green" fontcolor="orange" ] "foo_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc6_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc7_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc8_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc8_start_0 node2" [ style=bold color="green" fontcolor="black" ] "bar_start_0" [ style=bold color="green" fontcolor="orange" ] "bar_running_0" [ style=bold color="green" fontcolor="orange" ] "bar_stop_0" [ style=bold color="green" fontcolor="orange" ] "bar_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_stop_0 node1" -> "rsc4_stop_0 node1" [ style = bold] "rsc8_stop_0 node1" -> "rsc7_stop_0 node1" [ style = bold] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc6_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc7_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc8_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] -"probe_complete" -> "rsc2_start_0 node1" [ style = dashed] -"rsc2_stop_0 node1" -> "rsc2_start_0 node1" [ style = dashed] -"rsc4_stop_0 node1" -> "rsc3_stop_0 node1" [ style = dashed] -"rsc3_stop_0 node1" -> "rsc3_start_0 node1" [ style = dashed] -"foo_start_0" -> "rsc3_start_0 node1" [ style = dashed] "rsc4_stop_0 node1" -> "rsc4_start_0 node1" [ style = bold] -"rsc3_start_0 node1" -> "rsc4_start_0 node1" [ style = dashed] "foo_stop_0" -> "rsc5_stop_0 node1" [ style = bold] "rsc4_start_0 node1" -> "rsc5_start_0 node1" [ style = bold] "rsc5_stop_0 node1" -> "rsc5_start_0 node1" [ style = bold] "probe_complete" -> "foo_start_0" [ style = bold] "foo_stop_0" -> "foo_start_0" [ style = bold] "foo_stopped_0" -> "foo_start_0" [ style = bold] "rsc5_start_0 node1" -> "foo_running_0" [ style = bold] "foo_start_0" -> "foo_running_0" [ style = bold] -"rsc3_stop_0 node1" -> "foo_stopped_0" [ style = dashed] "foo_stop_0" -> "foo_stopped_0" [ style = bold] "rsc7_stop_0 node1" -> "rsc6_stop_0 node1" [ style = bold] "rsc6_stop_0 node1" -> "rsc6_start_0 node2" [ style = bold] "bar_start_0" -> "rsc6_start_0 node2" [ style = bold] "rsc7_stop_0 node1" -> "rsc7_start_0 node2" [ style = bold] "rsc6_start_0 node2" -> "rsc7_start_0 node2" [ style = bold] "bar_stop_0" -> "rsc8_stop_0 node1" [ style = bold] "rsc7_start_0 node2" -> "rsc8_start_0 node2" [ style = bold] "rsc8_stop_0 node1" -> "rsc8_start_0 node2" [ style = bold] "probe_complete" -> "bar_start_0" [ style = bold] "bar_stop_0" -> "bar_start_0" [ style = bold] "bar_stopped_0" -> "bar_start_0" [ style = bold] "rsc8_start_0 node2" -> "bar_running_0" [ style = bold] "bar_start_0" -> "bar_running_0" [ style = bold] "rsc6_stop_0 node1" -> "bar_stopped_0" [ style = bold] "bar_stop_0" -> "bar_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/inc0.dot b/crm/pengine/testcases/inc0.dot index 84d787da33..789b178c44 100644 --- a/crm/pengine/testcases/inc0.dot +++ b/crm/pengine/testcases/inc0.dot @@ -1,49 +1,44 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/inc1.dot b/crm/pengine/testcases/inc1.dot index 98a3bc556d..ae555bb905 100644 --- a/crm/pengine/testcases/inc1.dot +++ b/crm/pengine/testcases/inc1.dot @@ -1,63 +1,58 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:0_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:1_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:2_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:3_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "rsc1_start_0 node1" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc2:0_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:1_start_0 node2" -> "rsc2_running_0" [ style = bold] "child_rsc2:2_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:3_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] "probe_complete" -> "rsc3_start_0 node2" [ style = bold] "rsc2_running_0" -> "rsc3_start_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/inc10.dot b/crm/pengine/testcases/inc10.dot index d7e55974ef..04996851d3 100644 --- a/crm/pengine/testcases/inc10.dot +++ b/crm/pengine/testcases/inc10.dot @@ -1,151 +1,44 @@ digraph "g" { size = "30,30" -"ocfs2:1_monitor_10000 xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:3_monitor_10000 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_5000 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:0_monitor_10000 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_5000 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete xen-2" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:2_stop_0 xen-2" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:3_stop_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"ocfs2:0_stop_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:0_start_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:1_stop_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:1_start_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] "ocfs2:2_stop_0 xen-2" [ style=bold color="green" fontcolor="black" ] -"ocfs2:3_stop_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:3_start_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2-clone_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocfs2-clone_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocfs2-clone_pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocfs2-clone_confirmed-pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocfs2-clone_post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocfs2-clone_confirmed-post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] "ocfs2-clone_stop_0" [ style=bold color="green" fontcolor="orange" ] "ocfs2-clone_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ocfs2-clone_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ocfs2-clone_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ocfs2-clone_post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "ocfs2-clone_confirmed-post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] -"ocfs2:0_pre_notify_start_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:0_post_notify_start_0 xen-4" [ style="dashed" color="blue" fontcolor="black" ] "ocfs2:0_pre_notify_stop_0 xen-4" [ style=bold color="green" fontcolor="black" ] "ocfs2:0_post_notify_stop_0 xen-4" [ style=bold color="green" fontcolor="black" ] -"ocfs2:1_pre_notify_start_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:1_post_notify_start_0 xen-3" [ style="dashed" color="blue" fontcolor="black" ] "ocfs2:1_pre_notify_stop_0 xen-3" [ style=bold color="green" fontcolor="black" ] "ocfs2:1_post_notify_stop_0 xen-3" [ style=bold color="green" fontcolor="black" ] "ocfs2:2_pre_notify_stop_0 xen-2" [ style=bold color="green" fontcolor="black" ] -"ocfs2:3_pre_notify_start_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] -"ocfs2:3_post_notify_start_0 xen-1" [ style="dashed" color="blue" fontcolor="black" ] "ocfs2:3_pre_notify_stop_0 xen-1" [ style=bold color="green" fontcolor="black" ] "ocfs2:3_post_notify_stop_0 xen-1" [ style=bold color="green" fontcolor="black" ] -"ocfs2:1_start_0 xen-3" -> "ocfs2:1_monitor_10000 xen-3" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_start_0" -> "ocfs2:1_monitor_10000 xen-3" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_stop_0" -> "ocfs2:1_monitor_10000 xen-3" [ style = dashed] -"child_DoFencing:1_start_0 xen-3" -> "child_DoFencing:1_monitor_5000 xen-3" [ style = dashed] -"ocfs2:3_start_0 xen-1" -> "ocfs2:3_monitor_10000 xen-1" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_start_0" -> "ocfs2:3_monitor_10000 xen-1" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_stop_0" -> "ocfs2:3_monitor_10000 xen-1" [ style = dashed] -"child_DoFencing:3_start_0 xen-1" -> "child_DoFencing:3_monitor_5000 xen-1" [ style = dashed] -"ocfs2:0_start_0 xen-4" -> "ocfs2:0_monitor_10000 xen-4" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_start_0" -> "ocfs2:0_monitor_10000 xen-4" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_stop_0" -> "ocfs2:0_monitor_10000 xen-4" [ style = dashed] -"child_DoFencing:0_start_0 xen-4" -> "child_DoFencing:0_monitor_5000 xen-4" [ style = dashed] -"probe_complete xen-4" -> "probe_complete" [ style = dashed] -"probe_complete xen-3" -> "probe_complete" [ style = dashed] -"probe_complete xen-2" -> "probe_complete" [ style = dashed] -"probe_complete xen-1" -> "probe_complete" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 xen-4" [ style = dashed] -"child_DoFencing:0_stop_0 xen-4" -> "child_DoFencing:0_start_0 xen-4" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 xen-4" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 xen-3" [ style = dashed] -"child_DoFencing:1_stop_0 xen-3" -> "child_DoFencing:1_start_0 xen-3" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 xen-3" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:2_stop_0 xen-2" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 xen-1" [ style = dashed] -"child_DoFencing:3_stop_0 xen-1" -> "child_DoFencing:3_start_0 xen-1" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 xen-1" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 xen-4" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 xen-3" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 xen-1" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_stop_0 xen-4" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 xen-3" -> "DoFencing_stopped_0" [ style = dashed] "child_DoFencing:2_stop_0 xen-2" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:3_stop_0 xen-1" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] -"ocfs2-clone_stop_0" -> "ocfs2:0_stop_0 xen-4" [ style = dashed] -"ocfs2:0_stop_0 xen-4" -> "ocfs2:0_start_0 xen-4" [ style = dashed] -"ocfs2-clone_start_0" -> "ocfs2:0_start_0 xen-4" [ style = dashed] -"ocfs2-clone_stop_0" -> "ocfs2:1_stop_0 xen-3" [ style = dashed] -"ocfs2:1_stop_0 xen-3" -> "ocfs2:1_start_0 xen-3" [ style = dashed] -"ocfs2-clone_start_0" -> "ocfs2:1_start_0 xen-3" [ style = dashed] "ocfs2-clone_stop_0" -> "ocfs2:2_stop_0 xen-2" [ style = bold] -"ocfs2-clone_stop_0" -> "ocfs2:3_stop_0 xen-1" [ style = dashed] -"ocfs2:3_stop_0 xen-1" -> "ocfs2:3_start_0 xen-1" [ style = dashed] -"ocfs2-clone_start_0" -> "ocfs2:3_start_0 xen-1" [ style = dashed] -"ocfs2-clone_stop_0" -> "ocfs2-clone_start_0" [ style = dashed] -"ocfs2-clone_stopped_0" -> "ocfs2-clone_start_0" [ style = dashed] -"ocfs2-clone_confirmed-pre_notify_start_0" -> "ocfs2-clone_start_0" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_stop_0" -> "ocfs2-clone_start_0" [ style = dashed] -"ocfs2-clone_start_0" -> "ocfs2-clone_running_0" [ style = dashed] -"ocfs2:0_start_0 xen-4" -> "ocfs2-clone_running_0" [ style = dashed] -"ocfs2:1_start_0 xen-3" -> "ocfs2-clone_running_0" [ style = dashed] -"ocfs2:3_start_0 xen-1" -> "ocfs2-clone_running_0" [ style = dashed] -"ocfs2-clone_confirmed-post_notify_stop_0" -> "ocfs2-clone_pre_notify_start_0" [ style = dashed] -"ocfs2-clone_pre_notify_start_0" -> "ocfs2-clone_confirmed-pre_notify_start_0" [ style = dashed] -"ocfs2:0_pre_notify_start_0 xen-4" -> "ocfs2-clone_confirmed-pre_notify_start_0" [ style = dashed] -"ocfs2:1_pre_notify_start_0 xen-3" -> "ocfs2-clone_confirmed-pre_notify_start_0" [ style = dashed] -"ocfs2:3_pre_notify_start_0 xen-1" -> "ocfs2-clone_confirmed-pre_notify_start_0" [ style = dashed] -"ocfs2-clone_running_0" -> "ocfs2-clone_post_notify_start_0" [ style = dashed] -"ocfs2-clone_post_notify_start_0" -> "ocfs2-clone_confirmed-post_notify_start_0" [ style = dashed] -"ocfs2:0_post_notify_start_0 xen-4" -> "ocfs2-clone_confirmed-post_notify_start_0" [ style = dashed] -"ocfs2:1_post_notify_start_0 xen-3" -> "ocfs2-clone_confirmed-post_notify_start_0" [ style = dashed] -"ocfs2:3_post_notify_start_0 xen-1" -> "ocfs2-clone_confirmed-post_notify_start_0" [ style = dashed] "ocfs2-clone_confirmed-pre_notify_stop_0" -> "ocfs2-clone_stop_0" [ style = bold] -"ocfs2:0_stop_0 xen-4" -> "ocfs2-clone_stopped_0" [ style = dashed] -"ocfs2:1_stop_0 xen-3" -> "ocfs2-clone_stopped_0" [ style = dashed] "ocfs2:2_stop_0 xen-2" -> "ocfs2-clone_stopped_0" [ style = bold] -"ocfs2:3_stop_0 xen-1" -> "ocfs2-clone_stopped_0" [ style = dashed] "ocfs2-clone_stop_0" -> "ocfs2-clone_stopped_0" [ style = bold] "ocfs2-clone_pre_notify_stop_0" -> "ocfs2-clone_confirmed-pre_notify_stop_0" [ style = bold] "ocfs2:0_pre_notify_stop_0 xen-4" -> "ocfs2-clone_confirmed-pre_notify_stop_0" [ style = bold] "ocfs2:1_pre_notify_stop_0 xen-3" -> "ocfs2-clone_confirmed-pre_notify_stop_0" [ style = bold] "ocfs2:2_pre_notify_stop_0 xen-2" -> "ocfs2-clone_confirmed-pre_notify_stop_0" [ style = bold] "ocfs2:3_pre_notify_stop_0 xen-1" -> "ocfs2-clone_confirmed-pre_notify_stop_0" [ style = bold] "ocfs2-clone_stopped_0" -> "ocfs2-clone_post_notify_stop_0" [ style = bold] "ocfs2-clone_post_notify_stop_0" -> "ocfs2-clone_confirmed-post_notify_stop_0" [ style = bold] "ocfs2:0_post_notify_stop_0 xen-4" -> "ocfs2-clone_confirmed-post_notify_stop_0" [ style = bold] "ocfs2:1_post_notify_stop_0 xen-3" -> "ocfs2-clone_confirmed-post_notify_stop_0" [ style = bold] "ocfs2:3_post_notify_stop_0 xen-1" -> "ocfs2-clone_confirmed-post_notify_stop_0" [ style = bold] -"ocfs2-clone_pre_notify_start_0" -> "ocfs2:0_pre_notify_start_0 xen-4" [ style = dashed] -"ocfs2-clone_post_notify_start_0" -> "ocfs2:0_post_notify_start_0 xen-4" [ style = dashed] "ocfs2-clone_pre_notify_stop_0" -> "ocfs2:0_pre_notify_stop_0 xen-4" [ style = bold] "ocfs2-clone_post_notify_stop_0" -> "ocfs2:0_post_notify_stop_0 xen-4" [ style = bold] -"ocfs2-clone_pre_notify_start_0" -> "ocfs2:1_pre_notify_start_0 xen-3" [ style = dashed] -"ocfs2-clone_post_notify_start_0" -> "ocfs2:1_post_notify_start_0 xen-3" [ style = dashed] "ocfs2-clone_pre_notify_stop_0" -> "ocfs2:1_pre_notify_stop_0 xen-3" [ style = bold] "ocfs2-clone_post_notify_stop_0" -> "ocfs2:1_post_notify_stop_0 xen-3" [ style = bold] "ocfs2-clone_pre_notify_stop_0" -> "ocfs2:2_pre_notify_stop_0 xen-2" [ style = bold] -"ocfs2-clone_pre_notify_start_0" -> "ocfs2:3_pre_notify_start_0 xen-1" [ style = dashed] -"ocfs2-clone_post_notify_start_0" -> "ocfs2:3_post_notify_start_0 xen-1" [ style = dashed] "ocfs2-clone_pre_notify_stop_0" -> "ocfs2:3_pre_notify_stop_0 xen-1" [ style = bold] "ocfs2-clone_post_notify_stop_0" -> "ocfs2:3_post_notify_stop_0 xen-1" [ style = bold] } diff --git a/crm/pengine/testcases/inc2.dot b/crm/pengine/testcases/inc2.dot index 160119b9bb..cd70ad9b5e 100644 --- a/crm/pengine/testcases/inc2.dot +++ b/crm/pengine/testcases/inc2.dot @@ -1,58 +1,42 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] -"probe_complete node1" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:1_stop_0 node1" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "child_rsc1:1_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = dashed] "rsc1_stop_0" -> "child_rsc1:2_stop_0 node1" [ style = bold] "child_rsc1:2_stop_0 node1" -> "child_rsc1:2_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node2" [ style = bold] "rsc1_stop_0" -> "child_rsc1:3_stop_0 node1" [ style = bold] "child_rsc1:3_stop_0 node1" -> "child_rsc1:3_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "rsc1_stop_0" -> "child_rsc1:4_stop_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_stop_0" -> "rsc1_start_0" [ style = bold] "rsc1_stopped_0" -> "rsc1_start_0" [ style = bold] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:2_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] "child_rsc1:2_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "child_rsc1:3_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "child_rsc1:4_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "rsc1_stop_0" -> "rsc1_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/inc3.dot b/crm/pengine/testcases/inc3.dot index 4582970c09..af7f414fd5 100644 --- a/crm/pengine/testcases/inc3.dot +++ b/crm/pengine/testcases/inc3.dot @@ -1,114 +1,79 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc2:0_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:0_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:2_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:2_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc2:3_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:1_stop_0 node1" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "child_rsc1:1_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = dashed] "rsc1_stop_0" -> "child_rsc1:2_stop_0 node1" [ style = bold] "child_rsc1:2_stop_0 node1" -> "child_rsc1:2_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node2" [ style = bold] "rsc1_stop_0" -> "child_rsc1:3_stop_0 node1" [ style = bold] "child_rsc1:3_stop_0 node1" -> "child_rsc1:3_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "rsc1_stop_0" -> "child_rsc1:4_stop_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_stop_0" -> "rsc1_start_0" [ style = bold] "rsc1_stopped_0" -> "rsc1_start_0" [ style = bold] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:2_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] "rsc2_stopped_0" -> "rsc1_stop_0" [ style = bold] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] "child_rsc1:2_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "child_rsc1:3_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "child_rsc1:4_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] "rsc1_stop_0" -> "rsc1_stopped_0" [ style = bold] -"rsc2_stop_0" -> "child_rsc2:0_stop_0 node2" [ style = dashed] -"child_rsc2:0_stop_0 node2" -> "child_rsc2:0_start_0 node2" [ style = dashed] -"rsc2_start_0" -> "child_rsc2:0_start_0 node2" [ style = dashed] -"rsc2_stop_0" -> "child_rsc2:1_stop_0 node2" [ style = dashed] -"child_rsc2:1_stop_0 node2" -> "child_rsc2:1_start_0 node2" [ style = dashed] -"rsc2_start_0" -> "child_rsc2:1_start_0 node2" [ style = dashed] -"rsc2_stop_0" -> "child_rsc2:2_stop_0 node2" [ style = dashed] -"child_rsc2:2_stop_0 node2" -> "child_rsc2:2_start_0 node2" [ style = dashed] -"rsc2_start_0" -> "child_rsc2:2_start_0 node2" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:3_stop_0 node2" [ style = bold] "child_rsc2:3_stop_0 node2" -> "child_rsc2:3_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:3_start_0 node1" [ style = bold] "rsc2_stop_0" -> "child_rsc2:4_stop_0 node2" [ style = bold] "child_rsc2:4_stop_0 node2" -> "child_rsc2:4_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:4_start_0 node1" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "rsc1_running_0" -> "rsc2_start_0" [ style = bold] "rsc2_stop_0" -> "rsc2_start_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_start_0" [ style = bold] -"child_rsc2:0_start_0 node2" -> "rsc2_running_0" [ style = dashed] -"child_rsc2:1_start_0 node2" -> "rsc2_running_0" [ style = dashed] -"child_rsc2:2_start_0 node2" -> "rsc2_running_0" [ style = dashed] "child_rsc2:3_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:4_start_0 node1" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"child_rsc2:0_stop_0 node2" -> "rsc2_stopped_0" [ style = dashed] -"child_rsc2:1_stop_0 node2" -> "rsc2_stopped_0" [ style = dashed] -"child_rsc2:2_stop_0 node2" -> "rsc2_stopped_0" [ style = dashed] "child_rsc2:3_stop_0 node2" -> "rsc2_stopped_0" [ style = bold] "child_rsc2:4_stop_0 node2" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/inc5.dot b/crm/pengine/testcases/inc5.dot index 724904862d..068c687e72 100644 --- a/crm/pengine/testcases/inc5.dot +++ b/crm/pengine/testcases/inc5.dot @@ -1,264 +1,136 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc8:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc8:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc8:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc8:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"child_rsc2:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc2:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc2:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc3:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"child_rsc4:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc4:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc4:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc5:0_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc5:0_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc5:1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc5_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc6:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc6_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc6_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc6_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc6_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"child_rsc7:0_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc7:0_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc7:1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc7_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc8:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc8_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc4:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc8:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc8:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc5:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc7:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc8:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc8:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:1_stop_0 node2" [ style = dashed] -"child_rsc1:1_stop_0 node2" -> "child_rsc1:1_start_0 node2" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_start_0" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:1_stop_0 node2" -> "rsc1_stopped_0" [ style = dashed] -"rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = dashed] -"child_rsc2:0_stop_0 node1" -> "child_rsc2:0_start_0 node1" [ style = dashed] -"rsc2_start_0" -> "child_rsc2:0_start_0 node1" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:1_stop_0 node1" [ style = bold] "child_rsc2:1_stop_0 node1" -> "child_rsc2:1_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] -"rsc1_running_0" -> "rsc2_start_0" [ style = dashed] "rsc2_stop_0" -> "rsc2_start_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_start_0" [ style = bold] -"child_rsc2:0_start_0 node1" -> "rsc2_running_0" [ style = dashed] "child_rsc2:1_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = dashed] "child_rsc2:1_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] -"rsc3_stop_0" -> "child_rsc3:0_stop_0 node1" [ style = dashed] -"child_rsc3:0_stop_0 node1" -> "child_rsc3:0_start_0 node1" [ style = dashed] -"rsc3_start_0" -> "child_rsc3:0_start_0 node1" [ style = dashed] -"rsc3_stop_0" -> "child_rsc3:1_stop_0 node2" [ style = dashed] -"child_rsc3:1_stop_0 node2" -> "child_rsc3:1_start_0 node2" [ style = dashed] -"rsc3_start_0" -> "child_rsc3:1_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc3_start_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_stopped_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_start_0" -> "rsc3_running_0" [ style = dashed] -"child_rsc3:0_start_0 node1" -> "rsc3_running_0" [ style = dashed] -"child_rsc3:1_start_0 node2" -> "rsc3_running_0" [ style = dashed] -"rsc4_stopped_0" -> "rsc3_stop_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_stopped_0" [ style = dashed] -"child_rsc3:0_stop_0 node1" -> "rsc3_stopped_0" [ style = dashed] -"child_rsc3:1_stop_0 node2" -> "rsc3_stopped_0" [ style = dashed] -"rsc4_stop_0" -> "child_rsc4:0_stop_0 node1" [ style = dashed] -"child_rsc4:0_stop_0 node1" -> "child_rsc4:0_start_0 node1" [ style = dashed] -"rsc4_start_0" -> "child_rsc4:0_start_0 node1" [ style = dashed] "rsc4_stop_0" -> "child_rsc4:1_stop_0 node1" [ style = bold] "child_rsc4:1_stop_0 node1" -> "child_rsc4:1_start_0 node2" [ style = bold] "rsc4_start_0" -> "child_rsc4:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc4_start_0" [ style = bold] -"rsc3_running_0" -> "rsc4_start_0" [ style = dashed] "rsc4_stop_0" -> "rsc4_start_0" [ style = bold] "rsc4_stopped_0" -> "rsc4_start_0" [ style = bold] -"child_rsc4:0_start_0 node1" -> "rsc4_running_0" [ style = dashed] "child_rsc4:1_start_0 node2" -> "rsc4_running_0" [ style = bold] "rsc4_start_0" -> "rsc4_running_0" [ style = bold] -"child_rsc4:0_stop_0 node1" -> "rsc4_stopped_0" [ style = dashed] "child_rsc4:1_stop_0 node1" -> "rsc4_stopped_0" [ style = bold] "rsc4_stop_0" -> "rsc4_stopped_0" [ style = bold] -"rsc5_stop_0" -> "child_rsc5:0_stop_0 node2" [ style = dashed] -"child_rsc5:0_stop_0 node2" -> "child_rsc5:0_start_0 node2" [ style = dashed] -"rsc5_start_0" -> "child_rsc5:0_start_0 node2" [ style = dashed] "rsc5_stop_0" -> "child_rsc5:1_stop_0 node2" [ style = bold] "child_rsc5:1_stop_0 node2" -> "child_rsc5:1_start_0 node1" [ style = bold] "rsc5_start_0" -> "child_rsc5:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc5_start_0" [ style = bold] "rsc5_stop_0" -> "rsc5_start_0" [ style = bold] "rsc5_stopped_0" -> "rsc5_start_0" [ style = bold] -"child_rsc5:0_start_0 node2" -> "rsc5_running_0" [ style = dashed] "child_rsc5:1_start_0 node1" -> "rsc5_running_0" [ style = bold] "rsc5_start_0" -> "rsc5_running_0" [ style = bold] -"rsc6_stopped_0" -> "rsc5_stop_0" [ style = dashed] -"child_rsc5:0_stop_0 node2" -> "rsc5_stopped_0" [ style = dashed] "child_rsc5:1_stop_0 node2" -> "rsc5_stopped_0" [ style = bold] "rsc5_stop_0" -> "rsc5_stopped_0" [ style = bold] -"rsc6_stop_0" -> "child_rsc6:0_stop_0 node1" [ style = dashed] -"child_rsc6:0_stop_0 node1" -> "child_rsc6:0_start_0 node1" [ style = dashed] -"rsc6_start_0" -> "child_rsc6:0_start_0 node1" [ style = dashed] -"rsc6_stop_0" -> "child_rsc6:1_stop_0 node2" [ style = dashed] -"child_rsc6:1_stop_0 node2" -> "child_rsc6:1_start_0 node2" [ style = dashed] -"rsc6_start_0" -> "child_rsc6:1_start_0 node2" [ style = dashed] -"rsc5_running_0" -> "rsc6_start_0" [ style = dashed] -"probe_complete" -> "rsc6_start_0" [ style = dashed] -"rsc6_stop_0" -> "rsc6_start_0" [ style = dashed] -"rsc6_stopped_0" -> "rsc6_start_0" [ style = dashed] -"rsc6_start_0" -> "rsc6_running_0" [ style = dashed] -"child_rsc6:0_start_0 node1" -> "rsc6_running_0" [ style = dashed] -"child_rsc6:1_start_0 node2" -> "rsc6_running_0" [ style = dashed] -"rsc6_stop_0" -> "rsc6_stopped_0" [ style = dashed] -"child_rsc6:0_stop_0 node1" -> "rsc6_stopped_0" [ style = dashed] -"child_rsc6:1_stop_0 node2" -> "rsc6_stopped_0" [ style = dashed] -"rsc7_stop_0" -> "child_rsc7:0_stop_0 node2" [ style = dashed] -"child_rsc7:0_stop_0 node2" -> "child_rsc7:0_start_0 node2" [ style = dashed] -"rsc7_start_0" -> "child_rsc7:0_start_0 node2" [ style = dashed] "rsc7_stop_0" -> "child_rsc7:1_stop_0 node2" [ style = bold] "child_rsc7:1_stop_0 node2" -> "child_rsc7:1_start_0 node1" [ style = bold] "rsc7_start_0" -> "child_rsc7:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc7_start_0" [ style = bold] "rsc7_stop_0" -> "rsc7_start_0" [ style = bold] "rsc7_stopped_0" -> "rsc7_start_0" [ style = bold] -"child_rsc7:0_start_0 node2" -> "rsc7_running_0" [ style = dashed] "child_rsc7:1_start_0 node1" -> "rsc7_running_0" [ style = bold] "rsc7_start_0" -> "rsc7_running_0" [ style = bold] -"rsc8_stopped_0" -> "rsc7_stop_0" [ style = dashed] -"child_rsc7:0_stop_0 node2" -> "rsc7_stopped_0" [ style = dashed] "child_rsc7:1_stop_0 node2" -> "rsc7_stopped_0" [ style = bold] "rsc7_stop_0" -> "rsc7_stopped_0" [ style = bold] -"rsc8_stop_0" -> "child_rsc8:0_stop_0 node1" [ style = dashed] -"child_rsc8:0_stop_0 node1" -> "child_rsc8:0_start_0 node1" [ style = dashed] -"rsc8_start_0" -> "child_rsc8:0_start_0 node1" [ style = dashed] -"rsc8_stop_0" -> "child_rsc8:1_stop_0 node2" [ style = dashed] -"child_rsc8:1_stop_0 node2" -> "child_rsc8:1_start_0 node2" [ style = dashed] -"rsc8_start_0" -> "child_rsc8:1_start_0 node2" [ style = dashed] -"rsc7_running_0" -> "rsc8_start_0" [ style = dashed] -"probe_complete" -> "rsc8_start_0" [ style = dashed] -"rsc8_stop_0" -> "rsc8_start_0" [ style = dashed] -"rsc8_stopped_0" -> "rsc8_start_0" [ style = dashed] -"rsc8_start_0" -> "rsc8_running_0" [ style = dashed] -"child_rsc8:0_start_0 node1" -> "rsc8_running_0" [ style = dashed] -"child_rsc8:1_start_0 node2" -> "rsc8_running_0" [ style = dashed] -"rsc8_stop_0" -> "rsc8_stopped_0" [ style = dashed] -"child_rsc8:0_stop_0 node1" -> "rsc8_stopped_0" [ style = dashed] -"child_rsc8:1_stop_0 node2" -> "rsc8_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/inc6.dot b/crm/pengine/testcases/inc6.dot index 8704146484..0aac2e812a 100644 --- a/crm/pengine/testcases/inc6.dot +++ b/crm/pengine/testcases/inc6.dot @@ -1,264 +1,153 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc3:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc5:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc6:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc7:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc8:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc8:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc3:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc4:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc6:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc8:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc8:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc2:0_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc3:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc3:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc3_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"child_rsc4:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc4:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc4:1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc4:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc4_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc5:0_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc5:0_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc5:1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc5:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc5_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc5_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc6:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc6:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "rsc6_start_0" [ style=bold color="green" fontcolor="orange" ] -"rsc6_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc6_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc6_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc7:0_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:0_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc7:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc7_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc7_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"child_rsc8:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:1_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc8:1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc8_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc8_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc3:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc4:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc5:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc6:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc7:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc8:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc8:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc3:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc4:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc5:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc6:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc7:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc8:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc8:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:1_stop_0 node2" [ style = dashed] -"child_rsc1:1_stop_0 node2" -> "child_rsc1:1_start_0 node2" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_start_0" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:1_stop_0 node2" -> "rsc1_stopped_0" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = bold] "child_rsc2:0_stop_0 node1" -> "child_rsc2:0_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:0_start_0 node1" [ style = bold] "rsc2_stop_0" -> "child_rsc2:1_stop_0 node1" [ style = bold] "child_rsc2:1_stop_0 node1" -> "child_rsc2:1_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] -"rsc1_running_0" -> "rsc2_start_0" [ style = dashed] "rsc2_stop_0" -> "rsc2_start_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_start_0" [ style = bold] "child_rsc2:0_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:1_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] "child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "child_rsc2:1_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] -"rsc3_stop_0" -> "child_rsc3:0_stop_0 node1" [ style = dashed] -"child_rsc3:0_stop_0 node1" -> "child_rsc3:0_start_0 node1" [ style = dashed] -"rsc3_start_0" -> "child_rsc3:0_start_0 node1" [ style = dashed] -"rsc3_stop_0" -> "child_rsc3:1_stop_0 node2" [ style = dashed] -"child_rsc3:1_stop_0 node2" -> "child_rsc3:1_start_0 node2" [ style = dashed] -"rsc3_start_0" -> "child_rsc3:1_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc3_start_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_stopped_0" -> "rsc3_start_0" [ style = dashed] -"rsc3_start_0" -> "rsc3_running_0" [ style = dashed] -"child_rsc3:0_start_0 node1" -> "rsc3_running_0" [ style = dashed] -"child_rsc3:1_start_0 node2" -> "rsc3_running_0" [ style = dashed] -"rsc4_stopped_0" -> "rsc3_stop_0" [ style = dashed] -"rsc3_stop_0" -> "rsc3_stopped_0" [ style = dashed] -"child_rsc3:0_stop_0 node1" -> "rsc3_stopped_0" [ style = dashed] -"child_rsc3:1_stop_0 node2" -> "rsc3_stopped_0" [ style = dashed] -"rsc4_stop_0" -> "child_rsc4:0_stop_0 node1" [ style = dashed] -"child_rsc4:0_stop_0 node1" -> "child_rsc4:0_start_0 node1" [ style = dashed] -"rsc4_start_0" -> "child_rsc4:0_start_0 node1" [ style = dashed] "rsc4_stop_0" -> "child_rsc4:1_stop_0 node1" [ style = bold] "child_rsc4:1_stop_0 node1" -> "child_rsc4:1_start_0 node2" [ style = bold] "rsc4_start_0" -> "child_rsc4:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc4_start_0" [ style = bold] -"rsc3_running_0" -> "rsc4_start_0" [ style = dashed] "rsc4_stop_0" -> "rsc4_start_0" [ style = bold] "rsc4_stopped_0" -> "rsc4_start_0" [ style = bold] -"child_rsc4:0_start_0 node1" -> "rsc4_running_0" [ style = dashed] "child_rsc4:1_start_0 node2" -> "rsc4_running_0" [ style = bold] "rsc4_start_0" -> "rsc4_running_0" [ style = bold] -"child_rsc4:0_stop_0 node1" -> "rsc4_stopped_0" [ style = dashed] "child_rsc4:1_stop_0 node1" -> "rsc4_stopped_0" [ style = bold] "rsc4_stop_0" -> "rsc4_stopped_0" [ style = bold] -"rsc5_stop_0" -> "child_rsc5:0_stop_0 node2" [ style = dashed] -"child_rsc5:0_stop_0 node2" -> "child_rsc5:0_start_0 node2" [ style = dashed] -"rsc5_start_0" -> "child_rsc5:0_start_0 node2" [ style = dashed] "rsc5_stop_0" -> "child_rsc5:1_stop_0 node2" [ style = bold] "child_rsc5:1_stop_0 node2" -> "child_rsc5:1_start_0 node1" [ style = bold] "rsc5_start_0" -> "child_rsc5:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc5_start_0" [ style = bold] "rsc5_stop_0" -> "rsc5_start_0" [ style = bold] "rsc5_stopped_0" -> "rsc5_start_0" [ style = bold] -"child_rsc5:0_start_0 node2" -> "rsc5_running_0" [ style = dashed] "child_rsc5:1_start_0 node1" -> "rsc5_running_0" [ style = bold] "rsc5_start_0" -> "rsc5_running_0" [ style = bold] -"rsc6_stopped_0" -> "rsc5_stop_0" [ style = dashed] -"child_rsc5:0_stop_0 node2" -> "rsc5_stopped_0" [ style = dashed] "child_rsc5:1_stop_0 node2" -> "rsc5_stopped_0" [ style = bold] "rsc5_stop_0" -> "rsc5_stopped_0" [ style = bold] -"rsc6_stop_0" -> "child_rsc6:0_stop_0 node1" [ style = dashed] -"child_rsc6:0_stop_0 node1" -> "child_rsc6:0_start_0 node1" [ style = dashed] -"rsc6_start_0" -> "child_rsc6:0_start_0 node1" [ style = dashed] -"rsc6_stop_0" -> "child_rsc6:1_stop_0 node2" [ style = dashed] -"child_rsc6:1_stop_0 node2" -> "child_rsc6:1_start_0 node2" [ style = dashed] -"rsc6_start_0" -> "child_rsc6:1_start_0 node2" [ style = dashed] "probe_complete" -> "rsc6_start_0" [ style = bold] "rsc5_running_0" -> "rsc6_start_0" [ style = bold] -"rsc6_stop_0" -> "rsc6_start_0" [ style = dashed] -"rsc6_stopped_0" -> "rsc6_start_0" [ style = dashed] -"rsc6_start_0" -> "rsc6_running_0" [ style = dashed] -"child_rsc6:0_start_0 node1" -> "rsc6_running_0" [ style = dashed] -"child_rsc6:1_start_0 node2" -> "rsc6_running_0" [ style = dashed] -"rsc6_stop_0" -> "rsc6_stopped_0" [ style = dashed] -"child_rsc6:0_stop_0 node1" -> "rsc6_stopped_0" [ style = dashed] -"child_rsc6:1_stop_0 node2" -> "rsc6_stopped_0" [ style = dashed] "rsc7_stop_0" -> "child_rsc7:0_stop_0 node2" [ style = bold] "child_rsc7:0_stop_0 node2" -> "child_rsc7:0_start_0 node2" [ style = bold] "rsc7_start_0" -> "child_rsc7:0_start_0 node2" [ style = bold] "rsc7_stop_0" -> "child_rsc7:1_stop_0 node2" [ style = bold] "child_rsc7:1_stop_0 node2" -> "child_rsc7:1_start_0 node1" [ style = bold] "rsc7_start_0" -> "child_rsc7:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc7_start_0" [ style = bold] "rsc7_stop_0" -> "rsc7_start_0" [ style = bold] "rsc7_stopped_0" -> "rsc7_start_0" [ style = bold] "child_rsc7:0_start_0 node2" -> "rsc7_running_0" [ style = bold] "child_rsc7:1_start_0 node1" -> "rsc7_running_0" [ style = bold] "rsc7_start_0" -> "rsc7_running_0" [ style = bold] -"rsc8_stopped_0" -> "rsc7_stop_0" [ style = dashed] "child_rsc7:0_stop_0 node2" -> "rsc7_stopped_0" [ style = bold] "child_rsc7:1_stop_0 node2" -> "rsc7_stopped_0" [ style = bold] "rsc7_stop_0" -> "rsc7_stopped_0" [ style = bold] -"rsc8_stop_0" -> "child_rsc8:0_stop_0 node1" [ style = dashed] -"child_rsc8:0_stop_0 node1" -> "child_rsc8:0_start_0 node1" [ style = dashed] -"rsc8_start_0" -> "child_rsc8:0_start_0 node1" [ style = dashed] -"rsc8_stop_0" -> "child_rsc8:1_stop_0 node2" [ style = dashed] -"child_rsc8:1_stop_0 node2" -> "child_rsc8:1_start_0 node2" [ style = dashed] -"rsc8_start_0" -> "child_rsc8:1_start_0 node2" [ style = dashed] -"rsc7_running_0" -> "rsc8_start_0" [ style = dashed] -"probe_complete" -> "rsc8_start_0" [ style = dashed] -"rsc8_stop_0" -> "rsc8_start_0" [ style = dashed] -"rsc8_stopped_0" -> "rsc8_start_0" [ style = dashed] -"rsc8_start_0" -> "rsc8_running_0" [ style = dashed] -"child_rsc8:0_start_0 node1" -> "rsc8_running_0" [ style = dashed] -"child_rsc8:1_start_0 node2" -> "rsc8_running_0" [ style = dashed] -"rsc8_stop_0" -> "rsc8_stopped_0" [ style = dashed] -"child_rsc8:0_stop_0 node1" -> "rsc8_stopped_0" [ style = dashed] -"child_rsc8:1_stop_0 node2" -> "rsc8_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/inc7.dot b/crm/pengine/testcases/inc7.dot index ee9648398f..43bad9b793 100644 --- a/crm/pengine/testcases/inc7.dot +++ b/crm/pengine/testcases/inc7.dot @@ -1,128 +1,117 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node3" [ style=bold color="green" fontcolor="black" ] "rsc0_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node3" [ style=bold color="green" fontcolor="black" ] "rsc0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc2:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_start_0 node3" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "probe_complete node3" -> "probe_complete" [ style = bold] "rsc0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc0_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1:0_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1:1_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1:2_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1:3_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc1:4_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2:0_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2:1_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2:2_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2:3_monitor_0 node3" -> "probe_complete node3" [ style = bold] "child_rsc2:4_monitor_0 node3" -> "probe_complete node3" [ style = bold] "probe_complete" -> "rsc0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node3" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:4_start_0 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:2_start_0 node3" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:4_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc2_stopped_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] "rsc2_start_0" -> "child_rsc2:0_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:1_start_0 node2" [ style = bold] "rsc2_start_0" -> "child_rsc2:2_start_0 node3" [ style = bold] "rsc2_start_0" -> "child_rsc2:3_start_0 node1" [ style = bold] "rsc2_start_0" -> "child_rsc2:4_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0" [ style = bold] "rsc1_running_0" -> "rsc2_start_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] "child_rsc2:0_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:1_start_0 node2" -> "rsc2_running_0" [ style = bold] "child_rsc2:2_start_0 node3" -> "rsc2_running_0" [ style = bold] "child_rsc2:3_start_0 node1" -> "rsc2_running_0" [ style = bold] "child_rsc2:4_start_0 node2" -> "rsc2_running_0" [ style = bold] "rsc2_start_0" -> "rsc2_running_0" [ style = bold] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/inc8.dot b/crm/pengine/testcases/inc8.dot index 222a7b8711..3914d6c7f2 100644 --- a/crm/pengine/testcases/inc8.dot +++ b/crm/pengine/testcases/inc8.dot @@ -1,78 +1,64 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/inc9.dot b/crm/pengine/testcases/inc9.dot index 3e67d352ed..88ba695eea 100644 --- a/crm/pengine/testcases/inc9.dot +++ b/crm/pengine/testcases/inc9.dot @@ -1,58 +1,24 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:3_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:3_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:4_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:4_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc1_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:1_stop_0 node1" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "child_rsc1:1_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = dashed] "rsc1_stop_0" -> "child_rsc1:2_stop_0 node1" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:3_stop_0 node2" [ style = dashed] -"child_rsc1:3_stop_0 node2" -> "child_rsc1:3_start_0 node2" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = dashed] -"rsc1_stop_0" -> "child_rsc1:4_stop_0 node2" [ style = dashed] -"child_rsc1:4_stop_0 node2" -> "child_rsc1:4_start_0 node2" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:4_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_start_0" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:4_start_0 node2" -> "rsc1_running_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:1_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] "child_rsc1:2_stop_0 node1" -> "rsc1_stopped_0" [ style = bold] -"child_rsc1:3_stop_0 node2" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:4_stop_0 node2" -> "rsc1_stopped_0" [ style = dashed] "rsc1_stop_0" -> "rsc1_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/interleave-0.dot b/crm/pengine/testcases/interleave-0.dot index 79a5643b51..2ead555043 100644 --- a/crm/pengine/testcases/interleave-0.dot +++ b/crm/pengine/testcases/interleave-0.dot @@ -1,483 +1,377 @@ digraph "g" { size = "30,30" -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n02" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n04_monitor_5000 c001n04" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n05_monitor_5000 c001n05" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:3_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n06_monitor_5000 c001n06" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:4_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n07_monitor_5000 c001n07" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:5_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n02_start_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_stop_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_start_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_stop_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_start_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_stop_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_start_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_stop_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_start_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_stop_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_start_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_CloneSet:0_start_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_5000 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_start_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_5000 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_start_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_5000 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_start_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_5000 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_start_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_5000 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "CloneSet_start_0" [ style=bold color="green" fontcolor="orange" ] "CloneSet_running_0" [ style=bold color="green" fontcolor="orange" ] -"CloneSet_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"CloneSet_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "child_DoFencing:7_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "child_DoFencing:0_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "child_DoFencing:3_monitor_5000 c001n05" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "child_DoFencing:6_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n09_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:1_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:3_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:5_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:7_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:0_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:2_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:4_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:0_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:1_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:2_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:3_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:0_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:1_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:2_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:3_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:4_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:5_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:6_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:7_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:3_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:4_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:5_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] "CloneSet_start_0" -> "child_CloneSet:0_start_0 c001n09" [ style = bold] "child_CloneSet:0_start_0 c001n09" -> "child_CloneSet:0_monitor_5000 c001n09" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:1_start_0 c001n02" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "child_CloneSet:1_monitor_5000 c001n02" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:2_start_0 c001n03" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "child_CloneSet:2_monitor_5000 c001n03" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:3_start_0 c001n04" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "child_CloneSet:3_monitor_5000 c001n04" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:4_start_0 c001n05" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "child_CloneSet:4_monitor_5000 c001n05" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:5_start_0 c001n06" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "child_CloneSet:5_monitor_5000 c001n06" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:6_start_0 c001n07" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "child_CloneSet:6_monitor_5000 c001n07" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:7_start_0 c001n08" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "child_CloneSet:7_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "CloneSet_start_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_start_0" [ style = dashed] -"CloneSet_stopped_0" -> "CloneSet_start_0" [ style = dashed] "child_CloneSet:0_start_0 c001n09" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "CloneSet_running_0" [ style = bold] "CloneSet_start_0" -> "CloneSet_running_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/interleave-1.dot b/crm/pengine/testcases/interleave-1.dot index 79a5643b51..2ead555043 100644 --- a/crm/pengine/testcases/interleave-1.dot +++ b/crm/pengine/testcases/interleave-1.dot @@ -1,483 +1,377 @@ digraph "g" { size = "30,30" -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n02" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n04_monitor_5000 c001n04" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n05_monitor_5000 c001n05" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:3_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n06_monitor_5000 c001n06" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:4_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n07_monitor_5000 c001n07" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:5_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n02_start_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_stop_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_start_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_stop_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_start_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_stop_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_start_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_stop_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_start_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_stop_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_start_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_CloneSet:0_start_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_5000 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_start_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_5000 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_start_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_5000 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_start_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_5000 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_start_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_5000 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "CloneSet_start_0" [ style=bold color="green" fontcolor="orange" ] "CloneSet_running_0" [ style=bold color="green" fontcolor="orange" ] -"CloneSet_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"CloneSet_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "child_DoFencing:7_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "child_DoFencing:0_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "child_DoFencing:3_monitor_5000 c001n05" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "child_DoFencing:6_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n09_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:1_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:3_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:5_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:7_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:0_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:2_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:4_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:0_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:1_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:2_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:3_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:0_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:1_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:2_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:3_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:4_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:5_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:6_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:7_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:3_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:4_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:5_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] "CloneSet_start_0" -> "child_CloneSet:0_start_0 c001n09" [ style = bold] "child_CloneSet:0_start_0 c001n09" -> "child_CloneSet:0_monitor_5000 c001n09" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:1_start_0 c001n02" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "child_CloneSet:1_monitor_5000 c001n02" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:2_start_0 c001n03" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "child_CloneSet:2_monitor_5000 c001n03" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:3_start_0 c001n04" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "child_CloneSet:3_monitor_5000 c001n04" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:4_start_0 c001n05" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "child_CloneSet:4_monitor_5000 c001n05" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:5_start_0 c001n06" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "child_CloneSet:5_monitor_5000 c001n06" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:6_start_0 c001n07" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "child_CloneSet:6_monitor_5000 c001n07" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:7_start_0 c001n08" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "child_CloneSet:7_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "CloneSet_start_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_start_0" [ style = dashed] -"CloneSet_stopped_0" -> "CloneSet_start_0" [ style = dashed] "child_CloneSet:0_start_0 c001n09" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "CloneSet_running_0" [ style = bold] "CloneSet_start_0" -> "CloneSet_running_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/interleave-2.dot b/crm/pengine/testcases/interleave-2.dot index 79a5643b51..2ead555043 100644 --- a/crm/pengine/testcases/interleave-2.dot +++ b/crm/pengine/testcases/interleave-2.dot @@ -1,483 +1,377 @@ digraph "g" { size = "30,30" -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n02" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n04_monitor_5000 c001n04" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n05_monitor_5000 c001n05" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:3_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n06_monitor_5000 c001n06" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:4_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n07_monitor_5000 c001n07" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:5_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n02_start_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_stop_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_start_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_stop_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_start_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_stop_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_start_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_stop_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_start_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_stop_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_start_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_CloneSet:0_start_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_5000 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_start_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_5000 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_start_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_5000 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_start_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_5000 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_start_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_5000 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "CloneSet_start_0" [ style=bold color="green" fontcolor="orange" ] "CloneSet_running_0" [ style=bold color="green" fontcolor="orange" ] -"CloneSet_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"CloneSet_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "child_DoFencing:7_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "child_DoFencing:0_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "child_DoFencing:3_monitor_5000 c001n05" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "child_DoFencing:6_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n09_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:1_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:3_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:5_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:7_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:0_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:2_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:4_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:0_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:1_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:2_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:3_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:0_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:1_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:2_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:3_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:4_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:5_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:6_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:7_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:3_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:4_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:5_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] "CloneSet_start_0" -> "child_CloneSet:0_start_0 c001n09" [ style = bold] "child_CloneSet:0_start_0 c001n09" -> "child_CloneSet:0_monitor_5000 c001n09" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:1_start_0 c001n02" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "child_CloneSet:1_monitor_5000 c001n02" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:2_start_0 c001n03" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "child_CloneSet:2_monitor_5000 c001n03" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:3_start_0 c001n04" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "child_CloneSet:3_monitor_5000 c001n04" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:4_start_0 c001n05" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "child_CloneSet:4_monitor_5000 c001n05" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:5_start_0 c001n06" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "child_CloneSet:5_monitor_5000 c001n06" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:6_start_0 c001n07" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "child_CloneSet:6_monitor_5000 c001n07" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:7_start_0 c001n08" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "child_CloneSet:7_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "CloneSet_start_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_start_0" [ style = dashed] -"CloneSet_stopped_0" -> "CloneSet_start_0" [ style = dashed] "child_CloneSet:0_start_0 c001n09" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "CloneSet_running_0" [ style = bold] "CloneSet_start_0" -> "CloneSet_running_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/interleave-3.dot b/crm/pengine/testcases/interleave-3.dot index 79a5643b51..2ead555043 100644 --- a/crm/pengine/testcases/interleave-3.dot +++ b/crm/pengine/testcases/interleave-3.dot @@ -1,483 +1,377 @@ digraph "g" { size = "30,30" -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n02" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n04_monitor_5000 c001n04" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n05_monitor_5000 c001n05" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:3_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n06_monitor_5000 c001n06" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:4_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n07_monitor_5000 c001n07" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:5_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n02_start_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_stop_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n03_start_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_stop_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n04_start_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_stop_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n05_start_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_stop_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n06_start_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_stop_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n07_start_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] -"child_DoFencing:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_CloneSet:0_start_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:0_monitor_5000 c001n09" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:1_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:2_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_start_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:3_monitor_5000 c001n04" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_start_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:4_monitor_5000 c001n05" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_start_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:5_monitor_5000 c001n06" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_start_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:6_monitor_5000 c001n07" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_CloneSet:7_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "CloneSet_start_0" [ style=bold color="green" fontcolor="orange" ] "CloneSet_running_0" [ style=bold color="green" fontcolor="orange" ] -"CloneSet_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"CloneSet_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "child_DoFencing:7_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "child_DoFencing:0_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "child_DoFencing:3_monitor_5000 c001n05" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "child_DoFencing:6_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n09_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:1_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:3_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:5_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_CloneSet:7_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:0_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_CloneSet:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_CloneSet:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:2_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:4_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_CloneSet:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:0_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:1_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:2_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:3_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_CloneSet:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:0_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:1_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:2_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:3_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:4_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:5_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:6_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_CloneSet:7_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:3_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:4_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:5_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_CloneSet:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_CloneSet:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] "CloneSet_start_0" -> "child_CloneSet:0_start_0 c001n09" [ style = bold] "child_CloneSet:0_start_0 c001n09" -> "child_CloneSet:0_monitor_5000 c001n09" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:1_start_0 c001n02" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "child_CloneSet:1_monitor_5000 c001n02" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:2_start_0 c001n03" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "child_CloneSet:2_monitor_5000 c001n03" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:3_start_0 c001n04" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "child_CloneSet:3_monitor_5000 c001n04" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:4_start_0 c001n05" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "child_CloneSet:4_monitor_5000 c001n05" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:5_start_0 c001n06" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "child_CloneSet:5_monitor_5000 c001n06" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:6_start_0 c001n07" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "child_CloneSet:6_monitor_5000 c001n07" [ style = bold] "CloneSet_start_0" -> "child_CloneSet:7_start_0 c001n08" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "child_CloneSet:7_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "CloneSet_start_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_start_0" [ style = dashed] -"CloneSet_stopped_0" -> "CloneSet_start_0" [ style = dashed] "child_CloneSet:0_start_0 c001n09" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:1_start_0 c001n02" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:2_start_0 c001n03" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:3_start_0 c001n04" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:4_start_0 c001n05" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:5_start_0 c001n06" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:6_start_0 c001n07" -> "CloneSet_running_0" [ style = bold] "child_CloneSet:7_start_0 c001n08" -> "CloneSet_running_0" [ style = bold] "CloneSet_start_0" -> "CloneSet_running_0" [ style = bold] -"CloneSet_stop_0" -> "CloneSet_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/managed-0.dot b/crm/pengine/testcases/managed-0.dot index b743fb1f0a..1a975d4b56 100644 --- a/crm/pengine/testcases/managed-0.dot +++ b/crm/pengine/testcases/managed-0.dot @@ -1,317 +1,182 @@ digraph "g" { size = "30,30" -"rsc_c001n09_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:6_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:7_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n09_start_0 c001n09" -> "rsc_c001n09_monitor_5000 c001n09" [ style = dashed] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "child_DoFencing:7_monitor_5000 c001n09" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "child_DoFencing:0_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n04_start_0 c001n04" -> "rsc_c001n04_monitor_5000 c001n04" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "child_DoFencing:2_monitor_5000 c001n04" [ style = dashed] -"rsc_c001n05_start_0 c001n05" -> "rsc_c001n05_monitor_5000 c001n05" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "child_DoFencing:3_monitor_5000 c001n05" [ style = dashed] -"rsc_c001n06_start_0 c001n06" -> "rsc_c001n06_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_5000 c001n06" [ style = dashed] -"rsc_c001n07_start_0 c001n07" -> "rsc_c001n07_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "child_DoFencing:6_monitor_5000 c001n08" [ style = dashed] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] -"rsc_c001n09_stop_0 c001n09" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/managed-1.dot b/crm/pengine/testcases/managed-1.dot index 850b526589..ff6ea1226d 100644 --- a/crm/pengine/testcases/managed-1.dot +++ b/crm/pengine/testcases/managed-1.dot @@ -1,309 +1,210 @@ digraph "g" { size = "30,30" -"rsc_c001n09_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:7_monitor_5000 c001n09" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_monitor_5000 c001n02" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:1_monitor_5000 c001n03" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n04_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:2_monitor_5000 c001n04" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n05_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:3_monitor_5000 c001n05" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n06_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:4_monitor_5000 c001n06" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n07_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:5_monitor_5000 c001n07" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:6_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n09_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_stop_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_start_0 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_start_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:0_start_0 c001n02" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:1_stop_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:1_start_0 c001n03" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:2_stop_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:2_start_0 c001n04" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:3_stop_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:3_start_0 c001n05" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:4_stop_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:4_start_0 c001n06" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:5_stop_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:5_start_0 c001n07" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:6_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:6_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:7_stop_0 c001n09" [ font_color=black style=filled fillcolor=purple ] "child_DoFencing:7_start_0 c001n09" [ font_color=black style=filled fillcolor=purple ] "DoFencing_start_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_running_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_stop_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_stopped_0" [ font_color=black style=filled fillcolor=purple ] -"rsc_c001n09_start_0 c001n09" -> "rsc_c001n09_monitor_5000 c001n09" [ style = dashed] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n04_start_0 c001n04" -> "rsc_c001n04_monitor_5000 c001n04" [ style = dashed] -"rsc_c001n05_start_0 c001n05" -> "rsc_c001n05_monitor_5000 c001n05" [ style = dashed] -"rsc_c001n06_start_0 c001n06" -> "rsc_c001n06_monitor_5000 c001n06" [ style = dashed] -"rsc_c001n07_start_0 c001n07" -> "rsc_c001n07_monitor_5000 c001n07" [ style = dashed] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] -"rsc_c001n09_stop_0 c001n09" -> "rsc_c001n09_start_0 c001n09" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"rsc_c001n04_stop_0 c001n04" -> "rsc_c001n04_start_0 c001n04" [ style = dashed] -"probe_complete" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"rsc_c001n05_stop_0 c001n05" -> "rsc_c001n05_start_0 c001n05" [ style = dashed] -"probe_complete" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"probe_complete" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n04" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n04" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n05" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n05" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:6_stop_0 c001n08" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:6_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:7_stop_0 c001n09" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:7_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n04" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n05" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:6_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:7_start_0 c001n09" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n04" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n05" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:6_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:7_stop_0 c001n09" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/managed-2.dot b/crm/pengine/testcases/managed-2.dot index 4b99a14cba..e3c6ba0299 100644 --- a/crm/pengine/testcases/managed-2.dot +++ b/crm/pengine/testcases/managed-2.dot @@ -1,281 +1,262 @@ digraph "g" { size = "30,30" -"rsc_c001n09_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_monitor_5000 c001n05" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n09" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n04" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n04" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n06" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n06" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n07" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n07" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n09_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n09" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n09_stop_0 c001n09" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n04_stop_0 c001n04" [ style=bold color="green" fontcolor="black" ] "rsc_c001n05_stop_0 c001n05" [ style=bold color="green" fontcolor="black" ] "rsc_c001n06_stop_0 c001n06" [ style=bold color="green" fontcolor="black" ] "rsc_c001n07_stop_0 c001n07" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_stop_0 c001n08" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_running_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_stop_0" [ font_color=black style=filled fillcolor=purple ] "DoFencing_stopped_0" [ font_color=black style=filled fillcolor=purple ] -"DcIPaddr_start_0 c001n09" -> "DcIPaddr_monitor_5000 c001n09" [ style = dashed] "probe_complete c001n09" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n04" -> "probe_complete" [ style = bold] "probe_complete c001n05" -> "probe_complete" [ style = bold] "probe_complete c001n06" -> "probe_complete" [ style = bold] "probe_complete c001n07" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "rsc_c001n02_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n03_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n04_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n05_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n06_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n07_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "rsc_c001n08_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:0_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:1_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:2_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:3_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:4_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:5_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:6_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "child_DoFencing:7_monitor_0 c001n09" -> "probe_complete c001n09" [ style = bold] "DcIPaddr_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n09_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n04_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n05_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:0_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n09_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n04_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n05_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n06_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n09_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n02_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n03_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n05_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n06_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "rsc_c001n07_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:0_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:1_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:2_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:3_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:4_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:5_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:6_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "child_DoFencing:7_monitor_0 c001n04" -> "probe_complete c001n04" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n09_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n02_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n03_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n04_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n06_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n07_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "rsc_c001n08_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:0_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:1_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:2_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:3_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:4_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:5_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:6_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "child_DoFencing:7_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "DcIPaddr_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n05_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "rsc_c001n07_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:0_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:1_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:2_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:3_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:4_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:5_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:6_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "child_DoFencing:7_monitor_0 c001n06" -> "probe_complete c001n06" [ style = bold] "DcIPaddr_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n09_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n02_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n03_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n04_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n05_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n06_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "rsc_c001n08_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:0_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:1_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:2_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:3_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:4_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:5_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:6_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "child_DoFencing:7_monitor_0 c001n07" -> "probe_complete c001n07" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n09_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n04_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n05_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n06_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n07_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"DcIPaddr_stop_0 c001n09" -> "DcIPaddr_start_0 c001n09" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-0.dot b/crm/pengine/testcases/master-0.dot index 5a9a60ccc6..789b178c44 100644 --- a/crm/pengine/testcases/master-0.dot +++ b/crm/pengine/testcases/master-0.dot @@ -1,59 +1,44 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"rsc1_start_0" -> "rsc1_promote_0" [ style = dashed] -"rsc1_running_0" -> "rsc1_promote_0" [ style = dashed] -"rsc1_demote_0" -> "rsc1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-1.dot b/crm/pengine/testcases/master-1.dot index 228bf810d9..e1a700de53 100644 --- a/crm/pengine/testcases/master-1.dot +++ b/crm/pengine/testcases/master-1.dot @@ -1,67 +1,56 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc1_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_promoted_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "child_rsc1:3_start_0 node2" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_promote_0" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "child_rsc1:2_start_0 node1" -> "child_rsc1:2_promote_0 node1" [ style = bold] "rsc1_promote_0" -> "child_rsc1:2_promote_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] "rsc1_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_running_0" -> "rsc1_promote_0" [ style = bold] "child_rsc1:3_promote_0 node2" -> "rsc1_promoted_0" [ style = bold] "child_rsc1:2_promote_0 node1" -> "rsc1_promoted_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-10.dot b/crm/pengine/testcases/master-10.dot index bf9eda5b92..b398e114f5 100644 --- a/crm/pengine/testcases/master-10.dot +++ b/crm/pengine/testcases/master-10.dot @@ -1,157 +1,127 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_11000 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_11000 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_1000 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_1000 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc1_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_promoted_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc1:2_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_pre_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_post_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_pre_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_post_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_pre_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_pre_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_post_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "child_rsc1:2_start_0 node1" -> "child_rsc1:2_promote_0 node1" [ style = bold] "rsc1_promote_0" -> "child_rsc1:2_promote_0 node1" [ style = bold] "child_rsc1:2_start_0 node1" -> "child_rsc1:2_monitor_11000 node1" [ style = bold] "child_rsc1:2_promote_0 node1" -> "child_rsc1:2_monitor_11000 node1" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "child_rsc1:2_monitor_11000 node1" [ style = bold] "rsc1_confirmed-post_notify_promote_0" -> "child_rsc1:2_monitor_11000 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "child_rsc1:3_start_0 node2" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_promote_0" -> "child_rsc1:3_promote_0 node2" [ style = bold] "child_rsc1:3_start_0 node2" -> "child_rsc1:3_monitor_11000 node2" [ style = bold] "child_rsc1:3_promote_0 node2" -> "child_rsc1:3_monitor_11000 node2" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "child_rsc1:3_monitor_11000 node2" [ style = bold] "rsc1_confirmed-post_notify_promote_0" -> "child_rsc1:3_monitor_11000 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "child_rsc1:0_start_0 node1" -> "child_rsc1:0_monitor_1000 node1" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "child_rsc1:0_monitor_1000 node1" [ style = bold] "rsc1_confirmed-post_notify_promote_0" -> "child_rsc1:0_monitor_1000 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "child_rsc1:1_start_0 node2" -> "child_rsc1:1_monitor_1000 node2" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "child_rsc1:1_monitor_1000 node2" [ style = bold] "rsc1_confirmed-post_notify_promote_0" -> "child_rsc1:1_monitor_1000 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-pre_notify_start_0" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_pre_notify_start_0" [ style = dashed] "rsc1_pre_notify_start_0" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "rsc1_running_0" -> "rsc1_post_notify_start_0" [ style = bold] "rsc1_post_notify_start_0" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:2_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:3_post_notify_start_0 node2" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:0_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:1_post_notify_start_0 node2" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_confirmed-pre_notify_stop_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_confirmed-post_notify_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"rsc1_pre_notify_stop_0" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_post_notify_stop_0" [ style = dashed] -"rsc1_post_notify_stop_0" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] "rsc1_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_running_0" -> "rsc1_promote_0" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_confirmed-pre_notify_promote_0" -> "rsc1_promote_0" [ style = bold] "child_rsc1:2_promote_0 node1" -> "rsc1_promoted_0" [ style = bold] "child_rsc1:3_promote_0 node2" -> "rsc1_promoted_0" [ style = bold] "rsc1_pre_notify_promote_0" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:2_pre_notify_promote_0 node1" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:3_pre_notify_promote_0 node2" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:0_pre_notify_promote_0 node1" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:1_pre_notify_promote_0 node2" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "rsc1_promoted_0" -> "rsc1_post_notify_promote_0" [ style = bold] "rsc1_post_notify_promote_0" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:2_post_notify_promote_0 node1" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:3_post_notify_promote_0 node2" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:0_post_notify_promote_0 node1" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:1_post_notify_promote_0 node2" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] -"rsc1_confirmed-pre_notify_demote_0" -> "rsc1_demote_0" [ style = dashed] -"rsc1_demote_0" -> "rsc1_demoted_0" [ style = dashed] -"rsc1_pre_notify_demote_0" -> "rsc1_confirmed-pre_notify_demote_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_post_notify_demote_0" [ style = dashed] -"rsc1_post_notify_demote_0" -> "rsc1_confirmed-post_notify_demote_0" [ style = dashed] "rsc1_post_notify_start_0" -> "child_rsc1:2_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:2_pre_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:2_post_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:3_post_notify_start_0 node2" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:3_pre_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:3_post_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:0_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:0_pre_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:0_post_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:1_post_notify_start_0 node2" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:1_pre_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:1_post_notify_promote_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/master-2.dot b/crm/pengine/testcases/master-2.dot index 12dd451c9a..e905b768f3 100644 --- a/crm/pengine/testcases/master-2.dot +++ b/crm/pengine/testcases/master-2.dot @@ -1,139 +1,109 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc1_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_promoted_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_promote_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc1:2_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_pre_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_post_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_pre_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_post_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_pre_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_promote_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_post_notify_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_pre_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_post_notify_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "child_rsc1:2_start_0 node1" -> "child_rsc1:2_promote_0 node1" [ style = bold] "rsc1_promote_0" -> "child_rsc1:2_promote_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "child_rsc1:3_start_0 node2" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_promote_0" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-pre_notify_start_0" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_pre_notify_start_0" [ style = dashed] "rsc1_pre_notify_start_0" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "rsc1_running_0" -> "rsc1_post_notify_start_0" [ style = bold] "rsc1_post_notify_start_0" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:2_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:3_post_notify_start_0 node2" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:0_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:1_post_notify_start_0 node2" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_confirmed-pre_notify_stop_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_confirmed-post_notify_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"rsc1_pre_notify_stop_0" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_post_notify_stop_0" [ style = dashed] -"rsc1_post_notify_stop_0" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] "rsc1_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_running_0" -> "rsc1_promote_0" [ style = bold] "rsc1_confirmed-post_notify_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_confirmed-pre_notify_promote_0" -> "rsc1_promote_0" [ style = bold] "child_rsc1:2_promote_0 node1" -> "rsc1_promoted_0" [ style = bold] "child_rsc1:3_promote_0 node2" -> "rsc1_promoted_0" [ style = bold] "rsc1_pre_notify_promote_0" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:2_pre_notify_promote_0 node1" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:3_pre_notify_promote_0 node2" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:0_pre_notify_promote_0 node1" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "child_rsc1:1_pre_notify_promote_0 node2" -> "rsc1_confirmed-pre_notify_promote_0" [ style = bold] "rsc1_promoted_0" -> "rsc1_post_notify_promote_0" [ style = bold] "rsc1_post_notify_promote_0" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:2_post_notify_promote_0 node1" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:3_post_notify_promote_0 node2" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:0_post_notify_promote_0 node1" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] "child_rsc1:1_post_notify_promote_0 node2" -> "rsc1_confirmed-post_notify_promote_0" [ style = bold] -"rsc1_confirmed-pre_notify_demote_0" -> "rsc1_demote_0" [ style = dashed] -"rsc1_demote_0" -> "rsc1_demoted_0" [ style = dashed] -"rsc1_pre_notify_demote_0" -> "rsc1_confirmed-pre_notify_demote_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_post_notify_demote_0" [ style = dashed] -"rsc1_post_notify_demote_0" -> "rsc1_confirmed-post_notify_demote_0" [ style = dashed] "rsc1_post_notify_start_0" -> "child_rsc1:2_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:2_pre_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:2_post_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:3_post_notify_start_0 node2" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:3_pre_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:3_post_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:0_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:0_pre_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:0_post_notify_promote_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:1_post_notify_start_0 node2" [ style = bold] "rsc1_pre_notify_promote_0" -> "child_rsc1:1_pre_notify_promote_0 node2" [ style = bold] "rsc1_post_notify_promote_0" -> "child_rsc1:1_post_notify_promote_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/master-3.dot b/crm/pengine/testcases/master-3.dot index 7ceb449503..c275c92071 100644 --- a/crm/pengine/testcases/master-3.dot +++ b/crm/pengine/testcases/master-3.dot @@ -1,63 +1,52 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:3_promote_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc1_promote_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_promoted_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:0_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc1:4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:3_start_0 node2" [ style = bold] "child_rsc1:3_start_0 node2" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_promote_0" -> "child_rsc1:3_promote_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node2" [ style = bold] "rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:2_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_start_0" [ style = dashed] "child_rsc1:3_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:1_start_0 node2" -> "rsc1_running_0" [ style = bold] "child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = bold] "child_rsc1:2_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_demoted_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] "rsc1_start_0" -> "rsc1_promote_0" [ style = bold] "rsc1_running_0" -> "rsc1_promote_0" [ style = bold] "child_rsc1:3_promote_0 node2" -> "rsc1_promoted_0" [ style = bold] -"rsc1_demote_0" -> "rsc1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-4.dot b/crm/pengine/testcases/master-4.dot index ff4f19e93a..7682707988 100644 --- a/crm/pengine/testcases/master-4.dot +++ b/crm/pengine/testcases/master-4.dot @@ -1,263 +1,75 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:0_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"lsb_dummy_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocf_msdummy:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:0_promote_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:0_monitor_6000 c001n08" [ style=bold color="green" fontcolor="black" ] -"ocf_msdummy:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_promote_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_promoted_0" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "ocf_msdummy:3_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "child_DoFencing:0_monitor_20000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:4_start_0 c001n03" -> "ocf_msdummy:4_monitor_5000 c001n03" [ style = dashed] -"heartbeat_child_start_0 c001n03" -> "heartbeat_child_monitor_5000 c001n03" [ style = dashed] -"ocf_child_start_0 c001n03" -> "ocf_child_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_20000 c001n03" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "ocf_msdummy:1_monitor_5000 c001n03" [ style = dashed] -"ocf_msdummy:2_start_0 c001n01" -> "ocf_msdummy:2_monitor_5000 c001n01" [ style = dashed] -"lsb_dummy_start_0 c001n01" -> "lsb_dummy_monitor_5000 c001n01" [ style = dashed] -"ocf_msdummy:5_start_0 c001n01" -> "ocf_msdummy:5_monitor_5000 c001n01" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "child_DoFencing:2_monitor_20000 c001n01" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "child_DoFencing:3_monitor_20000 c001n02" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "ocf_msdummy:6_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:7_start_0 c001n02" -> "ocf_msdummy:7_monitor_5000 c001n02" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:4_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:6_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:7_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] -"DcIPaddr_stop_0 c001n08" -> "DcIPaddr_start_0 c001n08" [ style = dashed] -"heartbeat_child_stop_0 c001n03" -> "ocf_child_stop_0 c001n03" [ style = dashed] -"ocf_child_stop_0 c001n03" -> "ocf_child_start_0 c001n03" [ style = dashed] -"group-1_start_0" -> "ocf_child_start_0 c001n03" [ style = dashed] -"group-1_stop_0" -> "heartbeat_child_stop_0 c001n03" [ style = dashed] -"heartbeat_child_stop_0 c001n03" -> "heartbeat_child_start_0 c001n03" [ style = dashed] -"ocf_child_start_0 c001n03" -> "heartbeat_child_start_0 c001n03" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"heartbeat_child_start_0 c001n03" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"ocf_child_stop_0 c001n03" -> "group-1_stopped_0" [ style = dashed] -"lsb_dummy_stop_0 c001n01" -> "lsb_dummy_start_0 c001n01" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n08" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n01" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n02" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] "ocf_msdummy:0_monitor_5000 c001n08" -> "ocf_msdummy:0_promote_0 c001n08" [ style = bold] -"ocf_msdummy:0_start_0 c001n08" -> "ocf_msdummy:0_promote_0 c001n08" [ style = dashed] "master_rsc_1_promote_0" -> "ocf_msdummy:0_promote_0 c001n08" [ style = bold] -"ocf_msdummy:0_start_0 c001n08" -> "ocf_msdummy:0_monitor_6000 c001n08" [ style = dashed] "ocf_msdummy:0_promote_0 c001n08" -> "ocf_msdummy:0_monitor_6000 c001n08" [ style = bold] -"master_rsc_1_stop_0" -> "ocf_msdummy:1_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:2_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n01" -> "ocf_msdummy:2_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:2_start_0 c001n01" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:3_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:4_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n03" -> "ocf_msdummy:4_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:4_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:5_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n01" -> "ocf_msdummy:5_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:5_start_0 c001n01" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:7_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n02" -> "ocf_msdummy:7_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:7_start_0 c001n02" [ style = dashed] -"probe_complete" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:0_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:2_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:4_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:5_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:7_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] "ocf_msdummy:0_promote_0 c001n08" -> "master_rsc_1_promoted_0" [ style = bold] -"master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-5.dot b/crm/pengine/testcases/master-5.dot index 0e7cbe7d98..f6aba2a355 100644 --- a/crm/pengine/testcases/master-5.dot +++ b/crm/pengine/testcases/master-5.dot @@ -1,256 +1,66 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_monitor_6000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_child_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_child_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"lsb_dummy_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocf_msdummy:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "ocf_msdummy:3_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "child_DoFencing:0_monitor_20000 c001n08" [ style = dashed] -"ocf_msdummy:0_start_0 c001n08" -> "ocf_msdummy:0_monitor_6000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:4_start_0 c001n03" -> "ocf_msdummy:4_monitor_5000 c001n03" [ style = dashed] -"heartbeat_child_start_0 c001n03" -> "heartbeat_child_monitor_5000 c001n03" [ style = dashed] -"ocf_child_start_0 c001n03" -> "ocf_child_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_20000 c001n03" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "ocf_msdummy:1_monitor_5000 c001n03" [ style = dashed] -"ocf_msdummy:2_start_0 c001n01" -> "ocf_msdummy:2_monitor_5000 c001n01" [ style = dashed] -"lsb_dummy_start_0 c001n01" -> "lsb_dummy_monitor_5000 c001n01" [ style = dashed] -"ocf_msdummy:5_start_0 c001n01" -> "ocf_msdummy:5_monitor_5000 c001n01" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "child_DoFencing:2_monitor_20000 c001n01" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "child_DoFencing:3_monitor_20000 c001n02" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "ocf_msdummy:6_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:7_start_0 c001n02" -> "ocf_msdummy:7_monitor_5000 c001n02" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:4_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:6_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:7_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:1_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:2_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] -"DcIPaddr_stop_0 c001n08" -> "DcIPaddr_start_0 c001n08" [ style = dashed] -"heartbeat_child_stop_0 c001n03" -> "ocf_child_stop_0 c001n03" [ style = dashed] -"ocf_child_stop_0 c001n03" -> "ocf_child_start_0 c001n03" [ style = dashed] -"group-1_start_0" -> "ocf_child_start_0 c001n03" [ style = dashed] -"group-1_stop_0" -> "heartbeat_child_stop_0 c001n03" [ style = dashed] -"heartbeat_child_stop_0 c001n03" -> "heartbeat_child_start_0 c001n03" [ style = dashed] -"ocf_child_start_0 c001n03" -> "heartbeat_child_start_0 c001n03" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"heartbeat_child_start_0 c001n03" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"ocf_child_stop_0 c001n03" -> "group-1_stopped_0" [ style = dashed] -"lsb_dummy_stop_0 c001n01" -> "lsb_dummy_start_0 c001n01" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n08" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n01" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n02" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n01" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:1_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:2_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n01" -> "ocf_msdummy:2_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:2_start_0 c001n01" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:3_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:4_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n03" -> "ocf_msdummy:4_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:4_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:5_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n01" -> "ocf_msdummy:5_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:5_start_0 c001n01" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:7_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n02" -> "ocf_msdummy:7_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:7_start_0 c001n02" [ style = dashed] -"probe_complete" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:0_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:2_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:4_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:5_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:7_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-6.dot b/crm/pengine/testcases/master-6.dot index e4be82a954..1782b11e81 100644 --- a/crm/pengine/testcases/master-6.dot +++ b/crm/pengine/testcases/master-6.dot @@ -1,257 +1,60 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_monitor_6000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.181_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.181_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.181_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"lsb_dummy_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocf_msdummy:0_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "ocf_msdummy:3_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "child_DoFencing:0_monitor_20000 c001n08" [ style = dashed] -"ocf_msdummy:0_start_0 c001n08" -> "ocf_msdummy:0_monitor_6000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = dashed] -"ocf_192.168.100.181_start_0 c001n02" -> "ocf_192.168.100.181_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:4_start_0 c001n02" -> "ocf_msdummy:4_monitor_5000 c001n02" [ style = dashed] -"ocf_192.168.100.183_start_0 c001n02" -> "ocf_192.168.100.183_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:1_start_0 c001n02" -> "child_DoFencing:1_monitor_20000 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_start_0 c001n02" -> "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:1_start_0 c001n02" -> "ocf_msdummy:1_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:2_start_0 c001n03" -> "ocf_msdummy:2_monitor_5000 c001n03" [ style = dashed] -"lsb_dummy_start_0 c001n03" -> "lsb_dummy_monitor_5000 c001n03" [ style = dashed] -"ocf_msdummy:5_start_0 c001n03" -> "ocf_msdummy:5_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:2_start_0 c001n03" -> "child_DoFencing:2_monitor_20000 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] -"child_DoFencing:3_start_0 c001n01" -> "child_DoFencing:3_monitor_20000 c001n01" [ style = dashed] -"ocf_msdummy:7_start_0 c001n01" -> "ocf_msdummy:7_monitor_5000 c001n01" [ style = dashed] -"ocf_msdummy:6_start_0 c001n01" -> "ocf_msdummy:6_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:7_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:6_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:2_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:2_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:4_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "ocf_msdummy:5_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"DcIPaddr_stop_0 c001n08" -> "DcIPaddr_start_0 c001n08" [ style = dashed] -"heartbeat_192.168.100.182_stop_0 c001n02" -> "ocf_192.168.100.181_stop_0 c001n02" [ style = dashed] -"ocf_192.168.100.181_stop_0 c001n02" -> "ocf_192.168.100.181_start_0 c001n02" [ style = dashed] -"group-1_start_0" -> "ocf_192.168.100.181_start_0 c001n02" [ style = dashed] -"ocf_192.168.100.183_stop_0 c001n02" -> "heartbeat_192.168.100.182_stop_0 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_stop_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = dashed] -"ocf_192.168.100.181_start_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = dashed] -"group-1_stop_0" -> "ocf_192.168.100.183_stop_0 c001n02" [ style = dashed] -"ocf_192.168.100.183_stop_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_start_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"ocf_192.168.100.183_start_0 c001n02" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"ocf_192.168.100.181_stop_0 c001n02" -> "group-1_stopped_0" [ style = dashed] -"lsb_dummy_stop_0 c001n03" -> "lsb_dummy_start_0 c001n03" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n08" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n08" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n02" [ style = dashed] -"child_DoFencing:1_stop_0 c001n02" -> "child_DoFencing:1_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n03" [ style = dashed] -"child_DoFencing:2_stop_0 c001n03" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n01" [ style = dashed] -"child_DoFencing:3_stop_0 c001n01" -> "child_DoFencing:3_start_0 c001n01" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n01" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n01" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:1_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n02" -> "ocf_msdummy:1_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:2_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n03" -> "ocf_msdummy:2_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:2_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:3_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:4_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n02" -> "ocf_msdummy:4_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:4_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:5_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n03" -> "ocf_msdummy:5_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:5_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n01" -> "ocf_msdummy:6_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:6_start_0 c001n01" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:7_stop_0 c001n01" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n01" -> "ocf_msdummy:7_start_0 c001n01" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:7_start_0 c001n01" [ style = dashed] -"probe_complete" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:0_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:1_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:2_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:4_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:5_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:6_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:7_start_0 c001n01" -> "master_rsc_1_running_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = dashed] } diff --git a/crm/pengine/testcases/master-7.dot b/crm/pengine/testcases/master-7.dot index 4010b9f165..48a52fa674 100644 --- a/crm/pengine/testcases/master-7.dot +++ b/crm/pengine/testcases/master-7.dot @@ -1,231 +1,113 @@ digraph "g" { size = "30,30" -"ocf_192.168.100.181_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "DcIPaddr_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "group-1_start_0" [ style=bold color="green" fontcolor="orange" ] "group-1_running_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stop_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "lsb_dummy_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "lsb_dummy_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "lsb_dummy_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "rsc_c001n01_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"ocf_msdummy:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:5_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:0_demote_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "ocf_msdummy:0_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "ocf_msdummy:4_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_stop_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_demote_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_demoted_0" [ style=bold color="green" fontcolor="orange" ] "stonith c001n01" [ style=bold color="green" fontcolor="black" ] -"ocf_msdummy:5_start_0 c001n03" -> "ocf_msdummy:5_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_20000 c001n03" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "ocf_msdummy:1_monitor_5000 c001n03" [ style = dashed] -"ocf_msdummy:2_start_0 c001n02" -> "ocf_msdummy:2_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "ocf_msdummy:6_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:2_start_0 c001n02" -> "child_DoFencing:2_monitor_20000 c001n02" [ style = dashed] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "ocf_msdummy:3_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:7_start_0 c001n08" -> "ocf_msdummy:7_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "child_DoFencing:3_monitor_20000 c001n08" [ style = dashed] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "stonith c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] "DcIPaddr_stop_0 c001n01" -> "DcIPaddr_start_0 c001n03" [ style = bold] "DcIPaddr_start_0 c001n03" -> "DcIPaddr_monitor_5000 c001n03" [ style = bold] "heartbeat_192.168.100.182_stop_0 c001n03" -> "ocf_192.168.100.181_stop_0 c001n03" [ style = bold] "ocf_192.168.100.181_stop_0 c001n03" -> "ocf_192.168.100.181_start_0 c001n02" [ style = bold] "group-1_start_0" -> "ocf_192.168.100.181_start_0 c001n02" [ style = bold] "ocf_192.168.100.181_start_0 c001n02" -> "ocf_192.168.100.181_monitor_5000 c001n02" [ style = bold] "ocf_192.168.100.183_stop_0 c001n03" -> "heartbeat_192.168.100.182_stop_0 c001n03" [ style = bold] "ocf_192.168.100.181_start_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] "heartbeat_192.168.100.182_stop_0 c001n03" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] "heartbeat_192.168.100.182_start_0 c001n02" -> "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style = bold] "group-1_stop_0" -> "ocf_192.168.100.183_stop_0 c001n03" [ style = bold] "heartbeat_192.168.100.182_start_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = bold] "ocf_192.168.100.183_stop_0 c001n03" -> "ocf_192.168.100.183_start_0 c001n02" [ style = bold] "ocf_192.168.100.183_start_0 c001n02" -> "ocf_192.168.100.183_monitor_5000 c001n02" [ style = bold] "group-1_stop_0" -> "group-1_start_0" [ style = bold] "group-1_stopped_0" -> "group-1_start_0" [ style = bold] "ocf_192.168.100.183_start_0 c001n02" -> "group-1_running_0" [ style = bold] "group-1_start_0" -> "group-1_running_0" [ style = bold] "ocf_192.168.100.181_stop_0 c001n03" -> "group-1_stopped_0" [ style = bold] "group-1_stop_0" -> "group-1_stopped_0" [ style = bold] "lsb_dummy_stop_0 c001n02" -> "lsb_dummy_start_0 c001n08" [ style = bold] "lsb_dummy_start_0 c001n08" -> "lsb_dummy_monitor_5000 c001n08" [ style = bold] "stonith c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] "rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold] "rsc_c001n01_start_0 c001n03" -> "rsc_c001n01_monitor_5000 c001n03" [ style = bold] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] "stonith c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n02" [ style = dashed] -"child_DoFencing:2_stop_0 c001n02" -> "child_DoFencing:2_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n08" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] -"master_rsc_1_stop_0" -> "ocf_msdummy:1_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:2_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n02" -> "ocf_msdummy:2_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:2_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:3_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:5_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n03" -> "ocf_msdummy:5_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:5_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:7_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n08" -> "ocf_msdummy:7_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:7_start_0 c001n08" [ style = dashed] "master_rsc_1_demote_0" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] "stonith c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] "ocf_msdummy:0_demote_0 c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "stonith c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "master_rsc_1_stop_0" -> "ocf_msdummy:4_stop_0 c001n01" [ style = bold] "stonith c001n01" -> "ocf_msdummy:4_stop_0 c001n01" [ style = bold] -"probe_complete" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:2_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:5_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:7_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] "master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = bold] "master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = bold] -"ocf_msdummy:1_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:5_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] "ocf_msdummy:0_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = bold] "ocf_msdummy:4_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = bold] "master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] "ocf_msdummy:0_demote_0 c001n01" -> "master_rsc_1_demoted_0" [ style = bold] "master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = bold] -"DoFencing_running_0" -> "stonith c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/master-8.dot b/crm/pengine/testcases/master-8.dot index 55ef772305..434ef5aacd 100644 --- a/crm/pengine/testcases/master-8.dot +++ b/crm/pengine/testcases/master-8.dot @@ -1,226 +1,124 @@ digraph "g" { size = "30,30" -"ocf_192.168.100.181_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "DcIPaddr_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.181_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_stop_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "ocf_192.168.100.183_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "group-1_start_0" [ style=bold color="green" fontcolor="orange" ] "group-1_running_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stop_0" [ style=bold color="green" fontcolor="orange" ] "group-1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "lsb_dummy_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] "lsb_dummy_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "lsb_dummy_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "rsc_c001n01_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:0_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] -"child_DoFencing:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:2_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] "ocf_msdummy:0_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "ocf_msdummy:0_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:0_demote_0 c001n01" [ style=bold color="green" fontcolor="orange" ] "ocf_msdummy:0_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"ocf_msdummy:1_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:1_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:2_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:3_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:6_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:7_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] "master_rsc_1_start_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_running_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_stop_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_demote_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_demoted_0" [ style=bold color="green" fontcolor="orange" ] "stonith c001n01" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_20000 c001n03" [ style = dashed] -"ocf_msdummy:1_start_0 c001n03" -> "ocf_msdummy:1_monitor_5000 c001n03" [ style = dashed] -"ocf_msdummy:2_start_0 c001n02" -> "ocf_msdummy:2_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "ocf_msdummy:6_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:2_start_0 c001n02" -> "child_DoFencing:2_monitor_20000 c001n02" [ style = dashed] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "ocf_msdummy:3_monitor_5000 c001n08" [ style = dashed] -"ocf_msdummy:7_start_0 c001n08" -> "ocf_msdummy:7_monitor_5000 c001n08" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "child_DoFencing:3_monitor_20000 c001n08" [ style = dashed] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n08" -> "probe_complete" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:4_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:5_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:6_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "ocf_msdummy:7_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:4_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:5_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "ocf_msdummy:7_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:4_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:5_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "ocf_msdummy:6_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "stonith c001n01" -> "DcIPaddr_stop_0 c001n01" [ style = bold] "DcIPaddr_stop_0 c001n01" -> "DcIPaddr_start_0 c001n03" [ style = bold] "DcIPaddr_start_0 c001n03" -> "DcIPaddr_monitor_5000 c001n03" [ style = bold] "heartbeat_192.168.100.182_stop_0 c001n03" -> "ocf_192.168.100.181_stop_0 c001n03" [ style = bold] "ocf_192.168.100.181_stop_0 c001n03" -> "ocf_192.168.100.181_start_0 c001n02" [ style = bold] "group-1_start_0" -> "ocf_192.168.100.181_start_0 c001n02" [ style = bold] "ocf_192.168.100.181_start_0 c001n02" -> "ocf_192.168.100.181_monitor_5000 c001n02" [ style = bold] "ocf_192.168.100.183_stop_0 c001n03" -> "heartbeat_192.168.100.182_stop_0 c001n03" [ style = bold] "ocf_192.168.100.181_start_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] "heartbeat_192.168.100.182_stop_0 c001n03" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = bold] "heartbeat_192.168.100.182_start_0 c001n02" -> "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style = bold] "group-1_stop_0" -> "ocf_192.168.100.183_stop_0 c001n03" [ style = bold] "heartbeat_192.168.100.182_start_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = bold] "ocf_192.168.100.183_stop_0 c001n03" -> "ocf_192.168.100.183_start_0 c001n02" [ style = bold] "ocf_192.168.100.183_start_0 c001n02" -> "ocf_192.168.100.183_monitor_5000 c001n02" [ style = bold] "group-1_stop_0" -> "group-1_start_0" [ style = bold] "group-1_stopped_0" -> "group-1_start_0" [ style = bold] "ocf_192.168.100.183_start_0 c001n02" -> "group-1_running_0" [ style = bold] "group-1_start_0" -> "group-1_running_0" [ style = bold] "ocf_192.168.100.181_stop_0 c001n03" -> "group-1_stopped_0" [ style = bold] "group-1_stop_0" -> "group-1_stopped_0" [ style = bold] "lsb_dummy_stop_0 c001n02" -> "lsb_dummy_start_0 c001n08" [ style = bold] "lsb_dummy_start_0 c001n08" -> "lsb_dummy_monitor_5000 c001n08" [ style = bold] "stonith c001n01" -> "rsc_c001n01_stop_0 c001n01" [ style = bold] "rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold] "rsc_c001n01_start_0 c001n03" -> "rsc_c001n01_monitor_5000 c001n03" [ style = bold] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] "stonith c001n01" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n03" [ style = dashed] -"child_DoFencing:1_stop_0 c001n03" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:2_stop_0 c001n02" [ style = dashed] -"child_DoFencing:2_stop_0 c001n02" -> "child_DoFencing:2_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n08" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n08" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:2_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n08" -> "DoFencing_running_0" [ style = dashed] "child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = bold] -"child_DoFencing:1_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:2_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n08" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] "ocf_msdummy:0_demote_0 c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "stonith c001n01" -> "ocf_msdummy:0_stop_0 c001n01" [ style = bold] "ocf_msdummy:0_stop_0 c001n01" -> "ocf_msdummy:0_start_0 c001n03" [ style = bold] "master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 c001n03" [ style = bold] "master_rsc_1_demote_0" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] "stonith c001n01" -> "ocf_msdummy:0_demote_0 c001n01" [ style = bold] "ocf_msdummy:0_start_0 c001n03" -> "ocf_msdummy:0_monitor_5000 c001n03" [ style = bold] -"master_rsc_1_stop_0" -> "ocf_msdummy:1_stop_0 c001n03" [ style = dashed] -"ocf_msdummy:1_stop_0 c001n03" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 c001n03" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:2_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n02" -> "ocf_msdummy:2_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:2_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:3_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:3_start_0 c001n08" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:6_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:7_stop_0 c001n08" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n08" -> "ocf_msdummy:7_start_0 c001n08" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:7_start_0 c001n08" [ style = dashed] "probe_complete" -> "master_rsc_1_start_0" [ style = bold] "master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = bold] "master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = bold] "master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = bold] "ocf_msdummy:0_start_0 c001n03" -> "master_rsc_1_running_0" [ style = bold] -"ocf_msdummy:1_start_0 c001n03" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:2_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:3_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:6_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:7_start_0 c001n08" -> "master_rsc_1_running_0" [ style = dashed] "master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = bold] "master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = bold] "master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = bold] "ocf_msdummy:0_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = bold] -"ocf_msdummy:1_stop_0 c001n03" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:2_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:3_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:6_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:7_stop_0 c001n08" -> "master_rsc_1_stopped_0" [ style = dashed] "master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] "ocf_msdummy:0_demote_0 c001n01" -> "master_rsc_1_demoted_0" [ style = bold] "master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = bold] -"DoFencing_running_0" -> "stonith c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/master-9.dot b/crm/pengine/testcases/master-9.dot index ff8136f42a..451c99c313 100644 --- a/crm/pengine/testcases/master-9.dot +++ b/crm/pengine/testcases/master-9.dot @@ -1,134 +1,61 @@ digraph "g" { size = "30,30" -"child_DoFencing:0_monitor_20000 va1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:1_monitor_20000 ibm1" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete va1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 va1" [ style=bold color="green" fontcolor="black" ] "probe_complete ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:2_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:3_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:4_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:5_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:6_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] "ocf_msdummy:7_monitor_0 ibm1" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "DcIPaddr_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"ocf_127.0.0.11_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "ocf_127.0.0.11_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"heartbeat_127.0.0.12_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "heartbeat_127.0.0.12_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"ocf_127.0.0.13_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "ocf_127.0.0.13_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"lsb_dummy_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "lsb_dummy_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"rsc_sgi2_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "rsc_sgi2_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"rsc_ibm1_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "rsc_ibm1_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"rsc_va1_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "rsc_va1_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"rsc_test02_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "rsc_test02_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"child_DoFencing:0_stop_0 va1" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:1_stop_0 ibm1" [ style=bold color="green" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"ocf_msdummy:0_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:0_monitor_6000 va1" [ font_color=purple style=filled fillcolor=red ] -"ocf_msdummy:1_start_0 va1" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:1_monitor_5000 va1" [ font_color=purple style=filled fillcolor=red ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "do_shutdown ibm1" [ style=bold color="green" fontcolor="black" ] -"child_DoFencing:0_start_0 va1" -> "child_DoFencing:0_monitor_20000 va1" [ style = dashed] "probe_complete va1" -> "probe_complete" [ style = bold] "probe_complete ibm1" -> "probe_complete" [ style = bold] "child_DoFencing:1_monitor_0 va1" -> "probe_complete va1" [ style = bold] "child_DoFencing:2_monitor_0 va1" -> "probe_complete va1" [ style = bold] "child_DoFencing:3_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:2_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:3_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:4_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:5_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:6_monitor_0 va1" -> "probe_complete va1" [ style = bold] "ocf_msdummy:7_monitor_0 va1" -> "probe_complete va1" [ style = bold] "child_DoFencing:2_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "child_DoFencing:3_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:2_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:3_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:4_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:5_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:6_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] "ocf_msdummy:7_monitor_0 ibm1" -> "probe_complete ibm1" [ style = bold] -"DcIPaddr_start_0 va1" -> "DcIPaddr_monitor_5000 va1" [ style = dashed] -"group-1_start_0" -> "ocf_127.0.0.11_start_0 va1" [ style = dashed] -"ocf_127.0.0.11_start_0 va1" -> "ocf_127.0.0.11_monitor_5000 va1" [ style = dashed] -"ocf_127.0.0.11_start_0 va1" -> "heartbeat_127.0.0.12_start_0 va1" [ style = dashed] -"heartbeat_127.0.0.12_start_0 va1" -> "heartbeat_127.0.0.12_monitor_5000 va1" [ style = dashed] -"heartbeat_127.0.0.12_start_0 va1" -> "ocf_127.0.0.13_start_0 va1" [ style = dashed] -"ocf_127.0.0.13_start_0 va1" -> "ocf_127.0.0.13_monitor_5000 va1" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"ocf_127.0.0.13_start_0 va1" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"lsb_dummy_start_0 va1" -> "lsb_dummy_monitor_5000 va1" [ style = dashed] -"rsc_sgi2_start_0 va1" -> "rsc_sgi2_monitor_5000 va1" [ style = dashed] -"rsc_ibm1_start_0 va1" -> "rsc_ibm1_monitor_5000 va1" [ style = dashed] -"rsc_va1_start_0 va1" -> "rsc_va1_monitor_5000 va1" [ style = dashed] -"rsc_test02_start_0 va1" -> "rsc_test02_monitor_5000 va1" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 va1" [ style = dashed] -"child_DoFencing:0_stop_0 va1" -> "child_DoFencing:0_start_0 va1" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 va1" [ style = dashed] "DoFencing_stop_0" -> "child_DoFencing:1_stop_0 ibm1" [ style = bold] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 va1" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_stop_0 va1" -> "DoFencing_stopped_0" [ style = dashed] "child_DoFencing:1_stop_0 ibm1" -> "DoFencing_stopped_0" [ style = bold] "DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold] -"master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 va1" [ style = dashed] -"ocf_msdummy:0_start_0 va1" -> "ocf_msdummy:0_monitor_6000 va1" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:1_start_0 va1" [ style = dashed] -"ocf_msdummy:1_start_0 va1" -> "ocf_msdummy:1_monitor_5000 va1" [ style = dashed] -"probe_complete" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:0_start_0 va1" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:1_start_0 va1" -> "master_rsc_1_running_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = dashed] "child_DoFencing:1_stop_0 ibm1" -> "do_shutdown ibm1" [ style = bold] } diff --git a/crm/pengine/testcases/multi1.dot b/crm/pengine/testcases/multi1.dot index 30a5791098..53c24f12e2 100644 --- a/crm/pengine/testcases/multi1.dot +++ b/crm/pengine/testcases/multi1.dot @@ -1,13 +1,10 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] -"probe_complete node2" -> "probe_complete" [ style = dashed] "rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = bold] "rsc1_stop_0 node2" -> "rsc1_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/notify-0.dot b/crm/pengine/testcases/notify-0.dot index 607e3e39c5..6d21e92615 100644 --- a/crm/pengine/testcases/notify-0.dot +++ b/crm/pengine/testcases/notify-0.dot @@ -1,41 +1,23 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc2:0_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] "rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = bold] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] "child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/notify-1.dot b/crm/pengine/testcases/notify-1.dot index 1031d9629f..272681cebe 100644 --- a/crm/pengine/testcases/notify-1.dot +++ b/crm/pengine/testcases/notify-1.dot @@ -1,95 +1,51 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc2:0_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "child_rsc1:0_pre_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_pre_notify_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_post_notify_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] "rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-pre_notify_start_0" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_start_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_pre_notify_start_0" [ style = dashed] "rsc1_pre_notify_start_0" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "child_rsc1:0_pre_notify_start_0 node1" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "rsc1_running_0" -> "rsc1_post_notify_start_0" [ style = bold] "rsc1_post_notify_start_0" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:0_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:1_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] -"rsc1_confirmed-pre_notify_stop_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"rsc1_pre_notify_stop_0" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"child_rsc1:0_pre_notify_stop_0 node1" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_post_notify_stop_0" [ style = dashed] -"rsc1_post_notify_stop_0" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] -"child_rsc1:0_post_notify_stop_0 node1" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = bold] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-pre_notify_start_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_pre_notify_start_0" [ style = dashed] -"rsc2_pre_notify_start_0" -> "rsc2_confirmed-pre_notify_start_0" [ style = dashed] -"rsc2_running_0" -> "rsc2_post_notify_start_0" [ style = dashed] -"rsc2_post_notify_start_0" -> "rsc2_confirmed-post_notify_start_0" [ style = dashed] "rsc2_confirmed-pre_notify_stop_0" -> "rsc2_stop_0" [ style = bold] "child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] "rsc2_pre_notify_stop_0" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "child_rsc2:0_pre_notify_stop_0 node1" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_post_notify_stop_0" [ style = bold] "rsc2_post_notify_stop_0" -> "rsc2_confirmed-post_notify_stop_0" [ style = bold] "rsc1_pre_notify_start_0" -> "child_rsc1:0_pre_notify_start_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:0_post_notify_start_0 node1" [ style = bold] -"rsc1_pre_notify_stop_0" -> "child_rsc1:0_pre_notify_stop_0 node1" [ style = dashed] -"rsc1_post_notify_stop_0" -> "child_rsc1:0_post_notify_stop_0 node1" [ style = dashed] "rsc1_post_notify_start_0" -> "child_rsc1:1_post_notify_start_0 node1" [ style = bold] "rsc2_pre_notify_stop_0" -> "child_rsc2:0_pre_notify_stop_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/notify-2.dot b/crm/pengine/testcases/notify-2.dot index 1031d9629f..272681cebe 100644 --- a/crm/pengine/testcases/notify-2.dot +++ b/crm/pengine/testcases/notify-2.dot @@ -1,95 +1,51 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] -"rsc1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc1_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] "child_rsc2:0_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "child_rsc1:0_pre_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_pre_notify_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_post_notify_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] "rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-pre_notify_start_0" -> "rsc1_start_0" [ style = bold] -"rsc1_stop_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_start_0" [ style = dashed] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_start_0" [ style = dashed] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] -"rsc1_confirmed-post_notify_stop_0" -> "rsc1_pre_notify_start_0" [ style = dashed] "rsc1_pre_notify_start_0" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "child_rsc1:0_pre_notify_start_0 node1" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "rsc1_running_0" -> "rsc1_post_notify_start_0" [ style = bold] "rsc1_post_notify_start_0" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:0_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:1_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] -"rsc1_confirmed-pre_notify_stop_0" -> "rsc1_stop_0" [ style = dashed] -"rsc1_stop_0" -> "rsc1_stopped_0" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] -"rsc1_pre_notify_stop_0" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"child_rsc1:0_pre_notify_stop_0 node1" -> "rsc1_confirmed-pre_notify_stop_0" [ style = dashed] -"rsc1_stopped_0" -> "rsc1_post_notify_stop_0" [ style = dashed] -"rsc1_post_notify_stop_0" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] -"child_rsc1:0_post_notify_stop_0 node1" -> "rsc1_confirmed-post_notify_stop_0" [ style = dashed] "rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = bold] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-pre_notify_start_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_pre_notify_start_0" [ style = dashed] -"rsc2_pre_notify_start_0" -> "rsc2_confirmed-pre_notify_start_0" [ style = dashed] -"rsc2_running_0" -> "rsc2_post_notify_start_0" [ style = dashed] -"rsc2_post_notify_start_0" -> "rsc2_confirmed-post_notify_start_0" [ style = dashed] "rsc2_confirmed-pre_notify_stop_0" -> "rsc2_stop_0" [ style = bold] "child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] "rsc2_pre_notify_stop_0" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "child_rsc2:0_pre_notify_stop_0 node1" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_post_notify_stop_0" [ style = bold] "rsc2_post_notify_stop_0" -> "rsc2_confirmed-post_notify_stop_0" [ style = bold] "rsc1_pre_notify_start_0" -> "child_rsc1:0_pre_notify_start_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:0_post_notify_start_0 node1" [ style = bold] -"rsc1_pre_notify_stop_0" -> "child_rsc1:0_pre_notify_stop_0 node1" [ style = dashed] -"rsc1_post_notify_stop_0" -> "child_rsc1:0_post_notify_stop_0 node1" [ style = dashed] "rsc1_post_notify_start_0" -> "child_rsc1:1_post_notify_start_0 node1" [ style = bold] "rsc2_pre_notify_stop_0" -> "child_rsc2:0_pre_notify_stop_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/notify-3.dot b/crm/pengine/testcases/notify-3.dot index 7c0aa2d2cb..92767734e7 100644 --- a/crm/pengine/testcases/notify-3.dot +++ b/crm/pengine/testcases/notify-3.dot @@ -1,110 +1,87 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"child_rsc1:0_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"child_rsc1:0_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "child_rsc1:1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_running_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc1_confirmed-post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "child_rsc2:0_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc2_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_confirmed-post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc2_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_stopped_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-pre_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "rsc2_confirmed-post_notify_stop_0" [ style=bold color="green" fontcolor="orange" ] "child_rsc1:0_pre_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:0_post_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_post_notify_start_0 node1" [ style=bold color="green" fontcolor="black" ] "child_rsc1:1_pre_notify_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "child_rsc2:0_pre_notify_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "child_rsc1:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc2:1_monitor_0 node1" -> "probe_complete node1" [ style = bold] "child_rsc1:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:0_monitor_0 node2" -> "probe_complete node2" [ style = bold] "child_rsc2:1_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc1_stop_0" -> "child_rsc1:0_stop_0 node1" [ style = dashed] -"child_rsc1:0_stop_0 node1" -> "child_rsc1:0_start_0 node1" [ style = dashed] -"rsc1_start_0" -> "child_rsc1:0_start_0 node1" [ style = dashed] "rsc1_stop_0" -> "child_rsc1:1_stop_0 node2" [ style = bold] "child_rsc1:1_stop_0 node2" -> "child_rsc1:1_start_0 node1" [ style = bold] "rsc1_start_0" -> "child_rsc1:1_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-pre_notify_start_0" -> "rsc1_start_0" [ style = bold] "rsc1_stop_0" -> "rsc1_start_0" [ style = bold] "rsc1_stopped_0" -> "rsc1_start_0" [ style = bold] "rsc1_confirmed-post_notify_stop_0" -> "rsc1_start_0" [ style = bold] -"child_rsc1:0_start_0 node1" -> "rsc1_running_0" [ style = dashed] "child_rsc1:1_start_0 node1" -> "rsc1_running_0" [ style = bold] "rsc1_start_0" -> "rsc1_running_0" [ style = bold] "rsc1_confirmed-post_notify_stop_0" -> "rsc1_pre_notify_start_0" [ style = bold] "rsc1_pre_notify_start_0" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "child_rsc1:0_pre_notify_start_0 node1" -> "rsc1_confirmed-pre_notify_start_0" [ style = bold] "rsc1_running_0" -> "rsc1_post_notify_start_0" [ style = bold] "rsc1_post_notify_start_0" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:0_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "child_rsc1:1_post_notify_start_0 node1" -> "rsc1_confirmed-post_notify_start_0" [ style = bold] "rsc1_confirmed-pre_notify_stop_0" -> "rsc1_stop_0" [ style = bold] -"child_rsc1:0_stop_0 node1" -> "rsc1_stopped_0" [ style = dashed] "child_rsc1:1_stop_0 node2" -> "rsc1_stopped_0" [ style = bold] "rsc1_stop_0" -> "rsc1_stopped_0" [ style = bold] "rsc1_pre_notify_stop_0" -> "rsc1_confirmed-pre_notify_stop_0" [ style = bold] "child_rsc1:0_pre_notify_stop_0 node1" -> "rsc1_confirmed-pre_notify_stop_0" [ style = bold] "child_rsc1:1_pre_notify_stop_0 node2" -> "rsc1_confirmed-pre_notify_stop_0" [ style = bold] "rsc1_stopped_0" -> "rsc1_post_notify_stop_0" [ style = bold] "rsc1_post_notify_stop_0" -> "rsc1_confirmed-post_notify_stop_0" [ style = bold] "child_rsc1:0_post_notify_stop_0 node1" -> "rsc1_confirmed-post_notify_stop_0" [ style = bold] "rsc2_stop_0" -> "child_rsc2:0_stop_0 node1" [ style = bold] -"probe_complete" -> "rsc2_start_0" [ style = dashed] -"rsc2_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_stopped_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-pre_notify_start_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_start_0" [ style = dashed] -"rsc2_start_0" -> "rsc2_running_0" [ style = dashed] -"rsc2_confirmed-post_notify_stop_0" -> "rsc2_pre_notify_start_0" [ style = dashed] -"rsc2_pre_notify_start_0" -> "rsc2_confirmed-pre_notify_start_0" [ style = dashed] -"rsc2_running_0" -> "rsc2_post_notify_start_0" [ style = dashed] -"rsc2_post_notify_start_0" -> "rsc2_confirmed-post_notify_start_0" [ style = dashed] "rsc2_confirmed-pre_notify_stop_0" -> "rsc2_stop_0" [ style = bold] "child_rsc2:0_stop_0 node1" -> "rsc2_stopped_0" [ style = bold] "rsc2_stop_0" -> "rsc2_stopped_0" [ style = bold] "rsc2_pre_notify_stop_0" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "child_rsc2:0_pre_notify_stop_0 node1" -> "rsc2_confirmed-pre_notify_stop_0" [ style = bold] "rsc2_stopped_0" -> "rsc2_post_notify_stop_0" [ style = bold] "rsc2_post_notify_stop_0" -> "rsc2_confirmed-post_notify_stop_0" [ style = bold] "rsc1_pre_notify_start_0" -> "child_rsc1:0_pre_notify_start_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:0_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_stop_0" -> "child_rsc1:0_pre_notify_stop_0 node1" [ style = bold] "rsc1_post_notify_stop_0" -> "child_rsc1:0_post_notify_stop_0 node1" [ style = bold] "rsc1_post_notify_start_0" -> "child_rsc1:1_post_notify_start_0 node1" [ style = bold] "rsc1_pre_notify_stop_0" -> "child_rsc1:1_pre_notify_stop_0 node2" [ style = bold] "rsc2_pre_notify_stop_0" -> "child_rsc2:0_pre_notify_stop_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/order5.dot b/crm/pengine/testcases/order5.dot index 2ee6f09155..188cbf4e8a 100644 --- a/crm/pengine/testcases/order5.dot +++ b/crm/pengine/testcases/order5.dot @@ -1,64 +1,40 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc6_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc7_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc8_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc3_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc6_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc6_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "rsc7_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc7_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc8_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc8_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc6_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc7_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc8_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc2_stop_0 node1" -> "rsc1_stop_0 node1" [ style = dashed] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] -"rsc1_start_0 node1" -> "rsc2_start_0 node2" [ style = dashed] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] -"rsc4_stop_0 node1" -> "rsc3_stop_0 node1" [ style = dashed] -"probe_complete" -> "rsc3_start_0 node1" [ style = dashed] -"rsc3_stop_0 node1" -> "rsc3_start_0 node1" [ style = dashed] "probe_complete" -> "rsc4_start_0 node2" [ style = bold] -"rsc3_start_0 node1" -> "rsc4_start_0 node2" [ style = dashed] "rsc4_stop_0 node1" -> "rsc4_start_0 node2" [ style = bold] -"rsc6_stop_0 node2" -> "rsc5_stop_0 node2" [ style = dashed] "probe_complete" -> "rsc5_start_0 node1" [ style = bold] "rsc5_stop_0 node2" -> "rsc5_start_0 node1" [ style = bold] -"rsc5_start_0 node1" -> "rsc6_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc6_start_0 node2" [ style = dashed] -"rsc6_stop_0 node2" -> "rsc6_start_0 node2" [ style = dashed] -"rsc8_stop_0 node2" -> "rsc7_stop_0 node2" [ style = dashed] "probe_complete" -> "rsc7_start_0 node1" [ style = bold] "rsc7_stop_0 node2" -> "rsc7_start_0 node1" [ style = bold] -"rsc7_start_0 node1" -> "rsc8_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc8_start_0 node2" [ style = dashed] -"rsc8_stop_0 node2" -> "rsc8_start_0 node2" [ style = dashed] } diff --git a/crm/pengine/testcases/order6.dot b/crm/pengine/testcases/order6.dot index 2759b62f01..c514c3a419 100644 --- a/crm/pengine/testcases/order6.dot +++ b/crm/pengine/testcases/order6.dot @@ -1,64 +1,46 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc5_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc6_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc7_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc8_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc3_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc6_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc7_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc7_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc8_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc8_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc5_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc6_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc7_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc8_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"rsc2_stop_0 node1" -> "rsc1_stop_0 node1" [ style = dashed] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] -"rsc1_start_0 node1" -> "rsc2_start_0 node2" [ style = dashed] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] -"rsc4_stop_0 node1" -> "rsc3_stop_0 node1" [ style = dashed] -"probe_complete" -> "rsc3_start_0 node1" [ style = dashed] -"rsc3_stop_0 node1" -> "rsc3_start_0 node1" [ style = dashed] "probe_complete" -> "rsc4_start_0 node2" [ style = bold] -"rsc3_start_0 node1" -> "rsc4_start_0 node2" [ style = dashed] "rsc4_stop_0 node1" -> "rsc4_start_0 node2" [ style = bold] "rsc6_stop_0 node2" -> "rsc5_stop_0 node2" [ style = bold] "probe_complete" -> "rsc5_start_0 node1" [ style = bold] "rsc5_stop_0 node2" -> "rsc5_start_0 node1" [ style = bold] "probe_complete" -> "rsc6_start_0 node2" [ style = bold] "rsc5_start_0 node1" -> "rsc6_start_0 node2" [ style = bold] "rsc6_stop_0 node2" -> "rsc6_start_0 node2" [ style = bold] -"rsc8_stop_0 node2" -> "rsc7_stop_0 node2" [ style = dashed] "probe_complete" -> "rsc7_start_0 node1" [ style = bold] "rsc7_stop_0 node2" -> "rsc7_start_0 node1" [ style = bold] -"rsc7_start_0 node1" -> "rsc8_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc8_start_0 node2" [ style = dashed] -"rsc8_stop_0 node2" -> "rsc8_start_0 node2" [ style = dashed] } diff --git a/crm/pengine/testcases/order7.dot b/crm/pengine/testcases/order7.dot index be399fdcc8..0579555e2a 100644 --- a/crm/pengine/testcases/order7.dot +++ b/crm/pengine/testcases/order7.dot @@ -1,28 +1,23 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rscB_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rscC_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rscA_stop_0 node1" [ font_color=black style=filled fillcolor=purple ] "rscB_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rscC_start_0 node1" [ font_color=purple style=filled fillcolor=red ] "probe_complete node1" -> "probe_complete" [ style = bold] "rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rscB_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rscC_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node1" [ style = bold] -"rsc1_start_0 node1" -> "rsc2_start_0 node1" [ style = dashed] "probe_complete" -> "rsc3_start_0 node1" [ style = bold] -"rsc1_start_0 node1" -> "rsc3_start_0 node1" [ style = dashed] "probe_complete" -> "rscB_start_0 node1" [ style = bold] "probe_complete" -> "rscC_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/orphan-0.dot b/crm/pengine/testcases/orphan-0.dot index 588f2a52cd..210d3066a0 100644 --- a/crm/pengine/testcases/orphan-0.dot +++ b/crm/pengine/testcases/orphan-0.dot @@ -1,64 +1,40 @@ digraph "g" { size = "30,30" "rsc_c001n08_monitor_5000 c001n08" [ font_color=black style=filled fillcolor=purple ] -"DcIPaddr_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_6000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_stop_0 c001n08" [ font_color=black style=filled fillcolor=purple ] "rsc_c001n08_start_0 c001n08" [ font_color=black style=filled fillcolor=purple ] -"DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_6000 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] } diff --git a/crm/pengine/testcases/orphan-1.dot b/crm/pengine/testcases/orphan-1.dot index 28985a5fcf..7445f58c80 100644 --- a/crm/pengine/testcases/orphan-1.dot +++ b/crm/pengine/testcases/orphan-1.dot @@ -1,66 +1,40 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_cancel_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_cancel_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_6000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_stop_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"rsc_c001n02_cancel_5000 c001n02" -> "rsc_c001n02_stop_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n03_cancel_5000 c001n03" -> "rsc_c001n03_stop_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_6000 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/params-0.dot b/crm/pengine/testcases/params-0.dot index bb1d3cfbc2..d0adfaae7d 100644 --- a/crm/pengine/testcases/params-0.dot +++ b/crm/pengine/testcases/params-0.dot @@ -1,72 +1,42 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n08_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/params-1.dot b/crm/pengine/testcases/params-1.dot index fa6172c60d..8f1d514402 100644 --- a/crm/pengine/testcases/params-1.dot +++ b/crm/pengine/testcases/params-1.dot @@ -1,75 +1,51 @@ digraph "g" { size = "30,30" "rsc_c001n08_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n02" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_start_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_cancel_5000 c001n02" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_stop_0 c001n02" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_6000 c001n02" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] "DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = bold] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n08_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = bold] "DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = bold] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n02_cancel_5000 c001n02" -> "rsc_c001n02_stop_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_6000 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/probe-0.dot b/crm/pengine/testcases/probe-0.dot index 54d03f764e..703397b461 100644 --- a/crm/pengine/testcases/probe-0.dot +++ b/crm/pengine/testcases/probe-0.dot @@ -1,141 +1,36 @@ digraph "g" { size = "30,30" -"stonithclone:0_monitor_5000 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"stonithclone:1_monitor_5000 32c47" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete 32c48" [ style=bold color="green" fontcolor="black" ] "configstoreclone:0_monitor_0 32c48" [ style=bold color="green" fontcolor="black" ] "probe_complete 32c47" [ style=bold color="green" fontcolor="black" ] "configstoreclone:0_monitor_0 32c47" [ style=bold color="green" fontcolor="black" ] -"stonithclone:0_stop_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"stonithclone:0_start_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"stonithclone:1_stop_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"stonithclone:1_start_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"stonithcloneset_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"stonithcloneset_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"stonithcloneset_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"stonithcloneset_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestoreclone:0_stop_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:0_start_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_stop_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_start_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"imagestorecloneset_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_confirmed-pre_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_confirmed-post_notify_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestorecloneset_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] "configstoreclone:0_start_0 32c48" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_start_0 32c47" [ style=bold color="green" fontcolor="black" ] "configstorecloneset_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_running_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_confirmed-pre_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] "configstorecloneset_confirmed-post_notify_start_0" [ style=bold color="green" fontcolor="orange" ] -"configstorecloneset_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"configstorecloneset_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"configstorecloneset_pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"configstorecloneset_confirmed-pre_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"configstorecloneset_post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"configstorecloneset_confirmed-post_notify_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"imagestoreclone:0_pre_notify_start_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:0_post_notify_start_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:0_pre_notify_stop_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:0_post_notify_stop_0 32c48" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_pre_notify_start_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_post_notify_start_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_pre_notify_stop_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] -"imagestoreclone:1_post_notify_stop_0 32c47" [ style="dashed" color="blue" fontcolor="black" ] "configstoreclone:0_post_notify_start_0 32c48" [ style=bold color="green" fontcolor="black" ] "configstoreclone:1_post_notify_start_0 32c47" [ style=bold color="green" fontcolor="black" ] -"stonithclone:0_start_0 32c48" -> "stonithclone:0_monitor_5000 32c48" [ style = dashed] -"stonithclone:1_start_0 32c47" -> "stonithclone:1_monitor_5000 32c47" [ style = dashed] "probe_complete 32c48" -> "probe_complete" [ style = bold] "probe_complete 32c47" -> "probe_complete" [ style = bold] "configstoreclone:0_monitor_0 32c48" -> "probe_complete 32c48" [ style = bold] "configstoreclone:0_monitor_0 32c47" -> "probe_complete 32c47" [ style = bold] -"stonithcloneset_stop_0" -> "stonithclone:0_stop_0 32c48" [ style = dashed] -"stonithclone:0_stop_0 32c48" -> "stonithclone:0_start_0 32c48" [ style = dashed] -"stonithcloneset_start_0" -> "stonithclone:0_start_0 32c48" [ style = dashed] -"stonithcloneset_stop_0" -> "stonithclone:1_stop_0 32c47" [ style = dashed] -"stonithclone:1_stop_0 32c47" -> "stonithclone:1_start_0 32c47" [ style = dashed] -"stonithcloneset_start_0" -> "stonithclone:1_start_0 32c47" [ style = dashed] -"stonithcloneset_stop_0" -> "stonithcloneset_start_0" [ style = dashed] -"stonithcloneset_stopped_0" -> "stonithcloneset_start_0" [ style = dashed] -"stonithcloneset_start_0" -> "stonithcloneset_running_0" [ style = dashed] -"stonithclone:0_start_0 32c48" -> "stonithcloneset_running_0" [ style = dashed] -"stonithclone:1_start_0 32c47" -> "stonithcloneset_running_0" [ style = dashed] -"stonithcloneset_stop_0" -> "stonithcloneset_stopped_0" [ style = dashed] -"stonithclone:0_stop_0 32c48" -> "stonithcloneset_stopped_0" [ style = dashed] -"stonithclone:1_stop_0 32c47" -> "stonithcloneset_stopped_0" [ style = dashed] -"imagestorecloneset_stop_0" -> "imagestoreclone:0_stop_0 32c48" [ style = dashed] -"imagestoreclone:0_stop_0 32c48" -> "imagestoreclone:0_start_0 32c48" [ style = dashed] -"imagestorecloneset_start_0" -> "imagestoreclone:0_start_0 32c48" [ style = dashed] -"imagestorecloneset_stop_0" -> "imagestoreclone:1_stop_0 32c47" [ style = dashed] -"imagestoreclone:1_stop_0 32c47" -> "imagestoreclone:1_start_0 32c47" [ style = dashed] -"imagestorecloneset_start_0" -> "imagestoreclone:1_start_0 32c47" [ style = dashed] -"imagestorecloneset_stop_0" -> "imagestorecloneset_start_0" [ style = dashed] -"imagestorecloneset_stopped_0" -> "imagestorecloneset_start_0" [ style = dashed] -"imagestorecloneset_confirmed-pre_notify_start_0" -> "imagestorecloneset_start_0" [ style = dashed] -"imagestorecloneset_confirmed-post_notify_stop_0" -> "imagestorecloneset_start_0" [ style = dashed] -"imagestorecloneset_start_0" -> "imagestorecloneset_running_0" [ style = dashed] -"imagestoreclone:0_start_0 32c48" -> "imagestorecloneset_running_0" [ style = dashed] -"imagestoreclone:1_start_0 32c47" -> "imagestorecloneset_running_0" [ style = dashed] -"imagestorecloneset_confirmed-post_notify_stop_0" -> "imagestorecloneset_pre_notify_start_0" [ style = dashed] -"imagestorecloneset_pre_notify_start_0" -> "imagestorecloneset_confirmed-pre_notify_start_0" [ style = dashed] -"imagestoreclone:0_pre_notify_start_0 32c48" -> "imagestorecloneset_confirmed-pre_notify_start_0" [ style = dashed] -"imagestoreclone:1_pre_notify_start_0 32c47" -> "imagestorecloneset_confirmed-pre_notify_start_0" [ style = dashed] -"imagestorecloneset_running_0" -> "imagestorecloneset_post_notify_start_0" [ style = dashed] -"imagestorecloneset_post_notify_start_0" -> "imagestorecloneset_confirmed-post_notify_start_0" [ style = dashed] -"imagestoreclone:0_post_notify_start_0 32c48" -> "imagestorecloneset_confirmed-post_notify_start_0" [ style = dashed] -"imagestoreclone:1_post_notify_start_0 32c47" -> "imagestorecloneset_confirmed-post_notify_start_0" [ style = dashed] -"imagestorecloneset_confirmed-pre_notify_stop_0" -> "imagestorecloneset_stop_0" [ style = dashed] -"imagestorecloneset_stop_0" -> "imagestorecloneset_stopped_0" [ style = dashed] -"imagestoreclone:0_stop_0 32c48" -> "imagestorecloneset_stopped_0" [ style = dashed] -"imagestoreclone:1_stop_0 32c47" -> "imagestorecloneset_stopped_0" [ style = dashed] -"imagestorecloneset_pre_notify_stop_0" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = dashed] -"imagestoreclone:0_pre_notify_stop_0 32c48" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = dashed] -"imagestoreclone:1_pre_notify_stop_0 32c47" -> "imagestorecloneset_confirmed-pre_notify_stop_0" [ style = dashed] -"imagestorecloneset_stopped_0" -> "imagestorecloneset_post_notify_stop_0" [ style = dashed] -"imagestorecloneset_post_notify_stop_0" -> "imagestorecloneset_confirmed-post_notify_stop_0" [ style = dashed] -"imagestoreclone:0_post_notify_stop_0 32c48" -> "imagestorecloneset_confirmed-post_notify_stop_0" [ style = dashed] -"imagestoreclone:1_post_notify_stop_0 32c47" -> "imagestorecloneset_confirmed-post_notify_stop_0" [ style = dashed] "configstorecloneset_start_0" -> "configstoreclone:0_start_0 32c48" [ style = bold] "configstorecloneset_start_0" -> "configstoreclone:1_start_0 32c47" [ style = bold] "probe_complete" -> "configstorecloneset_start_0" [ style = bold] "configstorecloneset_confirmed-pre_notify_start_0" -> "configstorecloneset_start_0" [ style = bold] -"configstorecloneset_stop_0" -> "configstorecloneset_start_0" [ style = dashed] -"configstorecloneset_stopped_0" -> "configstorecloneset_start_0" [ style = dashed] -"configstorecloneset_confirmed-post_notify_stop_0" -> "configstorecloneset_start_0" [ style = dashed] "configstoreclone:0_start_0 32c48" -> "configstorecloneset_running_0" [ style = bold] "configstoreclone:1_start_0 32c47" -> "configstorecloneset_running_0" [ style = bold] "configstorecloneset_start_0" -> "configstorecloneset_running_0" [ style = bold] -"configstorecloneset_confirmed-post_notify_stop_0" -> "configstorecloneset_pre_notify_start_0" [ style = dashed] "configstorecloneset_pre_notify_start_0" -> "configstorecloneset_confirmed-pre_notify_start_0" [ style = bold] "configstorecloneset_running_0" -> "configstorecloneset_post_notify_start_0" [ style = bold] "configstorecloneset_post_notify_start_0" -> "configstorecloneset_confirmed-post_notify_start_0" [ style = bold] "configstoreclone:0_post_notify_start_0 32c48" -> "configstorecloneset_confirmed-post_notify_start_0" [ style = bold] "configstoreclone:1_post_notify_start_0 32c47" -> "configstorecloneset_confirmed-post_notify_start_0" [ style = bold] -"configstorecloneset_confirmed-pre_notify_stop_0" -> "configstorecloneset_stop_0" [ style = dashed] -"configstorecloneset_stop_0" -> "configstorecloneset_stopped_0" [ style = dashed] -"configstorecloneset_pre_notify_stop_0" -> "configstorecloneset_confirmed-pre_notify_stop_0" [ style = dashed] -"configstorecloneset_stopped_0" -> "configstorecloneset_post_notify_stop_0" [ style = dashed] -"configstorecloneset_post_notify_stop_0" -> "configstorecloneset_confirmed-post_notify_stop_0" [ style = dashed] -"imagestorecloneset_pre_notify_start_0" -> "imagestoreclone:0_pre_notify_start_0 32c48" [ style = dashed] -"imagestorecloneset_post_notify_start_0" -> "imagestoreclone:0_post_notify_start_0 32c48" [ style = dashed] -"imagestorecloneset_pre_notify_stop_0" -> "imagestoreclone:0_pre_notify_stop_0 32c48" [ style = dashed] -"imagestorecloneset_post_notify_stop_0" -> "imagestoreclone:0_post_notify_stop_0 32c48" [ style = dashed] -"imagestorecloneset_pre_notify_start_0" -> "imagestoreclone:1_pre_notify_start_0 32c47" [ style = dashed] -"imagestorecloneset_post_notify_start_0" -> "imagestoreclone:1_post_notify_start_0 32c47" [ style = dashed] -"imagestorecloneset_pre_notify_stop_0" -> "imagestoreclone:1_pre_notify_stop_0 32c47" [ style = dashed] -"imagestorecloneset_post_notify_stop_0" -> "imagestoreclone:1_post_notify_stop_0 32c47" [ style = dashed] "configstorecloneset_post_notify_start_0" -> "configstoreclone:0_post_notify_start_0 32c48" [ style = bold] "configstorecloneset_post_notify_start_0" -> "configstoreclone:1_post_notify_start_0 32c47" [ style = bold] } diff --git a/crm/pengine/testcases/probe-1.dot b/crm/pengine/testcases/probe-1.dot index 5b138413e0..96561f5711 100644 --- a/crm/pengine/testcases/probe-1.dot +++ b/crm/pengine/testcases/probe-1.dot @@ -1,14 +1,12 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n05" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n05" [ style="dashed" color="blue" fontcolor="black" ] "DcIPaddr_start_0 c001n05" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n05" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n05" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n05" -> "probe_complete c001n05" [ style = bold] "probe_complete" -> "DcIPaddr_start_0 c001n05" [ style = bold] -"DcIPaddr_stop_0 c001n05" -> "DcIPaddr_start_0 c001n05" [ style = dashed] "DcIPaddr_start_0 c001n05" -> "DcIPaddr_monitor_5000 c001n05" [ style = bold] } diff --git a/crm/pengine/testcases/quorum-1.dot b/crm/pengine/testcases/quorum-1.dot index 7f9b1eb048..f7ac029f6a 100644 --- a/crm/pengine/testcases/quorum-1.dot +++ b/crm/pengine/testcases/quorum-1.dot @@ -1,26 +1,22 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] "probe_complete" -> "rsc3_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/quorum-2.dot b/crm/pengine/testcases/quorum-2.dot index ca1a46ef25..42184d1ca3 100644 --- a/crm/pengine/testcases/quorum-2.dot +++ b/crm/pengine/testcases/quorum-2.dot @@ -1,26 +1,20 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] -"probe_complete" -> "rsc3_start_0 node1" [ style = dashed] } diff --git a/crm/pengine/testcases/quorum-3.dot b/crm/pengine/testcases/quorum-3.dot index f7f9601c82..956490d015 100644 --- a/crm/pengine/testcases/quorum-3.dot +++ b/crm/pengine/testcases/quorum-3.dot @@ -1,26 +1,21 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ font_color=purple style=filled fillcolor=red ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] -"probe_complete" -> "rsc3_start_0 node1" [ style = dashed] } diff --git a/crm/pengine/testcases/quorum-5.dot b/crm/pengine/testcases/quorum-5.dot index d8ee9ec42e..07f0afe8d8 100644 --- a/crm/pengine/testcases/quorum-5.dot +++ b/crm/pengine/testcases/quorum-5.dot @@ -1,28 +1,23 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_1_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_2_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_1_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_1_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_2_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing_2_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] "group1_start_0" [ style=bold color="green" fontcolor="orange" ] "group1_running_0" [ style=bold color="green" fontcolor="orange" ] -"group1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete hadev2" -> "probe_complete" [ style = bold] "child_DoFencing_1_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing_2_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "group1_start_0" -> "child_DoFencing_1_start_0 hadev2" [ style = bold] "child_DoFencing_1_start_0 hadev2" -> "child_DoFencing_1_monitor_5000 hadev2" [ style = bold] "child_DoFencing_1_start_0 hadev2" -> "child_DoFencing_2_start_0 hadev2" [ style = bold] "child_DoFencing_2_start_0 hadev2" -> "child_DoFencing_2_monitor_5000 hadev2" [ style = bold] "probe_complete" -> "group1_start_0" [ style = bold] -"group1_stop_0" -> "group1_start_0" [ style = dashed] -"group1_stopped_0" -> "group1_start_0" [ style = dashed] "child_DoFencing_2_start_0 hadev2" -> "group1_running_0" [ style = bold] "group1_start_0" -> "group1_running_0" [ style = bold] -"group1_stop_0" -> "group1_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/quorum-6.dot b/crm/pengine/testcases/quorum-6.dot index 3f27808196..1a0898acb9 100644 --- a/crm/pengine/testcases/quorum-6.dot +++ b/crm/pengine/testcases/quorum-6.dot @@ -1,36 +1,31 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:4_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:5_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:6_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:7_monitor_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 hadev2" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_5000 hadev2" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete hadev2" -> "probe_complete" [ style = bold] "child_DoFencing:0_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:1_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:2_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:3_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:4_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:5_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:6_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "child_DoFencing:7_monitor_0 hadev2" -> "probe_complete hadev2" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:0_start_0 hadev2" [ style = bold] "child_DoFencing:0_start_0 hadev2" -> "child_DoFencing:0_monitor_5000 hadev2" [ style = bold] "probe_complete" -> "DoFencing_start_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] "child_DoFencing:0_start_0 hadev2" -> "DoFencing_running_0" [ style = bold] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-node-11.dot b/crm/pengine/testcases/rec-node-11.dot index a2416a1ac0..efe637f397 100644 --- a/crm/pengine/testcases/rec-node-11.dot +++ b/crm/pengine/testcases/rec-node-11.dot @@ -1,39 +1,31 @@ digraph "g" { size = "30,30" "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_stop_0 node1" [ style=bold color="green" fontcolor="orange" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "group1_start_0" [ style=bold color="green" fontcolor="orange" ] "group1_running_0" [ style=bold color="green" fontcolor="orange" ] -"group1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc3_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "stonith node1" [ style=bold color="green" fontcolor="black" ] "rsc2_stop_0 node1" -> "rsc1_stop_0 node1" [ style = bold] "stonith node1" -> "rsc1_stop_0 node1" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_stop_0 node1" -> "rsc1_start_0 node2" [ style = bold] "group1_start_0" -> "rsc1_start_0 node2" [ style = bold] -"group1_stop_0" -> "rsc2_stop_0 node1" [ style = dashed] "stonith node1" -> "rsc2_stop_0 node1" [ style = bold] "rsc1_start_0 node2" -> "rsc2_start_0 node2" [ style = bold] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] "probe_complete" -> "group1_start_0" [ style = bold] -"group1_stop_0" -> "group1_start_0" [ style = dashed] -"group1_stopped_0" -> "group1_start_0" [ style = dashed] "rsc3_start_0 node2" -> "group1_start_0" [ style = bold] "rsc2_start_0 node2" -> "group1_running_0" [ style = bold] "group1_start_0" -> "group1_running_0" [ style = bold] -"group1_stop_0" -> "group1_stopped_0" [ style = dashed] -"rsc1_stop_0 node1" -> "group1_stopped_0" [ style = dashed] -"group1_stopped_0" -> "rsc3_stop_0 node2" [ style = dashed] "rsc3_stop_0 node2" -> "rsc3_start_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/rec-node-12.dot b/crm/pengine/testcases/rec-node-12.dot index 64fd5b2244..b8f6e7cc89 100644 --- a/crm/pengine/testcases/rec-node-12.dot +++ b/crm/pengine/testcases/rec-node-12.dot @@ -1,110 +1,105 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_start_0 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:0_monitor_5000 c001n08" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_start_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_start_0 c001n01" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_5000 c001n01" [ style=bold color="green" fontcolor="black" ] "DoFencing_start_0" [ style=bold color="green" fontcolor="orange" ] "DoFencing_running_0" [ style=bold color="green" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "stonith c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n08_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:0_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:1_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:2_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "child_DoFencing:3_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n03_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:0_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n01_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:0_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:1_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:2_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "child_DoFencing:3_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "probe_complete" -> "DcIPaddr_start_0 c001n08" [ style = bold] "DcIPaddr_start_0 c001n08" -> "DcIPaddr_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = bold] "rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = bold] "probe_complete" -> "rsc_c001n02_start_0 c001n03" [ style = bold] "rsc_c001n02_start_0 c001n03" -> "rsc_c001n02_monitor_5000 c001n03" [ style = bold] "probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = bold] "rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = bold] "probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = bold] "rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n08" [ style = bold] "child_DoFencing:0_start_0 c001n08" -> "child_DoFencing:0_monitor_5000 c001n08" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:1_start_0 c001n03" [ style = bold] "child_DoFencing:1_start_0 c001n03" -> "child_DoFencing:1_monitor_5000 c001n03" [ style = bold] "DoFencing_start_0" -> "child_DoFencing:2_start_0 c001n01" [ style = bold] "child_DoFencing:2_start_0 c001n01" -> "child_DoFencing:2_monitor_5000 c001n01" [ style = bold] "probe_complete" -> "DoFencing_start_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] "child_DoFencing:0_start_0 c001n08" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:1_start_0 c001n03" -> "DoFencing_running_0" [ style = bold] "child_DoFencing:2_start_0 c001n01" -> "DoFencing_running_0" [ style = bold] "DoFencing_start_0" -> "DoFencing_running_0" [ style = bold] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] "DoFencing_running_0" -> "stonith c001n02" [ style = bold] } diff --git a/crm/pengine/testcases/rec-node-13.dot b/crm/pengine/testcases/rec-node-13.dot index 9e25086c79..74bd93a0c9 100644 --- a/crm/pengine/testcases/rec-node-13.dot +++ b/crm/pengine/testcases/rec-node-13.dot @@ -1,190 +1,13 @@ digraph "g" { size = "30,30" -"ocf_msdummy:6_monitor_5000 c001n04" [ style="dashed" color="blue" fontcolor="black" ] "ocf_msdummy:6_stop_0 c001n04" [ style=bold color="green" fontcolor="orange" ] -"ocf_192.168.100.181_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_monitor_20000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_monitor_6000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:9_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:11_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_monitor_5000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_monitor_20000 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:8_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:10_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_monitor_5000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_monitor_20000 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.181_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.181_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"heartbeat_192.168.100.182_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_192.168.100.183_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"lsb_dummy_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"lsb_dummy_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n05_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n04_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n07_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n06_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:3_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:4_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:5_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"ocf_msdummy:0_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:0_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:10_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:10_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:11_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:11_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:4_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:8_stop_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:8_start_0 c001n06" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:9_stop_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"ocf_msdummy:9_start_0 c001n07" [ style="dashed" color="blue" fontcolor="black" ] -"master_rsc_1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_stop_0" [ style=bold color="green" fontcolor="orange" ] "master_rsc_1_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_promote_0" [ style="dashed" color="blue" fontcolor="orange" ] -"master_rsc_1_promoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "master_rsc_1_demote_0" [ style=bold color="green" fontcolor="orange" ] -"master_rsc_1_demoted_0" [ style="dashed" color="blue" fontcolor="orange" ] "stonith c001n04" [ style=bold color="green" fontcolor="black" ] "master_rsc_1_stop_0" -> "ocf_msdummy:6_stop_0 c001n04" [ style = bold] "stonith c001n04" -> "ocf_msdummy:6_stop_0 c001n04" [ style = bold] -"ocf_192.168.100.181_start_0 c001n02" -> "ocf_192.168.100.181_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:4_start_0 c001n02" -> "ocf_msdummy:4_monitor_5000 c001n02" [ style = dashed] -"ocf_192.168.100.183_start_0 c001n02" -> "ocf_192.168.100.183_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "child_DoFencing:3_monitor_20000 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_start_0 c001n02" -> "heartbeat_192.168.100.182_monitor_5000 c001n02" [ style = dashed] -"ocf_msdummy:0_start_0 c001n02" -> "ocf_msdummy:0_monitor_6000 c001n02" [ style = dashed] -"rsc_c001n04_start_0 c001n07" -> "rsc_c001n04_monitor_5000 c001n07" [ style = dashed] -"ocf_msdummy:9_start_0 c001n07" -> "ocf_msdummy:9_monitor_5000 c001n07" [ style = dashed] -"rsc_c001n05_start_0 c001n07" -> "rsc_c001n05_monitor_5000 c001n07" [ style = dashed] -"ocf_msdummy:11_start_0 c001n07" -> "ocf_msdummy:11_monitor_5000 c001n07" [ style = dashed] -"rsc_c001n07_start_0 c001n07" -> "rsc_c001n07_monitor_5000 c001n07" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "child_DoFencing:5_monitor_20000 c001n07" [ style = dashed] -"lsb_dummy_start_0 c001n06" -> "lsb_dummy_monitor_5000 c001n06" [ style = dashed] -"rsc_c001n03_start_0 c001n06" -> "rsc_c001n03_monitor_5000 c001n06" [ style = dashed] -"ocf_msdummy:8_start_0 c001n06" -> "ocf_msdummy:8_monitor_5000 c001n06" [ style = dashed] -"ocf_msdummy:10_start_0 c001n06" -> "ocf_msdummy:10_monitor_5000 c001n06" [ style = dashed] -"rsc_c001n06_start_0 c001n06" -> "rsc_c001n06_monitor_5000 c001n06" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "child_DoFencing:4_monitor_20000 c001n06" [ style = dashed] -"probe_complete c001n02" -> "probe_complete" [ style = dashed] -"probe_complete c001n06" -> "probe_complete" [ style = dashed] -"probe_complete c001n07" -> "probe_complete" [ style = dashed] -"heartbeat_192.168.100.182_stop_0 c001n02" -> "ocf_192.168.100.181_stop_0 c001n02" [ style = dashed] -"ocf_192.168.100.181_stop_0 c001n02" -> "ocf_192.168.100.181_start_0 c001n02" [ style = dashed] -"group-1_start_0" -> "ocf_192.168.100.181_start_0 c001n02" [ style = dashed] -"ocf_192.168.100.183_stop_0 c001n02" -> "heartbeat_192.168.100.182_stop_0 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_stop_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = dashed] -"ocf_192.168.100.181_start_0 c001n02" -> "heartbeat_192.168.100.182_start_0 c001n02" [ style = dashed] -"group-1_stop_0" -> "ocf_192.168.100.183_stop_0 c001n02" [ style = dashed] -"ocf_192.168.100.183_stop_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = dashed] -"heartbeat_192.168.100.182_start_0 c001n02" -> "ocf_192.168.100.183_start_0 c001n02" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"ocf_192.168.100.183_start_0 c001n02" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"ocf_192.168.100.181_stop_0 c001n02" -> "group-1_stopped_0" [ style = dashed] -"lsb_dummy_stop_0 c001n06" -> "lsb_dummy_start_0 c001n06" [ style = dashed] -"rsc_c001n05_stop_0 c001n07" -> "rsc_c001n05_start_0 c001n07" [ style = dashed] -"rsc_c001n03_stop_0 c001n06" -> "rsc_c001n03_start_0 c001n06" [ style = dashed] -"rsc_c001n04_stop_0 c001n07" -> "rsc_c001n04_start_0 c001n07" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n07_stop_0 c001n07" -> "rsc_c001n07_start_0 c001n07" [ style = dashed] -"rsc_c001n06_stop_0 c001n06" -> "rsc_c001n06_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:3_stop_0 c001n02" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:3_start_0 c001n02" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:4_stop_0 c001n06" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:4_start_0 c001n06" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:5_stop_0 c001n07" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:5_start_0 c001n07" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:3_start_0 c001n02" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:4_start_0 c001n06" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:5_start_0 c001n07" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:3_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:4_stop_0 c001n06" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:5_stop_0 c001n07" -> "DoFencing_stopped_0" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:0_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:0_stop_0 c001n02" -> "ocf_msdummy:0_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:0_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:10_stop_0 c001n06" [ style = dashed] -"ocf_msdummy:10_stop_0 c001n06" -> "ocf_msdummy:10_start_0 c001n06" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:10_start_0 c001n06" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:11_stop_0 c001n07" [ style = dashed] -"ocf_msdummy:11_stop_0 c001n07" -> "ocf_msdummy:11_start_0 c001n07" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:11_start_0 c001n07" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:4_stop_0 c001n02" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n02" -> "ocf_msdummy:4_start_0 c001n02" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:4_start_0 c001n02" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:8_stop_0 c001n06" [ style = dashed] -"ocf_msdummy:8_stop_0 c001n06" -> "ocf_msdummy:8_start_0 c001n06" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:8_start_0 c001n06" [ style = dashed] -"master_rsc_1_stop_0" -> "ocf_msdummy:9_stop_0 c001n07" [ style = dashed] -"ocf_msdummy:9_stop_0 c001n07" -> "ocf_msdummy:9_start_0 c001n07" [ style = dashed] -"master_rsc_1_start_0" -> "ocf_msdummy:9_start_0 c001n07" [ style = dashed] -"master_rsc_1_stop_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_stopped_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_demoted_0" -> "master_rsc_1_start_0" [ style = dashed] -"master_rsc_1_start_0" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:0_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:10_start_0 c001n06" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:11_start_0 c001n07" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:4_start_0 c001n02" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:8_start_0 c001n06" -> "master_rsc_1_running_0" [ style = dashed] -"ocf_msdummy:9_start_0 c001n07" -> "master_rsc_1_running_0" [ style = dashed] "master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = bold] -"master_rsc_1_demoted_0" -> "master_rsc_1_stop_0" [ style = dashed] "ocf_msdummy:6_stop_0 c001n04" -> "master_rsc_1_stopped_0" [ style = bold] -"ocf_msdummy:0_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:10_stop_0 c001n06" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:11_stop_0 c001n07" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:4_stop_0 c001n02" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:8_stop_0 c001n06" -> "master_rsc_1_stopped_0" [ style = dashed] -"ocf_msdummy:9_stop_0 c001n07" -> "master_rsc_1_stopped_0" [ style = dashed] "master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold] -"master_rsc_1_start_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_running_0" -> "master_rsc_1_promote_0" [ style = dashed] -"master_rsc_1_demote_0" -> "master_rsc_1_demoted_0" [ style = dashed] -"DoFencing_running_0" -> "stonith c001n04" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-node-2.dot b/crm/pengine/testcases/rec-node-2.dot index 36788e8c4d..ba3e944009 100644 --- a/crm/pengine/testcases/rec-node-2.dot +++ b/crm/pengine/testcases/rec-node-2.dot @@ -1,53 +1,43 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc5_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc6_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] "group1_start_0" [ style=bold color="green" fontcolor="orange" ] "group1_running_0" [ style=bold color="green" fontcolor="orange" ] -"group1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "rsc5_start_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc6_start_0 node2" [ style=bold color="green" fontcolor="black" ] "group2_start_0" [ style=bold color="green" fontcolor="orange" ] "group2_running_0" [ style=bold color="green" fontcolor="orange" ] -"group2_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group2_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "stonith node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc5_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc6_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc1_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] "stonith node1" -> "rsc2_start_0 node2" [ style = bold] "group1_start_0" -> "rsc3_start_0 node2" [ style = bold] "rsc3_start_0 node2" -> "rsc4_start_0 node2" [ style = bold] "probe_complete" -> "group1_start_0" [ style = bold] -"group1_stop_0" -> "group1_start_0" [ style = dashed] -"group1_stopped_0" -> "group1_start_0" [ style = dashed] "rsc4_start_0 node2" -> "group1_running_0" [ style = bold] "group1_start_0" -> "group1_running_0" [ style = bold] -"group1_stop_0" -> "group1_stopped_0" [ style = dashed] "group2_start_0" -> "rsc5_start_0 node2" [ style = bold] "stonith node1" -> "rsc5_start_0 node2" [ style = bold] "rsc5_start_0 node2" -> "rsc6_start_0 node2" [ style = bold] "probe_complete" -> "group2_start_0" [ style = bold] -"group2_stop_0" -> "group2_start_0" [ style = dashed] -"group2_stopped_0" -> "group2_start_0" [ style = dashed] "rsc6_start_0 node2" -> "group2_running_0" [ style = bold] "group2_start_0" -> "group2_running_0" [ style = bold] -"group2_stop_0" -> "group2_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-node-8.dot b/crm/pengine/testcases/rec-node-8.dot index 82e87ea284..71c19d820f 100644 --- a/crm/pengine/testcases/rec-node-8.dot +++ b/crm/pengine/testcases/rec-node-8.dot @@ -1,22 +1,20 @@ digraph "g" { size = "30,30" "rsc1_stop_0 node1" [ font_color=purple style=filled fillcolor=red ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node2" [ font_color=purple style=filled fillcolor=red ] "rsc2_stop_0 node1" [ font_color=purple style=filled fillcolor=red ] "rsc2_start_0 node2" [ font_color=purple style=filled fillcolor=red ] -"rsc3_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc1_start_0 node2" [ style = bold] "rsc1_stop_0 node1" -> "rsc1_start_0 node2" [ style = bold] "probe_complete" -> "rsc2_start_0 node2" [ style = bold] "rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold] -"probe_complete" -> "rsc3_start_0 node2" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-node-9.dot b/crm/pengine/testcases/rec-node-9.dot index 5c70becb26..a3c1194138 100644 --- a/crm/pengine/testcases/rec-node-9.dot +++ b/crm/pengine/testcases/rec-node-9.dot @@ -1,14 +1,10 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc2_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc2_start_0 node2" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-rsc-0.dot b/crm/pengine/testcases/rec-rsc-0.dot index 7160e535fb..860574c3f6 100644 --- a/crm/pengine/testcases/rec-rsc-0.dot +++ b/crm/pengine/testcases/rec-rsc-0.dot @@ -1,10 +1,7 @@ digraph "g" { size = "30,30" "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] -"probe_complete node2" -> "probe_complete" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-rsc-2.dot b/crm/pengine/testcases/rec-rsc-2.dot index a1949ff0ac..6ebb85ab5f 100644 --- a/crm/pengine/testcases/rec-rsc-2.dot +++ b/crm/pengine/testcases/rec-rsc-2.dot @@ -1,17 +1,16 @@ digraph "g" { size = "30,30" -"rsc1_monitor_1 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_cancel_1 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_cancel_1 node1" -> "rsc1_stop_0 node1" [ style = bold] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = bold] "probe_complete" -> "rsc1_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/rec-rsc-4.dot b/crm/pengine/testcases/rec-rsc-4.dot index 61c636bf81..2d21a2d2e7 100644 --- a/crm/pengine/testcases/rec-rsc-4.dot +++ b/crm/pengine/testcases/rec-rsc-4.dot @@ -1,14 +1,12 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node2" [ font_color=black style=filled fillcolor=purple ] "rsc1_start_0 node1" [ font_color=black style=filled fillcolor=purple ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node2" -> "rsc1_start_0 node1" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-rsc-6.dot b/crm/pengine/testcases/rec-rsc-6.dot index 30a5791098..53c24f12e2 100644 --- a/crm/pengine/testcases/rec-rsc-6.dot +++ b/crm/pengine/testcases/rec-rsc-6.dot @@ -1,13 +1,10 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] -"probe_complete node2" -> "probe_complete" [ style = dashed] "rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = bold] "rsc1_stop_0 node2" -> "rsc1_start_0 node1" [ style = bold] } diff --git a/crm/pengine/testcases/rec-rsc-7.dot b/crm/pengine/testcases/rec-rsc-7.dot index 51a0981eb2..72b489d4c9 100644 --- a/crm/pengine/testcases/rec-rsc-7.dot +++ b/crm/pengine/testcases/rec-rsc-7.dot @@ -1,10 +1,7 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node2" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] -"probe_complete node2" -> "probe_complete" [ style = dashed] } diff --git a/crm/pengine/testcases/rec-rsc-8.dot b/crm/pengine/testcases/rec-rsc-8.dot index 93dc973f7e..ac644fffc9 100644 --- a/crm/pengine/testcases/rec-rsc-8.dot +++ b/crm/pengine/testcases/rec-rsc-8.dot @@ -1,8 +1,5 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] -"probe_complete node2" -> "probe_complete" [ style = dashed] } diff --git a/crm/pengine/testcases/rsc_dep2.dot b/crm/pengine/testcases/rsc_dep2.dot index 356a8ac2ee..ae938ca0fa 100644 --- a/crm/pengine/testcases/rsc_dep2.dot +++ b/crm/pengine/testcases/rsc_dep2.dot @@ -1,32 +1,24 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc4_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc4_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc2_start_0 node1" [ style = bold] -"probe_complete" -> "rsc4_start_0 node2" [ style = dashed] -"rsc4_stop_0 node2" -> "rsc4_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc3_start_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/rsc_dep4.dot b/crm/pengine/testcases/rsc_dep4.dot index 86c7a0d7e1..7377b52339 100644 --- a/crm/pengine/testcases/rsc_dep4.dot +++ b/crm/pengine/testcases/rsc_dep4.dot @@ -1,32 +1,28 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_start_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc2_start_0 node1" [ style = bold] "probe_complete" -> "rsc4_start_0 node2" [ style = bold] "rsc4_stop_0 node1" -> "rsc4_start_0 node2" [ style = bold] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc3_start_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/rsc_dep8.dot b/crm/pengine/testcases/rsc_dep8.dot index 356a8ac2ee..ae938ca0fa 100644 --- a/crm/pengine/testcases/rsc_dep8.dot +++ b/crm/pengine/testcases/rsc_dep8.dot @@ -1,32 +1,24 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"rsc4_stop_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc4_start_0 node2" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] "rsc3_start_0 node2" [ style=bold color="green" fontcolor="black" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc4_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc3_monitor_0 node1" -> "probe_complete node1" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "probe_complete" -> "rsc2_start_0 node1" [ style = bold] -"probe_complete" -> "rsc4_start_0 node2" [ style = dashed] -"rsc4_stop_0 node2" -> "rsc4_start_0 node2" [ style = dashed] -"probe_complete" -> "rsc1_start_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] "probe_complete" -> "rsc3_start_0 node2" [ style = bold] } diff --git a/crm/pengine/testcases/simple3.dot b/crm/pengine/testcases/simple3.dot index 80a8ecc543..2910b6bf3c 100644 --- a/crm/pengine/testcases/simple3.dot +++ b/crm/pengine/testcases/simple3.dot @@ -1,7 +1,5 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] } diff --git a/crm/pengine/testcases/simple4.dot b/crm/pengine/testcases/simple4.dot index efb91866cb..b22b4fffa1 100644 --- a/crm/pengine/testcases/simple4.dot +++ b/crm/pengine/testcases/simple4.dot @@ -1,7 +1,5 @@ digraph "g" { size = "30,30" "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] } diff --git a/crm/pengine/testcases/simple7.dot b/crm/pengine/testcases/simple7.dot index 3822801f3d..965c80ce89 100644 --- a/crm/pengine/testcases/simple7.dot +++ b/crm/pengine/testcases/simple7.dot @@ -1,9 +1,7 @@ digraph "g" { size = "30,30" -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "rsc1_stop_0 node1" [ style=bold color="green" fontcolor="black" ] "do_shutdown node1" [ style=bold color="green" fontcolor="black" ] -"probe_complete node1" -> "probe_complete" [ style = dashed] "rsc1_stop_0 node1" -> "do_shutdown node1" [ style = bold] } diff --git a/crm/pengine/testcases/simple8.dot b/crm/pengine/testcases/simple8.dot index 677f0e1f65..de2b5214ea 100644 --- a/crm/pengine/testcases/simple8.dot +++ b/crm/pengine/testcases/simple8.dot @@ -1,56 +1,16 @@ digraph "g" { size = "30,30" "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete node1" [ style=bold color="green" fontcolor="black" ] "probe_complete node2" [ style=bold color="green" fontcolor="black" ] "rsc3_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc4_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc1_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] "rsc2_monitor_0 node2" [ style=bold color="green" fontcolor="black" ] -"rsc3_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc3_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc4_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc4_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc1_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"foo_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"foo_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"foo_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"foo_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc2_stop_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"rsc2_start_0 node1" [ style="dashed" color="blue" fontcolor="black" ] -"bar_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"bar_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"bar_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"bar_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "probe_complete node1" -> "probe_complete" [ style = bold] "probe_complete node2" -> "probe_complete" [ style = bold] "rsc3_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc4_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc1_monitor_0 node2" -> "probe_complete node2" [ style = bold] "rsc2_monitor_0 node2" -> "probe_complete node2" [ style = bold] -"probe_complete" -> "rsc3_start_0 node1" [ style = dashed] -"rsc3_stop_0 node1" -> "rsc3_start_0 node1" [ style = dashed] -"probe_complete" -> "rsc4_start_0 node1" [ style = dashed] -"rsc4_stop_0 node1" -> "rsc4_start_0 node1" [ style = dashed] -"foo_stop_0" -> "rsc1_stop_0 node1" [ style = dashed] -"rsc1_stop_0 node1" -> "rsc1_start_0 node1" [ style = dashed] -"foo_start_0" -> "rsc1_start_0 node1" [ style = dashed] -"probe_complete" -> "foo_start_0" [ style = dashed] -"foo_stop_0" -> "foo_start_0" [ style = dashed] -"foo_stopped_0" -> "foo_start_0" [ style = dashed] -"foo_start_0" -> "foo_running_0" [ style = dashed] -"rsc1_start_0 node1" -> "foo_running_0" [ style = dashed] -"foo_stop_0" -> "foo_stopped_0" [ style = dashed] -"rsc1_stop_0 node1" -> "foo_stopped_0" [ style = dashed] -"bar_stop_0" -> "rsc2_stop_0 node1" [ style = dashed] -"rsc2_stop_0 node1" -> "rsc2_start_0 node1" [ style = dashed] -"bar_start_0" -> "rsc2_start_0 node1" [ style = dashed] -"probe_complete" -> "bar_start_0" [ style = dashed] -"bar_stop_0" -> "bar_start_0" [ style = dashed] -"bar_stopped_0" -> "bar_start_0" [ style = dashed] -"bar_start_0" -> "bar_running_0" [ style = dashed] -"rsc2_start_0 node1" -> "bar_running_0" [ style = dashed] -"bar_stop_0" -> "bar_stopped_0" [ style = dashed] -"rsc2_stop_0 node1" -> "bar_stopped_0" [ style = dashed] } diff --git a/crm/pengine/testcases/standby.dot b/crm/pengine/testcases/standby.dot index ef677c3794..45f87dd938 100644 --- a/crm/pengine/testcases/standby.dot +++ b/crm/pengine/testcases/standby.dot @@ -1,125 +1,79 @@ digraph "g" { size = "30,30" -"Filesystem_3_monitor_120000 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_192_168_1_101_monitor_5000 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"LVM_2_monitor_120000 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_192_168_1_104_monitor_5000 sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_23_monitor_120000 sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"oracle_24_monitor_120000 sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"LVM_22_monitor_120000 sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"oralsnr_25_monitor_120000 sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_13_monitor_120000 sapcl02" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_192_168_1_102_monitor_5000 sapcl02" [ style="dashed" color="blue" fontcolor="black" ] -"LVM_12_monitor_120000 sapcl02" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete" [ style="dashed" color="blue" fontcolor="orange" ] -"probe_complete sapcl03" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete sapcl02" [ style="dashed" color="blue" fontcolor="black" ] -"probe_complete sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_192_168_1_101_stop_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"IPaddr_192_168_1_101_start_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"LVM_2_stop_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"LVM_2_start_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_3_stop_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"Filesystem_3_start_0 sapcl01" [ style="dashed" color="blue" fontcolor="black" ] -"app01_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"app01_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"app01_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"app01_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] "IPaddr_192_168_1_102_stop_0 sapcl02" [ style=bold color="green" fontcolor="black" ] "IPaddr_192_168_1_102_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "IPaddr_192_168_1_102_monitor_5000 sapcl01" [ style=bold color="green" fontcolor="black" ] "LVM_12_stop_0 sapcl02" [ style=bold color="green" fontcolor="black" ] "LVM_12_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "LVM_12_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "Filesystem_13_stop_0 sapcl02" [ style=bold color="green" fontcolor="black" ] "Filesystem_13_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "Filesystem_13_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "app02_start_0" [ style=bold color="green" fontcolor="orange" ] "app02_running_0" [ style=bold color="green" fontcolor="orange" ] "app02_stop_0" [ style=bold color="green" fontcolor="orange" ] "app02_stopped_0" [ style=bold color="green" fontcolor="orange" ] "IPaddr_192_168_1_104_stop_0 sapcl03" [ style=bold color="green" fontcolor="black" ] "IPaddr_192_168_1_104_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "IPaddr_192_168_1_104_monitor_5000 sapcl01" [ style=bold color="green" fontcolor="black" ] "LVM_22_stop_0 sapcl03" [ style=bold color="green" fontcolor="black" ] "LVM_22_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "LVM_22_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "Filesystem_23_stop_0 sapcl03" [ style=bold color="green" fontcolor="black" ] "Filesystem_23_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "Filesystem_23_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "oracle_24_stop_0 sapcl03" [ style=bold color="green" fontcolor="black" ] "oracle_24_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "oracle_24_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "oralsnr_25_stop_0 sapcl03" [ style=bold color="green" fontcolor="black" ] "oralsnr_25_start_0 sapcl01" [ style=bold color="green" fontcolor="black" ] "oralsnr_25_monitor_120000 sapcl01" [ style=bold color="green" fontcolor="black" ] "oracle_start_0" [ style=bold color="green" fontcolor="orange" ] "oracle_running_0" [ style=bold color="green" fontcolor="orange" ] "oracle_stop_0" [ style=bold color="green" fontcolor="orange" ] "oracle_stopped_0" [ style=bold color="green" fontcolor="orange" ] -"Filesystem_3_start_0 sapcl01" -> "Filesystem_3_monitor_120000 sapcl01" [ style = dashed] -"IPaddr_192_168_1_101_start_0 sapcl01" -> "IPaddr_192_168_1_101_monitor_5000 sapcl01" [ style = dashed] -"LVM_2_start_0 sapcl01" -> "LVM_2_monitor_120000 sapcl01" [ style = dashed] -"probe_complete sapcl03" -> "probe_complete" [ style = dashed] -"probe_complete sapcl02" -> "probe_complete" [ style = dashed] -"probe_complete sapcl01" -> "probe_complete" [ style = dashed] -"LVM_2_stop_0 sapcl01" -> "IPaddr_192_168_1_101_stop_0 sapcl01" [ style = dashed] -"IPaddr_192_168_1_101_stop_0 sapcl01" -> "IPaddr_192_168_1_101_start_0 sapcl01" [ style = dashed] -"app01_start_0" -> "IPaddr_192_168_1_101_start_0 sapcl01" [ style = dashed] -"Filesystem_3_stop_0 sapcl01" -> "LVM_2_stop_0 sapcl01" [ style = dashed] -"LVM_2_stop_0 sapcl01" -> "LVM_2_start_0 sapcl01" [ style = dashed] -"IPaddr_192_168_1_101_start_0 sapcl01" -> "LVM_2_start_0 sapcl01" [ style = dashed] -"app01_stop_0" -> "Filesystem_3_stop_0 sapcl01" [ style = dashed] -"Filesystem_3_stop_0 sapcl01" -> "Filesystem_3_start_0 sapcl01" [ style = dashed] -"LVM_2_start_0 sapcl01" -> "Filesystem_3_start_0 sapcl01" [ style = dashed] -"app01_stop_0" -> "app01_start_0" [ style = dashed] -"app01_stopped_0" -> "app01_start_0" [ style = dashed] -"app01_start_0" -> "app01_running_0" [ style = dashed] -"Filesystem_3_start_0 sapcl01" -> "app01_running_0" [ style = dashed] -"app01_stop_0" -> "app01_stopped_0" [ style = dashed] -"IPaddr_192_168_1_101_stop_0 sapcl01" -> "app01_stopped_0" [ style = dashed] "LVM_12_stop_0 sapcl02" -> "IPaddr_192_168_1_102_stop_0 sapcl02" [ style = bold] "IPaddr_192_168_1_102_stop_0 sapcl02" -> "IPaddr_192_168_1_102_start_0 sapcl01" [ style = bold] "app02_start_0" -> "IPaddr_192_168_1_102_start_0 sapcl01" [ style = bold] "IPaddr_192_168_1_102_start_0 sapcl01" -> "IPaddr_192_168_1_102_monitor_5000 sapcl01" [ style = bold] "Filesystem_13_stop_0 sapcl02" -> "LVM_12_stop_0 sapcl02" [ style = bold] "IPaddr_192_168_1_102_start_0 sapcl01" -> "LVM_12_start_0 sapcl01" [ style = bold] "LVM_12_stop_0 sapcl02" -> "LVM_12_start_0 sapcl01" [ style = bold] "LVM_12_start_0 sapcl01" -> "LVM_12_monitor_120000 sapcl01" [ style = bold] "app02_stop_0" -> "Filesystem_13_stop_0 sapcl02" [ style = bold] "LVM_12_start_0 sapcl01" -> "Filesystem_13_start_0 sapcl01" [ style = bold] "Filesystem_13_stop_0 sapcl02" -> "Filesystem_13_start_0 sapcl01" [ style = bold] "Filesystem_13_start_0 sapcl01" -> "Filesystem_13_monitor_120000 sapcl01" [ style = bold] "app02_stop_0" -> "app02_start_0" [ style = bold] "app02_stopped_0" -> "app02_start_0" [ style = bold] "Filesystem_13_start_0 sapcl01" -> "app02_running_0" [ style = bold] "app02_start_0" -> "app02_running_0" [ style = bold] "IPaddr_192_168_1_102_stop_0 sapcl02" -> "app02_stopped_0" [ style = bold] "app02_stop_0" -> "app02_stopped_0" [ style = bold] "LVM_22_stop_0 sapcl03" -> "IPaddr_192_168_1_104_stop_0 sapcl03" [ style = bold] "IPaddr_192_168_1_104_stop_0 sapcl03" -> "IPaddr_192_168_1_104_start_0 sapcl01" [ style = bold] "oracle_start_0" -> "IPaddr_192_168_1_104_start_0 sapcl01" [ style = bold] "IPaddr_192_168_1_104_start_0 sapcl01" -> "IPaddr_192_168_1_104_monitor_5000 sapcl01" [ style = bold] "Filesystem_23_stop_0 sapcl03" -> "LVM_22_stop_0 sapcl03" [ style = bold] "IPaddr_192_168_1_104_start_0 sapcl01" -> "LVM_22_start_0 sapcl01" [ style = bold] "LVM_22_stop_0 sapcl03" -> "LVM_22_start_0 sapcl01" [ style = bold] "LVM_22_start_0 sapcl01" -> "LVM_22_monitor_120000 sapcl01" [ style = bold] "oracle_24_stop_0 sapcl03" -> "Filesystem_23_stop_0 sapcl03" [ style = bold] "LVM_22_start_0 sapcl01" -> "Filesystem_23_start_0 sapcl01" [ style = bold] "Filesystem_23_stop_0 sapcl03" -> "Filesystem_23_start_0 sapcl01" [ style = bold] "Filesystem_23_start_0 sapcl01" -> "Filesystem_23_monitor_120000 sapcl01" [ style = bold] "oralsnr_25_stop_0 sapcl03" -> "oracle_24_stop_0 sapcl03" [ style = bold] "Filesystem_23_start_0 sapcl01" -> "oracle_24_start_0 sapcl01" [ style = bold] "oracle_24_stop_0 sapcl03" -> "oracle_24_start_0 sapcl01" [ style = bold] "oracle_24_start_0 sapcl01" -> "oracle_24_monitor_120000 sapcl01" [ style = bold] "oracle_stop_0" -> "oralsnr_25_stop_0 sapcl03" [ style = bold] "oracle_24_start_0 sapcl01" -> "oralsnr_25_start_0 sapcl01" [ style = bold] "oralsnr_25_stop_0 sapcl03" -> "oralsnr_25_start_0 sapcl01" [ style = bold] "oralsnr_25_start_0 sapcl01" -> "oralsnr_25_monitor_120000 sapcl01" [ style = bold] "oracle_stop_0" -> "oracle_start_0" [ style = bold] "oracle_stopped_0" -> "oracle_start_0" [ style = bold] "oralsnr_25_start_0 sapcl01" -> "oracle_running_0" [ style = bold] "oracle_start_0" -> "oracle_running_0" [ style = bold] "IPaddr_192_168_1_104_stop_0 sapcl03" -> "oracle_stopped_0" [ style = bold] "oracle_stop_0" -> "oracle_stopped_0" [ style = bold] } diff --git a/crm/pengine/testcases/target-0.dot b/crm/pengine/testcases/target-0.dot index bb1d3cfbc2..d0adfaae7d 100644 --- a/crm/pengine/testcases/target-0.dot +++ b/crm/pengine/testcases/target-0.dot @@ -1,72 +1,42 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_monitor_5000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_stop_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n08_start_0 c001n08" -> "rsc_c001n08_monitor_5000 c001n08" [ style = dashed] -"DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n08_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"rsc_c001n08_stop_0 c001n08" -> "rsc_c001n08_start_0 c001n08" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/target-1.dot b/crm/pengine/testcases/target-1.dot index e0b5a78e9f..0a251abe9a 100644 --- a/crm/pengine/testcases/target-1.dot +++ b/crm/pengine/testcases/target-1.dot @@ -1,70 +1,46 @@ digraph "g" { size = "30,30" -"rsc_c001n08_monitor_5000 c001n08" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_monitor_5000 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_monitor_5000 c001n01" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n08" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n08" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n02" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "probe_complete c001n01" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n01" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_stop_0 c001n08" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n02_stop_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n02_start_0 c001n02" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_promote_0 c001n03" [ style=bold color="green" fontcolor="black" ] -"rsc_c001n01_stop_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"rsc_c001n01_start_0 c001n01" [ style="dashed" color="blue" fontcolor="black" ] -"DcIPaddr_start_0 c001n02" -> "DcIPaddr_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n02_start_0 c001n02" -> "rsc_c001n02_monitor_5000 c001n02" [ style = dashed] -"rsc_c001n01_start_0 c001n01" -> "rsc_c001n01_monitor_5000 c001n01" [ style = dashed] "probe_complete c001n08" -> "probe_complete" [ style = bold] "probe_complete c001n02" -> "probe_complete" [ style = bold] "probe_complete c001n03" -> "probe_complete" [ style = bold] "probe_complete c001n01" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n02_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n03_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n01_monitor_0 c001n08" -> "probe_complete c001n08" [ style = bold] "rsc_c001n08_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n03_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "rsc_c001n01_monitor_0 c001n02" -> "probe_complete c001n02" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "DcIPaddr_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n08_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n02_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] "rsc_c001n03_monitor_0 c001n01" -> "probe_complete c001n01" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"DcIPaddr_stop_0 c001n02" -> "DcIPaddr_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"rsc_c001n02_stop_0 c001n02" -> "rsc_c001n02_start_0 c001n02" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_stop_0 c001n03" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] "rsc_c001n03_monitor_5000 c001n03" -> "rsc_c001n03_promote_0 c001n03" [ style = bold] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_promote_0 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] -"rsc_c001n01_stop_0 c001n01" -> "rsc_c001n01_start_0 c001n01" [ style = dashed] } diff --git a/crm/pengine/testcases/unrunnable-1.dot b/crm/pengine/testcases/unrunnable-1.dot index fc93848ef0..bcada1fff0 100644 --- a/crm/pengine/testcases/unrunnable-1.dot +++ b/crm/pengine/testcases/unrunnable-1.dot @@ -1,91 +1,37 @@ digraph "g" { size = "30,30" -"child_DoFencing:0_monitor_20000 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "probe_complete" [ style=bold color="green" fontcolor="orange" ] "probe_complete c001n03" [ style=bold color="green" fontcolor="black" ] "DcIPaddr_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.181_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.182_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_192.168.100.183_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n08_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n02_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n03_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "rsc_c001n01_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:1_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:2_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] "child_DoFencing:3_monitor_0 c001n03" [ style=bold color="green" fontcolor="black" ] -"DcIPaddr_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "DcIPaddr_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"child_192.168.100.181_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.181_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"child_192.168.100.182_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.182_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"child_192.168.100.183_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_192.168.100.183_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"group-1_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"group-1_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"rsc_c001n08_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n08_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"rsc_c001n02_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n02_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"rsc_c001n03_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n03_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"rsc_c001n01_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "rsc_c001n01_monitor_5000 c001n03" [ font_color=purple style=filled fillcolor=red ] -"child_DoFencing:0_stop_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] -"child_DoFencing:0_start_0 c001n03" [ style="dashed" color="blue" fontcolor="black" ] "child_DoFencing:1_stop_0 c001n02" [ font_color=purple style=filled fillcolor=red ] -"DoFencing_start_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_running_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stop_0" [ style="dashed" color="blue" fontcolor="orange" ] -"DoFencing_stopped_0" [ style="dashed" color="blue" fontcolor="orange" ] -"child_DoFencing:0_start_0 c001n03" -> "child_DoFencing:0_monitor_20000 c001n03" [ style = dashed] "probe_complete c001n03" -> "probe_complete" [ style = bold] "DcIPaddr_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_192.168.100.181_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_192.168.100.182_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_192.168.100.183_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n08_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n02_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n03_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "rsc_c001n01_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:1_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:2_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] "child_DoFencing:3_monitor_0 c001n03" -> "probe_complete c001n03" [ style = bold] -"probe_complete" -> "DcIPaddr_start_0 c001n03" [ style = dashed] -"DcIPaddr_start_0 c001n03" -> "DcIPaddr_monitor_5000 c001n03" [ style = dashed] -"group-1_start_0" -> "child_192.168.100.181_start_0 c001n03" [ style = dashed] -"child_192.168.100.181_start_0 c001n03" -> "child_192.168.100.181_monitor_5000 c001n03" [ style = dashed] -"child_192.168.100.181_start_0 c001n03" -> "child_192.168.100.182_start_0 c001n03" [ style = dashed] -"child_192.168.100.182_start_0 c001n03" -> "child_192.168.100.182_monitor_5000 c001n03" [ style = dashed] -"child_192.168.100.182_start_0 c001n03" -> "child_192.168.100.183_start_0 c001n03" [ style = dashed] -"child_192.168.100.183_start_0 c001n03" -> "child_192.168.100.183_monitor_5000 c001n03" [ style = dashed] -"probe_complete" -> "group-1_start_0" [ style = dashed] -"group-1_stop_0" -> "group-1_start_0" [ style = dashed] -"group-1_stopped_0" -> "group-1_start_0" [ style = dashed] -"group-1_start_0" -> "group-1_running_0" [ style = dashed] -"child_192.168.100.183_start_0 c001n03" -> "group-1_running_0" [ style = dashed] -"group-1_stop_0" -> "group-1_stopped_0" [ style = dashed] -"probe_complete" -> "rsc_c001n08_start_0 c001n03" [ style = dashed] -"rsc_c001n08_start_0 c001n03" -> "rsc_c001n08_monitor_5000 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n02_start_0 c001n03" [ style = dashed] -"rsc_c001n02_start_0 c001n03" -> "rsc_c001n02_monitor_5000 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n03_start_0 c001n03" [ style = dashed] -"rsc_c001n03_start_0 c001n03" -> "rsc_c001n03_monitor_5000 c001n03" [ style = dashed] -"probe_complete" -> "rsc_c001n01_start_0 c001n03" [ style = dashed] -"rsc_c001n01_start_0 c001n03" -> "rsc_c001n01_monitor_5000 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n03" [ style = dashed] -"child_DoFencing:0_stop_0 c001n03" -> "child_DoFencing:0_start_0 c001n03" [ style = dashed] -"DoFencing_start_0" -> "child_DoFencing:0_start_0 c001n03" [ style = dashed] -"DoFencing_stop_0" -> "child_DoFencing:1_stop_0 c001n02" [ style = dashed] -"probe_complete" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_stopped_0" -> "DoFencing_start_0" [ style = dashed] -"DoFencing_start_0" -> "DoFencing_running_0" [ style = dashed] -"child_DoFencing:0_start_0 c001n03" -> "DoFencing_running_0" [ style = dashed] -"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:0_stop_0 c001n03" -> "DoFencing_stopped_0" [ style = dashed] -"child_DoFencing:1_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = dashed] } diff --git a/crm/tengine/callbacks.c b/crm/tengine/callbacks.c index db85b9c0eb..1595ad5d05 100644 --- a/crm/tengine/callbacks.c +++ b/crm/tengine/callbacks.c @@ -1,573 +1,573 @@ -/* $Id: callbacks.c,v 1.85 2006/06/23 12:35:15 andrew Exp $ */ +/* $Id: callbacks.c,v 1.86 2006/07/18 06:16:08 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include void te_update_confirm(const char *event, HA_Message *msg); void te_update_diff(const char *event, HA_Message *msg); crm_data_t *need_abort(crm_data_t *update); void cib_fencing_updated(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void *user_data); extern char *te_uuid; gboolean shuttingdown = FALSE; crm_graph_t *transition_graph; GTRIGSource *transition_trigger = NULL; crm_action_timer_t *transition_timer = NULL; static gboolean start_global_timer(crm_action_timer_t *timer, int timeout) { CRM_ASSERT(timer != NULL); CRM_CHECK(timer > 0, return FALSE); CRM_CHECK(timer->source_id == 0, return FALSE); if(timeout <= 0) { crm_err("Tried to start timer with period: %d", timeout); } else if(timer->source_id == 0) { crm_debug_2("Starting abort timer: %dms", timeout); timer->timeout = timeout; timer->source_id = Gmain_timeout_add( timeout, global_timer_callback, (void*)timer); CRM_ASSERT(timer->source_id != 0); return TRUE; } else { crm_err("Timer is already active with period: %d", timer->timeout); } return FALSE; } void te_update_diff(const char *event, HA_Message *msg) { int rc = -1; const char *op = NULL; crm_data_t *diff = NULL; crm_data_t *aborted = NULL; const char *set_name = NULL; int diff_add_updates = 0; int diff_add_epoch = 0; int diff_add_admin_epoch = 0; int diff_del_updates = 0; int diff_del_epoch = 0; int diff_del_admin_epoch = 0; if(msg == NULL) { crm_err("NULL update"); return; } ha_msg_value_int(msg, F_CIB_RC, &rc); op = cl_get_string(msg, F_CIB_OPERATION); if(rc < cib_ok) { crm_debug_2("Ignoring failed %s operation: %s", op, cib_error2string(rc)); return; } diff = get_message_xml(msg, F_CIB_UPDATE_RESULT); cib_diff_version_details( diff, &diff_add_admin_epoch, &diff_add_epoch, &diff_add_updates, &diff_del_admin_epoch, &diff_del_epoch, &diff_del_updates); crm_info("Processing diff (%s): %d.%d.%d -> %d.%d.%d", op, diff_del_admin_epoch,diff_del_epoch,diff_del_updates, diff_add_admin_epoch,diff_add_epoch,diff_add_updates); log_cib_diff(LOG_DEBUG_2, diff, op); set_name = "diff-added"; if(diff != NULL) { crm_data_t *section = NULL; crm_data_t *change_set = find_xml_node(diff, set_name, FALSE); change_set = find_xml_node(change_set, XML_TAG_CIB, FALSE); if(change_set != NULL) { crm_debug_2("Checking status changes"); section=get_object_root(XML_CIB_TAG_STATUS,change_set); } if(section != NULL) { extract_event(section); } crm_debug_2("Checking change set: %s", set_name); aborted = need_abort(change_set); } set_name = "diff-removed"; if(diff != NULL && aborted == NULL) { crm_data_t *attrs = NULL; crm_data_t *status = NULL; crm_data_t *change_set = find_xml_node(diff, set_name, FALSE); change_set = find_xml_node(change_set, XML_TAG_CIB, FALSE); crm_debug_2("Checking change set: %s", set_name); aborted = need_abort(change_set); if(aborted == NULL && change_set != NULL) { status = get_object_root(XML_CIB_TAG_STATUS, change_set); xml_child_iter_filter( status, node_state, XML_CIB_TAG_STATE, attrs = find_xml_node( node_state, XML_TAG_TRANSIENT_NODEATTRS, FALSE); if(attrs != NULL) { crm_info("Aborting on "XML_TAG_TRANSIENT_NODEATTRS" deletions"); abort_transition(INFINITY, tg_restart, XML_TAG_TRANSIENT_NODEATTRS, attrs); } ); } } if(aborted != NULL) { abort_transition( INFINITY, tg_restart, "Non-status change", NULL); } free_xml(diff); return; } gboolean process_te_message(HA_Message *msg, crm_data_t *xml_data, IPC_Channel *sender) { crm_data_t *xml_obj = NULL; const char *from = cl_get_string(msg, F_ORIG); const char *sys_to = cl_get_string(msg, F_CRM_SYS_TO); const char *sys_from = cl_get_string(msg, F_CRM_SYS_FROM); const char *ref = cl_get_string(msg, XML_ATTR_REFERENCE); const char *op = cl_get_string(msg, F_CRM_TASK); const char *type = cl_get_string(msg, F_CRM_MSG_TYPE); crm_debug_2("Processing %s (%s) message", op, ref); crm_log_message(LOG_DEBUG_3, msg); if(op == NULL){ /* error */ } else if(strcasecmp(op, CRM_OP_HELLO) == 0) { /* ignore */ } else if(sys_to == NULL || strcasecmp(sys_to, CRM_SYSTEM_TENGINE) != 0) { crm_debug_2("Bad sys-to %s", crm_str(sys_to)); return FALSE; } else if(safe_str_eq(op, CRM_OP_INVOKE_LRM) && safe_str_eq(sys_from, CRM_SYSTEM_LRMD) /* && safe_str_eq(type, XML_ATTR_RESPONSE) */ ){ #if CRM_DEPRECATED_SINCE_2_0_4 if(safe_str_eq(crm_element_name(xml_data), XML_TAG_CIB)) { xml_obj = xml_data; } else { xml_obj = find_xml_node(xml_data, XML_TAG_CIB, TRUE); } #else xml_obj = xml_data; CRM_CHECK(xml_obj != NULL, crm_log_message_adv(LOG_ERR, "Invalid (N)ACK", msg); return FALSE); #endif CRM_CHECK(xml_obj != NULL, crm_log_message_adv(LOG_ERR, "Invalid (N)ACK", msg); return FALSE); xml_obj = get_object_root(XML_CIB_TAG_STATUS, xml_obj); CRM_CHECK(xml_obj != NULL, crm_log_message_adv(LOG_ERR, "Invalid (N)ACK", msg); return FALSE); crm_log_message_adv(LOG_DEBUG_2, "Processing (N)ACK", msg); crm_debug("Processing (N)ACK from %s", from); extract_event(xml_obj); } else if(safe_str_eq(type, XML_ATTR_RESPONSE)) { crm_err("Message was a response not a request. Discarding"); return TRUE; } else if(strcasecmp(op, CRM_OP_TRANSITION) == 0) { const char *graph_file = cl_get_string(msg, F_CRM_TGRAPH); const char *graph_input = cl_get_string(msg, F_CRM_TGRAPH_INPUT); CRM_CHECK(graph_file != NULL, crm_err("No graph filename provided"); return TRUE); if(transition_graph->complete == FALSE) { crm_info("Another transition is already active"); abort_transition( INFINITY,tg_restart,"Transition Active",NULL); } else { FILE *graph_fd = fopen(graph_file, "r"); - crm_data_t *graph_data = file2xml(graph_fd); + crm_data_t *graph_data = file2xml(graph_fd, FALSE); CRM_CHECK(graph_fd != NULL, crm_err("Could not open graph filename: %s", graph_file); return TRUE); destroy_graph(transition_graph); crm_debug("Read graph from %s based on %s", graph_file, graph_input); transition_graph = unpack_graph(graph_data); start_global_timer(transition_timer, transition_graph->transition_timeout); trigger_graph(); print_graph(LOG_DEBUG_2, transition_graph); fclose(graph_fd); free_xml(graph_data); } unlink(graph_file); } else if(strcasecmp(op, CRM_OP_TE_HALT) == 0) { abort_transition(INFINITY, tg_stop, "Peer Halt", NULL); } else if(strcasecmp(op, CRM_OP_TEABORT) == 0) { abort_transition(INFINITY, tg_restart, "Peer Cancelled", NULL); } else { crm_err("Unknown command: %s::%s from %s", type, op, sys_from); } crm_debug_3("finished processing message"); return TRUE; } void tengine_stonith_callback(stonith_ops_t * op) { const char *allow_fail = NULL; int stonith_id = -1; crm_action_t *stonith_action = NULL; char *op_key = NULL; char *call_id = NULL; if(op == NULL) { crm_err("Called with a NULL op!"); return; } crm_info("call=%d, optype=%d, node_name=%s, result=%d, node_list=%s, action=%s", op->call_id, op->optype, op->node_name, op->op_result, (char *)op->node_list, op->private_data); /* this will mark the event complete if a match is found */ CRM_CHECK(op->private_data != NULL, return); /* filter out old STONITH actions */ decodeNVpair(op->private_data, ';', &call_id, &op_key); if(op_key != NULL) { char *key = generate_transition_key( transition_graph->id, te_uuid); gboolean key_matched = safe_str_eq(key, op_key); crm_free(key); if(key_matched == FALSE) { crm_info("Ignoring old STONITH op: %s", op->private_data); return; } } #if 1 stonith_id = crm_parse_int(call_id, "-1"); if(stonith_id < 0) { crm_err("Stonith action not matched: %s (%s)", call_id, op->private_data); return; } #endif stonith_action = match_down_event( stonith_id, op->node_uuid, CRM_OP_FENCE); if(stonith_action == NULL) { crm_err("Stonith action not matched"); return; } switch(op->op_result) { case STONITH_SUCCEEDED: send_stonith_update(op); break; case STONITH_CANNOT: case STONITH_TIMEOUT: case STONITH_GENERIC: stonith_action->failed = TRUE; allow_fail = g_hash_table_lookup( stonith_action->params, crm_meta_name(XML_ATTR_TE_ALLOWFAIL)); if(FALSE == crm_is_true(allow_fail)) { crm_err("Stonith of %s failed (%d)..." " aborting transition.", op->node_name, op->op_result); abort_transition(INFINITY, tg_restart, "Stonith failed", NULL); } break; default: crm_err("Unsupported action result: %d", op->op_result); abort_transition(INFINITY, tg_restart, "Unsupport Stonith result", NULL); } update_graph(transition_graph, stonith_action); trigger_graph(); return; } void tengine_stonith_connection_destroy(gpointer user_data) { #if 0 crm_err("Fencing daemon has left us: Shutting down...NOW"); /* shutdown properly later */ CRM_CHECK(FALSE/* fencing daemon died */); #else crm_err("Fencing daemon has left us"); #endif return; } gboolean tengine_stonith_dispatch(IPC_Channel *sender, void *user_data) { int lpc = 0; while(stonithd_op_result_ready()) { if (sender->ch_status == IPC_DISCONNECT) { /* The message which was pending for us is that * the IPC status is now IPC_DISCONNECT */ break; } if(ST_FAIL == stonithd_receive_ops_result(FALSE)) { crm_err("stonithd_receive_ops_result() failed"); } else { lpc++; } } crm_debug_2("Processed %d messages", lpc); if (sender->ch_status == IPC_DISCONNECT) { return FALSE; } return TRUE; } void cib_fencing_updated(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void *user_data) { trigger_graph(); if(rc < cib_ok) { crm_err("CIB update failed: %s", cib_error2string(rc)); crm_log_xml_warn(msg, "[Failed Update]"); } } void cib_action_updated(const HA_Message *msg, int call_id, int rc, crm_data_t *output, void *user_data) { trigger_graph(); if(rc < cib_ok) { crm_err("Update %d FAILED: %s", call_id, cib_error2string(rc)); } } gboolean action_timer_callback(gpointer data) { crm_action_timer_t *timer = NULL; if(data == NULL) { crm_err("Timer popped with no data"); return FALSE; } timer = (crm_action_timer_t*)data; stop_te_timer(timer); crm_warn("Timer popped (abort_level=%d, complete=%s)", transition_graph->abort_priority, transition_graph->complete?"true":"false"); CRM_CHECK(timer->action != NULL, return FALSE); if(transition_graph->complete) { crm_err("Ignoring timeout while not in transition"); } else if(timer->reason == timeout_action_warn) { print_action( LOG_WARNING,"Action missed its timeout", timer->action); } else { /* fail the action */ cib_action_update(timer->action, LRM_OP_TIMEOUT); } return FALSE; } static int unconfirmed_actions(gboolean send_updates) { int unconfirmed = 0; const char *task = NULL; crm_debug_2("Unconfirmed actions..."); slist_iter( synapse, synapse_t, transition_graph->synapses, lpc, /* lookup event */ slist_iter( action, crm_action_t, synapse->actions, lpc2, if(action->executed == FALSE) { continue; } else if(action->confirmed) { continue; } unconfirmed++; crm_debug("Action %d: unconfirmed",action->id); task = crm_element_value(action->xml,XML_LRM_ATTR_TASK); if(action->type != action_type_rsc) { continue; } else if(send_updates == FALSE) { continue; } else if(safe_str_eq(task, "cancel")) { /* we dont need to update the CIB with these */ continue; } cib_action_update(action, LRM_OP_PENDING); ); ); if(unconfirmed > 0) { crm_info("Waiting on %d unconfirmed actions", unconfirmed); } return unconfirmed; } gboolean global_timer_callback(gpointer data) { crm_action_timer_t *timer = NULL; if(data == NULL) { crm_err("Timer popped with no data"); return FALSE; } timer = (crm_action_timer_t*)data; stop_te_timer(timer); crm_warn("Timer popped (abort_level=%d, complete=%s)", transition_graph->abort_priority, transition_graph->complete?"true":"false"); CRM_CHECK(timer->action == NULL, return FALSE); if(transition_graph->complete) { crm_err("Ignoring timeout while not in transition"); } else if(timer->reason == timeout_abort) { int unconfirmed = unconfirmed_actions(FALSE); crm_warn("Transition abort timeout reached..." " marking transition complete."); transition_graph->complete = TRUE; abort_transition(INFINITY, tg_restart, "Global Timeout", NULL); if(unconfirmed != 0) { crm_warn("Writing %d unconfirmed actions to the CIB", unconfirmed); unconfirmed_actions(TRUE); } } return FALSE; } gboolean te_graph_trigger(gpointer user_data) { int timeout = 0; enum transition_status graph_rc = -1; if(transition_graph->complete) { notify_crmd(transition_graph); return TRUE; } graph_rc = run_graph(transition_graph); timeout = transition_graph->transition_timeout; print_graph(LOG_DEBUG_3, transition_graph); if(graph_rc == transition_active) { crm_debug_3("Transition not yet complete"); stop_te_timer(transition_timer); start_global_timer(transition_timer, timeout); return TRUE; } else if(graph_rc == transition_pending) { timeout = transition_timer->timeout; crm_debug_3("Transition not yet complete - no actions fired"); return TRUE; } if(graph_rc != transition_complete) { crm_err("Transition failed: %s", transition_status(graph_rc)); print_graph(LOG_WARNING, transition_graph); } transition_graph->complete = TRUE; notify_crmd(transition_graph); return TRUE; } diff --git a/crm/tengine/ttest.c b/crm/tengine/ttest.c index d8e259ebbe..7b70408370 100644 --- a/crm/tengine/ttest.c +++ b/crm/tengine/ttest.c @@ -1,173 +1,173 @@ -/* $Id: ttest.c,v 1.23 2006/02/16 15:20:32 andrew Exp $ */ +/* $Id: ttest.c,v 1.24 2006/07/18 06:16:08 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #define OPTARGS "V?X:" #include #include #include GMainLoop* mainloop = NULL; crm_graph_t *transition_graph = NULL; cib_t *te_cib_conn = NULL; static gboolean ttest_pseudo_command(crm_graph_t *graph, crm_action_t *pseudo) { crm_debug("Event handler: action %d executed", pseudo->id); pseudo->confirmed = TRUE; update_graph(graph, pseudo); trigger_graph(); return TRUE; } static gboolean ttest_rsc_command(crm_graph_t *graph, crm_action_t *pseudo) { /* send_rsc_command(action); */ return TRUE; } crm_graph_functions_t ttest_graph_fns = { ttest_pseudo_command, ttest_rsc_command, ttest_pseudo_command, ttest_pseudo_command, }; int main(int argc, char **argv) { int flag; int argerr = 0; const char *xml_file = NULL; crm_data_t *xml_graph = NULL; set_crm_log_level(0); /* crm_log_init("ttest"); */ g_log_set_handler(NULL, G_LOG_LEVEL_ERROR | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING | G_LOG_LEVEL_MESSAGE | G_LOG_LEVEL_INFO | G_LOG_LEVEL_DEBUG | G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL, cl_glib_msg_handler, NULL); /* and for good measure... - this enum is a bit field (!) */ g_log_set_always_fatal((GLogLevelFlags)0); /*value out of range*/ set_crm_log_level(LOG_WARNING); transition_trigger = G_main_add_TriggerHandler( G_PRIORITY_LOW, te_graph_trigger, NULL, NULL); set_graph_functions(&ttest_graph_fns); while (1) { flag = getopt(argc, argv, OPTARGS); if (flag == -1) break; switch(flag) { case 'X': xml_file = crm_strdup(optarg); break; case 'V': cl_log_enable_stderr(TRUE); alter_debug(DEBUG_INC); break; default: printf("?? getopt returned character code 0%o ??\n", flag); ++argerr; break; } } if (optind < argc) { printf("non-option ARGV-elements: "); while (optind < argc) printf("%s ", argv[optind++]); printf("\n"); } if (optind > argc) { ++argerr; } if (argerr) { crm_err("%d errors in option parsing", argerr); } crm_debug("=#=#=#=#= Getting XML =#=#=#=#="); if(xml_file != NULL) { FILE *xml_strm = fopen(xml_file, "r"); if(xml_strm) { - xml_graph = file2xml(xml_strm); + xml_graph = file2xml(xml_strm, FALSE); } else { crm_err("Could not open %s for reading", xml_file); xml_file = NULL; } } if(xml_file == NULL) { xml_graph = stdin2xml(); } #ifdef MTRACE mtrace(); #endif transition_graph = unpack_graph(xml_graph); trigger_graph(); print_graph(LOG_DEBUG, transition_graph); transition_graph->completion_action = tg_shutdown; mainloop = g_main_new(FALSE); g_main_run(mainloop); crm_info("Exiting ttest"); #ifdef MTRACE muntrace(); #endif crm_debug_4("Transition complete..."); return 0; } diff --git a/include/crm/common/xml.h b/include/crm/common/xml.h index 20baa85540..4c04f26a06 100644 --- a/include/crm/common/xml.h +++ b/include/crm/common/xml.h @@ -1,337 +1,337 @@ -/* $Id: xml.h,v 1.48 2006/06/21 08:40:13 andrew Exp $ */ +/* $Id: xml.h,v 1.49 2006/07/18 06:16:09 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef CRM_COMMON_XML__H #define CRM_COMMON_XML__H #include #include #include #include #include #include #include #include #include /* #define USE_LIBXML 1 */ #if CRM_DEV_BUILD # define XML_PARANOIA_CHECKS 1 #else # define XML_PARANOIA_CHECKS 0 #endif #ifdef USE_LIBXML # include typedef xmlNode crm_data_t; #else typedef struct ha_msg crm_data_t; #endif extern gboolean add_message_xml( HA_Message *msg, const char *field, const crm_data_t *xml); extern crm_data_t *get_message_xml(HA_Message *msg, const char *field); extern GHashTable *xml2list(crm_data_t *parent); #if CRM_DEPRECATED_SINCE_2_0_3 extern GHashTable *xml2list_202(crm_data_t *parent); #endif extern void hash2nvpair(gpointer key, gpointer value, gpointer user_data); extern void hash2field(gpointer key, gpointer value, gpointer user_data); extern void hash2metafield(gpointer key, gpointer value, gpointer user_data); extern gboolean do_id_check(crm_data_t *xml_obj, GHashTable *id_hash, gboolean silent_add, gboolean silent_rename); /* * Replacement function for xmlCopyPropList which at the very least, * doesnt work the way *I* would expect it to. * * Copy all the attributes/properties from src into target. * * Not recursive, does not return anything. * */ extern void copy_in_properties(crm_data_t *target, const crm_data_t *src); /* * Find a child named search_path[i] at level i in the XML fragment where i=0 * is an immediate child of root. * * Terminate with success if i == len, or search_path[i] == NULL. * * On success, returns the sub-fragment described by search_path. * On failure, returns NULL. */ extern crm_data_t *find_xml_node_nested( crm_data_t *root, const char **search_path, int len); /* * Find a child named search_path[i] at level i in the XML fragment where i=0 * is an immediate child of root. * * Once the last child specified by node_path is found, find the value * of attr_name. * * If error is set to TRUE, then it is an error for the attribute not * to be found and the function will log accordingly. * * On success, returns the value of attr_name. * On failure, returns NULL. */ extern const char *get_xml_attr_nested(crm_data_t *parent, const char **node_path, int length, const char *attr_name, gboolean error); /* * Free the XML "stuff" associated with a_node * * If a_node is part of another XML blob, barf. * (Should be using free_xml_from_parent) * * Otherwise, free everything recursivly * * Wont barf on NULL. * */ extern void free_xml_fn(crm_data_t *a_node); #if 1 # define free_xml(xml_obj) free_xml_fn(xml_obj); xml_obj = NULL #else # define free_xml(xml_obj) xml_obj = NULL #endif void free_xml_from_parent(crm_data_t *parent, crm_data_t *a_node); #define zap_xml_from_parent(parent, xml_obj) free_xml_from_parent(parent, xml_obj); xml_obj = NULL /* * Create a node named "name" as a child of "parent" * If parent is NULL, creates an unconnected node. * * Returns the created node * */ extern crm_data_t *create_xml_node(crm_data_t *parent, const char *name); /* * Make a copy of name and value and use the copied memory to create * an attribute for node. * * If node, name or value are NULL, nothing is done. * * If name or value are an empty string, nothing is done. * * Returns FALSE on failure and TRUE on success. * */ extern const char *crm_xml_add( crm_data_t *node, const char *name, const char *value); extern const char *crm_xml_add_int( crm_data_t* node, const char *name, int value); /* * Unlink the node and set its doc pointer to NULL so free_xml() * will act appropriately */ extern void unlink_xml_node(crm_data_t *node); /* * Set a timestamp attribute on a_node */ extern void add_xml_tstamp(crm_data_t *a_node); /* * */ extern void purge_diff_markers(crm_data_t *a_node); /* * Returns a deep copy of src_node * */ extern crm_data_t *copy_xml(const crm_data_t *src_node); /* * Add a copy of xml_node to new_parent */ extern crm_data_t *add_node_copy( crm_data_t *new_parent, const crm_data_t *xml_node); /* * XML I/O Functions * * Whitespace between tags is discarded. */ -extern crm_data_t *file2xml(FILE *input); +extern crm_data_t *file2xml(FILE *input, gboolean compressed); extern crm_data_t *stdin2xml(void); extern crm_data_t *string2xml(const char *input); extern int write_xml_file( crm_data_t *xml_node, const char *filename, gboolean compress); extern char *dump_xml_formatted(const crm_data_t *msg); extern char *dump_xml_unformatted(const crm_data_t *msg); extern void print_xml_formatted( int log_level, const char *function, const crm_data_t *an_xml_node, const char *text); /* * Diff related Functions */ extern crm_data_t *diff_xml_object( crm_data_t *left, crm_data_t *right, gboolean suppress); extern void log_xml_diff(unsigned int log_level, crm_data_t *diff, const char *function); extern gboolean apply_xml_diff( crm_data_t *old, crm_data_t *diff, crm_data_t **new); /* * Searching & Modifying */ extern crm_data_t *find_xml_node( crm_data_t *cib, const char * node_path, gboolean must_find); extern crm_data_t *find_entity( crm_data_t *parent, const char *node_name, const char *id); extern crm_data_t *subtract_xml_object( crm_data_t *left, crm_data_t *right, const char *marker); extern int add_xml_object( crm_data_t *parent, crm_data_t *target, const crm_data_t *update); extern void xml_remove_prop(crm_data_t *obj, const char *name); extern void crm_set_element_parent(crm_data_t *data, crm_data_t *parent); extern gboolean replace_xml_child( crm_data_t *parent, crm_data_t *child, crm_data_t *update, gboolean delete_only); extern gboolean update_xml_child(crm_data_t *child, crm_data_t *to_update); extern gboolean find_xml_child(crm_data_t *child, const char *tag, const char *id); /* * */ extern const char *crm_element_value(const crm_data_t *data, const char *name); extern char *crm_element_value_copy(const crm_data_t *data, const char *name); extern const char *crm_element_name(const crm_data_t *data); extern void xml_validate(const crm_data_t *root); extern void crm_update_parents(crm_data_t *root); extern gboolean xml_has_children(crm_data_t *root); extern char *calculate_xml_digest(crm_data_t *local_cib, gboolean sort); extern gboolean validate_with_dtd( crm_data_t *xml_blob, gboolean to_logs, const char *dtd_file); #if XML_PARANOIA_CHECKS # define crm_validate_data(obj) xml_validate(obj) #else # define crm_validate_data(obj) CRM_DEV_ASSERT(obj != NULL) #endif #define xml_child_iter(parent, child, loop_code) \ if(parent != NULL) { \ int __counter = 0; \ crm_data_t *child = NULL; \ crm_validate_data(parent); \ for (__counter = 0; __counter < parent->nfields; __counter++) { \ if(parent->types[__counter] != FT_STRUCT \ && parent->types[__counter] != FT_UNCOMPRESS) { \ continue; \ } \ child = parent->values[__counter]; \ if(child == NULL) { \ crm_debug_4("Skipping %s == NULL", \ parent->names[__counter]); \ } else { \ loop_code; \ } \ } \ } else { \ crm_debug_4("Parent of loop was NULL"); \ } #define xml_child_iter_filter(parent, child, filter, loop_code) \ if(parent != NULL) { \ int __counter = 0; \ crm_data_t *child = NULL; \ crm_validate_data(parent); \ for (__counter = 0; __counter < parent->nfields; __counter++) { \ if(parent->types[__counter] != FT_STRUCT \ && parent->types[__counter] != FT_UNCOMPRESS) { \ continue; \ } \ child = parent->values[__counter]; \ if(child == NULL) { \ crm_debug_4("Skipping %s == NULL", \ parent->names[__counter]); \ } else if(filter == NULL/*constant condition*/ \ || safe_str_eq(filter, parent->names[__counter])) { \ loop_code; \ } else { \ crm_debug_4("Skipping <%s../>", \ parent->names[__counter]); \ } \ } \ } else { \ crm_debug_4("Parent of loop was NULL"); \ } #define xml_prop_iter(parent, prop_name, prop_value, code) if(parent != NULL) { \ const char *prop_name = NULL; \ const char *prop_value = NULL; \ int __counter = 0; \ crm_validate_data(parent); \ crm_debug_5("Searching %d fields", parent->nfields); \ for (__counter = 0; __counter < parent->nfields; __counter++) { \ crm_debug_5("Searching field %d", __counter); \ if(parent->types[__counter] != FT_STRING) { \ continue; \ } else if(safe_str_eq(parent->names[__counter], F_XML_TAGNAME)) { \ continue; \ } else if(safe_str_eq(parent->names[__counter], F_XML_PARENT)) { \ continue; \ } \ prop_name = parent->names[__counter]; \ prop_value = parent->values[__counter]; \ code; \ } \ } else { \ crm_debug_4("Parent of loop was NULL"); \ } #endif diff --git a/lib/crm/common/xml.c b/lib/crm/common/xml.c index 6bb61b90d4..85bd7bdbf7 100644 --- a/lib/crm/common/xml.c +++ b/lib/crm/common/xml.c @@ -1,2577 +1,2622 @@ -/* $Id: xml.c,v 1.100 2006/07/08 13:49:03 andrew Exp $ */ +/* $Id: xml.c,v 1.101 2006/07/18 06:16:09 andrew Exp $ */ /* * Copyright (C) 2004 Andrew Beekhof * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if HAVE_BZLIB_H # include #endif #include #define XML_BUFFER_SIZE 4096 int is_comment_start(const char *input); int is_comment_end(const char *input); gboolean drop_comments(const char *input, int *offset); void dump_array( int log_level, const char *message, const char **array, int depth); int print_spaces(char *buffer, int spaces); int log_data_element(const char *function, const char *prefix, int log_level, int depth, const crm_data_t *data, gboolean formatted); int dump_data_element( int depth, char **buffer, const crm_data_t *data, gboolean formatted); crm_data_t *parse_xml(const char *input, int *offset); int get_tag_name(const char *input); int get_attr_name(const char *input); int get_attr_value(const char *input); gboolean can_prune_leaf(crm_data_t *xml_node); void diff_filter_context(int context, int upper_bound, int lower_bound, crm_data_t *xml_node, crm_data_t *parent); int in_upper_context(int depth, int context, crm_data_t *xml_node); crm_data_t * find_xml_node(crm_data_t *root, const char * search_path, gboolean must_find) { if(must_find || root != NULL) { crm_validate_data(root); } if(search_path == NULL) { crm_warn("Will never find "); return NULL; } xml_child_iter_filter( root, a_child, search_path, /* crm_debug_5("returning node (%s).", crm_element_name(a_child)); */ crm_log_xml(LOG_DEBUG_5, "found:", a_child); crm_log_xml(LOG_DEBUG_6, "in:", root); crm_validate_data(a_child); return a_child; ); if(must_find) { crm_warn("Could not find %s in %s.", search_path, crm_element_name(root)); } else if(root != NULL) { crm_debug_3("Could not find %s in %s.", search_path, crm_element_name(root)); } else { crm_debug_3("Could not find %s in .", search_path); } return NULL; } crm_data_t* find_xml_node_nested(crm_data_t *root, const char **search_path, int len) { int j; gboolean is_found = TRUE; crm_data_t *match = NULL; crm_data_t *lastMatch = root; crm_validate_data(root); if(search_path == NULL || search_path[0] == NULL) { crm_warn("Will never find NULL"); return NULL; } dump_array(LOG_DEBUG_5, "Looking for.", search_path, len); for (j=0; j < len; ++j) { if (search_path[j] == NULL) { /* a NULL also means stop searching */ break; } match = find_xml_node(lastMatch, search_path[j], FALSE); if(match == NULL) { is_found = FALSE; break; } else { lastMatch = match; } } if (is_found) { crm_debug_5("returning node (%s).", crm_element_name(lastMatch)); crm_log_xml_debug_5(lastMatch, "found\t%s"); crm_log_xml_debug_5(root, "in \t%s"); crm_validate_data(lastMatch); return lastMatch; } dump_array(LOG_DEBUG_2, "Could not find the full path to the node you specified.", search_path, len); crm_debug_2("Closest point was node (%s) starting from %s.", crm_element_name(lastMatch), crm_element_name(root)); return NULL; } const char * get_xml_attr_nested(crm_data_t *parent, const char **node_path, int length, const char *attr_name, gboolean error) { const char *attr_value = NULL; crm_data_t *attr_parent = NULL; if(error || parent != NULL) { crm_validate_data(parent); } if(parent == NULL) { crm_debug_3("Can not find attribute %s in NULL parent",attr_name); return NULL; } if(attr_name == NULL || strlen(attr_name) == 0) { crm_err("Can not find attribute with no name in %s", crm_element_name(parent)); return NULL; } if(length == 0) { attr_parent = parent; } else { attr_parent = find_xml_node_nested(parent, node_path, length); if(attr_parent == NULL && error) { crm_err("No node at the path you specified."); return NULL; } } attr_value = crm_element_value(attr_parent, attr_name); if((attr_value == NULL || strlen(attr_value) == 0) && error) { crm_err("No value present for %s at %s", attr_name, crm_element_name(attr_parent)); return NULL; } return attr_value; } crm_data_t* find_entity(crm_data_t *parent, const char *node_name, const char *id) { crm_validate_data(parent); xml_child_iter_filter( parent, a_child, node_name, if(id == NULL || safe_str_eq(id, ID(a_child))) { crm_debug_4("returning node (%s).", crm_element_name(a_child)); return a_child; } ); crm_debug_3("node <%s id=%s> not found in %s.", node_name, id, crm_element_name(parent)); return NULL; } void copy_in_properties(crm_data_t* target, const crm_data_t *src) { int value_len = 0; char *incr_value = NULL; char *new_value = NULL; crm_validate_data(src); crm_validate_data(target); if(src == NULL) { crm_warn("No node to copy properties from"); } else if (target == NULL) { crm_err("No node to copy properties into"); } else { xml_prop_iter( src, local_prop_name, local_prop_value, /* if the value is name followed by "++" we need * to increment the existing value */ new_value = NULL; incr_value = NULL; /* do a quick check to decide if its worth * constructing the various strings and * performing string comparisions */ value_len = strlen(local_prop_value); if(value_len > 2 && local_prop_value[0] == local_prop_value[0] && local_prop_value[value_len-1] == '+' && local_prop_value[value_len-2] == '+') { int old_int = 0; const char *old_value = NULL; incr_value=crm_concat(local_prop_name,"+",'+'); if(safe_str_eq(local_prop_value, incr_value)) { old_value = crm_element_value( target, local_prop_name); old_int = crm_parse_int(old_value, "0"); new_value = crm_itoa(old_int + 1); local_prop_value = new_value; } } crm_xml_add(target, local_prop_name, local_prop_value); crm_free(incr_value); crm_free(new_value); ); crm_validate_data(target); } return; } crm_data_t* add_node_copy(crm_data_t *parent, const crm_data_t *src_node) { const char *name = NULL; crm_data_t *child = NULL; CRM_CHECK(src_node != NULL, return NULL); crm_validate_data(src_node); name = crm_element_name(src_node); CRM_CHECK(name != NULL, return NULL); child = create_xml_node(parent, name); copy_in_properties(child, src_node); xml_child_iter(src_node, src_child, add_node_copy(child, src_child); ); crm_set_element_parent(child, parent); return child; } const char * crm_xml_add(crm_data_t* node, const char *name, const char *value) { const char *parent_name = NULL; if(node != NULL) { parent_name = crm_element_name(node); } crm_debug_5("[%s] Setting %s to %s", crm_str(parent_name), name, value); if (name == NULL || strlen(name) <= 0) { } else if(node == NULL) { } else if(parent_name == NULL && strcasecmp(name, F_XML_TAGNAME) != 0) { } else if (value == NULL || strlen(value) <= 0) { xml_remove_prop(node, name); return NULL; } else { const char *new_value = NULL; crm_validate_data(node); ha_msg_mod(node, name, value); new_value = crm_element_value(node, name); return new_value; } return NULL; } const char * crm_xml_add_int(crm_data_t* node, const char *name, int value) { const char *parent_name = NULL; if(node != NULL) { parent_name = crm_element_name(node); } crm_debug_5("[%s] Setting %s to %d", crm_str(parent_name), name, value); if (name == NULL || strlen(name) <= 0) { } else if(node == NULL) { } else if(parent_name == NULL && strcasecmp(name, F_XML_TAGNAME) != 0) { } else { crm_validate_data(node); ha_msg_mod_int(node, name, value); return crm_element_value(node, name); } return NULL; } crm_data_t* create_xml_node(crm_data_t *parent, const char *name) { const char *local_name = NULL; const char *parent_name = NULL; crm_data_t *ret_value = NULL; if (name == NULL || strlen(name) < 1) { ret_value = NULL; } else { local_name = name; ret_value = ha_msg_new(3); CRM_CHECK(ret_value != NULL, return NULL); crm_xml_add(ret_value, F_XML_TAGNAME, name); crm_set_element_parent(ret_value, parent); crm_validate_data(ret_value); if(parent) { crm_validate_data(parent); parent_name = crm_element_name(parent); crm_debug_5("Attaching %s to parent %s", local_name, parent_name); CRM_CHECK(HA_OK == ha_msg_addstruct( parent, name, ret_value), return NULL); crm_msg_del(ret_value); crm_validate_data(parent); ret_value = parent->values[parent->nfields-1]; } } crm_debug_5("Created node [%s [%s]]", crm_str(parent_name), crm_str(local_name)); return ret_value; } void free_xml_from_parent(crm_data_t *parent, crm_data_t *a_node) { CRM_CHECK(parent != NULL, return); CRM_CHECK(a_node != NULL, return); crm_validate_data(parent); cl_msg_remove_value(parent, a_node); crm_validate_data(parent); } void free_xml_fn(crm_data_t *a_node) { if(a_node == NULL) { ; /* nothing to do */ } else { int has_parent = 0; crm_validate_data(a_node); ha_msg_value_int(a_node, F_XML_PARENT, &has_parent); /* there is no way in hell we should be deleting anything * with a parent and without the parent knowning */ CRM_CHECK(has_parent == 0, return); crm_validate_data(a_node); ha_msg_del(a_node); } return; } void add_xml_tstamp(crm_data_t *a_node) { char *since_epoch = NULL; time_t a_time = time(NULL); crm_validate_data(a_node); if(a_time == (time_t)-1) { cl_perror("set_node_tstamp(): Invalid time returned"); return; } crm_malloc0(since_epoch, 128); if(since_epoch != NULL) { sprintf(since_epoch, "%ld", (unsigned long)a_time); ha_msg_mod(a_node, XML_ATTR_TSTAMP, since_epoch); crm_validate_data(a_node); crm_free(since_epoch); } } crm_data_t* copy_xml(const crm_data_t *src_node) { return add_node_copy(NULL, src_node); } crm_data_t* string2xml(const char *input) { crm_data_t *output = parse_xml(input, NULL); if(output != NULL) { crm_update_parents(output); crm_validate_data(output); } return output; } crm_data_t * stdin2xml(void) { size_t data_length = 0; size_t read_chars = 0; char *xml_buffer = NULL; crm_data_t *xml_obj = NULL; do { crm_realloc(xml_buffer, XML_BUFFER_SIZE + data_length + 1); read_chars = fread(xml_buffer + data_length, 1, XML_BUFFER_SIZE, stdin); data_length += read_chars; } while (read_chars > 0); xml_buffer[data_length] = '\0'; xml_obj = string2xml(xml_buffer); crm_free(xml_buffer); crm_log_xml_debug_3(xml_obj, "Created fragment"); return xml_obj; } crm_data_t* -file2xml(FILE *input) +file2xml(FILE *input, gboolean compressed) { - + int rc = 0; char *buffer = NULL; + gboolean work_done = FALSE; crm_data_t *new_obj = NULL; - int start = 0, length = 0, read_len = 0; + size_t length = 0, read_len = 0; if(input == NULL) { crm_err("No file to read"); return NULL; } - - /* see how big the file is */ - start = ftell(input); - fseek(input, 0L, SEEK_END); - length = ftell(input); - fseek(input, 0L, start); - - CRM_ASSERT(start == ftell(input)); - crm_debug_3("Reading %d bytes from file", length); - crm_malloc0(buffer, (length+1)); - read_len = fread(buffer, 1, length, input); + if(compressed) { +#if HAVE_BZLIB_H + BZFILE *bz_file = BZ2_bzReadOpen(&rc, input, 0, 0, NULL, 0); + if ( rc != BZ_OK ) { + BZ2_bzReadClose ( &rc, bz_file); + return NULL; + } + + rc = BZ_OK; + while ( rc == BZ_OK ) { + crm_realloc(buffer, XML_BUFFER_SIZE + length + 1); + read_len = BZ2_bzRead ( + &rc, bz_file, buffer + length, XML_BUFFER_SIZE); + + crm_debug_5("Read %ld bytes from file: %d", + (long)read_len, rc); + + if ( rc == BZ_OK || rc == BZ_STREAM_END) { + length += read_len; + } + } + + buffer[length] = '\0'; + read_len = length; + + if ( rc != BZ_STREAM_END ) { + crm_err("Couldnt read compressed xml from file"); + crm_free(buffer); + } + + BZ2_bzReadClose (&rc, bz_file); + if(buffer == NULL) { + return NULL; + } + + work_done = TRUE; +#else + crm_err("Cannot read compressed files:" + " bzlib was not available at compile time"); +#endif + } + + if(work_done == FALSE) { + int start = 0; + start = ftell(input); + fseek(input, 0L, SEEK_END); + length = ftell(input); + fseek(input, 0L, start); + + CRM_ASSERT(start == ftell(input)); + + crm_debug_3("Reading %ld bytes from file", (long)length); + crm_malloc0(buffer, (length+1)); + read_len = fread(buffer, 1, length, input); + } + + /* see how big the file is */ if(read_len != length) { - crm_err("Calculated and read bytes differ: %d vs. %d", - length, read_len); - } else if(length > 0) { + crm_err("Calculated and read bytes differ: %ld vs. %ld", + (long)length, (long)read_len); + } else if(length > 0) { new_obj = string2xml(buffer); } else { crm_warn("File contained no XML"); } crm_free(buffer); return new_obj; } void dump_array(int log_level, const char *message, const char **array, int depth) { int j; if(message != NULL) { crm_log_maybe(log_level, "%s", message); } crm_log_maybe(log_level, "Contents of the array:"); if(array == NULL || array[0] == NULL || depth == 0) { crm_log_maybe(log_level, "\t"); return; } for (j=0; j < depth && array[j] != NULL; j++) { if (array[j] == NULL) { break; } crm_log_maybe(log_level, "\t--> (%s).", array[j]); } } int write_xml_file(crm_data_t *xml_node, const char *filename, gboolean compress) { int res = 0; time_t now; char *buffer = NULL; char *now_str = NULL; gboolean is_done = FALSE; FILE *file_output_strm = NULL; static mode_t cib_mode = S_IRUSR|S_IWUSR; CRM_CHECK(filename != NULL, return -1); crm_debug_3("Writing XML out to %s", filename); crm_validate_data(xml_node); if (xml_node == NULL) { crm_err("Cannot write NULL to %s", filename); return -1; } crm_validate_data(xml_node); crm_log_xml_debug_4(xml_node, "Writing out"); crm_validate_data(xml_node); now = time(NULL); now_str = ctime(&now); now_str[24] = EOS; /* replace the newline */ crm_xml_add(xml_node, XML_CIB_ATTR_WRITTEN, now_str); crm_validate_data(xml_node); buffer = dump_xml_formatted(xml_node); CRM_CHECK(buffer != NULL && strlen(buffer) > 0, return -1); /* establish the file with correct permissions */ file_output_strm = fopen(filename, "w"); fclose(file_output_strm); chmod(filename, cib_mode); /* now write it */ file_output_strm = fopen(filename, "w"); if(file_output_strm == NULL) { crm_free(buffer); cl_perror("Cannot write to %s", filename); return -1; } + if(compress) { #if HAVE_BZLIB_H - if(compress && is_done == FALSE) { int rc = BZ_OK; BZFILE *bz_file = NULL; unsigned int in = 0, out = 0; is_done = TRUE; bz_file = BZ2_bzWriteOpen(&rc, file_output_strm, 5,0,0); if(rc != BZ_OK) { is_done = FALSE; crm_err("bzWriteOpen failed: %d", rc); } if(is_done) { BZ2_bzWrite(&rc,bz_file,buffer,strlen(buffer)); if(rc != BZ_OK) { crm_err("bzWrite() failed: %d", rc); is_done = FALSE; } } if(is_done) { BZ2_bzWriteClose(&rc, bz_file, 0, &in, &out); if(rc != BZ_OK) { crm_err("bzWriteClose() failed: %d",rc); is_done = FALSE; } else { crm_debug("%s: In: %d, out: %d", filename, in, out); } } - } +#else + crm_err("Cannot write compressed files:" + " bzlib was not available at compile time"); #endif - if(compress && is_done == FALSE) { - compress = FALSE; - crm_warn("bzlib failed or not installed." - " Writing uncompressed data to: %s",filename); } if(is_done == FALSE) { res = fprintf(file_output_strm, "%s", buffer); if(res < 0) { cl_perror("Cannot write output to %s",filename); } fflush(file_output_strm); } fclose(file_output_strm); crm_free(buffer); crm_debug_3("Saved %d bytes to the Cib as XML", res); return res; } void print_xml_formatted(int log_level, const char *function, const crm_data_t *msg, const char *text) { if(msg == NULL) { do_crm_log(log_level,NULL,function, "%s: NULL", crm_str(text)); return; } crm_validate_data(msg); log_data_element(function, text, log_level, 0, msg, TRUE); return; } crm_data_t * get_message_xml(HA_Message *msg, const char *field) { crm_data_t *xml_node = NULL; crm_data_t *tmp_node = NULL; crm_validate_data(msg); tmp_node = cl_get_struct(msg, field); if(tmp_node != NULL) { xml_node = copy_xml(tmp_node); } return xml_node; } gboolean add_message_xml(HA_Message *msg, const char *field, const crm_data_t *xml) { crm_validate_data(xml); crm_validate_data(msg); CRM_CHECK(field != NULL, return FALSE); ha_msg_addstruct_compress(msg, field, xml); crm_update_parents(msg); return TRUE; } char * dump_xml_formatted(const crm_data_t *an_xml_node) { char *buffer = NULL; char *mutable_ptr = NULL; if(an_xml_node == NULL) { return NULL; } crm_malloc0(buffer, 3*get_stringlen(an_xml_node)); mutable_ptr = buffer; crm_validate_data(an_xml_node); CRM_CHECK(dump_data_element( 0, &mutable_ptr, an_xml_node, TRUE) >= 0, crm_crit("Could not dump the whole message")); crm_debug_4("Dumped: %s", buffer); return buffer; } char * dump_xml_unformatted(const crm_data_t *an_xml_node) { char *buffer = NULL; char *mutable_ptr = NULL; crm_malloc0(buffer, 2*get_stringlen(an_xml_node)); mutable_ptr = buffer; crm_validate_data(an_xml_node); CRM_CHECK(dump_data_element( 0, &mutable_ptr, an_xml_node, TRUE) >= 0, crm_crit("Could not dump the whole message")); crm_debug_4("Dumped: %s", buffer); return buffer; } #define update_buffer_head(buffer, len) if(len < 0) { \ (*buffer) = EOS; return -1; \ } else { \ buffer += len; \ } int print_spaces(char *buffer, int depth) { int lpc = 0; int spaces = 2*depth; /* <= so that we always print 1 space - prevents problems with syslog */ for(lpc = 0; lpc <= spaces; lpc++) { if(sprintf(buffer, "%c", ' ') < 1) { return -1; } buffer += 1; } return lpc; } int log_data_element( const char *function, const char *prefix, int log_level, int depth, const crm_data_t *data, gboolean formatted) { int printed = 0; int child_result = 0; int has_children = 0; char print_buffer[1000]; char *buffer = print_buffer; const char *name = crm_element_name(data); const char *hidden = NULL; crm_debug_5("Dumping %s...", name); crm_validate_data(data); if(data == NULL) { crm_warn("No data to dump as XML"); return 0; } else if(name == NULL && depth == 0) { xml_child_iter( data, a_child, child_result = log_data_element( function, prefix, log_level, depth, a_child, formatted); if(child_result < 0) { return child_result; } ); return 0; } else if(name == NULL) { crm_err("Cannot dump NULL element at depth %d", depth); return -1; } if(formatted) { printed = print_spaces(buffer, depth); update_buffer_head(buffer, printed); } printed = sprintf(buffer, "<%s", name); update_buffer_head(buffer, printed); hidden = crm_element_value(data, "hidden"); xml_prop_iter( data, prop_name, prop_value, if(safe_str_eq(F_XML_TAGNAME, prop_name)) { continue; } else if(safe_str_eq(F_XML_PARENT, prop_name)) { continue; } else if(hidden != NULL && prop_name != NULL && strlen(prop_name) > 0 && strstr(hidden, prop_name) != NULL) { prop_value = "*****"; } crm_debug_5("Dumping <%s %s=\"%s\"...", name, prop_name, prop_value); printed = sprintf(buffer, " %s=\"%s\"", prop_name, prop_value); update_buffer_head(buffer, printed); ); xml_child_iter( data, child, if(child != NULL) { has_children++; break; } ); printed = sprintf(buffer, "%s>", has_children==0?"/":""); update_buffer_head(buffer, printed); do_crm_log(log_level, NULL, function, "%s%s", prefix?prefix:"", print_buffer); buffer = print_buffer; if(has_children == 0) { return 0; } xml_child_iter( data, a_child, child_result = log_data_element( function, prefix, log_level, depth+1, a_child, formatted); if(child_result < 0) { return -1; } ); if(formatted) { printed = print_spaces(buffer, depth); update_buffer_head(buffer, printed); } do_crm_log(log_level, NULL, function, "%s%s", prefix?prefix:"", print_buffer, name); crm_debug_5("Dumped %s...", name); return has_children; } int dump_data_element( int depth, char **buffer, const crm_data_t *data, gboolean formatted) { int printed = 0; int child_result = 0; int has_children = 0; const char *name = crm_element_name(data); crm_debug_5("Dumping %s...", name); crm_validate_data(data); if(buffer == NULL || *buffer == NULL) { crm_err("No buffer supplied to dump XML into"); return -1; } else if(data == NULL) { crm_warn("No data to dump as XML"); (*buffer)[0] = EOS; return 0; } else if(name == NULL && depth == 0) { xml_child_iter( data, a_child, child_result = dump_data_element( depth, buffer, a_child, formatted); if(child_result < 0) { return child_result; } ); return 0; } else if(name == NULL) { crm_err("Cannot dump NULL element at depth %d", depth); return -1; } if(formatted) { printed = print_spaces(*buffer, depth); update_buffer_head(*buffer, printed); } printed = sprintf(*buffer, "<%s", name); update_buffer_head(*buffer, printed); xml_prop_iter(data, prop_name, prop_value, if(safe_str_eq(F_XML_TAGNAME, prop_name)) { continue; } else if(safe_str_eq(F_XML_PARENT, prop_name)) { continue; } crm_debug_5("Dumping <%s %s=\"%s\"...", name, prop_name, prop_value); printed = sprintf(*buffer, " %s=\"%s\"", prop_name, prop_value); update_buffer_head(*buffer, printed); ); xml_child_iter( data, child, if(child != NULL) { has_children++; break; } ); printed = sprintf(*buffer, "%s>%s", has_children==0?"/":"", formatted?"\n":""); update_buffer_head(*buffer, printed); if(has_children == 0) { return 0; } xml_child_iter( data, child, child_result = dump_data_element( depth+1, buffer, child, formatted); if(child_result < 0) { return -1; } ); if(formatted) { printed = print_spaces(*buffer, depth); update_buffer_head(*buffer, printed); } printed = sprintf(*buffer, "%s", name, formatted?"\n":""); update_buffer_head(*buffer, printed); crm_debug_5("Dumped %s...", name); return has_children; } gboolean xml_has_children(crm_data_t *xml_root) { crm_validate_data(xml_root); xml_child_iter( xml_root, a_child, return TRUE; ); return FALSE; } void xml_validate(const crm_data_t *xml_root) { int lpc = 0; CRM_ASSERT(xml_root != NULL); CRM_ASSERT(cl_is_allocated(xml_root) == 1); CRM_ASSERT(xml_root->nfields < 500); for (lpc = 0; lpc < xml_root->nfields; lpc++) { void *child = xml_root->values[lpc]; CRM_ASSERT(cl_is_allocated(xml_root->names[lpc]) == 1); if(child == NULL) { } else if(xml_root->types[lpc] == FT_STRUCT || xml_root->types[lpc] == FT_UNCOMPRESS) { crm_validate_data(child); } else if(xml_root->types[lpc] == FT_STRING) { CRM_ASSERT(cl_is_allocated(child) == 1); /* } else { */ /* CRM_CHECK(FALSE); */ } } } void crm_set_element_parent(crm_data_t *data, crm_data_t *parent) { crm_validate_data(data); if(parent != NULL) { ha_msg_mod_int(data, F_XML_PARENT, 1); } else { ha_msg_mod_int(data, F_XML_PARENT, 0); } } const char * crm_element_value(const crm_data_t *data, const char *name) { const char *value = NULL; crm_validate_data(data); value = cl_get_string(data, name); #if XML_PARANOIA_CHECKS CRM_CHECK(value == NULL || cl_is_allocated(value) == 1, return NULL); #endif return value; } char * crm_element_value_copy(const crm_data_t *data, const char *name) { const char *value = NULL; char *value_copy = NULL; crm_validate_data(data); value = cl_get_string(data, name); if(value != NULL) { #if XML_PARANOIA_CHECKS CRM_CHECK(cl_is_allocated(value) == 1, return NULL); #endif value_copy = crm_strdup(value); } return value_copy; } const char * crm_element_name(const crm_data_t *data) { #if CRM_DEV_BUILD crm_validate_data(data); #endif return cl_get_string(data, F_XML_TAGNAME); } void xml_remove_prop(crm_data_t *obj, const char *name) { if(crm_element_value(obj, name) != NULL) { cl_msg_remove(obj, name); } } void crm_update_parents(crm_data_t *xml_root) { crm_validate_data(xml_root); xml_child_iter( xml_root, a_child, crm_set_element_parent(a_child, xml_root); crm_update_parents(a_child); ); } int get_tag_name(const char *input) { int lpc = 0; char ch = 0; const char *error = NULL; gboolean do_special = FALSE; for(lpc = 0; error == NULL && lpc < (ssize_t)strlen(input); lpc++) { ch = input[lpc]; crm_debug_5("Processing char %c [%d]", ch, lpc); switch(ch) { case 0: error = "unexpected EOS"; break; case '?': if(lpc == 0) { /* weird xml tag that we dont care about */ do_special = TRUE; } else { return lpc; } break; case '/': case '>': case '\t': case '\n': case ' ': if(!do_special) { return lpc; } break; default: if(do_special) { } else if('a' <= ch && ch <= 'z') { } else if('A' <= ch && ch <= 'Z') { } else if(ch == '_') { } else if(ch == '-') { } else { error = "bad character, not in [a-zA-Z_-]"; } break; } } crm_err("Error parsing token near %.15s: %s", input, crm_str(error)); return -1; } int get_attr_name(const char *input) { int lpc = 0; char ch = 0; const char *error = NULL; for(lpc = 0; error == NULL && lpc < (ssize_t)strlen(input); lpc++) { ch = input[lpc]; crm_debug_5("Processing char %c[%d]", ch, lpc); switch(ch) { case 0: error = "unexpected EOS"; break; case '\t': case '\n': case ' ': error = "unexpected whitespace"; break; case '=': return lpc; default: if('a' <= ch && ch <= 'z') { } else if('A' <= ch && ch <= 'Z') { } else if(isdigit((int) ch)) { } else if(ch == '_') { } else if(ch == '-') { } else { error = "bad character, not in [a-zA-Z0-9_-]"; } break; } } crm_err("Error parsing token near %.15s: %s", input, crm_str(error)); return -1; } int get_attr_value(const char *input) { int lpc = 0; char ch = 0; const char *error = NULL; for(lpc = 0; error == NULL && lpc < (ssize_t)strlen(input); lpc++) { ch = input[lpc]; crm_debug_5("Processing char %c [%d]", ch, lpc); switch(ch) { case 0: error = "unexpected EOS"; break; case '\\': if(input[lpc+1] == '"') { /* skip over the next char */ lpc++; break; } /*fall through*/ case '"': return lpc; default: break; } } crm_err("Error parsing token near %.15s: %s", input, crm_str(error)); return -1; } int is_comment_start(const char *input) { CRM_CHECK(input != NULL, return 0); if(strlen(input) > 4 && input[0] == '<' && input[1] == '!' && input[2] == '-' && input[3] == '-') { crm_debug_6("Found comment start: "); return 3; } else if(strlen(input) > 1 && input[0] == '?' && input[1] == '>') { crm_debug_6("Found comment end: ?>"); return 2; } if(strlen(input) > 2) { crm_debug_6("Not comment end: %c%c%c", input[0], input[1], input[2]); } else { crm_debug_6("Not comment end"); } return 0; } static gboolean drop_whitespace(const char *input, int *offset) { char ch = 0; int len = 0, lpc = 0; gboolean more = TRUE; const char *our_input = input; if(input == NULL) { return FALSE; } if(offset != NULL) { our_input = input + (*offset); } len = strlen(our_input); while(lpc < len && more) { ch = our_input[lpc]; crm_debug_6("Processing char %c[%d]", ch, lpc); switch(ch) { case 0: more = FALSE; case ' ': case '\t': case '\n': case '\r': lpc++; crm_debug_6("Skipping whitespace char %d", our_input[lpc]); break; default: more = FALSE; break; } } crm_debug_4("Finished processing whitespace"); if(offset != NULL) { (*offset) += lpc; } if(lpc > 0) { crm_debug_5("Skipped %d whitespace chars", lpc); return TRUE; } return FALSE; } gboolean drop_comments(const char *input, int *offset) { gboolean more = TRUE; gboolean in_directive = FALSE; int in_comment = FALSE; const char *our_input = input; int len = 0, lpc = 0; int tag_len = 0; char ch = 0; if(input == NULL) { return FALSE; } if(offset != NULL) { our_input = input + (*offset); } len = strlen(our_input); while(lpc < len && more) { ch = our_input[lpc]; crm_debug_6("Processing char %c[%d]", ch, lpc); switch(ch) { case 0: if(in_comment == FALSE) { more = FALSE; } else { crm_err("unexpected EOS"); crm_warn("Parsing error at or before: %s", our_input); } break; case '<': tag_len = is_comment_start(our_input + lpc); if(tag_len > 0) { if(in_comment) { crm_err("Nested XML comments are not supported!"); crm_warn("Parsing error at or before: %s", our_input); crm_warn("Netsed comment found at: %s", our_input + lpc + tag_len); } in_comment = TRUE; lpc+=tag_len; if(tag_len == 2) { #if 1 if(our_input[lpc-1] == '!') { in_directive = TRUE; } #else tag_len = get_tag_name(our_input + lpc); crm_debug_2("Tag length: %d", len); if(strncmp("DOCTYPE", our_input+lpc, tag_len) == 0) { in_directive = TRUE; } #endif } } else if(in_comment == FALSE){ more = FALSE; } else { lpc++; crm_debug_6("Skipping comment char %c", our_input[lpc]); } break; case '>': lpc++; if(in_directive) { in_directive = FALSE; in_comment = FALSE; } break; case '-': case '?': tag_len = is_comment_end(our_input + lpc); if(tag_len > 0) { lpc+=tag_len; in_comment = FALSE; } else { lpc++; crm_debug_6("Skipping comment char %c", our_input[lpc]); } break; case ' ': case '\t': case '\n': case '\r': lpc++; crm_debug_6("Skipping whitespace char %d", our_input[lpc]); break; default: lpc++; crm_debug_6("Skipping comment char %c", our_input[lpc]); break; } } crm_debug_4("Finished processing comments"); if(offset != NULL) { (*offset) += lpc; } if(lpc > 0) { crm_debug_5("Skipped %d comment chars", lpc); return TRUE; } return FALSE; } crm_data_t* parse_xml(const char *input, int *offset) { int len = 0, lpc = 0; char ch = 0; char *tag_name = NULL; char *attr_name = NULL; char *attr_value = NULL; gboolean more = TRUE; gboolean were_comments = TRUE; const char *error = NULL; const char *our_input = input; crm_data_t *new_obj = NULL; if(input == NULL) { return NULL; } if(offset != NULL) { our_input = input + (*offset); } len = strlen(our_input); while(lpc < len && were_comments) { were_comments = drop_comments(our_input, &lpc); } CRM_CHECK(our_input[lpc] == '<', return NULL); lpc++; len = get_tag_name(our_input + lpc); crm_debug_5("Tag length: %d", len); if(len < 0) { return NULL; } crm_malloc0(tag_name, len+1); strncpy(tag_name, our_input + lpc, len+1); tag_name[len] = EOS; crm_debug_4("Processing tag %s", tag_name); new_obj = ha_msg_new(1); ha_msg_add(new_obj, F_XML_TAGNAME, tag_name); lpc += len; for(; more && error == NULL && lpc < (ssize_t)strlen(input); lpc++) { ch = our_input[lpc]; crm_debug_5("Processing char %c[%d]", ch, lpc); switch(ch) { case 0: error = "unexpected EOS"; break; case '/': if(our_input[lpc+1] == '>') { more = FALSE; } break; case '<': if(our_input[lpc+1] != '/') { crm_data_t *child = NULL; gboolean any_comments = FALSE; do { were_comments = drop_comments(our_input, &lpc); any_comments = any_comments || were_comments; } while(lpc < len && were_comments); if(any_comments) { lpc--; break; } crm_debug_4("Start parsing child..."); child = parse_xml(our_input, &lpc); if(child == NULL) { error = "error parsing child"; } else { ha_msg_addstruct_compress( new_obj, crm_element_name(child), child); crm_debug_4("Finished parsing child: %s", crm_element_name(child)); ha_msg_del(child); if(our_input[lpc] == '<') { /* lpc is about to get incrimented * make sure we process the '<' that * we're currently looking at */ lpc--; } /* lpc++; /\* > *\/ */ } } else { lpc += 2; /* *\/ */ if(our_input[lpc] != '>') { error = "clase tag cannot contain attrs"; } crm_debug_4("Finished parsing ourselves: %s", crm_element_name(new_obj)); } else { error = "Mismatching close tag"; crm_err("Expected: %s", tag_name); } } break; case '=': lpc++; /* = */ /*fall through*/ case '"': lpc++; /* " */ len = get_attr_value(our_input+lpc); if(len < 0) { error = "couldnt find attr_value"; } else { crm_malloc0(attr_value, len+1); strncpy(attr_value, our_input+lpc, len+1); attr_value[len] = EOS; lpc += len; /* lpc++; /\* " *\/ */ crm_debug_4("creating nvpair: <%s %s=\"%s\"...", tag_name, crm_str(attr_name), crm_str(attr_value)); ha_msg_add(new_obj, attr_name, attr_value); crm_free(attr_name); crm_free(attr_value); } break; case '>': case ' ': case '\t': case '\n': case '\r': break; default: len = get_attr_name(our_input+lpc); if(len < 0) { error = "couldnt find attr_name"; } else { crm_malloc0(attr_name, len+1); strncpy(attr_name, our_input+lpc, len+1); attr_name[len] = EOS; lpc += len; crm_debug_4("found attr name: %s", attr_name); lpc--; /* make sure the '=' is seen next time around */ } break; } } if(error) { crm_err("Error parsing token: %s", error); crm_err("Error at or before: %s", our_input+lpc-3); return NULL; } if(offset == NULL) { lpc++; drop_comments(our_input, &lpc); drop_whitespace(our_input, &lpc); if(lpc < (ssize_t)strlen(input)) { crm_err("Ignoring trailing characters in XML input."); crm_err("Parsed %d characters of a possible %d. Trailing text was: ...\'%20s\'", lpc, (int)strlen(input), input+lpc); } } crm_debug_4("Finished processing %s tag", tag_name); crm_free(tag_name); if(offset != NULL) { (*offset) += lpc; } return new_obj; } void log_xml_diff(unsigned int log_level, crm_data_t *diff, const char *function) { crm_data_t *added = find_xml_node(diff, "diff-added", FALSE); crm_data_t *removed = find_xml_node(diff, "diff-removed", FALSE); gboolean is_first = TRUE; xml_child_iter( removed, child, log_data_element(function, "-", log_level, 0, child, TRUE); if(is_first) { is_first = FALSE; } else { crm_log_maybe(log_level, " --- "); } ); is_first = TRUE; xml_child_iter( added, child, log_data_element(function, "+", log_level, 0, child, TRUE); if(is_first) { is_first = FALSE; } else { crm_log_maybe(log_level, " --- "); } ); } void purge_diff_markers(crm_data_t *a_node) { CRM_CHECK(a_node != NULL, return); xml_remove_prop(a_node, XML_DIFF_MARKER); xml_child_iter(a_node, child, purge_diff_markers(child); ); } gboolean apply_xml_diff(crm_data_t *old, crm_data_t *diff, crm_data_t **new) { gboolean result = TRUE; crm_data_t *added = find_xml_node(diff, "diff-added", FALSE); crm_data_t *removed = find_xml_node(diff, "diff-removed", FALSE); int root_nodes_seen = 0; CRM_CHECK(new != NULL, return FALSE); crm_debug_2("Substraction Phase"); xml_child_iter(removed, child_diff, CRM_CHECK(root_nodes_seen == 0, result = FALSE); if(root_nodes_seen == 0) { *new = subtract_xml_object(old, child_diff, NULL); } root_nodes_seen++; ); if(root_nodes_seen == 0) { *new = copy_xml(old); } else if(root_nodes_seen > 1) { crm_err("(-) Diffs cannot contain more than one change set..." " saw %d", root_nodes_seen); result = FALSE; } root_nodes_seen = 0; crm_debug_2("Addition Phase"); if(result) { xml_child_iter(added, child_diff, CRM_CHECK(root_nodes_seen == 0, result = FALSE); if(root_nodes_seen == 0) { add_xml_object(NULL, *new, child_diff); } root_nodes_seen++; ); } if(root_nodes_seen > 1) { crm_err("(+) Diffs cannot contain more than one change set..." " saw %d", root_nodes_seen); result = FALSE; } else if(result) { int lpc = 0; crm_data_t *intermediate = NULL; crm_data_t *diff_of_diff = NULL; crm_data_t *calc_added = NULL; crm_data_t *calc_removed = NULL; const char *value = NULL; const char *name = NULL; const char *version_attrs[] = { XML_ATTR_NUMUPDATES, XML_ATTR_GENERATION, XML_ATTR_GENERATION_ADMIN }; crm_debug_2("Verification Phase"); intermediate = diff_xml_object(old, *new, FALSE); calc_added = find_xml_node(intermediate, "diff-added", FALSE); calc_removed = find_xml_node(intermediate, "diff-removed", FALSE); /* add any version details to the diff so they match */ for(lpc = 0; lpc < DIMOF(version_attrs); lpc++) { name = version_attrs[lpc]; value = crm_element_value(added, name); crm_xml_add(calc_added, name, value); value = crm_element_value(removed, name); crm_xml_add(calc_removed, name, value); } diff_of_diff = diff_xml_object(intermediate, diff, TRUE); if(diff_of_diff != NULL) { crm_notice("Diff application failed!"); crm_log_xml_debug(old, "diff:old"); crm_log_xml_debug(*new, "diff:new"); log_xml_diff(LOG_DEBUG, diff_of_diff, "diff:diff_of_diff"); log_xml_diff(LOG_INFO, intermediate, "diff:actual_diff"); result = FALSE; } free_xml(diff_of_diff); free_xml(intermediate); diff_of_diff = NULL; intermediate = NULL; } if(result == FALSE) { log_xml_diff(LOG_INFO, diff, "diff:input_diff"); log_data_element("diff:input", NULL, LOG_DEBUG_2, 0, old, TRUE); /* CRM_CHECK(diff_of_diff != NULL); */ result = FALSE; } else { purge_diff_markers(*new); } return result; } crm_data_t * diff_xml_object(crm_data_t *old, crm_data_t *new, gboolean suppress) { crm_data_t *diff = NULL; crm_data_t *tmp1 = NULL; crm_data_t *added = NULL; crm_data_t *removed = NULL; tmp1 = subtract_xml_object(old, new, "removed:top"); if(tmp1 != NULL) { if(suppress && can_prune_leaf(tmp1)) { ha_msg_del(tmp1); tmp1 = NULL; } else { diff = create_xml_node(NULL, "diff"); removed = create_xml_node(diff, "diff-removed"); added = create_xml_node(diff, "diff-added"); add_node_copy(removed, tmp1); } free_xml(tmp1); } tmp1 = subtract_xml_object(new, old, "added:top"); if(tmp1 != NULL) { if(suppress && can_prune_leaf(tmp1)) { ha_msg_del(tmp1); return diff; } if(diff == NULL) { diff = create_xml_node(NULL, "diff"); } if(removed == NULL) { removed = create_xml_node(diff, "diff-removed"); } if(added == NULL) { added = create_xml_node(diff, "diff-added"); } add_node_copy(added, tmp1); free_xml(tmp1); } return diff; } gboolean can_prune_leaf(crm_data_t *xml_node) { gboolean can_prune = TRUE; /* return FALSE; */ xml_prop_iter(xml_node, prop_name, prop_value, if(safe_str_eq(prop_name, XML_ATTR_ID)) { continue; } can_prune = FALSE; ); xml_child_iter(xml_node, child, if(can_prune_leaf(child)) { cl_msg_remove_value(xml_node, child); __counter--; } else { can_prune = FALSE; } ); return can_prune; } void diff_filter_context(int context, int upper_bound, int lower_bound, crm_data_t *xml_node, crm_data_t *parent) { crm_data_t *us = NULL; crm_data_t *new_parent = parent; const char *name = crm_element_name(xml_node); CRM_CHECK(xml_node != NULL && name != NULL, return); us = create_xml_node(parent, name); xml_prop_iter(xml_node, prop_name, prop_value, lower_bound = context; crm_xml_add(us, prop_name, prop_value); ); if(lower_bound >= 0 || upper_bound >= 0) { crm_xml_add(us, XML_ATTR_ID, ID(xml_node)); new_parent = us; } else { upper_bound = in_upper_context(0, context, xml_node); if(upper_bound >= 0) { crm_xml_add(us, XML_ATTR_ID, ID(xml_node)); new_parent = us; } else { free_xml(us); us = NULL; } } xml_child_iter(us, child, diff_filter_context( context, upper_bound-1, lower_bound-1, child, new_parent); ); } int in_upper_context(int depth, int context, crm_data_t *xml_node) { gboolean has_attributes = FALSE; if(context == 0) { return 0; } xml_prop_iter(xml_node, prop_name, prop_value, has_attributes = TRUE; break; ); if(has_attributes) { return depth; } else if(depth < context) { xml_child_iter(xml_node, child, if(in_upper_context(depth+1, context, child)) { return depth; } ); } return 0; } crm_data_t * subtract_xml_object(crm_data_t *left, crm_data_t *right, const char *marker) { gboolean skip = FALSE; gboolean differences = FALSE; crm_data_t *diff = NULL; crm_data_t *child_diff = NULL; crm_data_t *right_child = NULL; const char *right_val = NULL; const char *name = NULL; const char *value = NULL; int lpc = 0; const char *filter[] = { XML_ATTR_ORIGIN, XML_DIFF_MARKER, XML_CIB_ATTR_WRITTEN, }; crm_log_xml(LOG_DEBUG_5, "left:", left); crm_log_xml(LOG_DEBUG_5, "right:", right); if(left == NULL) { return NULL; } else if(right == NULL) { crm_data_t *deleted = NULL; crm_debug_5("Processing <%s id=%s> (complete copy)", crm_element_name(left), ID(left)); deleted = copy_xml(left); crm_xml_add(deleted, XML_DIFF_MARKER, marker); return deleted; } name = crm_element_name(left); /* sanity checks */ CRM_CHECK(name != NULL, return NULL); CRM_CHECK(safe_str_eq(crm_element_name(left), crm_element_name(right)), return NULL); CRM_CHECK(safe_str_eq(ID(left), ID(right)), return NULL); diff = create_xml_node(NULL, name); /* changes to name/value pairs */ crm_debug_5("Processing <%s id=%s>", crm_str(name), ID(left)); xml_prop_iter(left, prop_name, left_value, if(safe_str_eq(prop_name, XML_ATTR_ID)) { continue; } skip = FALSE; for(lpc = 0; skip == FALSE && lpc < DIMOF(filter); lpc++){ if(safe_str_eq(prop_name, filter[lpc])) { skip = TRUE; } } if(skip) { continue; } right_val = crm_element_value(right, prop_name); if(right_val == NULL) { differences = TRUE; crm_xml_add(diff, prop_name, left_value); crm_debug_6("\t%s: %s", crm_str(prop_name), crm_str(left_value)); } else if(safe_str_eq(left_value, right_val)) { crm_debug_5("\t%s: %s (removed)", crm_str(prop_name), crm_str(left_value)); } else { differences = TRUE; crm_xml_add(diff, prop_name, left_value); crm_debug_5("\t%s: %s->%s", crm_str(prop_name), crm_str(left_value), right_val); } ); /* changes to child objects */ crm_debug_3("Processing children of <%s id=%s>",crm_str(name),ID(left)); xml_child_iter( left, left_child, right_child = find_entity( right, crm_element_name(left_child), ID(left_child)); child_diff = subtract_xml_object( left_child, right_child, marker); if(child_diff != NULL) { differences = TRUE; add_node_copy(diff, child_diff); free_xml(child_diff); } ); if(differences == FALSE) { /* check for XML_DIFF_MARKER in a child */ xml_child_iter( right, right_child, value = crm_element_value(right_child, XML_DIFF_MARKER); if(value != NULL && safe_str_eq(value, "removed:top")) { crm_debug("Found the root of the deletion: %s", name); crm_log_xml_debug(right_child, "deletion"); differences = TRUE; break; } ); } if(differences == FALSE) { free_xml(diff); crm_debug_5("\tNo changes to <%s id=%s>", crm_str(name), ID(left)); return NULL; } crm_xml_add(diff, XML_ATTR_ID, ID(left)); return diff; } int add_xml_object(crm_data_t *parent, crm_data_t *target, const crm_data_t *update) { const char *object_id = NULL; const char *object_name = NULL; crm_log_xml(LOG_DEBUG_5, "update:", update); crm_log_xml(LOG_DEBUG_5, "target:", target); CRM_CHECK(update != NULL, return 0); object_name = crm_element_name(update); object_id = ID(update); CRM_CHECK(object_name != NULL, return 0); if(target == NULL && object_id == NULL) { /* placeholder object */ target = find_xml_node(parent, object_name, FALSE); } else if(target == NULL) { target = find_entity(parent, object_name, object_id); } if(target == NULL) { target = create_xml_node(parent, object_name); CRM_CHECK(target != NULL, return 0); crm_debug_2("Added <%s%s%s/>", crm_str(object_name), object_id?" id=":"", object_id?object_id:""); } else { crm_debug_3("Found node <%s%s%s/> to update", crm_str(object_name), object_id?" id=":"", object_id?object_id:""); } copy_in_properties(target, update); xml_child_iter( update, a_child, crm_debug_4("Updating child <%s id=%s>", crm_element_name(a_child), ID(a_child)); add_xml_object(target, NULL, a_child); ); crm_debug_3("Finished with <%s id=%s>", crm_str(object_name), crm_str(object_id)); return 0; } gboolean update_xml_child(crm_data_t *child, crm_data_t *to_update) { gboolean can_update = TRUE; CRM_CHECK(child != NULL, return FALSE); CRM_CHECK(to_update != NULL, return FALSE); if(safe_str_neq(crm_element_name(to_update), crm_element_name(child))) { can_update = FALSE; } else if(safe_str_neq(ID(to_update), ID(child))) { can_update = FALSE; } else if(can_update) { crm_log_xml_debug_2(child, "Update match found..."); add_xml_object(NULL, child, to_update); } xml_child_iter( child, child_of_child, /* only update the first one */ if(can_update) { break; } can_update = update_xml_child(child_of_child, to_update); ); return can_update; } gboolean find_xml_child(crm_data_t *child, const char *tag, const char *id) { gboolean match_found = TRUE; CRM_CHECK(child != NULL, return FALSE); if(safe_str_neq(tag, crm_element_name(child))) { match_found = FALSE; } else if(safe_str_neq(id, ID(child))) { match_found = FALSE; } else if(match_found) { crm_err("Update match found for <%s id=%s.../>", tag, id); crm_log_xml_debug(child, __FUNCTION__); } xml_child_iter( child, child_of_child, /* only find the first one */ if(match_found) { break; } match_found = find_xml_child(child_of_child, tag, id); ); return match_found; } gboolean replace_xml_child(crm_data_t *parent, crm_data_t *child, crm_data_t *update, gboolean delete_only) { gboolean can_delete = FALSE; const char *right_val = NULL; CRM_CHECK(child != NULL, return FALSE); CRM_CHECK(update != NULL, return FALSE); if(safe_str_eq(ID(child), ID(update))) { can_delete = TRUE; } if(safe_str_neq(crm_element_name(update), crm_element_name(child))) { can_delete = FALSE; } if(can_delete && delete_only) { xml_prop_iter(update, prop_name, left_value, right_val = crm_element_value(child, prop_name); if(safe_str_neq(left_value, right_val)) { can_delete = FALSE; } ); } if(can_delete && parent != NULL) { crm_log_xml_debug_4(child, "Delete match found..."); if(delete_only) { cl_msg_remove_value(parent, child); } else { /* preserve the order */ cl_msg_replace_value(parent, child, update, sizeof(struct ha_msg), FT_STRUCT); } child = NULL; return TRUE; } else if(can_delete) { crm_log_xml_debug(child, "Cannot delete the search root"); can_delete = FALSE; } xml_child_iter( child, child_of_child, /* only delete the first one */ if(can_delete) { break; } can_delete = replace_xml_child(child, child_of_child, update, delete_only); ); return can_delete; } void hash2nvpair(gpointer key, gpointer value, gpointer user_data) { const char *name = key; const char *s_value = value; crm_data_t *xml_node = user_data; crm_data_t *xml_child = create_xml_node(xml_node, XML_CIB_TAG_NVPAIR); crm_xml_add(xml_child, XML_ATTR_ID, name); crm_xml_add(xml_child, XML_NVPAIR_ATTR_NAME, name); crm_xml_add(xml_child, XML_NVPAIR_ATTR_VALUE, s_value); crm_debug_3("dumped: name=%s value=%s", name, s_value); } void hash2field(gpointer key, gpointer value, gpointer user_data) { const char *name = key; const char *s_value = value; crm_data_t *xml_node = user_data; if(crm_element_value(xml_node, name) == NULL) { crm_xml_add(xml_node, name, s_value); crm_debug_3("dumped: %s=%s", name, s_value); } else { crm_debug_2("duplicate: %s=%s", name, s_value); } } void hash2metafield(gpointer key, gpointer value, gpointer user_data) { char *crm_name = NULL; if(key == NULL || value == NULL) { return; } crm_name = crm_concat(CRM_META, key, '_'); hash2field(crm_name, value, user_data); crm_free(crm_name); } #if CRM_DEPRECATED_SINCE_2_0_3 GHashTable * xml2list_202(crm_data_t *parent) { crm_data_t *nvpair_list = NULL; GHashTable *nvpair_hash = g_hash_table_new_full( g_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str); CRM_CHECK(parent != NULL, return nvpair_hash); nvpair_list = find_xml_node(parent, XML_TAG_ATTRS, FALSE); if(nvpair_list == NULL) { crm_debug("No attributes in %s", crm_element_name(parent)); crm_log_xml_debug_2( parent,"No attributes for resource op"); } xml_child_iter_filter( nvpair_list, node_iter, XML_CIB_TAG_NVPAIR, const char *key = crm_element_value( node_iter, XML_NVPAIR_ATTR_NAME); const char *value = crm_element_value( node_iter, XML_NVPAIR_ATTR_VALUE); crm_debug_2("Added %s=%s", key, value); g_hash_table_insert( nvpair_hash, crm_strdup(key), crm_strdup(value)); ); return nvpair_hash; } #endif GHashTable * xml2list(crm_data_t *parent) { crm_data_t *nvpair_list = NULL; GHashTable *nvpair_hash = g_hash_table_new_full( g_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str); CRM_CHECK(parent != NULL, return nvpair_hash); nvpair_list = find_xml_node(parent, XML_TAG_ATTRS, FALSE); if(nvpair_list == NULL) { crm_debug_2("No attributes in %s", crm_element_name(parent)); crm_log_xml_debug_2( parent,"No attributes for resource op"); } crm_log_xml_debug_3(nvpair_list, "Unpacking"); xml_prop_iter( nvpair_list, key, value, crm_debug_4("Added %s=%s", key, value); g_hash_table_insert( nvpair_hash, crm_strdup(key), crm_strdup(value)); ); return nvpair_hash; } static void assign_uuid(crm_data_t *xml_obj) { cl_uuid_t new_uuid; char *new_uuid_s = NULL; const char *tag_name = crm_element_name(xml_obj); const char *tag_id = ID(xml_obj); crm_malloc0(new_uuid_s, 38); cl_uuid_generate(&new_uuid); cl_uuid_unparse(&new_uuid, new_uuid_s); crm_warn("Updating object from <%s id=%s/> to <%s id=%s/>", tag_name, tag_id?tag_id:"__empty__", tag_name, new_uuid_s); crm_xml_add(xml_obj, XML_ATTR_ID, new_uuid_s); crm_log_xml_debug(xml_obj, "Updated object"); crm_free(new_uuid_s); } static gboolean tag_needs_id(const char *tag_name) { int lpc = 0; const char *allowed_list[] = { XML_TAG_CIB, XML_TAG_FRAGMENT, XML_CIB_TAG_NODES, XML_CIB_TAG_RESOURCES, XML_CIB_TAG_CONSTRAINTS, XML_CIB_TAG_STATUS, XML_LRM_TAG_RESOURCES, "configuration", "crm_config", "attributes", "operations", "diff", "diff-added", "diff-removed", }; for(lpc = 0; lpc < DIMOF(allowed_list); lpc++) { if(safe_str_eq(tag_name, allowed_list[lpc])) { /* this tag is never meant to have an ID */ return FALSE; } } return TRUE; } static gboolean non_unique_allowed(const char *tag_name) { int lpc = 0; const char *non_unique[] = { XML_LRM_TAG_RESOURCE, XML_LRM_TAG_RSC_OP, }; for(lpc = 0; lpc < DIMOF(non_unique); lpc++) { if(safe_str_eq(tag_name, non_unique[lpc])) { /* this tag can have a non-unique ID */ return TRUE; } } return FALSE; } gboolean do_id_check(crm_data_t *xml_obj, GHashTable *id_hash, gboolean silent_add, gboolean silent_rename) { char *lookup_id = NULL; gboolean modified = FALSE; char *old_id = NULL; const char *tag_id = NULL; const char *tag_name = NULL; const char *lookup_value = NULL; gboolean created_hash = FALSE; if(xml_obj == NULL) { return FALSE; } else if(id_hash == NULL) { created_hash = TRUE; id_hash = g_hash_table_new_full( g_str_hash, g_str_equal, g_hash_destroy_str, g_hash_destroy_str); } xml_child_iter( xml_obj, xml_child, if(do_id_check(xml_child, id_hash, silent_add, silent_rename)) { modified = TRUE; } ); tag_id = ID(xml_obj); tag_name = TYPE(xml_obj); if(tag_needs_id(tag_name) == FALSE) { crm_debug_5("%s does not need an ID", tag_name); goto finish_id_check; } else if(tag_id != NULL && non_unique_allowed(tag_name)){ crm_debug_5("%s does not need top be unique", tag_name); goto finish_id_check; } lookup_id = NULL; if(tag_id != NULL) { lookup_id = crm_concat(tag_name, tag_id, '-'); lookup_value = g_hash_table_lookup(id_hash, lookup_id); if(lookup_value == NULL) { g_hash_table_insert(id_hash, lookup_id, crm_strdup(tag_id)); goto finish_id_check; } modified |= (!silent_rename); } else { modified |= (!silent_add); } if(tag_id != NULL) { old_id = crm_strdup(tag_id); } crm_free(lookup_id); assign_uuid(xml_obj); tag_id = ID(xml_obj); if(modified == FALSE) { /* nothing to report */ } else if(old_id != NULL && safe_str_neq(tag_id, old_id)) { crm_err("\"id\" collision detected... Multiple '%s' entries" " with id=\"%s\", assigned id=\"%s\"", tag_name, old_id, tag_id); } else if(old_id == NULL && tag_id != NULL) { crm_err("Detected <%s.../> object without an ID. Assigned: %s", tag_name, tag_id); } crm_free(old_id); finish_id_check: if(created_hash) { g_hash_table_destroy(id_hash); } return modified; } typedef struct name_value_s { const char *name; const void *value; } name_value_t; static gint sort_pairs(gconstpointer a, gconstpointer b) { const name_value_t *pair_a = a; const name_value_t *pair_b = b; if(a == NULL && b == NULL) { return 0; } else if(a == NULL) { return 1; } else if(b == NULL) { return -1; } if(pair_a->name == NULL && pair_b->name == NULL) { return 0; } else if(pair_a->name == NULL) { return 1; } else if(pair_b->name == NULL) { return -1; } return strcmp(pair_a->name, pair_b->name); } static void dump_pair(gpointer data, gpointer user_data) { name_value_t *pair = data; crm_data_t *parent = user_data; crm_xml_add(parent, pair->name, pair->value); } static void free_pair(gpointer data, gpointer user_data) { name_value_t *pair = data; crm_free(pair); } static crm_data_t * sorted_xml(const crm_data_t *input) { GListPtr sorted = NULL; GListPtr unsorted = NULL; name_value_t *pair = NULL; crm_data_t *result = NULL; const char *name = crm_element_name(input); CRM_CHECK(input != NULL, return NULL); name = crm_element_name(input); CRM_CHECK(name != NULL, return NULL); result = create_xml_node(NULL, name); xml_prop_iter(input, p_name, p_value, crm_malloc0(pair, sizeof(name_value_t)); pair->name = p_name; pair->value = p_value; unsorted = g_list_prepend(unsorted, pair); pair = NULL; ); sorted = g_list_sort(unsorted, sort_pairs); g_list_foreach(sorted, dump_pair, result); g_list_foreach(sorted, free_pair, NULL); g_list_free(sorted); return result; } /* "c048eae664dba840e1d2060f00299e9d" */ char * calculate_xml_digest(crm_data_t *input, gboolean sort) { int i = 0; int digest_len = 16; char *digest = NULL; unsigned char *raw_digest = NULL; crm_data_t *sorted = NULL; char *buffer = NULL; if(sort) { sorted = sorted_xml(input); } else { sorted = copy_xml(input); } buffer = dump_xml_formatted(sorted); CRM_CHECK(buffer != NULL && strlen(buffer) > 0, free_xml(sorted); return NULL); crm_malloc0(digest, (2 * digest_len + 1)); crm_malloc0(raw_digest, (digest_len + 1)); MD5((unsigned char *)buffer, strlen(buffer), raw_digest); for(i = 0; i < digest_len; i++) { sprintf(digest+(2*i), "%02x", raw_digest[i]); } crm_debug_2("Digest %s: %s\n", digest, buffer); crm_log_xml(LOG_DEBUG_3, "digest:source", sorted); crm_free(buffer); crm_free(raw_digest); free_xml(sorted); return digest; } #if HAVE_LIBXML2 # include # include #endif gboolean validate_with_dtd( crm_data_t *xml_blob, gboolean to_logs, const char *dtd_file) { gboolean valid = TRUE; #if HAVE_LIBXML2 char *buffer = NULL; xmlDocPtr doc = NULL; xmlDtdPtr dtd = NULL; xmlValidCtxtPtr cvp = NULL; CRM_CHECK(xml_blob != NULL, return FALSE); CRM_CHECK(dtd_file != NULL, return FALSE); buffer = dump_xml_formatted(xml_blob); CRM_CHECK(buffer != NULL, return FALSE); doc = xmlParseMemory(buffer, strlen(buffer)); CRM_CHECK(doc != NULL, crm_free(buffer); return FALSE); dtd = xmlParseDTD(NULL, (const xmlChar *)dtd_file); CRM_CHECK(dtd != NULL, crm_free(buffer); return TRUE); cvp = xmlNewValidCtxt(); CRM_CHECK(cvp != NULL, crm_free(buffer); return TRUE); if(to_logs) { cvp->userData = (void *) LOG_ERR; cvp->error = (xmlValidityErrorFunc) cl_log; cvp->warning = (xmlValidityWarningFunc) cl_log; } else { cvp->userData = (void *) stderr; cvp->error = (xmlValidityErrorFunc) fprintf; cvp->warning = (xmlValidityWarningFunc) fprintf; } if (!xmlValidateDtd(cvp, doc, dtd)) { crm_err("CIB does not validate against %s", dtd_file); valid = FALSE; crm_log_xml_debug(xml_blob, "invalid"); } xmlFreeValidCtxt(cvp); xmlFreeDtd(dtd); xmlFreeDoc(doc); crm_free(buffer); #endif return valid; }