35               && pe_rsc_is_anon_clone(rsc->
parent)
    64     for (gIter = rsc->
actions; gIter != NULL; gIter = gIter->next) {
    79                     && !rsc_is_known_on(rsc, 
target)) {
   113     GList *action_list = NULL;
   114     bool order_implicit = 
false;
   135         order_implicit = 
true;
   138     if (action_list && order_implicit) {
   142     for (gIter = action_list; gIter != NULL; gIter = gIter->next) {
   148         if (order_implicit) {
   163             if (!pe_rsc_is_bundled(rsc)) {
   170             crm_notice(
"Stop of failed resource %s is implicit %s %s is fenced",
   171                        rsc->
id, (order_implicit? 
"after" : 
"because"),
   174             crm_info(
"%s is implicit %s %s is fenced",
   175                      action->uuid, (order_implicit? 
"after" : 
"because"),
   221          crm_info(
"Moving healthy resource %s off %s before fencing",
   229     g_list_free(action_list);
   234     for (gIter = action_list; gIter != NULL; gIter = gIter->next) {
   237         if (!(
action->node->details->online) || 
action->node->details->unclean
   242                             "Demote of failed resource %s is implicit after %s is fenced",
   245                 pe_rsc_info(rsc, 
"%s is implicit after %s is fenced",
   254             if (pe_rsc_is_bundled(rsc)) {
   257             } 
else if (order_implicit) {
   263     g_list_free(action_list);
   281         for (gIter = rsc->
children; gIter != NULL; gIter = gIter->next) {
   284             rsc_stonith_ordering(child_rsc, stonith_op, data_set);
   289                      "Skipping fencing constraints for unmanaged resource: %s",
   293         order_start_vs_fencing(rsc, stonith_op, data_set);
   294         order_stop_vs_fencing(rsc, stonith_op, data_set);
   312     CRM_CHECK(stonith_op && data_set, 
return);
   313     for (GList *r = data_set->
resources; r != NULL; r = r->next) {
   314         rsc_stonith_ordering((
pe_resource_t *) r->data, stonith_op, data_set);
   381     const char *fence_action = 
"off";
   392             fence_action = 
"reboot";
   399     stonith_op = 
pe_fence_op(node, fence_action, FALSE, 
"guest is unclean",
   409                                                      NULL, FALSE, data_set);
   411         crm_info(
"Implying guest node %s is down (action %d) after %s fencing",
   420         crm_info(
"Implying guest node %s is down (action %d) "   421                  "after container %s is stopped (action %d)",
   423                  container->
id, stop->
id);
   437             crm_info(
"Implying guest node %s is down (action %d) "   438                      "after connection is stopped (action %d)",
   444             crm_info(
"Implying guest node %s is down (action %d) ",
 bool pcmk__node_unfenced(pe_node_t *node)
 
#define CRM_CHECK(expr, failure_action)
 
#define crm_notice(fmt, args...)
 
#define pe_rsc_debug(rsc, fmt, args...)
 
#define pe__set_action_flags(action, flags_to_set)
 
pe_resource_t * container
 
void pcmk__order_vs_fence(pe_action_t *stonith_op, pe_working_set_t *data_set)
 
G_GNUC_INTERNAL void pcmk__new_ordering(pe_resource_t *lh_rsc, char *lh_task, pe_action_t *lh_action, pe_resource_t *rh_rsc, char *rh_task, pe_action_t *rh_action, enum pe_ordering type, pe_working_set_t *data_set)
 
pe_resource_t * remote_rsc
 
bool pcmk__is_unfence_device(const pe_resource_t *rsc, const pe_working_set_t *data_set)
 
void trigger_unfencing(pe_resource_t *rsc, pe_node_t *node, const char *reason, pe_action_t *dependency, pe_working_set_t *data_set)
 
#define CRMD_ACTION_START
 
#define CRM_ATTR_UNFENCED
 
pe_resource_t * uber_parent(pe_resource_t *rsc)
 
bool pe__is_guest_node(const pe_node_t *node)
 
char * crm_strdup_printf(char const *format,...) G_GNUC_PRINTF(1
 
#define pcmk_is_set(g, f)
Convenience alias for pcmk_all_flags_set(), to check single flag. 
 
struct pe_node_shared_s * details
 
#define pe_rsc_needs_fencing
 
gboolean order_actions(pe_action_t *lh_action, pe_action_t *rh_action, enum pe_ordering order)
 
const char * pe_node_attribute_raw(pe_node_t *node, const char *name)
 
enum pe_obj_types variant
 
void pcmk__order_vs_unfence(pe_resource_t *rsc, pe_node_t *node, pe_action_t *action, enum pe_ordering order, pe_working_set_t *data_set)
 
#define pe_rsc_fence_device
 
void pcmk__fence_guest(pe_node_t *node, pe_working_set_t *data_set)
 
Cluster status and scheduling. 
 
#define pe_rsc_needs_unfencing
 
enum pe_action_flags flags
 
#define pe_flag_enable_unfencing
 
#define pe_rsc_trace(rsc, fmt, args...)
 
GList * pe__resource_actions(const pe_resource_t *rsc, const pe_node_t *node, const char *task, bool require_node)
Find all actions of given type for a resource. 
 
#define crm_info(fmt, args...)
 
pe_action_t * find_first_action(GList *input, const char *uuid, const char *task, pe_node_t *on_node)
 
pe_action_t * pe_fence_op(pe_node_t *node, const char *op, bool optional, const char *reason, bool priority_delay, pe_working_set_t *data_set)
 
#define pe_rsc_info(rsc, fmt, args...)
 
void create_secondary_notification(pe_action_t *action, pe_resource_t *rsc, pe_action_t *stonith_op, pe_working_set_t *data_set)
 
GHashTable * allowed_nodes