order_new(shutdown_op, stonith_op, pecs_must, action_constraints);
crm_debug("Adding shutdown (%d) as an input to stonith (%d)", shutdown_op->id, stonith_op->id);  crm_malloc(wrapper, sizeof(action_wrapper_t)); if(wrapper != NULL) { wrapper->action = shutdown_op; wrapper->strength = pecs_must; stonith_op->actions_before = g_list_append( stonith_op->actions_before, wrapper); }
stonith_constraints(node_t *node,		    action_t *stonith_op, action_t *shutdown_op,		    GListPtr *action_constraints){	int lpc = 0;	if(shutdown_op != NULL) {		order_new(shutdown_op, stonith_op, pecs_must, action_constraints);	}		slist_iter(		rsc, resource_t, node->details->running_rsc, lpc,		if(stonith_enabled) {			/* make use of timeouts in the TE for cases such			 *   as this.			 * ie. the node may be cactus and unable to receive the			 *  stop let alone reply with failed.			 */			rsc->stop->failure_is_fatal = FALSE;						/* stonith before start */			order_new(				stonith_op,rsc->start,pecs_must,action_constraints);		} else {			/* dont run this anywhere else */			rsc->start->runnable = FALSE;		}				);		return TRUE;}