Page MenuHomeClusterLabs Projects

No OneTemporary

diff --git a/crm/pengine/native.c b/crm/pengine/native.c
index f69ac1e513..2dbf38f6df 100644
--- a/crm/pengine/native.c
+++ b/crm/pengine/native.c
@@ -1,1917 +1,1911 @@
-/* $Id: native.c,v 1.158 2006/07/18 06:19:33 andrew Exp $ */
+/* $Id: native.c,v 1.159 2006/07/27 10:01:15 andrew Exp $ */
/*
* Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
*
* 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 <portability.h>
#include <pengine.h>
#include <crm/pengine/rules.h>
#include <lib/crm/pengine/utils.h>
#include <crm/msg_xml.h>
#include <allocate.h>
#include <utils.h>
#define DELETE_THEN_REFRESH 1
extern color_t *add_color(resource_t *rh_resource, color_t *color);
gboolean native_choose_color(resource_t *lh_resource, color_t *no_color);
void native_update_node_weight(resource_t *rsc, rsc_to_node_t *cons,
node_t *cons_node, GListPtr nodes);
void native_rsc_colocation_rh_must(resource_t *rsc_lh, gboolean update_lh,
resource_t *rsc_rh, gboolean update_rh);
void native_rsc_colocation_rh_mustnot(resource_t *rsc_lh, gboolean update_lh,
resource_t *rsc_rh, gboolean update_rh);
void filter_nodes(resource_t *rsc);
int num_allowed_nodes4color(color_t *color);
void create_notifications(resource_t *rsc, pe_working_set_t *data_set);
void Recurring(resource_t *rsc, action_t *start, node_t *node,
pe_working_set_t *data_set);
void pe_pre_notify(
resource_t *rsc, node_t *node, action_t *op,
notify_data_t *n_data, pe_working_set_t *data_set);
void pe_post_notify(
resource_t *rsc, node_t *node, action_t *op,
notify_data_t *n_data, pe_working_set_t *data_set);
gboolean DeleteRsc(resource_t *rsc, node_t *node, pe_working_set_t *data_set);
void NoRoleChange(resource_t *rsc, node_t *current, node_t *next, pe_working_set_t *data_set);
gboolean StopRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
gboolean StartRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
extern gboolean DemoteRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
gboolean PromoteRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
gboolean RoleError(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
gboolean NullOp(resource_t *rsc, node_t *next, pe_working_set_t *data_set);
enum rsc_role_e rsc_state_matrix[RSC_ROLE_MAX][RSC_ROLE_MAX] = {
/* Current State */
/* Next State: Unknown Stopped Started Slave Master */
/* Unknown */ { RSC_ROLE_UNKNOWN, RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, },
/* Stopped */ { RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, RSC_ROLE_STARTED, RSC_ROLE_SLAVE, RSC_ROLE_SLAVE, },
/* Started */ { RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, RSC_ROLE_STARTED, RSC_ROLE_SLAVE, RSC_ROLE_MASTER, },
/* Slave */ { RSC_ROLE_STOPPED, RSC_ROLE_STOPPED, RSC_ROLE_UNKNOWN, RSC_ROLE_SLAVE, RSC_ROLE_MASTER, },
/* Master */ { RSC_ROLE_STOPPED, RSC_ROLE_SLAVE, RSC_ROLE_UNKNOWN, RSC_ROLE_SLAVE, RSC_ROLE_MASTER, },
};
gboolean (*rsc_action_matrix[RSC_ROLE_MAX][RSC_ROLE_MAX])(resource_t*,node_t*,pe_working_set_t*) = {
/* Current State */
/* Next State: Unknown Stopped Started Slave Master */
/* Unknown */ { RoleError, StopRsc, RoleError, RoleError, RoleError, },
/* Stopped */ { RoleError, NullOp, StartRsc, StartRsc, RoleError, },
/* Started */ { RoleError, StopRsc, NullOp, NullOp, PromoteRsc, },
/* Slave */ { RoleError, StopRsc, RoleError, NullOp, PromoteRsc, },
/* Master */ { RoleError, RoleError, RoleError, DemoteRsc, NullOp, },
};
typedef struct native_variant_data_s
{
/* GListPtr allowed_nodes; /\* node_t* *\/ */
} native_variant_data_t;
#define get_native_variant_data(data, rsc) \
CRM_ASSERT(rsc->variant == pe_native); \
CRM_ASSERT(rsc->variant_opaque != NULL); \
data = (native_variant_data_t *)rsc->variant_opaque;
void native_set_cmds(resource_t *rsc)
{
}
int native_num_allowed_nodes(resource_t *rsc)
{
int num_nodes = 0;
if(rsc->next_role == RSC_ROLE_STOPPED) {
return 0;
}
if(rsc->color) {
crm_debug_4("Colored case");
num_nodes = num_allowed_nodes4color(rsc->color);
} else if(rsc->candidate_colors) {
/* TODO: sort colors first */
color_t *color = g_list_nth_data(rsc->candidate_colors, 0);
crm_debug_4("Candidate colors case");
num_nodes = num_allowed_nodes4color(color);
} else {
crm_debug_4("Default case");
slist_iter(
this_node, node_t, rsc->allowed_nodes, lpc,
crm_debug_3("Rsc %s Checking %s: %d",
rsc->id, this_node->details->uname,
this_node->weight);
if(this_node->details->shutdown
|| this_node->details->online == FALSE) {
this_node->weight = -INFINITY;
}
if(this_node->weight < 0) {
continue;
/* } else if(this_node->details->unclean) { */
/* continue; */
}
num_nodes++;
);
}
crm_debug_2("Resource %s can run on %d nodes", rsc->id, num_nodes);
return num_nodes;
}
int num_allowed_nodes4color(color_t *color)
{
int num_nodes = 0;
if(color->details->pending == FALSE) {
if(color->details->chosen_node) {
return 1;
}
return 0;
}
slist_iter(
this_node, node_t, color->details->candidate_nodes, lpc,
crm_debug_3("Checking %s: %d",
this_node->details->uname, this_node->weight);
if(this_node->details->shutdown
|| this_node->details->online == FALSE) {
this_node->weight = -INFINITY;
}
if(this_node->weight < 0) {
continue;
/* } else if(this_node->details->unclean) { */
/* continue; */
}
num_nodes++;
);
return num_nodes;
}
color_t *
native_color(resource_t *rsc, pe_working_set_t *data_set)
{
color_t *new_color = NULL;
print_resource(LOG_DEBUG_2, "Coloring: ", rsc, FALSE);
if(rsc->provisional == FALSE) {
return rsc->color;
}
rsc->rsc_cons = g_list_sort(
rsc->rsc_cons, sort_cons_strength);
/*------ Pre-processing */
slist_iter(
constraint, rsc_colocation_t, rsc->rsc_cons, lpc,
crm_debug_3("Pre-Processing %s", constraint->id);
rsc->cmds->rsc_colocation_lh(
rsc, constraint->rsc_rh, constraint);
);
if( native_choose_color(rsc, data_set->no_color) ) {
crm_debug_3("Colored resource %s with color %d",
rsc->id, rsc->color->id);
new_color = rsc->color;
} else {
if(rsc->allowed_nodes != NULL) {
/* filter out nodes with a negative weight */
filter_nodes(rsc);
new_color = create_color(data_set, rsc,
rsc->allowed_nodes);
native_assign_color(rsc, new_color);
crm_debug_3("Colored resource %s with new color %d",
rsc->id, rsc->color->id);
}
if(new_color == NULL) {
pe_warn("Resource %s cannot run anywhere", rsc->id);
print_resource(LOG_ERR, "No color: ", rsc, FALSE);
native_assign_color(rsc, data_set->no_color);
new_color = data_set->no_color;
}
}
rsc->provisional = FALSE;
/*------ Post-processing */
#if 1
slist_iter(
constraint, rsc_colocation_t, rsc->rsc_cons, lpc,
crm_debug_3("Post-Processing %s", constraint->id);
rsc->cmds->rsc_colocation_lh(
rsc, constraint->rsc_rh, constraint);
);
#endif
print_resource(LOG_DEBUG_3, "Colored ", rsc, TRUE);
return new_color;
}
void
Recurring(resource_t *rsc, action_t *start, node_t *node,
pe_working_set_t *data_set)
{
char *key = NULL;
const char *name = NULL;
const char *value = NULL;
const char *interval = NULL;
const char *node_uname = NULL;
int interval_ms = 0;
action_t *mon = NULL;
gboolean is_optional = TRUE;
GListPtr possible_matches = NULL;
crm_debug_2("Creating recurring actions for %s", rsc->id);
if(node != NULL) {
node_uname = node->details->uname;
}
xml_child_iter_filter(
rsc->ops_xml, operation, "op",
is_optional = TRUE;
name = crm_element_value(operation, "name");
interval = crm_element_value(operation, XML_LRM_ATTR_INTERVAL);
interval_ms = crm_get_msec(interval);
if(interval_ms <= 0) {
continue;
}
value = crm_element_value(operation, "disabled");
if(crm_is_true(value)) {
continue;
}
key = generate_op_key(rsc->id, name, interval_ms);
if(start != NULL) {
crm_debug_3("Marking %s %s due to %s",
key, start->optional?"optional":"manditory",
start->uuid);
is_optional = start->optional;
} else {
crm_debug_2("Marking %s optional", key);
is_optional = TRUE;
}
/* start a monitor for an already active resource */
possible_matches = find_actions_exact(rsc->actions, key, node);
if(possible_matches == NULL) {
is_optional = FALSE;
crm_debug_3("Marking %s manditory: not active", key);
}
value = crm_element_value(operation, "role");
if((rsc->next_role == RSC_ROLE_MASTER && value == NULL)
|| (value != NULL && text2role(value) != rsc->next_role)) {
int log_level = LOG_DEBUG_2;
const char *foo = "Ignoring";
if(is_optional) {
log_level = LOG_INFO;
foo = "Cancelling";
/* its running : cancel it */
mon = custom_action(
rsc, crm_strdup(key), CRMD_ACTION_CANCEL, node,
FALSE, TRUE, data_set);
mon->task = CRMD_ACTION_CANCEL;
add_hash_param(mon->meta, XML_LRM_ATTR_INTERVAL, interval);
add_hash_param(mon->meta, XML_LRM_ATTR_TASK, name);
custom_action_order(
rsc, NULL, mon,
rsc, promote_key(rsc), NULL,
pe_ordering_optional, data_set);
mon = NULL;
}
crm_log_maybe(log_level, "%s action %s (%s vs. %s)",
foo , key, value?value:role2text(RSC_ROLE_SLAVE),
role2text(rsc->next_role));
crm_free(key);
key = NULL;
continue;
}
mon = custom_action(rsc, key, name, node,
is_optional, TRUE, data_set);
if(is_optional) {
crm_debug("%s\t %s (optional)",
crm_str(node_uname), mon->uuid);
}
if(start == NULL || start->runnable == FALSE) {
crm_debug("%s\t %s (cancelled : start un-runnable)",
crm_str(node_uname), mon->uuid);
mon->runnable = FALSE;
} else if(node == NULL
|| node->details->online == FALSE
|| node->details->unclean) {
crm_debug("%s\t %s (cancelled : no node available)",
crm_str(node_uname), mon->uuid);
mon->runnable = FALSE;
} else if(mon->optional == FALSE) {
crm_notice("%s\t %s", crm_str(node_uname),mon->uuid);
}
custom_action_order(rsc, start_key(rsc), NULL,
NULL, crm_strdup(key), mon,
pe_ordering_restart, data_set);
if(rsc->next_role == RSC_ROLE_MASTER) {
char *running_master = crm_itoa(EXECRA_RUNNING_MASTER);
add_hash_param(mon->meta, XML_ATTR_TE_TARGET_RC, running_master);
custom_action_order(
rsc, promote_key(rsc), NULL,
rsc, NULL, mon,
pe_ordering_optional, data_set);
crm_free(running_master);
}
);
}
void native_create_actions(resource_t *rsc, pe_working_set_t *data_set)
{
action_t *start = NULL;
node_t *chosen = NULL;
enum rsc_role_e role = RSC_ROLE_UNKNOWN;
enum rsc_role_e next_role = RSC_ROLE_UNKNOWN;
CRM_CHECK(rsc->color != NULL, return);
chosen = rsc->color->details->chosen_node;
if(chosen != NULL) {
CRM_CHECK(rsc->next_role != RSC_ROLE_UNKNOWN, rsc->next_role = RSC_ROLE_STARTED);
}
unpack_instance_attributes(
rsc->xml, XML_TAG_ATTR_SETS,
chosen?chosen->details->attrs:NULL,
rsc->parameters, NULL, data_set->now);
crm_debug("%s: %s->%s", rsc->id,
role2text(rsc->role), role2text(rsc->next_role));
if(g_list_length(rsc->running_on) > 1) {
if(rsc->recovery_type == recovery_stop_start) {
pe_proc_err("Attempting recovery of resource %s", rsc->id);
StopRsc(rsc, NULL, data_set);
rsc->role = RSC_ROLE_STOPPED;
}
} else if(rsc->running_on != NULL) {
node_t *current = rsc->running_on->data;
NoRoleChange(rsc, current, chosen, data_set);
} else if(rsc->role == RSC_ROLE_STOPPED && rsc->next_role == RSC_ROLE_STOPPED) {
char *key = start_key(rsc);
GListPtr possible_matches = find_actions(rsc->actions, key, NULL);
slist_iter(
action, action_t, possible_matches, lpc,
action->optional = TRUE;
/* action->pseudo = TRUE; */
);
crm_debug_2("Stopping a stopped resource");
crm_free(key);
return;
}
role = rsc->role;
while(role != rsc->next_role) {
next_role = rsc_state_matrix[role][rsc->next_role];
crm_debug_2("Executing: %s->%s (%s)",
role2text(role), role2text(next_role), rsc->id);
if(rsc_action_matrix[role][next_role](
rsc, chosen, data_set) == FALSE) {
break;
}
role = next_role;
}
if(rsc->next_role != RSC_ROLE_STOPPED && rsc->is_managed) {
start = start_action(rsc, chosen, TRUE);
Recurring(rsc, start, chosen, data_set);
}
}
void native_internal_constraints(resource_t *rsc, pe_working_set_t *data_set)
{
order_restart(rsc);
custom_action_order(rsc, demote_key(rsc), NULL,
rsc, stop_key(rsc), NULL,
pe_ordering_manditory, data_set);
custom_action_order(rsc, start_key(rsc), NULL,
rsc, promote_key(rsc), NULL,
pe_ordering_optional, data_set);
custom_action_order(
rsc, stop_key(rsc), NULL, rsc, delete_key(rsc), NULL,
pe_ordering_optional, data_set);
custom_action_order(
rsc, delete_key(rsc), NULL, rsc, start_key(rsc), NULL,
pe_ordering_manditory, data_set);
}
void native_rsc_colocation_lh(
resource_t *rsc_lh, resource_t *rsc_rh, rsc_colocation_t *constraint)
{
if(rsc_lh == NULL) {
pe_err("rsc_lh was NULL for %s", constraint->id);
return;
} else if(constraint->rsc_rh == NULL) {
pe_err("rsc_rh was NULL for %s", constraint->id);
return;
}
crm_debug_2("Processing colocation constraint between %s and %s",
rsc_lh->id, rsc_rh->id);
rsc_rh->cmds->rsc_colocation_rh(rsc_lh, rsc_rh, constraint);
}
static gboolean
filter_colocation_constraint(
resource_t *rsc_lh, resource_t *rsc_rh, rsc_colocation_t *constraint)
{
if(constraint->strength == pecs_ignore
|| constraint->strength == pecs_startstop){
crm_debug_4("Skipping constraint type %d", constraint->strength);
return FALSE;
}
if(constraint->state_lh != NULL
&& text2role(constraint->state_lh) != rsc_lh->next_role) {
crm_debug_4("RH: Skipping constraint: \"%s\" state filter",
constraint->state_rh);
return FALSE;
}
if(constraint->state_rh != NULL
&& text2role(constraint->state_rh) != rsc_rh->next_role) {
crm_debug_4("RH: Skipping constraint: \"%s\" state filter",
constraint->state_rh);
return FALSE;
}
return TRUE;
}
void native_rsc_colocation_rh(
resource_t *rsc_lh, resource_t *rsc_rh, rsc_colocation_t *constraint)
{
gboolean do_check = FALSE;
gboolean update_lh = FALSE;
gboolean update_rh = FALSE;
crm_debug_2("%sColocating %s with %s (%s)",
constraint->strength == pecs_must?"":"Anti-",
rsc_lh->id, rsc_rh->id, constraint->id);
if(filter_colocation_constraint(rsc_lh, rsc_rh, constraint) == FALSE) {
return;
}
if(rsc_lh->provisional && rsc_rh->provisional) {
if(constraint->strength == pecs_must) {
/* update effective_priorities */
crm_debug_3("Priority update");
native_rsc_colocation_rh_must(
rsc_lh, update_lh, rsc_rh, update_rh);
} else {
/* nothing */
crm_debug_4(
"Skipping constraint, both sides provisional");
}
return;
} else if( (!rsc_lh->provisional) && (!rsc_rh->provisional)
&& (!rsc_lh->color->details->pending)
&& (!rsc_rh->color->details->pending) ) {
/* error check */
do_check = TRUE;
if(rsc_lh->effective_priority < rsc_rh->effective_priority) {
update_lh = TRUE;
} else if(rsc_lh->effective_priority
> rsc_rh->effective_priority) {
update_rh = TRUE;
} else {
update_lh = TRUE;
update_rh = TRUE;
}
} else if(rsc_lh->provisional == FALSE
&& rsc_lh->color->details->pending == FALSE) {
/* update _them_ : postproc color version */
update_rh = TRUE;
} else if(rsc_rh->provisional == FALSE
&& rsc_rh->color->details->pending == FALSE) {
/* update _us_ : postproc color alt version */
update_lh = TRUE;
} else if(rsc_lh->provisional == FALSE) {
/* update _them_ : preproc version */
update_rh = TRUE;
} else if(rsc_rh->provisional == FALSE) {
/* update _us_ : postproc version */
update_lh = TRUE;
} else {
pe_warn("Un-expected combination of inputs");
return;
}
if(update_lh) {
crm_debug_4("Updating LHS");
}
if(update_rh) {
crm_debug_4("Updating RHS");
}
if(do_check) {
if(native_constraint_violated(
rsc_lh, rsc_rh, constraint) == FALSE) {
crm_debug_4("Constraint satisfied");
return;
}
/* else constraint cant be satisified */
pe_warn("Constraint %s could not be satisfied",
constraint->id);
if(update_lh) {
pe_warn("Marking resource %s unrunnable as a result",
rsc_lh->id);
resource_location(rsc_lh, NULL, -INFINITY,
constraint->id, NULL);
if(rsc_lh->color) {
crm_free(rsc_lh->color->details->chosen_node);
rsc_lh->color->details->chosen_node = NULL;
pe_free_shallow_adv(
rsc_lh->color->details->candidate_nodes,
TRUE);
rsc_lh->color->details->candidate_nodes = NULL;
}
}
if(update_rh) {
pe_warn("Marking resource %s unrunnable as a result",
rsc_rh->id);
resource_location(rsc_rh, NULL, -INFINITY,
constraint->id, NULL);
if(rsc_rh->color) {
crm_free(rsc_rh->color->details->chosen_node);
rsc_rh->color->details->chosen_node = NULL;
pe_free_shallow_adv(
rsc_rh->color->details->candidate_nodes,
TRUE);
rsc_rh->color->details->candidate_nodes = NULL;
}
}
}
if(constraint->strength == pecs_must) {
native_rsc_colocation_rh_must(
rsc_lh, update_lh, rsc_rh, update_rh);
return;
} else if(constraint->strength != pecs_must_not) {
/* unknown type */
pe_err("Unknown constraint type %d", constraint->strength);
return;
}
native_rsc_colocation_rh_mustnot(rsc_lh, update_lh,rsc_rh, update_rh);
}
void native_rsc_order_lh(resource_t *lh_rsc, order_constraint_t *order)
{
GListPtr lh_actions = NULL;
action_t *lh_action = order->lh_action;
crm_debug_3("Processing LH of ordering constraint %d", order->id);
if(lh_action != NULL) {
lh_actions = g_list_append(NULL, lh_action);
} else if(lh_action == NULL && lh_rsc != NULL) {
lh_actions = find_actions(
lh_rsc->actions, order->lh_action_task, NULL);
if(lh_actions == NULL) {
crm_debug_4("No LH-Side (%s/%s) found for constraint",
lh_rsc->id, order->lh_action_task);
if(lh_rsc->next_role == RSC_ROLE_STOPPED) {
resource_t *rh_rsc = order->rh_rsc;
if(order->rh_action && order->type == pe_ordering_restart) {
crm_debug("No LH(%s/%s) found for RH(%s)...",
lh_rsc->id, order->lh_action_task,
order->rh_action->uuid);
order->rh_action->runnable = FALSE;
return;
} else if(rh_rsc != NULL) {
crm_debug("No LH(%s/%s) found for RH(%s/%s)...",
lh_rsc->id, order->lh_action_task,
rh_rsc->id, order->rh_action_task);
rh_rsc->cmds->rsc_order_rh(NULL, rh_rsc, order);
return;
}
}
return;
}
} else {
pe_warn("No LH-Side (%s) specified for constraint",
order->lh_action_task);
if(order->rh_rsc != NULL) {
crm_debug_4("RH-Side was: (%s/%s)",
order->rh_rsc->id,
order->rh_action_task);
} else if(order->rh_action != NULL
&& order->rh_action->rsc != NULL) {
crm_debug_4("RH-Side was: (%s/%s)",
order->rh_action->rsc->id,
order->rh_action_task);
} else if(order->rh_action != NULL) {
crm_debug_4("RH-Side was: %s",
order->rh_action_task);
} else {
crm_debug_4("RH-Side was NULL");
}
return;
}
slist_iter(
lh_action_iter, action_t, lh_actions, lpc,
resource_t *rh_rsc = order->rh_rsc;
if(rh_rsc == NULL && order->rh_action) {
rh_rsc = order->rh_action->rsc;
}
if(rh_rsc) {
rh_rsc->cmds->rsc_order_rh(
lh_action_iter, rh_rsc, order);
} else if(order->rh_action) {
order_actions(lh_action_iter, order->rh_action, order->type);
}
);
pe_free_shallow_adv(lh_actions, FALSE);
}
void native_rsc_order_rh(
action_t *lh_action, resource_t *rsc, order_constraint_t *order)
{
GListPtr rh_actions = NULL;
action_t *rh_action = order->rh_action;
crm_debug_3("Processing RH of ordering constraint %d", order->id);
if(rh_action != NULL) {
rh_actions = g_list_append(NULL, rh_action);
} else if(rh_action == NULL && rsc != NULL) {
rh_actions = find_actions(
rsc->actions, order->rh_action_task, NULL);
if(rh_actions == NULL) {
crm_debug_4("No RH-Side (%s/%s) found for constraint..."
" ignoring",
rsc->id, order->rh_action_task);
crm_debug_4("LH-Side was: (%s/%s)",
order->lh_rsc?order->lh_rsc->id:order->lh_action?order->lh_action->rsc->id:"<NULL>",
order->lh_action_task);
return;
}
} else if(rh_action == NULL) {
crm_debug_4("No RH-Side (%s) specified for constraint..."
" ignoring", order->rh_action_task);
crm_debug_4("LH-Side was: (%s/%s)",
order->lh_rsc?order->lh_rsc->id:order->lh_action?order->lh_action->rsc->id:"<NULL>",
order->lh_action_task);
return;
}
slist_iter(
rh_action_iter, action_t, rh_actions, lpc,
if(lh_action) {
order_actions(lh_action, rh_action_iter, order->type);
} else if(order->type == pe_ordering_restart) {
rh_action_iter->runnable = FALSE;
}
);
pe_free_shallow_adv(rh_actions, FALSE);
}
void native_rsc_location(resource_t *rsc, rsc_to_node_t *constraint)
{
GListPtr or_list;
crm_debug_2("Applying %s (%s) to %s", constraint->id,
role2text(constraint->role_filter), rsc->id);
/* take "lifetime" into account */
if(constraint == NULL) {
pe_err("Constraint is NULL");
return;
} else if(rsc == NULL) {
pe_err("LHS of rsc_to_node (%s) is NULL", constraint->id);
return;
} else if(constraint->role_filter > 0
&& constraint->role_filter != rsc->next_role) {
crm_debug("Constraint (%s) is not active (role : %s)",
constraint->id, role2text(constraint->role_filter));
return;
} else if(is_active(constraint) == FALSE) {
crm_debug_2("Constraint (%s) is not active", constraint->id);
return;
}
if(constraint->node_list_rh == NULL) {
crm_debug_2("RHS of constraint %s is NULL", constraint->id);
return;
}
or_list = node_list_or(
rsc->allowed_nodes, constraint->node_list_rh, FALSE);
pe_free_shallow(rsc->allowed_nodes);
rsc->allowed_nodes = or_list;
slist_iter(node, node_t, or_list, lpc,
crm_debug_3("%s + %s : %d", rsc->id, node->details->uname, node->weight);
);
}
void native_expand(resource_t *rsc, pe_working_set_t *data_set)
{
slist_iter(
action, action_t, rsc->actions, lpc,
crm_debug_4("processing action %d for rsc=%s",
action->id, rsc->id);
graph_element_from_action(action, data_set);
);
}
void native_rsc_colocation_rh_must(resource_t *rsc_lh, gboolean update_lh,
resource_t *rsc_rh, gboolean update_rh)
{
gboolean do_merge = FALSE;
GListPtr old_list = NULL;
GListPtr merged_node_list = NULL;
int max_pri = rsc_lh->effective_priority;
if(max_pri < rsc_rh->effective_priority) {
max_pri = rsc_rh->effective_priority;
}
rsc_lh->effective_priority = max_pri;
rsc_rh->effective_priority = max_pri;
crm_debug_2("Colocating %s with %s."
" Update LHS: %s, Update RHS: %s",
rsc_lh->id, rsc_rh->id,
update_lh?"true":"false", update_rh?"true":"false");
if(rsc_lh->color && rsc_rh->color) {
do_merge = TRUE;
merged_node_list = node_list_and(
rsc_lh->color->details->candidate_nodes,
rsc_rh->color->details->candidate_nodes, TRUE);
} else if(rsc_lh->color) {
do_merge = TRUE;
merged_node_list = node_list_and(
rsc_lh->color->details->candidate_nodes,
rsc_rh->allowed_nodes, TRUE);
} else if(rsc_rh->color) {
do_merge = TRUE;
merged_node_list = node_list_and(
rsc_lh->allowed_nodes,
rsc_rh->color->details->candidate_nodes, TRUE);
}
if(update_lh && rsc_rh != rsc_lh) {
CRM_CHECK(rsc_lh->color != rsc_rh->color, return);
crm_free(rsc_lh->color);
rsc_lh->runnable = rsc_rh->runnable;
rsc_lh->provisional = rsc_rh->provisional;
CRM_CHECK(rsc_rh->color != NULL, return);
native_assign_color(rsc_lh, rsc_rh->color);
}
if(update_rh && rsc_rh != rsc_lh) {
CRM_CHECK(rsc_lh->color != rsc_rh->color, return);
crm_free(rsc_rh->color);
rsc_rh->runnable = rsc_lh->runnable;
rsc_rh->provisional = rsc_lh->provisional;
CRM_CHECK(rsc_lh->color != NULL, return);
native_assign_color(rsc_rh, rsc_lh->color);
}
if((update_rh || update_lh) && do_merge) {
crm_debug_4("Merging candidate nodes");
old_list = rsc_rh->color->details->candidate_nodes;
rsc_rh->color->details->candidate_nodes = merged_node_list;
pe_free_shallow(old_list);
}
crm_debug_4("Finished processing pecs_must constraint");
}
void native_rsc_colocation_rh_mustnot(resource_t *rsc_lh, gboolean update_lh,
resource_t *rsc_rh, gboolean update_rh)
{
color_t *color_lh = NULL;
color_t *color_rh = NULL;
crm_debug_4("Processing pecs_must_not constraint");
/* pecs_must_not */
color_rh = rsc_rh->color;
color_lh = rsc_lh->color;
if(update_lh) {
if(rsc_lh->provisional && color_rh != NULL) {
color_lh = add_color(rsc_lh, color_rh);
color_lh->local_weight = -INFINITY;
crm_debug_2("LH: Removed color %d from resource %s",
color_lh->id, rsc_lh->id);
crm_action_debug_3(
print_color("Removed LH", color_lh, FALSE));
print_resource(LOG_DEBUG_3, "Modified LH", rsc_lh,TRUE);
} else if(rsc_lh->provisional) {
} else if(color_lh && color_lh->details->pending) {
node_t *node_lh = NULL;
node_lh = pe_find_node_id(
color_lh->details->candidate_nodes,
safe_val5(NULL, color_rh, details,
chosen_node, details, id));
if(node_lh != NULL) {
node_lh->weight = -INFINITY;
crm_debug_2("LH: Removed node %s from color %d",
node_lh->details->uname, color_lh->id);
crm_action_debug_3(
print_node("Removed LH", node_lh, FALSE));
crm_action_debug_3(
print_color("Modified LH", color_lh, FALSE));
}
} else {
/* error, rsc marked as unrunnable above */
pe_warn("lh else");
}
}
/* in case anything was modified */
color_rh = rsc_rh->color;
color_lh = rsc_lh->color;
if(update_rh) {
if(rsc_rh->provisional && color_lh != NULL) {
color_rh = add_color(rsc_lh, color_lh);
color_rh->local_weight = -INFINITY;
crm_debug_2("RH: Removed color %d from resource %s",
color_rh->id, rsc_rh->id);
crm_action_debug_3(
print_color("Removed RH", color_rh, FALSE));
print_resource(LOG_DEBUG_3, "Modified RH", rsc_rh, TRUE);
} else if(rsc_rh->provisional) {
} else if(color_rh && color_rh->details->pending) {
node_t *node_rh = NULL;
node_rh = pe_find_node_id(
color_rh->details->candidate_nodes,
safe_val5(NULL, color_lh, details,
chosen_node, details, id));
if(node_rh != NULL) {
node_rh->weight = -INFINITY;
crm_debug_2("RH: Removed node %s from color %d",
node_rh->details->uname, color_rh->id);
crm_action_debug_3(
print_node("Removed RH", node_rh, FALSE));
crm_action_debug_3(
print_color("Modified RH", color_rh, FALSE));
}
} else {
/* error, rsc marked as unrunnable above */
pe_warn("rh else");
}
}
}
void
native_agent_constraints(resource_t *rsc)
{
}
gboolean
native_choose_color(resource_t *rsc, color_t *no_color)
{
GListPtr sorted_colors = NULL;
if(rsc->runnable == FALSE) {
native_assign_color(rsc, no_color);
}
if(rsc->provisional == FALSE) {
return !rsc->provisional;
}
sorted_colors = g_list_sort(
rsc->candidate_colors, sort_color_weight);
rsc->candidate_colors = sorted_colors;
crm_debug_2("Choose a color from %d possibilities",
g_list_length(sorted_colors));
slist_iter(
this_color, color_t, rsc->candidate_colors, lpc,
GListPtr intersection = NULL;
GListPtr minus = NULL;
int len = 0;
if(this_color == NULL) {
pe_err("color was NULL");
continue;
} else if(this_color->local_weight < 0) {
/* no valid color available */
crm_debug("no valid color available");
break;
} else if(rsc->effective_priority
< this_color->details->highest_priority) {
minus = node_list_minus(
this_color->details->candidate_nodes,
rsc->allowed_nodes, TRUE);
len = g_list_length(minus);
pe_free_shallow(minus);
} else {
intersection = node_list_and(
this_color->details->candidate_nodes,
rsc->allowed_nodes, TRUE);
len = g_list_length(intersection);
pe_free_shallow(intersection);
}
if(len > 0) {
crm_debug("Assigning color to %s", rsc->id);
native_assign_color(rsc, this_color);
break;
}
);
return !rsc->provisional;
}
void
native_assign_color(resource_t *rsc, color_t *color)
{
color_t *local_color = NULL;
rsc->provisional = FALSE;
if(rsc->color != NULL) {
/* TODO: check its a clone */
CRM_CHECK(color->id != rsc->color->id, return);
rsc->color->details->allocated_resources =
g_list_remove(rsc->color->details->allocated_resources, rsc);
(rsc->color->details->num_resources)--;
rsc->candidate_colors =
g_list_remove(rsc->candidate_colors, rsc->color);
crm_free(rsc->color);
rsc->color = NULL;
}
local_color = add_color(rsc, color);
CRM_CHECK(local_color != NULL, return);
local_color->details->allocated_resources =
g_list_append(local_color->details->allocated_resources,rsc);
if(rsc->variant == pe_native) {
GListPtr old_list = NULL;
GListPtr intersection = NULL;
(local_color->details->num_resources)++;
rsc->color = copy_color(local_color);
crm_debug_3("Created intersection for color %d",
local_color->id);
intersection = node_list_and(
local_color->details->candidate_nodes,
rsc->allowed_nodes, FALSE);
old_list = local_color->details->candidate_nodes;
pe_free_shallow(old_list);
local_color->details->candidate_nodes = intersection;
}
crm_debug_2("Colored resource %s with color %d",
rsc->id, local_color->id);
return;
}
void
native_update_node_weight(resource_t *rsc, rsc_to_node_t *cons,
node_t *cons_node, GListPtr nodes)
{
node_t *node_rh = NULL;
CRM_CHECK(cons_node != NULL, return);
node_rh = pe_find_node_id(
rsc->allowed_nodes, cons_node->details->id);
if(node_rh == NULL) {
pe_err("Node not found - adding %s to %s",
cons_node->details->id, rsc->id);
node_rh = node_copy(cons_node);
rsc->allowed_nodes = g_list_append(
rsc->allowed_nodes, node_rh);
node_rh = pe_find_node_id(
rsc->allowed_nodes, cons_node->details->id);
CRM_CHECK(node_rh != NULL, return);
return;
}
CRM_CHECK(node_rh != NULL, return);
if(node_rh == NULL) {
pe_err("Node not found - cant update");
return;
}
if(node_rh->weight >= INFINITY && cons_node->weight <= -INFINITY) {
pe_err("Constraint \"%s\" mixes +/- INFINITY (%s)",
cons->id, rsc->id);
} else if(node_rh->details->shutdown == TRUE
|| node_rh->details->online == FALSE
|| node_rh->details->unclean == TRUE) {
} else if(node_rh->weight <= -INFINITY && cons_node->weight >= INFINITY) {
pe_err("Constraint \"%s\" mixes +/- INFINITY (%s)",
cons->id, rsc->id);
}
if(node_rh->fixed) {
/* warning */
crm_debug_2("Constraint %s is irrelevant as the"
" weight of node %s is fixed as %d (%s).",
cons->id, node_rh->details->uname,
node_rh->weight, rsc->id);
return;
}
crm_debug_3("Constraint %s, node %s, rsc %s: %d + %d",
cons->id, node_rh->details->uname, rsc->id,
node_rh->weight, cons_node->weight);
node_rh->weight = merge_weights(node_rh->weight, cons_node->weight);
if(node_rh->weight <= -INFINITY) {
crm_debug_3("Constraint %s (-INFINITY): node %s weight %d (%s).",
cons->id, node_rh->details->uname,
node_rh->weight, rsc->id);
} else if(node_rh->weight >= INFINITY) {
crm_debug_3("Constraint %s (+INFINITY): node %s weight %d (%s).",
cons->id, node_rh->details->uname,
node_rh->weight, rsc->id);
} else {
crm_debug_3("Constraint %s (%d): node %s weight %d (%s).",
cons->id, cons_node->weight, node_rh->details->uname,
node_rh->weight, rsc->id);
}
if(node_rh->weight < 0) {
node_rh->fixed = TRUE;
}
crm_action_debug_3(print_node("Updated", node_rh, FALSE));
return;
}
gboolean
native_constraint_violated(
resource_t *rsc_lh, resource_t *rsc_rh, rsc_colocation_t *constraint)
{
GListPtr result = NULL;
color_t *color_lh = NULL;
color_t *color_rh = NULL;
GListPtr candidate_nodes_lh = NULL;
GListPtr candidate_nodes_rh = NULL;
gboolean matched = FALSE;
color_lh = rsc_lh->color;
color_rh = rsc_rh->color;
if(constraint->strength == pecs_must_not) {
matched = TRUE;
}
if(rsc_lh->provisional || rsc_rh->provisional) {
return FALSE;
}
if(color_lh == NULL && color_rh == NULL) {
return matched;
} else if(color_lh == NULL || color_rh == NULL) {
return !matched;
} else if(color_lh->details->pending
&& color_rh->details->pending) {
candidate_nodes_lh = color_lh->details->candidate_nodes;
candidate_nodes_rh = color_rh->details->candidate_nodes;
} else if(color_lh->details->pending == FALSE
&& color_rh->details->pending == FALSE) {
if(color_lh->details->chosen_node == NULL
&& color_rh->details->chosen_node == NULL) {
return matched;
} else if(color_lh->details->chosen_node == NULL
|| color_rh->details->chosen_node == NULL) {
return !matched;
} else if(safe_str_eq(
color_lh->details->chosen_node->details->id,
color_rh->details->chosen_node->details->id)) {
return matched;
}
return !matched;
} else if(color_lh->details->pending) {
candidate_nodes_lh = color_lh->details->candidate_nodes;
candidate_nodes_rh = g_list_append(
NULL, color_rh->details->chosen_node);
} else if(color_rh->details->pending) {
candidate_nodes_rh = color_rh->details->candidate_nodes;
candidate_nodes_lh = g_list_append(
NULL, color_lh->details->chosen_node);
}
result = node_list_and(candidate_nodes_lh, candidate_nodes_rh, TRUE);
if(g_list_length(result) == 0 && constraint->strength == pecs_must) {
/* free result */
return TRUE;
}
return FALSE;
}
/*
* Remove any nodes with a -ve weight
*/
void
filter_nodes(resource_t *rsc)
{
print_resource(LOG_DEBUG_3, "Filtering nodes for: ", rsc, FALSE);
slist_iter(
node, node_t, rsc->allowed_nodes, lpc,
if(node == NULL) {
pe_err("Invalid NULL node");
} else if(node->weight < 0.0
|| node->details->shutdown
|| node->details->online == FALSE
|| node->details->type == node_ping) {
crm_action_debug_3(print_node("Removing", node, FALSE));
rsc->allowed_nodes =
g_list_remove(rsc->allowed_nodes, node);
crm_free(node);
lpc = -1; /* restart the loop */
}
);
}
void
create_notifications(resource_t *rsc, pe_working_set_t *data_set)
{
if(rsc->notify == FALSE) {
return;
}
/* slist_iter( */
/* action, action_t, rsc->actions, lpc, */
/* ); */
}
static void
register_activity(resource_t *rsc, enum action_tasks task, node_t *node, notify_data_t *n_data)
{
notify_entry_t *entry = NULL;
crm_malloc0(entry, sizeof(notify_entry_t));
entry->rsc = rsc;
entry->node = node;
switch(task) {
case start_rsc:
n_data->start = g_list_append(n_data->start, entry);
break;
case stop_rsc:
n_data->stop = g_list_append(n_data->stop, entry);
break;
case action_promote:
n_data->promote = g_list_append(n_data->promote, entry);
break;
case action_demote:
n_data->demote = g_list_append(n_data->demote, entry);
break;
default:
crm_err("Unsupported notify action: %s", task2text(task));
break;
}
}
static void
register_state(resource_t *rsc, node_t *on_node, notify_data_t *n_data)
{
notify_entry_t *entry = NULL;
crm_malloc0(entry, sizeof(notify_entry_t));
entry->rsc = rsc;
entry->node = on_node;
crm_debug_2("%s state: %s", rsc->id, role2text(rsc->next_role));
switch(rsc->next_role) {
case RSC_ROLE_STOPPED:
/* n_data->inactive = g_list_append(n_data->inactive, entry); */
crm_free(entry);
break;
case RSC_ROLE_STARTED:
n_data->active = g_list_append(n_data->active, entry);
break;
case RSC_ROLE_SLAVE:
n_data->slave = g_list_append(n_data->slave, entry);
break;
case RSC_ROLE_MASTER:
n_data->master = g_list_append(n_data->master, entry);
break;
default:
crm_err("Unsupported notify role");
break;
}
}
void
native_create_notify_element(resource_t *rsc, action_t *op,
notify_data_t *n_data, pe_working_set_t *data_set)
{
node_t *next_node = NULL;
gboolean registered = FALSE;
char *op_key = NULL;
GListPtr possible_matches = NULL;
enum action_tasks task = text2task(op->task);
if(op->pre_notify == NULL || op->post_notify == NULL) {
/* no notifications required */
crm_debug_4("No notificaitons required for %s", op->task);
return;
}
if(rsc->color != NULL) {
next_node = rsc->color->details->chosen_node;
}
op_key = generate_op_key(rsc->id, op->task, 0);
possible_matches = find_actions(rsc->actions, op_key, NULL);
crm_debug_2("Creating notificaitons for: %s (%s->%s)",
op->uuid, role2text(rsc->role), role2text(rsc->next_role));
if(rsc->role == rsc->next_role) {
register_state(rsc, next_node, n_data);
}
slist_iter(
local_op, action_t, possible_matches, lpc,
local_op->notify_keys = n_data->keys;
if(local_op->optional == FALSE) {
registered = TRUE;
register_activity(rsc, task, local_op->node, n_data);
}
);
/* stop / demote */
if(rsc->role != RSC_ROLE_STOPPED) {
if(task == stop_rsc || task == action_demote) {
slist_iter(
current_node, node_t, rsc->running_on, lpc,
pe_pre_notify(rsc, current_node, op, n_data, data_set);
if(task == action_demote || registered == FALSE) {
pe_post_notify(rsc, current_node, op, n_data, data_set);
}
);
}
}
/* start / promote */
if(rsc->next_role != RSC_ROLE_STOPPED) {
CRM_CHECK(next_node != NULL,;);
if(next_node == NULL) {
pe_proc_err("next role: %s", role2text(rsc->next_role));
} else if(task == start_rsc || task == action_promote) {
if(task != start_rsc || registered == FALSE) {
pe_pre_notify(rsc, next_node, op, n_data, data_set);
}
pe_post_notify(rsc, next_node, op, n_data, data_set);
}
}
crm_free(op_key);
pe_free_shallow_adv(possible_matches, FALSE);
}
static void dup_attr(gpointer key, gpointer value, gpointer user_data)
{
char *meta_key = crm_concat(CRM_META, key, '_');
g_hash_table_replace(user_data, meta_key, crm_strdup(value));
}
static action_t *
pe_notify(resource_t *rsc, node_t *node, action_t *op, action_t *confirm,
notify_data_t *n_data, pe_working_set_t *data_set)
{
char *key = NULL;
action_t *trigger = NULL;
const char *value = NULL;
const char *task = NULL;
if(op == NULL || confirm == NULL) {
crm_debug_2("Op=%p confirm=%p", op, confirm);
return NULL;
}
CRM_CHECK(node != NULL, return NULL);
if(node->details->online == FALSE) {
crm_info("Skipping notification for %s", rsc->id);
return NULL;
}
value = g_hash_table_lookup(op->meta, "notify_type");
task = g_hash_table_lookup(op->meta, "notify_operation");
crm_debug_2("Creating actions for %s: %s (%s-%s)",
op->uuid, rsc->id, value, task);
key = generate_notify_key(rsc->id, value, task);
trigger = custom_action(rsc, key, op->task, node,
op->optional, TRUE, data_set);
g_hash_table_foreach(op->meta, dup_attr, trigger->extra);
trigger->notify_keys = n_data->keys;
/* pseudo_notify before notify */
crm_debug_3("Ordering %s before %s (%d->%d)",
op->uuid, trigger->uuid, trigger->id, op->id);
order_actions(op, trigger, pe_ordering_manditory);
value = g_hash_table_lookup(op->meta, "notify_confirm");
if(crm_is_true(value)) {
/* notify before pseudo_notified */
crm_debug_3("Ordering %s before %s (%d->%d)",
trigger->uuid, confirm->uuid,
confirm->id, trigger->id);
order_actions(trigger, confirm, pe_ordering_manditory);
}
return trigger;
}
void
pe_pre_notify(resource_t *rsc, node_t *node, action_t *op,
notify_data_t *n_data, pe_working_set_t *data_set)
{
crm_debug_2("%s: %s", rsc->id, op->uuid);
pe_notify(rsc, node, op->pre_notify, op->pre_notified,
n_data, data_set);
}
void
pe_post_notify(resource_t *rsc, node_t *node, action_t *op,
notify_data_t *n_data, pe_working_set_t *data_set)
{
action_t *notify = NULL;
CRM_CHECK(op != NULL, return);
CRM_CHECK(rsc != NULL, return);
crm_debug_2("%s: %s", rsc->id, op->uuid);
notify = pe_notify(rsc, node, op->post_notify, op->post_notified,
n_data, data_set);
if(notify != NULL) {
notify->priority = INFINITY;
}
notify = op->post_notified;
if(notify != NULL) {
notify->priority = INFINITY;
slist_iter(
mon, action_t, rsc->actions, lpc,
const char *interval = g_hash_table_lookup(mon->meta, "interval");
if(interval == NULL || safe_str_eq(interval, "0")) {
crm_debug_3("Skipping %s: interval", mon->uuid);
continue;
} else if(safe_str_eq(mon->task, "cancel")) {
crm_debug_3("Skipping %s: cancel", mon->uuid);
continue;
}
order_actions(notify, mon, pe_ordering_optional);
);
}
}
void
NoRoleChange(resource_t *rsc, node_t *current, node_t *next,
pe_working_set_t *data_set)
{
action_t *start = NULL;
action_t *stop = NULL;
GListPtr possible_matches = NULL;
crm_debug("Executing: %s (role=%s)",rsc->id, role2text(rsc->next_role));
if(current == NULL || next == NULL) {
return;
}
/* use StartRsc/StopRsc */
if(safe_str_neq(current->details->id, next->details->id)) {
crm_notice("Move resource %s\t(%s -> %s)", rsc->id,
current->details->uname, next->details->uname);
stop = stop_action(rsc, current, FALSE);
start = start_action(rsc, next, FALSE);
possible_matches = find_recurring_actions(rsc->actions, next);
slist_iter(match, action_t, possible_matches, lpc,
if(match->optional == FALSE) {
crm_err("Found bad recurring action: %s",
match->uuid);
match->optional = TRUE;
}
);
if(data_set->remove_after_stop) {
DeleteRsc(rsc, current, data_set);
}
} else {
if(rsc->failed) {
crm_notice("Recover resource %s\t(%s)",
rsc->id, next->details->uname);
stop = stop_action(rsc, current, FALSE);
start = start_action(rsc, next, FALSE);
/* /\* make the restart required *\/ */
/* order_stop_start(rsc, rsc, pe_ordering_manditory); */
} else if(rsc->start_pending) {
start = start_action(rsc, next, TRUE);
if(start->runnable) {
/* wait for StartRsc() to be called */
rsc->role = RSC_ROLE_STOPPED;
} else {
/* wait for StopRsc() to be called */
rsc->next_role = RSC_ROLE_STOPPED;
}
} else {
stop = stop_action(rsc, current, TRUE);
start = start_action(rsc, next, TRUE);
stop->optional = start->optional;
if(start->runnable == FALSE) {
rsc->next_role = RSC_ROLE_STOPPED;
} else if(start->optional) {
crm_notice("Leave resource %s\t(%s)",
rsc->id, next->details->uname);
} else {
crm_notice("Restart resource %s\t(%s)",
rsc->id, next->details->uname);
}
}
}
}
gboolean
StopRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
action_t *stop = NULL;
crm_debug_2("Executing: %s", rsc->id);
slist_iter(
current, node_t, rsc->running_on, lpc,
crm_notice(" %s\tStop %s", current->details->uname, rsc->id);
stop = stop_action(rsc, current, FALSE);
if(data_set->remove_after_stop) {
DeleteRsc(rsc, current, data_set);
}
);
return TRUE;
}
gboolean
StartRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
action_t *start = NULL;
crm_debug_2("Executing: %s", rsc->id);
start = start_action(rsc, next, TRUE);
if(start->runnable) {
crm_notice(" %s\tStart %s", next->details->uname, rsc->id);
start->optional = FALSE;
}
return TRUE;
}
gboolean
PromoteRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
char *key = NULL;
gboolean runnable = TRUE;
GListPtr action_list = NULL;
crm_debug_2("Executing: %s", rsc->id);
CRM_CHECK(rsc->next_role == RSC_ROLE_MASTER, return FALSE);
key = start_key(rsc);
action_list = find_actions_exact(rsc->actions, key, next);
crm_free(key);
slist_iter(start, action_t, action_list, lpc,
if(start->runnable == FALSE) {
runnable = FALSE;
}
);
if(runnable) {
promote_action(rsc, next, FALSE);
crm_notice("%s\tPromote %s", next->details->uname, rsc->id);
return TRUE;
}
crm_debug("%s\tPromote %s (canceled)", next->details->uname, rsc->id);
key = promote_key(rsc);
action_list = find_actions_exact(rsc->actions, key, next);
crm_free(key);
slist_iter(promote, action_t, action_list, lpc,
promote->runnable = FALSE;
);
return TRUE;
}
gboolean
DemoteRsc(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
crm_debug_2("Executing: %s", rsc->id);
/* CRM_CHECK(rsc->next_role == RSC_ROLE_SLAVE, return FALSE); */
slist_iter(
current, node_t, rsc->running_on, lpc,
crm_notice("%s\tDeomote %s", current->details->uname, rsc->id);
demote_action(rsc, current, FALSE);
);
return TRUE;
}
gboolean
RoleError(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
crm_debug("Executing: %s", rsc->id);
CRM_CHECK(FALSE, return FALSE);
return FALSE;
}
gboolean
NullOp(resource_t *rsc, node_t *next, pe_working_set_t *data_set)
{
crm_debug("Executing: %s", rsc->id);
return FALSE;
}
gboolean
native_create_probe(resource_t *rsc, node_t *node, action_t *complete,
gboolean force, pe_working_set_t *data_set)
{
char *key = NULL;
char *target_rc = NULL;
action_t *probe = NULL;
node_t *running = NULL;
CRM_CHECK(node != NULL, return FALSE);
if(rsc->orphan) {
crm_debug_2("Skipping orphan: %s", rsc->id);
return FALSE;
}
running = pe_find_node_id(rsc->known_on, node->details->id);
if(force == FALSE && running != NULL) {
/* we already know the status of the resource on this node */
crm_debug_3("Skipping active: %s", rsc->id);
return FALSE;
}
key = generate_op_key(rsc->id, CRMD_ACTION_STATUS, 0);
probe = custom_action(rsc, key, CRMD_ACTION_STATUS, node,
FALSE, TRUE, data_set);
probe->priority = INFINITY;
running = pe_find_node_id(rsc->running_on, node->details->id);
if(running == NULL) {
target_rc = crm_itoa(EXECRA_NOT_RUNNING);
add_hash_param(probe->meta, XML_ATTR_TE_TARGET_RC, target_rc);
crm_free(target_rc);
}
crm_notice("%s: Created probe for %s", node->details->uname, rsc->id);
custom_action_order(rsc, NULL, probe, rsc, NULL, complete,
pe_ordering_manditory, data_set);
return TRUE;
}
static void
native_start_constraints(
resource_t *rsc, action_t *stonith_op, gboolean is_stonith,
pe_working_set_t *data_set)
{
gboolean is_unprotected = FALSE;
gboolean run_unprotected = TRUE;
if(is_stonith) {
char *key = start_key(rsc);
crm_debug_2("Ordering %s action before stonith events", key);
custom_action_order(
rsc, key, NULL,
NULL, crm_strdup(CRM_OP_FENCE), stonith_op,
pe_ordering_optional, data_set);
} else {
slist_iter(action, action_t, rsc->actions, lpc2,
if(action->needs != rsc_req_stonith) {
crm_debug_3("%s doesnt need to wait for stonith events", action->uuid);
continue;
}
crm_debug_2("Ordering %s after stonith events", action->uuid);
if(stonith_op != NULL) {
custom_action_order(
NULL, crm_strdup(CRM_OP_FENCE), stonith_op,
rsc, NULL, action,
pe_ordering_manditory, data_set);
} else if(run_unprotected == FALSE) {
/* mark the start unrunnable */
action->runnable = FALSE;
} else {
is_unprotected = TRUE;
}
);
}
if(is_unprotected) {
pe_err("SHARED RESOURCE %s IS NOT PROTECTED:"
" Stonith disabled", rsc->id);
}
}
static void
native_stop_constraints(
resource_t *rsc, action_t *stonith_op, gboolean is_stonith,
pe_working_set_t *data_set)
{
char *key = NULL;
GListPtr action_list = NULL;
node_t *node = stonith_op->node;
key = stop_key(rsc);
action_list = find_actions(rsc->actions, key, node);
crm_free(key);
/* add the stonith OP as a stop pre-req and the mark the stop
* as a pseudo op - since its now redundant
*/
slist_iter(
action, action_t, action_list, lpc2,
if(node->details->online == FALSE || rsc->failed) {
resource_t *parent = NULL;
crm_warn("Stop of failed resource %s is"
" implict after %s is fenced",
rsc->id, node->details->uname);
/* the stop would never complete and is
* now implied by the stonith operation
*/
action->pseudo = TRUE;
action->runnable = TRUE;
if(is_stonith) {
/* do nothing */
- } else if(action->optional) {
- /* does this case ever happen? */
+ } else {
custom_action_order(
NULL, crm_strdup(CRM_OP_FENCE),stonith_op,
rsc, start_key(rsc), NULL,
pe_ordering_manditory, data_set);
- } else {
- custom_action_order(
- NULL, crm_strdup(CRM_OP_FENCE),stonith_op,
- rsc, NULL, action,
- pe_ordering_manditory, data_set);
}
/* find the top-most resource */
parent = rsc->parent;
while(parent != NULL && parent->parent != NULL) {
parent = parent->parent;
}
if(parent) {
crm_info("Re-creating actions for %s",
parent->id);
parent->cmds->create_actions(parent, data_set);
}
} else if(is_stonith == FALSE) {
crm_info("Moving healthy resource %s"
" off %s before fencing",
rsc->id, node->details->uname);
/* stop healthy resources before the
* stonith op
*/
custom_action_order(
rsc, stop_key(rsc), NULL,
NULL,crm_strdup(CRM_OP_FENCE),stonith_op,
pe_ordering_manditory, data_set);
}
);
key = demote_key(rsc);
action_list = find_actions(rsc->actions, key, node);
crm_free(key);
slist_iter(
action, action_t, action_list, lpc2,
if(node->details->online == FALSE || rsc->failed) {
crm_info("Demote of failed resource %s is"
" implict after %s is fenced",
rsc->id, node->details->uname);
/* the stop would never complete and is
* now implied by the stonith operation
*/
action->pseudo = TRUE;
action->runnable = TRUE;
if(is_stonith == FALSE) {
custom_action_order(
NULL, crm_strdup(CRM_OP_FENCE), stonith_op,
rsc, demote_key(rsc), NULL,
pe_ordering_manditory, data_set);
}
}
);
}
void
native_stonith_ordering(
resource_t *rsc, action_t *stonith_op, pe_working_set_t *data_set)
{
gboolean is_stonith = FALSE;
const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS);
if(rsc->is_managed == FALSE) {
crm_debug_3("Skipping fencing constraints for unmanaged resource: %s", rsc->id);
return;
}
if(stonith_op != NULL && safe_str_eq(class, "stonith")) {
is_stonith = TRUE;
}
/* Start constraints */
native_start_constraints(rsc, stonith_op, is_stonith, data_set);
/* Stop constraints */
native_stop_constraints(rsc, stonith_op, is_stonith, data_set);
}
diff --git a/crm/pengine/regression.sh b/crm/pengine/regression.sh
index cee0381259..ef713a6099 100755
--- a/crm/pengine/regression.sh
+++ b/crm/pengine/regression.sh
@@ -1,221 +1,222 @@
#!/bin/bash
# Copyright (C) 2004 Andrew Beekhof <andrew@beekhof.net>
#
# 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
#
. regression.core.sh
create_mode="true"
echo Generating test outputs for these tests...
echo ""
echo Done.
echo ""
echo Performing the following tests...
create_mode="false"
echo ""
do_test simple1 "Offline "
do_test simple2 "Start "
do_test simple3 "Start 2 "
do_test simple4 "Start Failed"
do_test simple6 "Stop Start "
do_test simple7 "Shutdown "
#do_test simple8 "Stonith "
#do_test simple9 "Lower version"
#do_test simple10 "Higher version"
do_test simple11 "Priority (ne)"
do_test simple12 "Priority (eq)"
do_test simple8 "Stickiness"
echo ""
do_test params-0 "Params: No change"
do_test params-1 "Params: Changed"
do_test params-2 "Params: Resource definition"
echo ""
do_test orphan-0 "Orphan ignore"
do_test orphan-1 "Orphan stop"
echo ""
do_test target-0 "Target Role : baseline"
do_test target-1 "Target Role : test"
echo ""
do_test date-1 "Dates" -d "2005-020"
do_test probe-0 "Probe (anon clone)"
do_test probe-1 "Pending Probe"
do_test standby "Standby"
do_test comments "Comments"
echo ""
do_test master-0 "Stopped -> Slave"
do_test master-1 "Stopped -> Promote"
do_test master-2 "Stopped -> Promote : notify"
do_test master-3 "Stopped -> Promote : master location"
do_test master-4 "Started -> Promote : master location"
do_test master-5 "Promoted -> Promoted"
do_test master-6 "Promoted -> Promoted (2)"
do_test master-7 "Promoted -> Fenced"
do_test master-8 "Promoted -> Fenced -> Moved"
do_test master-9 "Stopped + Promotable + No quorum"
do_test master-10 "Stopped -> Promotable : notify with monitor"
echo ""
do_test rsc_dep1 "Must not "
do_test rsc_dep3 "Must "
do_test rsc_dep5 "Must not 3 "
do_test rsc_dep7 "Must 3 "
do_test rsc_dep10 "Must (but cant)"
do_test rsc_dep2 "Must (running) "
do_test rsc_dep8 "Must (running : alt) "
do_test rsc_dep4 "Must (running + move)"
echo ""
do_test order1 "Order start 1 "
do_test order2 "Order start 2 "
do_test order3 "Order stop "
do_test order4 "Order (multiple) "
do_test order5 "Order (move) "
do_test order6 "Order (move w/ restart) "
do_test order7 "Order (manditory) "
#echo ""
#do_test agent1 "version: lt (empty)"
#do_test agent2 "version: eq "
#do_test agent3 "version: gt "
echo ""
do_test attrs1 "string: eq (and) "
do_test attrs2 "string: lt / gt (and)"
do_test attrs3 "string: ne (or) "
do_test attrs4 "string: exists "
do_test attrs5 "string: not_exists "
do_test attrs6 "is_dc: true "
do_test attrs7 "is_dc: false "
do_test attrs8 "score_attribute "
echo ""
do_test mon-rsc-1 "Schedule Monitor - start"
do_test mon-rsc-2 "Schedule Monitor - move "
do_test mon-rsc-3 "Schedule Monitor - pending start "
do_test mon-rsc-4 "Schedule Monitor - move/pending start"
echo ""
do_test rec-rsc-0 "Resource Recover - no start "
do_test rec-rsc-1 "Resource Recover - start "
do_test rec-rsc-2 "Resource Recover - monitor "
do_test rec-rsc-3 "Resource Recover - stop - ignore"
do_test rec-rsc-4 "Resource Recover - stop - block "
do_test rec-rsc-5 "Resource Recover - stop - fence "
do_test rec-rsc-6 "Resource Recover - multiple - restart"
do_test rec-rsc-7 "Resource Recover - multiple - stop "
do_test rec-rsc-8 "Resource Recover - multiple - block "
echo ""
do_test quorum-1 "No quorum - ignore"
do_test quorum-2 "No quorum - freeze"
do_test quorum-3 "No quorum - stop "
do_test quorum-4 "No quorum - start anyway"
do_test quorum-5 "No quorum - start anyway (group)"
do_test quorum-6 "No quorum - start anyway (clone)"
echo ""
do_test rec-node-1 "Node Recover - Startup - no fence"
do_test rec-node-2 "Node Recover - Startup - fence "
do_test rec-node-3 "Node Recover - HA down - no fence"
do_test rec-node-4 "Node Recover - HA down - fence "
do_test rec-node-5 "Node Recover - CRM down - no fence"
do_test rec-node-6 "Node Recover - CRM down - fence "
do_test rec-node-7 "Node Recover - no quorum - ignore "
do_test rec-node-8 "Node Recover - no quorum - freeze "
do_test rec-node-9 "Node Recover - no quorum - stop "
do_test rec-node-10 "Node Recover - no quorum - stop w/fence"
do_test rec-node-11 "Node Recover - CRM down w/ group - fence "
do_test rec-node-12 "Node Recover - nothing active - fence "
do_test rec-node-13 "Node Recover - failed resource + shutdown - fence "
do_test rec-node-14 "Serialize all stonith's"
echo ""
do_test multi1 "Multiple Active (stop/start)"
#echo ""
#do_test complex1 "Complex "
echo ""
do_test group1 "Group "
do_test group2 "Group + Native "
do_test group3 "Group + Group "
do_test group4 "Group + Native (nothing)"
do_test group5 "Group + Native (move) "
do_test group6 "Group + Group (move) "
do_test group7 "Group colocation"
do_test group13 "Group colocation (cant run)"
do_test group8 "Group anti-colocation"
do_test group9 "Group recovery"
do_test group10 "Group partial recovery"
do_test group11 "Group target_role"
echo ""
do_test inc0 "Incarnation start "
do_test inc1 "Incarnation start order "
do_test inc2 "Incarnation silent restart, stop, move "
do_test inc3 "Inter-incarnation ordering, silent restart, stop, move"
do_test inc4 "Inter-incarnation ordering, silent restart, stop, move (ordered)"
do_test inc5 "Inter-incarnation ordering, silent restart, stop, move (restart 1)"
do_test inc6 "Inter-incarnation ordering, silent restart, stop, move (restart 2)"
do_test inc7 "Clone colocation"
do_test inc8 "Clone anti-colocation"
do_test inc9 "Non-unique clone"
do_test inc10 "Non-unique clone (stop)"
echo ""
do_test managed-0 "Managed (reference)"
do_test managed-1 "Not managed - down "
do_test managed-2 "Not managed - up "
echo ""
do_test interleave-0 "Interleave (reference)"
do_test interleave-1 "coloc - not interleaved"
do_test interleave-2 "coloc - interleaved "
do_test interleave-3 "coloc - interleaved (2)"
echo ""
do_test notify-0 "Notify reference"
do_test notify-1 "Notify simple"
do_test notify-2 "Notify simple, confirm"
do_test notify-3 "Notify move, confirm"
#do_test notify-2 "Notify - 764"
echo ""
-do_test 594 "Bugzilla 594"
-do_test 662 "Bugzilla 662"
-do_test 696 "Bugzilla 696"
-do_test 726 "Bugzilla 726"
-do_test 735 "Bugzilla 735"
-do_test 764 "Bugzilla 764"
-do_test 797 "Bugzilla 797"
-do_test 829 "Bugzilla 829"
-do_test 994 "Bugzilla 994"
+do_test 594 "OSDL #594"
+do_test 662 "OSDL #662"
+do_test 696 "OSDL #696"
+do_test 726 "OSDL #726"
+do_test 735 "OSDL #735"
+do_test 764 "OSDL #764"
+do_test 797 "OSDL #797"
+do_test 829 "OSDL #829"
+do_test 994 "OSDL #994"
do_test 1360 "OSDL #1360 - Clone stickiness"
do_test unrunnable-1 "Unrunnable"
+do_test stonith-0 "Stonith loop"
echo ""
test_results
diff --git a/crm/pengine/testcases/829.dot b/crm/pengine/testcases/829.dot
index cb1acb063f..4ef481a46a 100644
--- a/crm/pengine/testcases/829.dot
+++ b/crm/pengine/testcases/829.dot
@@ -1,58 +1,58 @@
digraph "g" {
size = "30,30"
"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" ]
"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" ]
"child_DoFencing:0_stop_0 c001n02" [ style=bold color="green" 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" ]
"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]
-"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]
+"stonith c001n02" -> "rsc_c001n02_start_0 c001n03" [ style = bold]
"rsc_c001n02_start_0 c001n03" -> "rsc_c001n02_monitor_5000 c001n03" [ style = bold]
"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n02" [ style = bold]
"child_DoFencing:0_stop_0 c001n02" -> "DoFencing_stopped_0" [ style = bold]
"DoFencing_stop_0" -> "DoFencing_stopped_0" [ style = bold]
}
diff --git a/crm/pengine/testcases/829.exp b/crm/pengine/testcases/829.exp
index df9d0c38e2..f37a1f9d36 100644
--- a/crm/pengine/testcases/829.exp
+++ b/crm/pengine/testcases/829.exp
@@ -1,336 +1,335 @@
<transition_graph global_timeout="3m" transition_id="0">
<synapse id="0" priority="1000000">
<action_set>
<rsc_op id="15" operation="monitor" operation_key="DcIPaddr_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.10" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="1" priority="1000000">
<action_set>
<rsc_op id="22" operation="monitor" operation_key="DcIPaddr_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.10" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="2" priority="1000000">
<action_set>
<rsc_op id="16" operation="monitor" operation_key="rsc_c001n08_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n08" long-id="rsc_c001n08" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.11" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="23" operation="monitor" operation_key="rsc_c001n08_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="rsc_c001n08" long-id="rsc_c001n08" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.11" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4" priority="1000000">
<action_set>
<rsc_op id="10" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="rsc_c001n02" long-id="rsc_c001n02" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.12" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="5" priority="1000000">
<action_set>
<rsc_op id="17" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n02" long-id="rsc_c001n02" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.12" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="6" priority="1000000">
<action_set>
<rsc_op id="24" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="rsc_c001n02" long-id="rsc_c001n02" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.12" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="7">
<action_set>
<pseudo_event id="33" operation="stop" operation_key="rsc_c001n02_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="51" operation="stonith" operation_key="stonith" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="8">
<action_set>
<rsc_op id="34" operation="start" operation_key="rsc_c001n02_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n02" long-id="rsc_c001n02" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.12" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="8" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<pseudo_event id="33" operation="stop" operation_key="rsc_c001n02_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="51" operation="stonith" operation_key="stonith" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="9">
<action_set>
<rsc_op id="35" operation="monitor" operation_key="rsc_c001n02_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n02" long-id="rsc_c001n02" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.12" CRM_meta_id="3" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="34" operation="start" operation_key="rsc_c001n02_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="10" priority="1000000">
<action_set>
<rsc_op id="11" operation="monitor" operation_key="rsc_c001n03_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="rsc_c001n03" long-id="rsc_c001n03" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.13" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="11" priority="1000000">
<action_set>
<rsc_op id="25" operation="monitor" operation_key="rsc_c001n03_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="rsc_c001n03" long-id="rsc_c001n03" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.13" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="12" priority="1000000">
<action_set>
<rsc_op id="12" operation="monitor" operation_key="rsc_c001n01_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.14" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="13" priority="1000000">
<action_set>
<rsc_op id="18" operation="monitor" operation_key="rsc_c001n01_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="127.0.0.14" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="14" priority="1000000">
<action_set>
<rsc_op id="26" operation="monitor" operation_key="child_DoFencing:0_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="child_DoFencing:0" long-id="DoFencing:child_DoFencing:0" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="15">
<action_set>
<pseudo_event id="40" operation="stop" operation_key="child_DoFencing:0_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="49" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="16" priority="1000000">
<action_set>
<rsc_op id="27" operation="monitor" operation_key="child_DoFencing:1_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="child_DoFencing:1" long-id="DoFencing:child_DoFencing:1" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="1" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="17" priority="1000000">
<action_set>
<rsc_op id="13" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="18" priority="1000000">
<action_set>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="19" priority="1000000">
<action_set>
<rsc_op id="20" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="20" priority="1000000">
<action_set>
<rsc_op id="28" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n08 c001n02 c001n03 c001n01 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="21">
<action_set>
<pseudo_event id="49" operation="stop" operation_key="DoFencing_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="22" priority="1000000">
<action_set>
<pseudo_event id="50" operation="stopped" operation_key="DoFencing_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="40" operation="stop" operation_key="child_DoFencing:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="49" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="23">
<action_set>
<pseudo_event id="8" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="21" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
</inputs>
</synapse>
<synapse id="24" priority="1000000">
<action_set>
<rsc_op id="9" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="10" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="11" operation="monitor" operation_key="rsc_c001n03_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="12" operation="monitor" operation_key="rsc_c001n01_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="13" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="25" priority="1000000">
<action_set>
<rsc_op id="14" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="15" operation="monitor" operation_key="DcIPaddr_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="16" operation="monitor" operation_key="rsc_c001n08_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="17" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="18" operation="monitor" operation_key="rsc_c001n01_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="20" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="26" priority="1000000">
<action_set>
<rsc_op id="21" operation="probe_complete" operation_key="probe_complete" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="22" operation="monitor" operation_key="DcIPaddr_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="23" operation="monitor" operation_key="rsc_c001n08_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="24" operation="monitor" operation_key="rsc_c001n02_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="25" operation="monitor" operation_key="rsc_c001n03_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="26" operation="monitor" operation_key="child_DoFencing:0_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="27" operation="monitor" operation_key="child_DoFencing:1_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
<trigger>
<rsc_op id="28" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
</inputs>
</synapse>
<synapse id="27">
<action_set>
<crm_event id="51" operation="stonith" operation_key="stonith" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="c001n02" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/master-7.dot b/crm/pengine/testcases/master-7.dot
index 1e3c04cb46..9706d318a3 100644
--- a/crm/pengine/testcases/master-7.dot
+++ b/crm/pengine/testcases/master-7.dot
@@ -1,112 +1,110 @@
digraph "g" {
size = "30,30"
"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" ]
"child_DoFencing:0_stop_0 c001n01" [ style=bold color="green" fontcolor="orange" ]
"DoFencing_stop_0" [ style=bold color="green" fontcolor="orange" ]
"DoFencing_stopped_0" [ style=bold color="green" fontcolor="orange" ]
"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_stop_0" [ style=bold color="green" fontcolor="orange" ]
"master_rsc_1_stopped_0" [ style=bold color="green" 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" ]
"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]
+"stonith 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]
+"stonith c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold]
"rsc_c001n01_start_0 c001n03" -> "rsc_c001n01_monitor_5000 c001n03" [ style = bold]
"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold]
"child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = bold]
"DoFencing_stop_0" -> "DoFencing_stopped_0" [ 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_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]
"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:4_stop_0 c001n01" -> "master_rsc_1_stopped_0" [ style = bold]
"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold]
"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]
}
diff --git a/crm/pengine/testcases/master-7.exp b/crm/pengine/testcases/master-7.exp
index 5f53912611..aef501fe55 100644
--- a/crm/pengine/testcases/master-7.exp
+++ b/crm/pengine/testcases/master-7.exp
@@ -1,641 +1,633 @@
<transition_graph global_timeout="3m" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="34" operation="stop" operation_key="DcIPaddr_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1">
<action_set>
<rsc_op id="35" operation="start" operation_key="DcIPaddr_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.180" CRM_meta_id="DcIPaddr-2" CRM_meta_timeout="40000" CRM_meta_name="start"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="34" operation="stop" operation_key="DcIPaddr_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="36" operation="monitor" operation_key="DcIPaddr_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.180" CRM_meta_id="DcIPaddr-1" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="35" operation="start" operation_key="DcIPaddr_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="3">
<action_set>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="49" operation="stopped" operation_key="group-1_stopped_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="4">
<action_set>
<pseudo_event id="47" operation="running" operation_key="group-1_running_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="5">
<action_set>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="49" operation="stopped" operation_key="group-1_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="7">
<action_set>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.181" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="9">
<action_set>
<rsc_op id="39" operation="monitor" operation_key="ocf_192.168.100.181_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.181" CRM_meta_id="ocf_chil192.168.100.181_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="10">
<action_set>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="11">
<action_set>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" 1="192.168.100.182" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="12">
<action_set>
<rsc_op id="42" operation="monitor" operation_key="heartbeat_192.168.100.182_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" 1="192.168.100.182" CRM_meta_id="heartbeat_192.168.100.182_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="13">
<action_set>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="14">
<action_set>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.183" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="15">
<action_set>
<rsc_op id="45" operation="monitor" operation_key="ocf_192.168.100.183_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.183" CRM_meta_id="ocf_192.168.100.183_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="16">
<action_set>
<rsc_op id="50" operation="stop" operation_key="lsb_dummy_stop_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="17">
<action_set>
<rsc_op id="51" operation="start" operation_key="lsb_dummy_start_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="50" operation="stop" operation_key="lsb_dummy_stop_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="18">
<action_set>
<rsc_op id="52" operation="monitor" operation_key="lsb_dummy_monitor_5000" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_id="ocf_lsb_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="51" operation="start" operation_key="lsb_dummy_start_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="19">
<action_set>
<pseudo_event id="53" operation="stop" operation_key="rsc_c001n01_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="20">
<action_set>
<rsc_op id="54" operation="start" operation_key="rsc_c001n01_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.184" CRM_meta_id="rsc_c001n01-2" CRM_meta_timeout="40000" CRM_meta_name="start"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="53" operation="stop" operation_key="rsc_c001n01_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="21">
<action_set>
<rsc_op id="55" operation="monitor" operation_key="rsc_c001n01_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.184" CRM_meta_id="rsc_c001n01-1" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="54" operation="start" operation_key="rsc_c001n01_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="22">
<action_set>
<pseudo_event id="62" operation="stop" operation_key="child_DoFencing:0_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="23" priority="1000000">
<action_set>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="24" priority="1000000">
<action_set>
<rsc_op id="30" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="25" priority="1000000">
<action_set>
<rsc_op id="20" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="26" priority="1000000">
<action_set>
<rsc_op id="25" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="27">
<action_set>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="28" priority="1000000">
<action_set>
<pseudo_event id="72" operation="stopped" operation_key="DoFencing_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="62" operation="stop" operation_key="child_DoFencing:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="29" priority="1000000">
<action_set>
<rsc_op id="27" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:5" long-id="master_rsc_1:ocf_msdummy:5" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="5" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="30" priority="1000000">
<action_set>
<rsc_op id="32" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:5" long-id="master_rsc_1:ocf_msdummy:5" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="5" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="31" priority="1000000">
<action_set>
<rsc_op id="22" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:6" long-id="master_rsc_1:ocf_msdummy:6" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="6" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="32" priority="1000000">
<action_set>
<rsc_op id="33" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:6" long-id="master_rsc_1:ocf_msdummy:6" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="6" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="33" priority="1000000">
<action_set>
<rsc_op id="23" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:7" long-id="master_rsc_1:ocf_msdummy:7" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="7" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="34" priority="1000000">
<action_set>
<rsc_op id="28" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:7" long-id="master_rsc_1:ocf_msdummy:7" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="7" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="35">
<action_set>
<pseudo_event id="85" operation="demote" operation_key="ocf_msdummy:0_demote_0">
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="94" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
<trigger>
<crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
</inputs>
</synapse>
<synapse id="36">
<action_set>
<pseudo_event id="86" operation="stop" operation_key="ocf_msdummy:0_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="85" operation="demote" operation_key="ocf_msdummy:0_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="90" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
- <trigger>
- <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
</inputs>
</synapse>
<synapse id="37" priority="1000000">
<action_set>
<rsc_op id="21" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="38" priority="1000000">
<action_set>
<rsc_op id="26" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="39" priority="1000000">
<action_set>
<rsc_op id="31" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="40">
<action_set>
<pseudo_event id="87" operation="stop" operation_key="ocf_msdummy:4_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="90" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
- <trigger>
- <crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
</inputs>
</synapse>
<synapse id="41">
<action_set>
<pseudo_event id="90" operation="stop" operation_key="master_rsc_1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="94" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="95" operation="demoted" operation_key="master_rsc_1_demoted_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="42" priority="1000000">
<action_set>
<pseudo_event id="91" operation="stopped" operation_key="master_rsc_1_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="86" operation="stop" operation_key="ocf_msdummy:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="87" operation="stop" operation_key="ocf_msdummy:4_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="90" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="43">
<action_set>
<pseudo_event id="94" operation="demote" operation_key="master_rsc_1_demote_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="44" priority="1000000">
<action_set>
<pseudo_event id="95" operation="demoted" operation_key="master_rsc_1_demoted_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="85" operation="demote" operation_key="ocf_msdummy:0_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="94" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="45">
<action_set>
<pseudo_event id="17" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="29" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="46" priority="1000000">
<action_set>
<rsc_op id="18" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="20" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="21" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="22" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="23" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="47" priority="1000000">
<action_set>
<rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="25" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="26" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="27" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="28" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="48" priority="1000000">
<action_set>
<rsc_op id="29" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="30" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="31" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="32" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="33" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="49">
<action_set>
<crm_event id="96" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="c001n01" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/master-8.dot b/crm/pengine/testcases/master-8.dot
index 889b0fc541..478bd3a76a 100644
--- a/crm/pengine/testcases/master-8.dot
+++ b/crm/pengine/testcases/master-8.dot
@@ -1,123 +1,123 @@
digraph "g" {
size = "30,30"
"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" ]
"child_DoFencing:0_stop_0 c001n01" [ style=bold color="green" 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" ]
"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_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" ]
"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]
+"stonith 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]
+"stonith c001n01" -> "rsc_c001n01_start_0 c001n03" [ style = bold]
"rsc_c001n01_start_0 c001n03" -> "rsc_c001n01_monitor_5000 c001n03" [ style = bold]
"DoFencing_stop_0" -> "child_DoFencing:0_stop_0 c001n01" [ style = bold]
"child_DoFencing:0_stop_0 c001n01" -> "DoFencing_stopped_0" [ style = bold]
"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]
+"stonith c001n01" -> "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]
"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]
"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]
"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold]
"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]
}
diff --git a/crm/pengine/testcases/master-8.exp b/crm/pengine/testcases/master-8.exp
index e61bdc9cc9..6f6aaa61cf 100644
--- a/crm/pengine/testcases/master-8.exp
+++ b/crm/pengine/testcases/master-8.exp
@@ -1,700 +1,698 @@
<transition_graph global_timeout="3m" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="34" operation="stop" operation_key="DcIPaddr_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1">
<action_set>
<rsc_op id="35" operation="start" operation_key="DcIPaddr_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.180" CRM_meta_id="DcIPaddr-2" CRM_meta_timeout="40000" CRM_meta_name="start"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="34" operation="stop" operation_key="DcIPaddr_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="36" operation="monitor" operation_key="DcIPaddr_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="DcIPaddr" long-id="DcIPaddr" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.180" CRM_meta_id="DcIPaddr-1" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="35" operation="start" operation_key="DcIPaddr_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="3">
<action_set>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="49" operation="stopped" operation_key="group-1_stopped_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="4">
<action_set>
<pseudo_event id="47" operation="running" operation_key="group-1_running_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="5">
<action_set>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="49" operation="stopped" operation_key="group-1_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="7">
<action_set>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.181" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="37" operation="stop" operation_key="ocf_192.168.100.181_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<pseudo_event id="46" operation="start" operation_key="group-1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="9">
<action_set>
<rsc_op id="39" operation="monitor" operation_key="ocf_192.168.100.181_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.181" long-id="group-1:ocf_192.168.100.181" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.181" CRM_meta_id="ocf_chil192.168.100.181_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="10">
<action_set>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="11">
<action_set>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" 1="192.168.100.182" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="38" operation="start" operation_key="ocf_192.168.100.181_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="40" operation="stop" operation_key="heartbeat_192.168.100.182_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="12">
<action_set>
<rsc_op id="42" operation="monitor" operation_key="heartbeat_192.168.100.182_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="heartbeat_192.168.100.182" long-id="group-1:heartbeat_192.168.100.182" class="heartbeat" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" 1="192.168.100.182" CRM_meta_id="heartbeat_192.168.100.182_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="13">
<action_set>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="48" operation="stop" operation_key="group-1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="14">
<action_set>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.183" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="41" operation="start" operation_key="heartbeat_192.168.100.182_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="43" operation="stop" operation_key="ocf_192.168.100.183_stop_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="15">
<action_set>
<rsc_op id="45" operation="monitor" operation_key="ocf_192.168.100.183_monitor_5000" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_192.168.100.183" long-id="group-1:ocf_192.168.100.183" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.183" CRM_meta_id="ocf_192.168.100.183_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="44" operation="start" operation_key="ocf_192.168.100.183_start_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="16">
<action_set>
<rsc_op id="50" operation="stop" operation_key="lsb_dummy_stop_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="17">
<action_set>
<rsc_op id="51" operation="start" operation_key="lsb_dummy_start_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="50" operation="stop" operation_key="lsb_dummy_stop_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="18">
<action_set>
<rsc_op id="52" operation="monitor" operation_key="lsb_dummy_monitor_5000" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="lsb_dummy" long-id="lsb_dummy" class="lsb" provider="heartbeat" type="/usr/lib/heartbeat/cts/LSBDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_id="ocf_lsb_monitor" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="51" operation="start" operation_key="lsb_dummy_start_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="19">
<action_set>
<pseudo_event id="53" operation="stop" operation_key="rsc_c001n01_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="20">
<action_set>
<rsc_op id="54" operation="start" operation_key="rsc_c001n01_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.184" CRM_meta_id="rsc_c001n01-2" CRM_meta_timeout="40000" CRM_meta_name="start"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="53" operation="stop" operation_key="rsc_c001n01_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="21">
<action_set>
<rsc_op id="55" operation="monitor" operation_key="rsc_c001n01_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="rsc_c001n01" long-id="rsc_c001n01" class="ocf" provider="heartbeat" type="IPaddr"/>
<attributes crm_feature_set="1.0.6" ip="192.168.100.184" CRM_meta_id="rsc_c001n01-1" CRM_meta_timeout="20000" CRM_meta_name="monitor" CRM_meta_interval="5000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="54" operation="start" operation_key="rsc_c001n01_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="22">
<action_set>
<pseudo_event id="62" operation="stop" operation_key="child_DoFencing:0_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="23" priority="1000000">
<action_set>
<rsc_op id="18" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="24" priority="1000000">
<action_set>
<rsc_op id="30" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="child_DoFencing:2" long-id="DoFencing:child_DoFencing:2" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="2" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="25" priority="1000000">
<action_set>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="26" priority="1000000">
<action_set>
<rsc_op id="25" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="child_DoFencing:3" long-id="DoFencing:child_DoFencing:3" class="stonith" type="ssh"/>
<attributes crm_feature_set="1.0.6" hostlist="c001n01 c001n08 c001n02 c001n03 " CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="3" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="27">
<action_set>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="28" priority="1000000">
<action_set>
<pseudo_event id="72" operation="stopped" operation_key="DoFencing_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="4" CRM_meta_clone_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="62" operation="stop" operation_key="child_DoFencing:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="71" operation="stop" operation_key="DoFencing_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="29">
<action_set>
<pseudo_event id="73" operation="stop" operation_key="ocf_msdummy:0_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="75" operation="demote" operation_key="ocf_msdummy:0_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="89" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
- <trigger>
- <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
- </trigger>
</inputs>
</synapse>
<synapse id="30">
<action_set>
<rsc_op id="74" operation="start" operation_key="ocf_msdummy:0_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:0" long-id="master_rsc_1:ocf_msdummy:0" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="73" operation="stop" operation_key="ocf_msdummy:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="87" operation="start" operation_key="master_rsc_1_start_0"/>
</trigger>
+ <trigger>
+ <crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="31">
<action_set>
<pseudo_event id="75" operation="demote" operation_key="ocf_msdummy:0_demote_0">
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="93" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
<trigger>
<crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</trigger>
</inputs>
</synapse>
<synapse id="32">
<action_set>
<rsc_op id="76" operation="monitor" operation_key="ocf_msdummy:0_monitor_5000" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:0" long-id="master_rsc_1:ocf_msdummy:0" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_id="ocf_msdummy_monitor" CRM_meta_timeout="10000" CRM_meta_name="monitor" CRM_meta_interval="5000" CRM_meta_clone="0" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="74" operation="start" operation_key="ocf_msdummy:0_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="33" priority="1000000">
<action_set>
<rsc_op id="22" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:6" long-id="master_rsc_1:ocf_msdummy:6" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="6" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="34" priority="1000000">
<action_set>
<rsc_op id="33" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:6" long-id="master_rsc_1:ocf_msdummy:6" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="6" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="35" priority="1000000">
<action_set>
<rsc_op id="23" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:7" long-id="master_rsc_1:ocf_msdummy:7" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="7" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="36" priority="1000000">
<action_set>
<rsc_op id="28" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:7" long-id="master_rsc_1:ocf_msdummy:7" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Slave" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="7" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="37" priority="1000000">
<action_set>
<rsc_op id="20" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="38" priority="1000000">
<action_set>
<rsc_op id="26" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="39" priority="1000000">
<action_set>
<rsc_op id="31" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:4" long-id="master_rsc_1:ocf_msdummy:4" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="4" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="40" priority="1000000">
<action_set>
<rsc_op id="21" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<primitive id="ocf_msdummy:5" long-id="master_rsc_1:ocf_msdummy:5" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="5" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="41" priority="1000000">
<action_set>
<rsc_op id="27" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<primitive id="ocf_msdummy:5" long-id="master_rsc_1:ocf_msdummy:5" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="5" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="42" priority="1000000">
<action_set>
<rsc_op id="32" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<primitive id="ocf_msdummy:5" long-id="master_rsc_1:ocf_msdummy:5" class="ocf" provider="heartbeat" type="/usr/lib/heartbeat/cts/OCFMSDummy"/>
<attributes crm_feature_set="1.0.6" CRM_meta_role="Stopped" logfile="/var/log/cts_ocfdummy.log" CRM_meta_stateful="true" CRM_meta_timeout="180000" CRM_meta_op_target_rc="7" CRM_meta_clone="5" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="43">
<action_set>
<pseudo_event id="87" operation="start" operation_key="master_rsc_1_start_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="16" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<pseudo_event id="89" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="90" operation="stopped" operation_key="master_rsc_1_stopped_0"/>
</trigger>
<trigger>
<pseudo_event id="94" operation="demoted" operation_key="master_rsc_1_demoted_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="44" priority="1000000">
<action_set>
<pseudo_event id="88" operation="running" operation_key="master_rsc_1_running_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="74" operation="start" operation_key="ocf_msdummy:0_start_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<pseudo_event id="87" operation="start" operation_key="master_rsc_1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="45">
<action_set>
<pseudo_event id="89" operation="stop" operation_key="master_rsc_1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="93" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="94" operation="demoted" operation_key="master_rsc_1_demoted_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="46" priority="1000000">
<action_set>
<pseudo_event id="90" operation="stopped" operation_key="master_rsc_1_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="73" operation="stop" operation_key="ocf_msdummy:0_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="89" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="47">
<action_set>
<pseudo_event id="93" operation="demote" operation_key="master_rsc_1_demote_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="48" priority="1000000">
<action_set>
<pseudo_event id="94" operation="demoted" operation_key="master_rsc_1_demoted_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="8" CRM_meta_clone_node_max="2" CRM_meta_master_max="4" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="75" operation="demote" operation_key="ocf_msdummy:0_demote_0"/>
</trigger>
<trigger>
<pseudo_event id="93" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="49">
<action_set>
<pseudo_event id="16" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="29" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="50" priority="1000000">
<action_set>
<rsc_op id="17" operation="probe_complete" operation_key="probe_complete" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="18" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="19" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="20" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="21" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="22" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
<trigger>
<rsc_op id="23" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n03" on_node_uuid="5d9a8c11-8684-43ea-91.0.6e221530c193"/>
</trigger>
</inputs>
</synapse>
<synapse id="51" priority="1000000">
<action_set>
<rsc_op id="24" operation="probe_complete" operation_key="probe_complete" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="25" operation="monitor" operation_key="child_DoFencing:3_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="26" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="27" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
<trigger>
<rsc_op id="28" operation="monitor" operation_key="ocf_msdummy:7_monitor_0" on_node="c001n02" on_node_uuid="e9bdfde9-01b0-421f-acd8-8a65a53e775f"/>
</trigger>
</inputs>
</synapse>
<synapse id="52" priority="1000000">
<action_set>
<rsc_op id="29" operation="probe_complete" operation_key="probe_complete" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="30" operation="monitor" operation_key="child_DoFencing:2_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="31" operation="monitor" operation_key="ocf_msdummy:4_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="32" operation="monitor" operation_key="ocf_msdummy:5_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
<trigger>
<rsc_op id="33" operation="monitor" operation_key="ocf_msdummy:6_monitor_0" on_node="c001n08" on_node_uuid="6427cb5a-c7a5-4bdf-9892-a04ce56f4e6b"/>
</trigger>
</inputs>
</synapse>
<synapse id="53">
<action_set>
<crm_event id="95" operation="stonith" operation_key="stonith" on_node="c001n01" on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="c001n01" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="de937e3d-0309-4b5d-b85c-f96edc1ed8e3"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-node-11.dot b/crm/pengine/testcases/rec-node-11.dot
index efe637f397..d44e0f7a88 100644
--- a/crm/pengine/testcases/rec-node-11.dot
+++ b/crm/pengine/testcases/rec-node-11.dot
@@ -1,31 +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" ]
"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]
-"stonith node1" -> "rsc2_stop_0 node1" [ style = bold]
+"stonith node1" -> "rsc1_start_0 node2" [ style = bold]
"rsc1_start_0 node2" -> "rsc2_start_0 node2" [ style = bold]
"rsc2_stop_0 node1" -> "rsc2_start_0 node2" [ style = bold]
+"stonith node1" -> "rsc2_start_0 node2" [ style = bold]
"probe_complete" -> "group1_start_0" [ style = bold]
"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]
"rsc3_stop_0 node2" -> "rsc3_start_0 node2" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-node-11.exp b/crm/pengine/testcases/rec-node-11.exp
index 63340be3e6..f33f0357bb 100644
--- a/crm/pengine/testcases/rec-node-11.exp
+++ b/crm/pengine/testcases/rec-node-11.exp
@@ -1,167 +1,166 @@
<transition_graph global_timeout="60s" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="9" operation="start" operation_key="group1_start_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<rsc_op id="14" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="1">
<action_set>
<pseudo_event id="10" operation="running" operation_key="group1_running_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<pseudo_event id="9" operation="start" operation_key="group1_start_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="2">
<action_set>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-1" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0"/>
</trigger>
- <trigger>
- <crm_event id="15" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
</inputs>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="group1:rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="group1:rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="9" operation="start" operation_key="group1_start_0"/>
</trigger>
+ <trigger>
+ <crm_event id="15" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="5" priority="1000000">
<action_set>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="group1:rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-2" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="15" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="7">
<action_set>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="group1:rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="15" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<rsc_op id="13" operation="stop" operation_key="rsc3_stop_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc3" long-id="rsc3" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="9">
<action_set>
<rsc_op id="14" operation="start" operation_key="rsc3_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc3" long-id="rsc3" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="13" operation="stop" operation_key="rsc3_stop_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="10">
<action_set>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="11" priority="1000000">
<action_set>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="12">
<action_set>
<crm_event id="15" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="node1" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="uuid1"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-node-13.dot b/crm/pengine/testcases/rec-node-13.dot
index 74bd93a0c9..e7c1483fe6 100644
--- a/crm/pengine/testcases/rec-node-13.dot
+++ b/crm/pengine/testcases/rec-node-13.dot
@@ -1,13 +1,12 @@
digraph "g" {
size = "30,30"
"ocf_msdummy:6_stop_0 c001n04" [ 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_demote_0" [ style=bold color="green" 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]
"master_rsc_1_demote_0" -> "master_rsc_1_stop_0" [ style = bold]
"ocf_msdummy:6_stop_0 c001n04" -> "master_rsc_1_stopped_0" [ style = bold]
"master_rsc_1_stop_0" -> "master_rsc_1_stopped_0" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-node-13.exp b/crm/pengine/testcases/rec-node-13.exp
index 13b018b084..865008dc4c 100644
--- a/crm/pengine/testcases/rec-node-13.exp
+++ b/crm/pengine/testcases/rec-node-13.exp
@@ -1,61 +1,58 @@
<transition_graph global_timeout="3m" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="2" operation="stop" operation_key="ocf_msdummy:6_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone="6" CRM_meta_clone_max="12" CRM_meta_clone_node_max="2" CRM_meta_master_max="6" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="74" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
- <trigger>
- <crm_event id="80" operation="stonith" operation_key="stonith" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/>
- </trigger>
</inputs>
</synapse>
<synapse id="1">
<action_set>
<pseudo_event id="74" operation="stop" operation_key="master_rsc_1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="12" CRM_meta_clone_node_max="2" CRM_meta_master_max="6" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="78" operation="demote" operation_key="master_rsc_1_demote_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="2" priority="1000000">
<action_set>
<pseudo_event id="75" operation="stopped" operation_key="master_rsc_1_stopped_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="12" CRM_meta_clone_node_max="2" CRM_meta_master_max="6" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="stop" operation_key="ocf_msdummy:6_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="74" operation="stop" operation_key="master_rsc_1_stop_0"/>
</trigger>
</inputs>
</synapse>
<synapse id="3">
<action_set>
<pseudo_event id="78" operation="demote" operation_key="master_rsc_1_demote_0">
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="180000" CRM_meta_clone_max="12" CRM_meta_clone_node_max="2" CRM_meta_master_max="6" CRM_meta_master_node_max="1"/>
</pseudo_event>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<crm_event id="80" operation="stonith" operation_key="stonith" on_node="c001n04" on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="c001n04" CRM_meta_stonith_action="reboot" CRM_meta_op_no_wait="true" CRM_meta_on_node_uuid="9e080e6d-7a25-4dac-be89-f6f4f128623d"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-node-4.dot b/crm/pengine/testcases/rec-node-4.dot
index 34a64c31d9..2e012dbc15 100644
--- a/crm/pengine/testcases/rec-node-4.dot
+++ b/crm/pengine/testcases/rec-node-4.dot
@@ -1,21 +1,21 @@
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" ]
"stonith node1" [ style=bold color="green" fontcolor="black" ]
-"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]
"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
-"stonith node1" -> "rsc2_stop_0 node1" [ style = bold]
+"stonith 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]
+"stonith node1" -> "rsc2_start_0 node2" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-node-4.exp b/crm/pengine/testcases/rec-node-4.exp
index 8456778a55..e409e158db 100644
--- a/crm/pengine/testcases/rec-node-4.exp
+++ b/crm/pengine/testcases/rec-node-4.exp
@@ -1,112 +1,110 @@
<transition_graph global_timeout="60s" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-1" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1" priority="1000000">
<action_set>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-2" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="5">
<action_set>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="7" priority="1000000">
<action_set>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="node1" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="uuid1"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-node-6.dot b/crm/pengine/testcases/rec-node-6.dot
index 34a64c31d9..2e012dbc15 100644
--- a/crm/pengine/testcases/rec-node-6.dot
+++ b/crm/pengine/testcases/rec-node-6.dot
@@ -1,21 +1,21 @@
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" ]
"stonith node1" [ style=bold color="green" fontcolor="black" ]
-"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]
"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
-"stonith node1" -> "rsc2_stop_0 node1" [ style = bold]
+"stonith 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]
+"stonith node1" -> "rsc2_start_0 node2" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-node-6.exp b/crm/pengine/testcases/rec-node-6.exp
index 8456778a55..e409e158db 100644
--- a/crm/pengine/testcases/rec-node-6.exp
+++ b/crm/pengine/testcases/rec-node-6.exp
@@ -1,112 +1,110 @@
<transition_graph global_timeout="60s" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-1" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1" priority="1000000">
<action_set>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-2" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="5">
<action_set>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="7" priority="1000000">
<action_set>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="node1" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="uuid1"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-node-7.dot b/crm/pengine/testcases/rec-node-7.dot
index 34a64c31d9..2e012dbc15 100644
--- a/crm/pengine/testcases/rec-node-7.dot
+++ b/crm/pengine/testcases/rec-node-7.dot
@@ -1,21 +1,21 @@
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" ]
"stonith node1" [ style=bold color="green" fontcolor="black" ]
-"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]
"probe_complete" -> "rsc1_start_0 node2" [ style = bold]
-"stonith node1" -> "rsc2_stop_0 node1" [ style = bold]
+"stonith 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]
+"stonith node1" -> "rsc2_start_0 node2" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-node-7.exp b/crm/pengine/testcases/rec-node-7.exp
index 8456778a55..e409e158db 100644
--- a/crm/pengine/testcases/rec-node-7.exp
+++ b/crm/pengine/testcases/rec-node-7.exp
@@ -1,112 +1,110 @@
<transition_graph global_timeout="60s" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-1" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1" priority="1000000">
<action_set>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-2" CRM_meta_on_fail="block" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="5">
<action_set>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<pseudo_event id="7" operation="stop" operation_key="rsc2_stop_0"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="7" priority="1000000">
<action_set>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node2" on_node_uuid="uuid2">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
<trigger>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<crm_event id="9" operation="stonith" operation_key="stonith" on_node="node1" on_node_uuid="uuid1">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="node1" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="uuid1"/>
</crm_event>
</action_set>
<inputs/>
</synapse>
</transition_graph>
diff --git a/crm/pengine/testcases/rec-rsc-5.dot b/crm/pengine/testcases/rec-rsc-5.dot
index 9eb3a37e68..4570840825 100644
--- a/crm/pengine/testcases/rec-rsc-5.dot
+++ b/crm/pengine/testcases/rec-rsc-5.dot
@@ -1,21 +1,21 @@
digraph "g" {
size = "30,30"
"rsc1_stop_0 node2" [ style=bold color="green" fontcolor="orange" ]
"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" ]
"rsc2_monitor_0 node1" [ style=bold color="green" fontcolor="black" ]
"rsc1_start_0 node1" [ style=bold color="green" fontcolor="black" ]
"rsc2_stop_0 node2" [ style=bold color="green" fontcolor="black" ]
"rsc2_start_0 node1" [ style=bold color="green" fontcolor="black" ]
"stonith node2" [ style=bold color="green" fontcolor="black" ]
-"stonith node2" -> "rsc1_stop_0 node2" [ style = bold]
"probe_complete node1" -> "probe_complete" [ style = bold]
"rsc1_monitor_0 node1" -> "probe_complete node1" [ style = bold]
"rsc2_monitor_0 node1" -> "probe_complete node1" [ style = bold]
"rsc1_stop_0 node2" -> "rsc1_start_0 node1" [ style = bold]
"probe_complete" -> "rsc1_start_0 node1" [ style = bold]
+"stonith node2" -> "rsc1_start_0 node1" [ style = bold]
"probe_complete" -> "rsc2_start_0 node1" [ style = bold]
"rsc2_stop_0 node2" -> "rsc2_start_0 node1" [ style = bold]
"rsc2_stop_0 node2" -> "stonith node2" [ style = bold]
}
diff --git a/crm/pengine/testcases/rec-rsc-5.exp b/crm/pengine/testcases/rec-rsc-5.exp
index f3bf6a3474..8dbcd12b66 100644
--- a/crm/pengine/testcases/rec-rsc-5.exp
+++ b/crm/pengine/testcases/rec-rsc-5.exp
@@ -1,113 +1,112 @@
<transition_graph global_timeout="60s" transition_id="0">
<synapse id="0">
<action_set>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0">
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-1" CRM_meta_on_fail="fence" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</pseudo_event>
</action_set>
- <inputs>
- <trigger>
- <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node2" on_node_uuid="uuid2"/>
- </trigger>
- </inputs>
+ <inputs/>
</synapse>
<synapse id="1" priority="1000000">
<action_set>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="uuid1">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="2">
<action_set>
<rsc_op id="6" operation="start" operation_key="rsc1_start_0" on_node="node1" on_node_uuid="uuid1">
<primitive id="rsc1" long-id="rsc1" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="1" operation="stop" operation_key="rsc1_stop_0"/>
</trigger>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
+ <trigger>
+ <crm_event id="9" operation="stonith" operation_key="stonith" on_node="node2" on_node_uuid="uuid2"/>
+ </trigger>
</inputs>
</synapse>
<synapse id="3" priority="1000000">
<action_set>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="uuid1">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000" CRM_meta_op_target_rc="7"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="4">
<action_set>
<rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node2" on_node_uuid="uuid2">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_id="stop-2" CRM_meta_on_fail="fence" CRM_meta_timeout="60000" CRM_meta_name="stop"/>
</rsc_op>
</action_set>
<inputs/>
</synapse>
<synapse id="5">
<action_set>
<rsc_op id="8" operation="start" operation_key="rsc2_start_0" on_node="node1" on_node_uuid="uuid1">
<primitive id="rsc2" long-id="rsc2" class="heartbeat" type="apache"/>
<attributes crm_feature_set="1.0.6" CRM_meta_timeout="60000"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete"/>
</trigger>
<trigger>
<rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
<synapse id="6">
<action_set>
<pseudo_event id="2" operation="probe_complete" operation_key="probe_complete">
<attributes crm_feature_set="1.0.6"/>
</pseudo_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1"/>
</trigger>
</inputs>
</synapse>
<synapse id="7" priority="1000000">
<action_set>
<rsc_op id="3" operation="probe_complete" operation_key="probe_complete" on_node="node1" on_node_uuid="uuid1">
<attributes crm_feature_set="1.0.6" CRM_meta_op_no_wait="true"/>
</rsc_op>
</action_set>
<inputs>
<trigger>
<rsc_op id="4" operation="monitor" operation_key="rsc1_monitor_0" on_node="node1" on_node_uuid="uuid1"/>
</trigger>
<trigger>
<rsc_op id="5" operation="monitor" operation_key="rsc2_monitor_0" on_node="node1" on_node_uuid="uuid1"/>
</trigger>
</inputs>
</synapse>
<synapse id="8">
<action_set>
<crm_event id="9" operation="stonith" operation_key="stonith" on_node="node2" on_node_uuid="uuid2">
<attributes crm_feature_set="1.0.6" CRM_meta_on_node="node2" CRM_meta_stonith_action="reboot" CRM_meta_on_node_uuid="uuid2"/>
</crm_event>
</action_set>
<inputs>
<trigger>
<rsc_op id="7" operation="stop" operation_key="rsc2_stop_0" on_node="node2" on_node_uuid="uuid2"/>
</trigger>
</inputs>
</synapse>
</transition_graph>

File Metadata

Mime Type
text/x-diff
Expires
Mon, Apr 21, 7:03 PM (23 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1665316
Default Alt Text
(213 KB)

Event Timeline