action 98 crmd/cib.c do_cib_control(long long action, action 105 crmd/cib.c if (action & A_CIB_STOP) { action 125 crmd/cib.c if (action & A_CIB_START) { action 75 crmd/control.c do_ha_control(long long action, action 87 crmd/control.c if (action & A_HA_DISCONNECT) { action 94 crmd/control.c if (action & A_HA_CONNECT) { action 158 crmd/control.c if (action & ~(A_HA_CONNECT | A_HA_DISCONNECT)) { action 159 crmd/control.c crm_err("Unexpected action %s in %s", fsa_action2string(action), __FUNCTION__); action 183 crmd/control.c do_shutdown(long long action, action 216 crmd/control.c do_shutdown_req(long long action, action 502 crmd/control.c do_exit(long long action, action 510 crmd/control.c if (action & A_EXIT_1) { action 519 crmd/control.c fsa_action2string(action), exit_type); action 529 crmd/control.c do_startup(long long action, action 793 crmd/control.c do_stop(long long action, action 804 crmd/control.c do_started(long long action, action 887 crmd/control.c do_recover(long long action, action 1130 crmd/control.c do_read_config(long long action, action 143 crmd/crmd_lrm.h int lrm_state_cancel(lrm_state_t * lrm_state, const char *rsc_id, const char *action, int interval); action 144 crmd/crmd_lrm.h int lrm_state_exec(lrm_state_t * lrm_state, const char *rsc_id, const char *action, const char *userdata, int interval, /* ms */ action 161 crmd/crmd_lrm.h int remote_ra_cancel(lrm_state_t * lrm_state, const char *rsc_id, const char *action, int interval); action 162 crmd/crmd_lrm.h int remote_ra_exec(lrm_state_t * lrm_state, const char *rsc_id, const char *action, const char *userdata, int interval, /* ms */ action 57 crmd/crmd_messages.h ((fsa_data_t*)msg_data)->data, action, TRUE, __FUNCTION__); \ action 61 crmd/crmd_messages.h NULL, action, TRUE, __FUNCTION__); \ action 67 crmd/crmd_messages.h # define register_fsa_action(action) { \ action 68 crmd/crmd_messages.h fsa_actions |= action; \ action 73 crmd/crmd_messages.h __FUNCTION__, fsa_action2string(action)); \ action 92 crmd/crmd_messages.h xmlNode * action, action 84 crmd/crmd_utils.h void fsa_dump_actions(long long action, const char *text); action 36 crmd/election.c do_election_vote(long long action, action 82 crmd/election.c do_election_check(long long action, action 101 crmd/election.c do_election_count_vote(long long action, action 145 crmd/election.c do_election_timer_ctrl(long long action, action 166 crmd/election.c do_dc_takeover(long long action, action 226 crmd/election.c do_dc_release(long long action, action 231 crmd/election.c if (action & A_DC_RELEASE) { action 235 crmd/election.c } else if (action & A_DC_RELEASED) { action 258 crmd/election.c crm_err("Unknown DC action %s", fsa_action2string(action)); action 136 crmd/fsa.c void (*function) (long long action, action 496 crmd/fsa_defines.h extern const char *fsa_action2string(long long action); action 27 crmd/fsa_proto.h do_read_config(long long action, action 35 crmd/fsa_proto.h do_pe_invoke(long long action, action 43 crmd/fsa_proto.h do_error(long long action, action 50 crmd/fsa_proto.h do_log(long long action, action 57 crmd/fsa_proto.h do_startup(long long action, action 64 crmd/fsa_proto.h do_cib_control(long long action, action 71 crmd/fsa_proto.h do_ha_control(long long action, action 78 crmd/fsa_proto.h do_ccm_control(long long action, action 85 crmd/fsa_proto.h do_lrm_control(long long action, action 92 crmd/fsa_proto.h do_pe_control(long long action, action 99 crmd/fsa_proto.h do_te_control(long long action, action 106 crmd/fsa_proto.h do_started(long long action, action 113 crmd/fsa_proto.h do_msg_route(long long action, action 120 crmd/fsa_proto.h do_recover(long long action, action 127 crmd/fsa_proto.h do_election_vote(long long action, action 135 crmd/fsa_proto.h do_election_count_vote(long long action, action 143 crmd/fsa_proto.h do_election_check(long long action, action 151 crmd/fsa_proto.h do_election_timer_ctrl(long long action, action 159 crmd/fsa_proto.h do_timer_control(long long action, action 173 crmd/fsa_proto.h do_ccm_event(long long action, action 180 crmd/fsa_proto.h do_dc_takeover(long long action, action 187 crmd/fsa_proto.h do_dc_release(long long action, action 194 crmd/fsa_proto.h do_dc_join_offer_all(long long action, action 202 crmd/fsa_proto.h do_dc_join_offer_one(long long action, action 210 crmd/fsa_proto.h do_dc_join_ack(long long action, action 217 crmd/fsa_proto.h do_dc_join_filter_offer(long long action, action 225 crmd/fsa_proto.h do_dc_join_finalize(long long action, action 234 crmd/fsa_proto.h do_cl_join_query(long long action, action 242 crmd/fsa_proto.h do_cl_join_announce(long long action, action 250 crmd/fsa_proto.h do_cl_join_offer_respond(long long action, action 258 crmd/fsa_proto.h do_cl_join_finalize_respond(long long action, action 266 crmd/fsa_proto.h do_update_node_status(long long action, action 274 crmd/fsa_proto.h do_lrm_invoke(long long action, action 281 crmd/fsa_proto.h do_lrm_event(long long action, action 288 crmd/fsa_proto.h do_pe_invoke(long long action, action 295 crmd/fsa_proto.h do_te_invoke(long long action, action 302 crmd/fsa_proto.h do_te_copyto(long long action, action 309 crmd/fsa_proto.h do_shutdown_req(long long action, action 317 crmd/fsa_proto.h do_shutdown(long long action, action 324 crmd/fsa_proto.h do_stop(long long action, action 331 crmd/fsa_proto.h do_exit(long long action, action 337 crmd/fsa_proto.h do_dc_join_final(long long action, action 63 crmd/heartbeat.c do_ccm_control(long long action, action 90 crmd/heartbeat.c if (action & A_CCM_DISCONNECT) { action 95 crmd/heartbeat.c if (action & A_CCM_CONNECT) { action 154 crmd/heartbeat.c if (action & ~(A_CCM_CONNECT | A_CCM_DISCONNECT)) { action 155 crmd/heartbeat.c crm_err("Unexpected action %s in %s", fsa_action2string(action), __FUNCTION__); action 56 crmd/join_client.c do_cl_join_query(long long action, action 77 crmd/join_client.c do_cl_join_announce(long long action, action 117 crmd/join_client.c do_cl_join_offer_respond(long long action, action 229 crmd/join_client.c do_cl_join_finalize_respond(long long action, action 188 crmd/join_dc.c do_dc_join_offer_all(long long action, action 215 crmd/join_dc.c do_dc_join_offer_one(long long action, action 303 crmd/join_dc.c do_dc_join_filter_offer(long long action, action 400 crmd/join_dc.c do_dc_join_finalize(long long action, action 506 crmd/join_dc.c do_dc_join_ack(long long action, action 683 crmd/join_dc.c do_dc_join_final(long long action, action 334 crmd/lrm.c do_lrm_control(long long action, action 354 crmd/lrm.c if (action & A_LRM_DISCONNECT) { action 356 crmd/lrm.c if (action == A_LRM_DISCONNECT) { action 369 crmd/lrm.c if (action & A_LRM_CONNECT) { action 400 crmd/lrm.c if (action & ~(A_LRM_CONNECT | A_LRM_DISCONNECT)) { action 401 crmd/lrm.c crm_err("Unexpected action %s in %s", fsa_action2string(action), __FUNCTION__); action 1407 crmd/lrm.c synthesize_lrmd_failure(lrm_state_t *lrm_state, xmlNode *action, int rc) action 1410 crmd/lrm.c const char *operation = crm_element_value(action, XML_LRM_ATTR_TASK); action 1411 crmd/lrm.c const char *target_node = crm_element_value(action, XML_LRM_ATTR_TARGET); action 1412 crmd/lrm.c xmlNode *xml_rsc = find_xml_node(action, XML_CIB_TAG_RESOURCE, TRUE); action 1417 crmd/lrm.c crm_element_value(action, XML_LRM_ATTR_TASK_KEY), rc, target_node, lrm_state); action 1423 crmd/lrm.c crm_element_value(action, XML_ATTR_TRANSITION_KEY), rc, target_node, lrm_state); action 1427 crmd/lrm.c op = construct_op(lrm_state, action, ID(xml_rsc), operation); action 1469 crmd/lrm.c do_lrm_invoke(long long action, action 2395 crmd/lrm.c do_lrm_event(long long action, action 613 crmd/lrm_state.c lrm_state_cancel(lrm_state_t * lrm_state, const char *rsc_id, const char *action, int interval) action 622 crmd/lrm_state.c return remote_ra_cancel(lrm_state, rsc_id, action, interval); action 624 crmd/lrm_state.c return ((lrmd_t *) lrm_state->conn)->cmds->cancel(lrm_state->conn, rsc_id, action, interval); action 655 crmd/lrm_state.c lrm_state_exec(lrm_state_t * lrm_state, const char *rsc_id, const char *action, const char *userdata, int interval, /* ms */ action 668 crmd/lrm_state.c rsc_id, action, userdata, interval, timeout, start_delay, params); action 673 crmd/lrm_state.c action, action 771 crmd/lrm_state.c e->action, e->target, action 310 crmd/messages.c do_msg_route(long long action, action 30 crmd/misc.c do_log(long long action, action 36 crmd/misc.c if (action & A_LOG) { action 38 crmd/misc.c } else if (action & A_WARN) { action 40 crmd/misc.c } else if (action & A_ERROR) { action 122 crmd/pengine.c do_pe_control(long long action, action 137 crmd/pengine.c if (action & stop_actions) { action 146 crmd/pengine.c if ((action & start_actions) && (is_set(fsa_input_register, R_PE_CONNECTED) == FALSE)) { action 177 crmd/pengine.c do_pe_invoke(long long action, action 184 crmd/pengine.c fsa_action2string(action)); action 42 crmd/remote_lrmd_ra.c char *action; action 116 crmd/remote_lrmd_ra.c free(cmd->action); action 301 crmd/remote_lrmd_ra.c if (safe_str_eq(cmd->action, "start")) { action 304 crmd/remote_lrmd_ra.c } else if (safe_str_eq(cmd->action, "migrate_from")) { action 317 crmd/remote_lrmd_ra.c } else if (safe_str_eq(cmd->action, "stop")) { action 355 crmd/remote_lrmd_ra.c op.op_type = cmd->action; action 417 crmd/remote_lrmd_ra.c if (safe_str_neq(cmd->action, "start") && safe_str_neq(cmd->action, "migrate_from")) { action 591 crmd/remote_lrmd_ra.c if (op->type == lrmd_event_connect && (safe_str_eq(cmd->action, "start") || action 592 crmd/remote_lrmd_ra.c safe_str_eq(cmd->action, "migrate_from"))) { action 622 crmd/remote_lrmd_ra.c crm_debug("remote lrmd connect event matched %s action. ", cmd->action); action 626 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_poke && safe_str_eq(cmd->action, "monitor")) { action 643 crmd/remote_lrmd_ra.c crm_debug("remote lrmd poke event matched %s action. ", cmd->action); action 653 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_disconnect && safe_str_eq(cmd->action, "monitor")) { action 662 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_new_client && safe_str_eq(cmd->action, "stop")) { action 668 crmd/remote_lrmd_ra.c crm_debug("Event did not match %s action", ra_data->cur_cmd->action); action 763 crmd/remote_lrmd_ra.c if (!strcmp(cmd->action, "start") || !strcmp(cmd->action, "migrate_from")) { action 778 crmd/remote_lrmd_ra.c } else if (!strcmp(cmd->action, "monitor")) { action 800 crmd/remote_lrmd_ra.c } else if (!strcmp(cmd->action, "stop")) { action 816 crmd/remote_lrmd_ra.c } else if (!strcmp(cmd->action, "migrate_to")) { action 821 crmd/remote_lrmd_ra.c } else if (!strcmp(cmd->action, "reload")) { action 900 crmd/remote_lrmd_ra.c is_remote_ra_supported_action(const char *action) action 902 crmd/remote_lrmd_ra.c if (!action) { action 904 crmd/remote_lrmd_ra.c } else if (strcmp(action, "start") && action 905 crmd/remote_lrmd_ra.c strcmp(action, "stop") && action 906 crmd/remote_lrmd_ra.c strcmp(action, "reload") && action 907 crmd/remote_lrmd_ra.c strcmp(action, "migrate_to") && action 908 crmd/remote_lrmd_ra.c strcmp(action, "migrate_from") && strcmp(action, "monitor")) { action 924 crmd/remote_lrmd_ra.c if (cmd->interval > 0 && safe_str_eq(cmd->action, "monitor")) { action 934 crmd/remote_lrmd_ra.c crm_trace("Pre-emptively failing %s %s (interval=%d, %s)", cmd->action, cmd->rsc_id, cmd->interval, cmd->userdata); action 947 crmd/remote_lrmd_ra.c remove_cmd(GList * list, const char *action, int interval) action 954 crmd/remote_lrmd_ra.c if (cmd->interval == interval && safe_str_eq(cmd->action, action)) { action 967 crmd/remote_lrmd_ra.c remote_ra_cancel(lrm_state_t * lrm_state, const char *rsc_id, const char *action, int interval) action 978 crmd/remote_lrmd_ra.c ra_data->cmds = remove_cmd(ra_data->cmds, action, interval); action 979 crmd/remote_lrmd_ra.c ra_data->recurring_cmds = remove_cmd(ra_data->recurring_cmds, action, interval); action 982 crmd/remote_lrmd_ra.c (safe_str_eq(ra_data->cur_cmd->action, action))) { action 1009 crmd/remote_lrmd_ra.c safe_str_eq(ra_data->cur_cmd->action, "monitor")) { action 1017 crmd/remote_lrmd_ra.c if (cmd->interval == interval && safe_str_eq(cmd->action, "monitor")) { action 1024 crmd/remote_lrmd_ra.c if (cmd->interval == interval && safe_str_eq(cmd->action, "monitor")) { action 1061 crmd/remote_lrmd_ra.c remote_ra_exec(lrm_state_t * lrm_state, const char *rsc_id, const char *action, const char *userdata, int interval, /* ms */ action 1071 crmd/remote_lrmd_ra.c if (is_remote_ra_supported_action(action) == FALSE) { action 1093 crmd/remote_lrmd_ra.c cmd->action = strdup(action); action 37 crmd/te_actions.c void send_rsc_command(crm_action_t * action); action 38 crmd/te_actions.c static void te_update_job_count(crm_action_t * action, int offset); action 41 crmd/te_actions.c te_start_action_timer(crm_graph_t * graph, crm_action_t * action) action 43 crmd/te_actions.c action->timer = calloc(1, sizeof(crm_action_timer_t)); action 44 crmd/te_actions.c action->timer->timeout = action->timeout; action 45 crmd/te_actions.c action->timer->reason = timeout_action; action 46 crmd/te_actions.c action->timer->action = action; action 47 crmd/te_actions.c action->timer->source_id = g_timeout_add(action->timer->timeout + graph->network_delay, action 48 crmd/te_actions.c action_timer_callback, (void *)action->timer); action 50 crmd/te_actions.c CRM_ASSERT(action->timer->source_id != 0); action 92 crmd/te_actions.c send_stonith_update(crm_action_t * action, const char *target, const char *uuid) action 161 crmd/te_actions.c te_fence_node(crm_graph_t * graph, crm_action_t * action) action 171 crmd/te_actions.c id = ID(action->xml); action 172 crmd/te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 173 crmd/te_actions.c uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 174 crmd/te_actions.c type = crm_meta_value(action->params, "stonith_action"); action 182 crmd/te_actions.c crm_log_xml_warn(action->xml, "BadAction"); action 202 crmd/te_actions.c generate_transition_key(transition_graph->id, action->id, action 210 crmd/te_actions.c get_target_rc(crm_action_t * action) action 212 crmd/te_actions.c const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); action 221 crmd/te_actions.c te_crm_command(crm_graph_t * graph, crm_action_t * action) action 236 crmd/te_actions.c id = ID(action->xml); action 237 crmd/te_actions.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 238 crmd/te_actions.c on_node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 239 crmd/te_actions.c router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 257 crmd/te_actions.c value = crm_meta_value(action->params, XML_ATTR_TE_NOWAIT); action 267 crmd/te_actions.c te_action_confirmed(action); action 268 crmd/te_actions.c update_graph(graph, action); action 277 crmd/te_actions.c cmd = create_request(task, action->xml, router_node, CRM_SYSTEM_CRMD, CRM_SYSTEM_TENGINE, NULL); action 280 crmd/te_actions.c generate_transition_key(transition_graph->id, action->id, get_target_rc(action), te_uuid); action 288 crmd/te_actions.c crm_err("Action %d failed: send", action->id); action 292 crmd/te_actions.c te_action_confirmed(action); action 293 crmd/te_actions.c update_graph(graph, action); action 297 crmd/te_actions.c if (action->timeout <= 0) { action 299 crmd/te_actions.c action->id, task, on_node, action->timeout, graph->network_delay); action 300 crmd/te_actions.c action->timeout = graph->network_delay; action 302 crmd/te_actions.c te_start_action_timer(graph, action); action 309 crmd/te_actions.c cib_action_update(crm_action_t * action, int status, int op_rc) action 320 crmd/te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 321 crmd/te_actions.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 322 crmd/te_actions.c const char *task_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 323 crmd/te_actions.c const char *target_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 326 crmd/te_actions.c int target_rc = get_target_rc(action); action 330 crmd/te_actions.c crm_element_name(action->xml), action->id, task_uuid, target); action 333 crmd/te_actions.c crm_element_name(action->xml), action->id, task_uuid, target); action 336 crmd/te_actions.c action_rsc = find_xml_node(action->xml, XML_CIB_TAG_RESOURCE, TRUE); action 342 crmd/te_actions.c CRM_CHECK(rsc_id != NULL, crm_log_xml_err(action->xml, "Bad:action"); action 371 crmd/te_actions.c op = convert_graph_action(NULL, action, status, op_rc); action 373 crmd/te_actions.c op->user_data = generate_transition_key(transition_graph->id, action->id, target_rc, te_uuid); action 380 crmd/te_actions.c crm_element_name(action->xml), crm_str(task), rsc_id, target); action 386 crmd/te_actions.c services_lrm_status_str(status), action->id, task_uuid, target, rc); action 391 crmd/te_actions.c action->sent_update = TRUE; action 401 crmd/te_actions.c te_rsc_command(crm_graph_t * graph, crm_action_t * action) action 423 crmd/te_actions.c CRM_ASSERT(action != NULL); action 424 crmd/te_actions.c CRM_ASSERT(action->xml != NULL); action 426 crmd/te_actions.c action->executed = FALSE; action 427 crmd/te_actions.c on_node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 430 crmd/te_actions.c crm_err("Corrupted command(id=%s) %s: no node", ID(action->xml), crm_str(task)); action 433 crmd/te_actions.c rsc_op = action->xml; action 435 crmd/te_actions.c task_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 443 crmd/te_actions.c generate_transition_key(transition_graph->id, action->id, get_target_rc(action), te_uuid); action 450 crmd/te_actions.c value = crm_meta_value(action->params, XML_ATTR_TE_NOWAIT); action 457 crmd/te_actions.c (no_wait? " without waiting" : ""), action->id); action 488 crmd/te_actions.c action->executed = TRUE; action 491 crmd/te_actions.c crm_err("Action %d failed: send", action->id); action 495 crmd/te_actions.c crm_info("Action %d confirmed - no wait", action->id); action 496 crmd/te_actions.c action->confirmed = TRUE; /* Just mark confirmed. action 499 crmd/te_actions.c update_graph(transition_graph, action); action 502 crmd/te_actions.c } else if (action->confirmed == TRUE) { action 504 crmd/te_actions.c action->id, task, task_uuid, on_node, action->timeout); action 506 crmd/te_actions.c if (action->timeout <= 0) { action 508 crmd/te_actions.c action->id, task, task_uuid, on_node, action->timeout, graph->network_delay); action 509 crmd/te_actions.c action->timeout = graph->network_delay; action 511 crmd/te_actions.c te_update_job_count(action, 1); action 512 crmd/te_actions.c te_start_action_timer(graph, action); action 573 crmd/te_actions.c te_update_job_count(crm_action_t * action, int offset) action 575 crmd/te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 576 crmd/te_actions.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 578 crmd/te_actions.c if (action->type != action_type_rsc || target == NULL) { action 587 crmd/te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 592 crmd/te_actions.c const char *t1 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); action 593 crmd/te_actions.c const char *t2 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); action 599 crmd/te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 606 crmd/te_actions.c te_should_perform_action_on(crm_graph_t * graph, crm_action_t * action, const char *target) action 610 crmd/te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 611 crmd/te_actions.c const char *id = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 649 crmd/te_actions.c te_should_perform_action(crm_graph_t * graph, crm_action_t * action) action 652 crmd/te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 654 crmd/te_actions.c if (action->type != action_type_rsc) { action 663 crmd/te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 668 crmd/te_actions.c target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); action 669 crmd/te_actions.c if(te_should_perform_action_on(graph, action, target) == FALSE) { action 673 crmd/te_actions.c target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); action 676 crmd/te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 679 crmd/te_actions.c return te_should_perform_action_on(graph, action, target); action 683 crmd/te_actions.c te_action_confirmed(crm_action_t * action) action 685 crmd/te_actions.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 687 crmd/te_actions.c if (action->confirmed == FALSE && action->type == action_type_rsc && target != NULL) { action 688 crmd/te_actions.c te_update_job_count(action, -1); action 690 crmd/te_actions.c action->confirmed = TRUE; action 755 crmd/te_callbacks.c crm_action_t *action = NULL; action 784 crmd/te_callbacks.c action = get_action(stonith_id, FALSE); action 785 crmd/te_callbacks.c if (action == NULL) { action 790 crmd/te_callbacks.c stop_te_timer(action->timer); action 792 crmd/te_callbacks.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 793 crmd/te_callbacks.c const char *uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 794 crmd/te_callbacks.c const char *op = crm_meta_value(action->params, "stonith_action"); action 797 crmd/te_callbacks.c if (action->confirmed == FALSE) { action 798 crmd/te_callbacks.c te_action_confirmed(action); action 806 crmd/te_callbacks.c value = crm_meta_value(action->params, XML_OP_ATTR_DIGESTS_ALL); action 809 crmd/te_callbacks.c value = crm_meta_value(action->params, XML_OP_ATTR_DIGESTS_SECURE); action 812 crmd/te_callbacks.c } else if (action->sent_update == FALSE) { action 813 crmd/te_callbacks.c send_stonith_update(action, target, uuid); action 814 crmd/te_callbacks.c action->sent_update = TRUE; action 820 crmd/te_callbacks.c const char *target = crm_element_value_const(action->xml, XML_LRM_ATTR_TARGET); action 823 crmd/te_callbacks.c action->failed = TRUE; action 843 crmd/te_callbacks.c update_graph(transition_graph, action); action 888 crmd/te_callbacks.c CRM_CHECK(timer->action != NULL, return FALSE); action 894 crmd/te_callbacks.c print_action(LOG_WARNING, "Action missed its timeout: ", timer->action); action 905 crmd/te_callbacks.c const char *task = crm_element_value(timer->action->xml, XML_LRM_ATTR_TASK); action 907 crmd/te_callbacks.c print_action(LOG_ERR, "Aborting transition, action lost: ", timer->action); action 909 crmd/te_callbacks.c timer->action->failed = TRUE; action 910 crmd/te_callbacks.c te_action_confirmed(timer->action); action 913 crmd/te_callbacks.c update_graph(transition_graph, timer->action); action 916 crmd/te_callbacks.c if (timer->action->type != action_type_rsc) { action 924 crmd/te_callbacks.c cib_action_update(timer->action, PCMK_LRM_OP_TIMEOUT, PCMK_OCF_UNKNOWN_ERROR); action 60 crmd/te_events.c crm_action_t *action = (crm_action_t *) gIter2->data; action 62 crmd/te_events.c if (action->type == action_type_pseudo || action->confirmed) { action 64 crmd/te_events.c } else if (action->type == action_type_crm) { action 65 crmd/te_events.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 72 crmd/te_events.c target_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 73 crmd/te_events.c router = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 82 crmd/te_events.c action->failed = TRUE; action 84 crmd/te_events.c last_action = action->xml; action 85 crmd/te_events.c stop_te_timer(action->timer); action 86 crmd/te_events.c update_graph(graph, action); action 90 crmd/te_events.c action->id, crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY), down_node); action 93 crmd/te_events.c action->id, crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY), down_node); action 229 crmd/te_events.c status_from_rc(crm_action_t * action, int orig_status, int rc, int target_rc) action 240 crmd/te_events.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 241 crmd/te_events.c const char *uname = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 244 crmd/te_events.c action->id, task, uname, target_rc, rc, action 265 crmd/te_events.c match_graph_event(crm_action_t *action, xmlNode *event, int op_status, action 273 crmd/te_events.c op_status = status_from_rc(action, op_status, op_rc, target_rc); action 285 crmd/te_events.c action->failed = TRUE; action 298 crmd/te_events.c action->failed = TRUE; action 303 crmd/te_events.c stop_te_timer(action->timer); action 304 crmd/te_events.c te_action_confirmed(action); action 306 crmd/te_events.c update_graph(transition_graph, action); action 309 crmd/te_events.c if (action->failed) { action 310 crmd/te_events.c abort_transition(action->synapse->priority + 1, tg_restart, "Event failed", event); action 314 crmd/te_events.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 316 crmd/te_events.c crm_str(this_event), action->id, crm_str(target), op_rc, ignore_s); action 331 crmd/te_events.c crm_action_t *action = (crm_action_t *) gIter2->data; action 333 crmd/te_events.c if (action->id == id) { action 335 crmd/te_events.c stop_te_timer(action->timer); action 336 crmd/te_events.c te_action_confirmed(action); action 338 crmd/te_events.c return action; action 360 crmd/te_events.c crm_action_t *action = (crm_action_t *) gIter2->data; action 362 crmd/te_events.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 367 crmd/te_events.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 373 crmd/te_events.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 380 crmd/te_events.c return action; action 447 crmd/te_events.c crm_action_t *action = NULL; action 506 crmd/te_events.c action = get_action(action_num, FALSE); action 508 crmd/te_events.c if (action == NULL) { action 514 crmd/te_events.c crm_meta_value(action->params, XML_OP_ATTR_ON_FAIL), "ignore"); action 515 crmd/te_events.c match_graph_event(action, event, status, rc, target_rc, ignore_failures); action 519 crmd/te_events.c if (action && (rc == target_rc)) { action 146 crmd/te_utils.c crm_action_t *action = (crm_action_t *) lpc2->data; action 148 crmd/te_utils.c if (action->type != action_type_crm || action->confirmed) { action 152 crmd/te_utils.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 154 crmd/te_utils.c action->failed = TRUE; action 155 crmd/te_utils.c last_action = action->xml; action 156 crmd/te_utils.c update_graph(graph, action); action 158 crmd/te_utils.c action->id, ID(action->xml)); action 220 crmd/te_utils.c if (st_event->result == pcmk_ok && safe_str_eq("on", st_event->action)) { action 226 crmd/te_utils.c } else if (safe_str_eq("on", st_event->action)) { action 278 crmd/te_utils.c st_event->action, action 54 crmd/tengine.c do_te_control(long long action, action 61 crmd/tengine.c if (action & A_TE_STOP) { action 76 crmd/tengine.c if ((action & A_TE_START) == 0) { action 83 crmd/tengine.c } else if ((action & A_TE_START) && cur_state == S_STOPPING) { action 128 crmd/tengine.c do_te_invoke(long long action, action 134 crmd/tengine.c if (AM_I_DC == FALSE || (fsa_state != S_TRANSITION_ENGINE && (action & A_TE_INVOKE))) { action 136 crmd/tengine.c fsa_action2string(action), fsa_state2string(fsa_state)); action 140 crmd/tengine.c if (action & A_TE_CANCEL) { action 148 crmd/tengine.c } else if (action & A_TE_HALT) { action 155 crmd/tengine.c } else if (action & A_TE_INVOKE) { action 39 crmd/tengine.h extern gboolean cib_action_update(crm_action_t * action, int status, int op_rc); action 67 crmd/tengine.h # define abort_transition(pri, action, text, reason) \ action 68 crmd/tengine.h abort_transition_graph(pri, action, text, reason,__FUNCTION__,__LINE__); action 80 crmd/tengine.h void te_action_confirmed(crm_action_t * action); action 36 crmd/utils.c do_timer_control(long long action, action 43 crmd/utils.c if (action & A_DC_TIMER_STOP) { action 46 crmd/utils.c } else if (action & A_FINALIZE_TIMER_STOP) { action 49 crmd/utils.c } else if (action & A_INTEGRATE_TIMER_STOP) { action 57 crmd/utils.c if (action & A_DC_TIMER_START && timer_op_ok) { action 64 crmd/utils.c } else if (action & A_FINALIZE_TIMER_START) { action 67 crmd/utils.c } else if (action & A_INTEGRATE_TIMER_START) { action 464 crmd/utils.c fsa_action2string(long long action) action 468 crmd/utils.c switch (action) { action 666 crmd/utils.c crm_err("Action %.16llx is unknown", action); action 758 crmd/utils.c fsa_dump_actions(long long action, const char *text) action 760 crmd/utils.c if (is_set(action, A_READCONFIG)) { action 763 crmd/utils.c if (is_set(action, A_STARTUP)) { action 766 crmd/utils.c if (is_set(action, A_STARTED)) { action 769 crmd/utils.c if (is_set(action, A_HA_CONNECT)) { action 772 crmd/utils.c if (is_set(action, A_HA_DISCONNECT)) { action 775 crmd/utils.c if (is_set(action, A_LRM_CONNECT)) { action 778 crmd/utils.c if (is_set(action, A_LRM_EVENT)) { action 781 crmd/utils.c if (is_set(action, A_LRM_INVOKE)) { action 784 crmd/utils.c if (is_set(action, A_LRM_DISCONNECT)) { action 787 crmd/utils.c if (is_set(action, A_DC_TIMER_STOP)) { action 790 crmd/utils.c if (is_set(action, A_DC_TIMER_START)) { action 793 crmd/utils.c if (is_set(action, A_INTEGRATE_TIMER_START)) { action 796 crmd/utils.c if (is_set(action, A_INTEGRATE_TIMER_STOP)) { action 799 crmd/utils.c if (is_set(action, A_FINALIZE_TIMER_START)) { action 802 crmd/utils.c if (is_set(action, A_FINALIZE_TIMER_STOP)) { action 805 crmd/utils.c if (is_set(action, A_ELECTION_COUNT)) { action 808 crmd/utils.c if (is_set(action, A_ELECTION_VOTE)) { action 811 crmd/utils.c if (is_set(action, A_ELECTION_CHECK)) { action 814 crmd/utils.c if (is_set(action, A_CL_JOIN_ANNOUNCE)) { action 817 crmd/utils.c if (is_set(action, A_CL_JOIN_REQUEST)) { action 820 crmd/utils.c if (is_set(action, A_CL_JOIN_RESULT)) { action 823 crmd/utils.c if (is_set(action, A_DC_JOIN_OFFER_ALL)) { action 826 crmd/utils.c if (is_set(action, A_DC_JOIN_OFFER_ONE)) { action 829 crmd/utils.c if (is_set(action, A_DC_JOIN_PROCESS_REQ)) { action 832 crmd/utils.c if (is_set(action, A_DC_JOIN_PROCESS_ACK)) { action 835 crmd/utils.c if (is_set(action, A_DC_JOIN_FINALIZE)) { action 838 crmd/utils.c if (is_set(action, A_MSG_PROCESS)) { action 841 crmd/utils.c if (is_set(action, A_MSG_ROUTE)) { action 844 crmd/utils.c if (is_set(action, A_RECOVER)) { action 847 crmd/utils.c if (is_set(action, A_DC_RELEASE)) { action 850 crmd/utils.c if (is_set(action, A_DC_RELEASED)) { action 853 crmd/utils.c if (is_set(action, A_DC_TAKEOVER)) { action 856 crmd/utils.c if (is_set(action, A_SHUTDOWN)) { action 859 crmd/utils.c if (is_set(action, A_SHUTDOWN_REQ)) { action 862 crmd/utils.c if (is_set(action, A_STOP)) { action 865 crmd/utils.c if (is_set(action, A_EXIT_0)) { action 868 crmd/utils.c if (is_set(action, A_EXIT_1)) { action 871 crmd/utils.c if (is_set(action, A_CCM_CONNECT)) { action 874 crmd/utils.c if (is_set(action, A_CCM_DISCONNECT)) { action 877 crmd/utils.c if (is_set(action, A_CIB_START)) { action 880 crmd/utils.c if (is_set(action, A_CIB_STOP)) { action 883 crmd/utils.c if (is_set(action, A_TE_INVOKE)) { action 886 crmd/utils.c if (is_set(action, A_TE_START)) { action 889 crmd/utils.c if (is_set(action, A_TE_STOP)) { action 892 crmd/utils.c if (is_set(action, A_TE_CANCEL)) { action 895 crmd/utils.c if (is_set(action, A_PE_INVOKE)) { action 898 crmd/utils.c if (is_set(action, A_PE_START)) { action 901 crmd/utils.c if (is_set(action, A_PE_STOP)) { action 904 crmd/utils.c if (is_set(action, A_NODE_BLOCK)) { action 907 crmd/utils.c if (is_set(action, A_UPDATE_NODESTATUS)) { action 910 crmd/utils.c if (is_set(action, A_LOG)) { action 913 crmd/utils.c if (is_set(action, A_ERROR)) { action 916 crmd/utils.c if (is_set(action, A_WARN)) { action 183 fencing/admin.c const char *action; action 223 fencing/admin.c safe_str_eq(async_fence_data.action, e->action)) { action 254 fencing/admin.c async_fence_data.action, action 271 fencing/admin.c mainloop_fencing(stonith_t * st, const char *target, const char *action, int timeout, int tolerance) action 277 fencing/admin.c async_fence_data.action = action; action 321 fencing/admin.c fence_action_str(const char *action) action 325 fencing/admin.c if (action == NULL) { action 327 fencing/admin.c } else if (action[0] == 'o') { // on, off action 328 fencing/admin.c str = crm_concat("turn", action, ' '); action 330 fencing/admin.c str = strdup(action); action 338 fencing/admin.c char *action_s = fence_action_str(event->action); action 370 fencing/admin.c action_s = fence_action_str(hp->action); action 383 fencing/admin.c action_s = fence_action_str(hp->action); action 424 fencing/admin.c char action = 0; action 454 fencing/admin.c action = flag; action 463 fencing/admin.c action = flag; action 475 fencing/admin.c action = 'L'; action 479 fencing/admin.c action = flag; action 494 fencing/admin.c action = flag; action 504 fencing/admin.c action = flag; action 568 fencing/admin.c switch (action) { action 641 fencing/admin.c rc = handle_level(st, target, fence_level, devices, action == 'r'); action 59 fencing/commands.c char *action; action 105 fencing/commands.c char *action; action 127 fencing/commands.c is_action_required(const char *action, stonith_device_t *device) action 129 fencing/commands.c return device && device->automatic_unfencing && safe_str_eq(action, "on"); action 133 fencing/commands.c get_action_delay_max(stonith_device_t * device, const char * action) action 138 fencing/commands.c if (safe_str_neq(action, "off") && safe_str_neq(action, "reboot")) { action 151 fencing/commands.c get_action_delay_base(stonith_device_t * device, const char * action) action 156 fencing/commands.c if (safe_str_neq(action, "off") && safe_str_neq(action, "reboot")) { action 189 fencing/commands.c get_action_timeout(stonith_device_t * device, const char *action, int default_timeout) action 191 fencing/commands.c if (action && device && device->params) { action 198 fencing/commands.c if (safe_str_eq(action, "reboot") action 202 fencing/commands.c action = "off"; action 206 fencing/commands.c snprintf(buffer, sizeof(buffer), "pcmk_%s_timeout", action); action 230 fencing/commands.c free(cmd->action); action 246 fencing/commands.c const char *action = crm_element_value(op, F_STONITH_ACTION); action 248 fencing/commands.c CRM_CHECK(action != NULL, crm_log_xml_warn(msg, "NoAction"); return NULL); action 262 fencing/commands.c cmd->action = strdup(action); action 321 fencing/commands.c stonith_action_t *action = NULL; action 342 fencing/commands.c cmd->action, cmd->victim ? " for node " : "", cmd->victim ? cmd->victim : "", action 357 fencing/commands.c if(safe_str_eq(cmd->action, "reboot")) { action 361 fencing/commands.c } else if(safe_str_eq(cmd->action, "off")) { action 366 fencing/commands.c crm_info("Faking success for %s watchdog operation", cmd->action); action 375 fencing/commands.c if (safe_str_eq(cmd->action,"stop")) { action 389 fencing/commands.c action_str = cmd->action; action 390 fencing/commands.c if (safe_str_eq(cmd->action, "reboot") && is_not_set(device->flags, st_device_supports_reboot)) { action 395 fencing/commands.c action = stonith_action_create(device->agent, action 402 fencing/commands.c exec_rc = stonith_action_execute_async(action, (void *)cmd, cmd->done_cb); action 406 fencing/commands.c cmd->action, cmd->victim ? " for node " : "", cmd->victim ? cmd->victim : "", action 412 fencing/commands.c cmd->action, cmd->victim ? " for node " : "", cmd->victim ? cmd->victim : "", action 461 fencing/commands.c cmd->timeout = get_action_timeout(device, cmd->action, cmd->default_timeout); action 465 fencing/commands.c cmd->action, device->id, cmd->origin, cmd->remote_op_id, cmd->timeout); action 468 fencing/commands.c cmd->action, device->id, cmd->client, cmd->timeout); action 474 fencing/commands.c delay_max = get_action_delay_max(device, cmd->action); action 475 fencing/commands.c delay_base = get_action_delay_base(device, cmd->action); action 482 fencing/commands.c delay_base, delay_max, cmd->action, device->id); action 492 fencing/commands.c cmd->action, device->id, cmd->start_delay, cmd->timeout, action 511 fencing/commands.c crm_warn("Removal of device '%s' purged operation %s", device->id, cmd->action); action 745 fencing/commands.c add_action(char *actions, const char *action) action 758 fencing/commands.c offset += snprintf(actions+offset, MAX_ACTION_LEN - offset, "%s", action); action 784 fencing/commands.c const char *action = NULL; action 791 fencing/commands.c action = crm_element_value(match, "name"); action 793 fencing/commands.c if(safe_str_eq(action, "list")) { action 795 fencing/commands.c } else if(safe_str_eq(action, "status")) { action 797 fencing/commands.c } else if(safe_str_eq(action, "reboot")) { action 799 fencing/commands.c } else if (safe_str_eq(action, "on")) { action 811 fencing/commands.c if (action && crm_is_true(on_target)) { action 812 fencing/commands.c device->on_target_actions = add_action(device->on_target_actions, action); action 828 fencing/commands.c map_action(GHashTable *params, const char *action, const char *value) action 830 fencing/commands.c char *key = crm_strdup_printf("pcmk_%s_action", action); action 963 fencing/commands.c const char *action, action 977 fencing/commands.c cmd->action = strdup(action); action 1525 fencing/commands.c search->action ? search->action : "<unknown>", action 1530 fencing/commands.c free(search->action); action 1547 fencing/commands.c localhost_is_eligible(const stonith_device_t *device, const char *action, action 1552 fencing/commands.c if (device && action && device->on_target_actions action 1553 fencing/commands.c && strstr(device->on_target_actions, action)) { action 1556 fencing/commands.c action, device->id, target); action 1561 fencing/commands.c crm_trace("%s operation does not support self-fencing", action); action 1585 fencing/commands.c if (safe_str_eq(search->action, "reboot")) { action 1596 fencing/commands.c } else if (!localhost_is_eligible(dev, search->action, host, action 1629 fencing/commands.c check_type, dev?dev->id:"N/A", search->host, search->action); action 1644 fencing/commands.c check_type, dev?dev->id:"N/A", search->host, search->action); action 1654 fencing/commands.c crm_notice("%s can%s fence (%s) %s: %s", dev->id, can ? "" : " not", search->action, host, check_type); action 1656 fencing/commands.c crm_notice("%s can%s fence (%s) %s (aka. '%s'): %s", dev->id, can ? "" : " not", search->action, host, alias, action 1675 fencing/commands.c get_capable_devices(const char *host, const char *action, int timeout, bool suicide, void *user_data, action 1723 fencing/commands.c search->action = action ? strdup(action) : NULL; action 1736 fencing/commands.c search->action ? search->action : "<unknown>", action 1746 fencing/commands.c char *action; action 1759 fencing/commands.c add_action_specific_attributes(xmlNode *xml, const char *action, action 1766 fencing/commands.c CRM_CHECK(xml && action && device, return); action 1768 fencing/commands.c if (is_action_required(action, device)) { action 1769 fencing/commands.c crm_trace("Action %s is required on %s", action, device->id); action 1773 fencing/commands.c action_specific_timeout = get_action_timeout(device, action, 0); action 1776 fencing/commands.c action, action_specific_timeout, device->id); action 1780 fencing/commands.c delay_max = get_action_delay_max(device, action); action 1783 fencing/commands.c action, delay_max, device->id); action 1787 fencing/commands.c delay_base = get_action_delay_base(device, action); action 1794 fencing/commands.c action, delay_max, device->id); action 1797 fencing/commands.c action, delay_base, device->id); action 1801 fencing/commands.c action, delay_base, delay_max, device->id); action 1816 fencing/commands.c add_disallowed(xmlNode *xml, const char *action, stonith_device_t *device, action 1819 fencing/commands.c if (!localhost_is_eligible(device, action, target, allow_suicide)) { action 1821 fencing/commands.c action, device->id); action 1837 fencing/commands.c add_action_reply(xmlNode *xml, const char *action, stonith_device_t *device, action 1842 fencing/commands.c crm_xml_add(child, XML_ATTR_ID, action); action 1843 fencing/commands.c add_action_specific_attributes(child, action, device); action 1844 fencing/commands.c add_disallowed(child, action, device, target, allow_suicide); action 1861 fencing/commands.c const char *action = query->action; action 1881 fencing/commands.c && safe_str_eq(query->action, "reboot")) { action 1884 fencing/commands.c action = "off"; action 1888 fencing/commands.c add_action_specific_attributes(dev, action, device); action 1889 fencing/commands.c if (safe_str_eq(query->action, "reboot")) { action 1901 fencing/commands.c add_disallowed(dev, action, device, query->target, action 1933 fencing/commands.c free(query->action); action 1943 fencing/commands.c const char *action = NULL; action 1953 fencing/commands.c action = crm_element_value(dev, F_STONITH_ACTION); action 1967 fencing/commands.c query->action = action ? strdup(action) : NULL; action 1970 fencing/commands.c get_capable_devices(target, action, timeout, action 1986 fencing/commands.c cmd->action, pid, cmd->id, cmd->client_name, cmd->victim, cmd->device, rc, action 1991 fencing/commands.c cmd->action, pid, cmd->device, rc, pcmk_strerror(rc), action 2012 fencing/commands.c if (safe_str_eq(cmd->action, "metadata")) { action 2017 fencing/commands.c } else if (crm_str_eq(cmd->action, "monitor", TRUE) || action 2018 fencing/commands.c crm_str_eq(cmd->action, "list", TRUE) || crm_str_eq(cmd->action, "status", TRUE)) { action 2019 fencing/commands.c crm_trace("Never broadcast %s replies", cmd->action); action 2021 fencing/commands.c } else if (!stand_alone && safe_str_eq(cmd->origin, cmd->victim) && safe_str_neq(cmd->action, "on")) { action 2022 fencing/commands.c crm_trace("Broadcast %s reply for %s", cmd->action, cmd->victim); action 2097 fencing/commands.c crm_trace("Cancel scheduled %s on %s", cmd->action, device->id); action 2120 fencing/commands.c (safe_str_eq(cmd->action, "list") || action 2121 fencing/commands.c safe_str_eq(cmd->action, "monitor") || safe_str_eq(cmd->action, "status"))) { action 2130 fencing/commands.c cmd->action, cmd->device, rc, g_list_length(cmd->device_next)); action 2138 fencing/commands.c if (next_device != NULL && is_action_required(cmd->action, next_device)) { action 2145 fencing/commands.c } else if (rc != 0 && cmd->device_next && (is_action_required(cmd->action, device) == FALSE)) { action 2189 fencing/commands.c safe_str_neq(cmd->action, cmd_other->action) || action 2205 fencing/commands.c cmd_other->action, cmd_other->victim, cmd_other->client_name, cmd->client_name); action 2303 fencing/commands.c get_capable_devices(host, cmd->action, cmd->default_timeout, action 2549 fencing/commands.c const char *action = crm_element_value(dev, F_STONITH_ACTION); action 2556 fencing/commands.c client->name, client->id, action, target, device ? device : "(any)"); action 2560 fencing/commands.c if (stonith_check_fence_tolerance(tolerance, target, action)) { action 2567 fencing/commands.c remote_peer, action, target, device ? device : "(any)"); action 13 fencing/internal.h gboolean stonith_check_fence_tolerance(int tolerance, const char *target, const char *action); action 72 fencing/internal.h char *action; action 231 fencing/internal.h const char *action, action 240 fencing/remote.c free(op->action); action 272 fencing/remote.c return ((op->phase > st_phase_requested)? "reboot" : op->action); action 291 fencing/remote.c strcpy(op->action, "off"); action 308 fencing/remote.c strcpy(op->action, "on"); action 341 fencing/remote.c strcpy(op->action, "reboot"); action 353 fencing/remote.c crm_xml_add(notify_data, F_STONITH_ACTION, op->action); action 399 fencing/remote.c crm_xml_add(data, F_STONITH_OPERATION, op->action); action 476 fencing/remote.c op->action, op->target, op->delegate ? op->delegate : "<no-one>", action 513 fencing/remote.c op->action, op->target, op->delegate ? op->delegate : "<no-one>", action 547 fencing/remote.c op->action, op->target, op->client_name, op->id); action 561 fencing/remote.c op->action, op->target, op->client_name, op->id); action 575 fencing/remote.c op->action, op->id, op->target, op->client_name); action 580 fencing/remote.c op->action, op->id, op->target, op->client_name); action 806 fencing/remote.c if (g_list_next(op->devices_list) && safe_str_eq(op->action, "reboot")) { action 846 fencing/remote.c } else if (safe_str_neq(op->action, other_action)) { action 848 fencing/remote.c op->action, other_action); action 861 fencing/remote.c other->action, other->target, other->client_name, other->originator, other->id); action 867 fencing/remote.c other->action, other->target, other->client_name, other->originator, other->id, action 883 fencing/remote.c op->action, op->target, op->client_name, op->id, other->client_name, other->originator, action 999 fencing/remote.c op->action = crm_element_value_copy(dev, F_STONITH_ACTION); action 1025 fencing/remote.c && dev) ? "Recorded" : "Generated", op->id, op->action, op->target, op->client_name); action 1072 fencing/remote.c CRM_CHECK(op->action, return NULL); action 1081 fencing/remote.c CRM_XS " id=%s", op->action, op->target, op->id); action 1087 fencing/remote.c CRM_XS " id=%s", op->action, op->target, op->id); action 1093 fencing/remote.c op->action, op->target, op->id, op->state); action 1176 fencing/remote.c op->action, op->target, device); action 1179 fencing/remote.c op->action, op->target); action 1220 fencing/remote.c op->action, op->target, (device? device : "any device")); action 1402 fencing/remote.c if ((op->phase == st_phase_requested) && safe_str_eq(op->action, "on")) { action 1473 fencing/remote.c crm_xml_add(remote_op, F_STONITH_ACTION, op->action); action 1484 fencing/remote.c op->target, op->action, device, op->client_name, timeout_one); action 1491 fencing/remote.c peer->host, op->target, op->action, op->client_name, timeout_one, stonith_watchdog_timeout_ms); action 1504 fencing/remote.c op->action, op->client_name, op->id, device); action 1510 fencing/remote.c && safe_str_neq(op->action, "on")) { action 1513 fencing/remote.c op->action, op->client_name, op->id, device); action 1537 fencing/remote.c op->action, op->target, op->client_name); action 1542 fencing/remote.c op->target, op->action, op->client_name, op->state); action 1556 fencing/remote.c op->action, op->client_name, op->id, device); action 1564 fencing/remote.c op->replies, op->action, op->target, op->client_name, action 1570 fencing/remote.c op->replies, op->action, op->target, op->client_name, action 1579 fencing/remote.c op->action, op->target, device, op->client_name, op->id); action 1582 fencing/remote.c op->action, op->target, op->client_name, op->id); action 1624 fencing/remote.c if (safe_str_eq(op->action, "off") || safe_str_eq(op->action, "reboot")) { action 1663 fencing/remote.c const char *action, remote_fencing_op_t *op, action 1671 fencing/remote.c peer, device, action, props->custom_action_timeout[phase]); action 1678 fencing/remote.c peer, device, props->delay_max[phase], action); action 1685 fencing/remote.c peer, device, props->delay_base[phase], action); action 1689 fencing/remote.c if (safe_str_eq(action, "on")) { action 1695 fencing/remote.c peer, device, action); action 1706 fencing/remote.c peer, action, device); action 1848 fencing/remote.c op->target, op->action, ndevices, id); action 1948 fencing/remote.c device, op->devices->data, op->action, op->target); action 1954 fencing/remote.c op->action, op->target, op->client_name, op->id, op->originator, action 1976 fencing/remote.c device, op->target, op->action, op->client_name, op->originator, action 2073 fencing/remote.c crm_xml_add(entry, F_STONITH_ACTION, op->action); action 2087 fencing/remote.c stonith_check_fence_tolerance(int tolerance, const char *target, const char *action) action 2095 fencing/remote.c if (tolerance <= 0 || !remote_op_list || target == NULL || action == NULL) { action 2108 fencing/remote.c } else if (strcmp(rop->action, action) != 0) { action 2115 fencing/remote.c target, action, tolerance, rop->delegate, rop->originator); action 124 include/crm/common/util.h gboolean decode_transition_key(const char *key, char **uuid, int *action, action 35 include/crm/fencing/internal.h stonith_action_execute_async(stonith_action_t * action, action 41 include/crm/fencing/internal.h stonith_action_execute(stonith_action_t * action, int *agent_result, char **output); action 384 include/crm/lrmd.h int (*exec) (lrmd_t * lrmd, const char *rsc_id, const char *action, const char *userdata, /* userdata string given back in event notification */ action 413 include/crm/lrmd.h int (*cancel) (lrmd_t * lrmd, const char *rsc_id, const char *action, int interval); action 32 include/crm/pengine/internal.h # define pe_set_action_bit(action, bit) action->flags = crm_set_bit(__FUNCTION__, __LINE__, action->uuid, action->flags, bit) action 33 include/crm/pengine/internal.h # define pe_clear_action_bit(action, bit) action->flags = crm_clear_bit(__FUNCTION__, __LINE__, action->uuid, action->flags, bit) action 38 include/crm/pengine/internal.h const char *action; action 226 include/crm/pengine/internal.h extern int pe_get_configured_timeout(resource_t *rsc, const char *action, action 238 include/crm/pengine/internal.h extern void pe_free_action(action_t * action); action 303 include/crm/pengine/internal.h void pe_action_set_reason(pe_action_t *action, const char *reason, bool overwrite); action 304 include/crm/pengine/internal.h void pe_action_set_flag_reason(const char *function, long line, pe_action_t *action, pe_action_t *reason, const char *text, enum pe_action_flags flags, bool overwrite); action 306 include/crm/pengine/internal.h #define pe_action_required(action, reason, text) pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, reason, text, pe_action_optional, FALSE) action 307 include/crm/pengine/internal.h #define pe_action_implies(action, reason, flag) pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, reason, NULL, flag, FALSE) action 462 include/crm/pengine/status.h action_t *action; action 478 include/crm/pengine/status.h pe_rsc_action_details_t *pe_rsc_action_details(pe_action_t *action); action 165 include/crm/services.h char *action; action 247 include/crm/services.h svc_action_t *services_action_create(const char *name, const char *action, action 270 include/crm/services.h const char *action, int interval /* ms */ , action 277 include/crm/services.h gboolean services_action_kick(const char *name, const char *action, int interval /* ms */); action 313 include/crm/services.h gboolean services_action_cancel(const char *name, const char *action, int interval); action 319 include/crm/services.h gboolean services_alert_async(svc_action_t *action, action 388 include/crm/services.h services_get_ocf_exitcode(const char *action, int lsb_exitcode) action 391 include/crm/services.h if (action && strcmp(action, "status") && strcmp(action, "monitor")) { action 82 include/crm/stonith-ng.h char *action; action 104 include/crm/stonith-ng.h char *action; action 265 include/crm/stonith-ng.h int (*fence)(stonith_t *st, int options, const char *node, const char *action, action 81 include/crm/transition.h crm_action_t *action; action 121 include/crm/transition.h gboolean(*pseudo) (crm_graph_t * graph, crm_action_t * action); action 122 include/crm/transition.h gboolean(*rsc) (crm_graph_t * graph, crm_action_t * action); action 123 include/crm/transition.h gboolean(*crmd) (crm_graph_t * graph, crm_action_t * action); action 124 include/crm/transition.h gboolean(*stonith) (crm_graph_t * graph, crm_action_t * action); action 125 include/crm/transition.h gboolean(*allowed) (crm_graph_t * graph, crm_action_t * action); action 142 include/crm/transition.h gboolean update_graph(crm_graph_t * graph, crm_action_t * action); action 146 include/crm/transition.h void print_action(int log_level, const char *prefix, crm_action_t * action); action 148 include/crm/transition.h enum transition_action action, const char *abort_reason); action 150 include/crm/transition.h lrmd_event_data_t *convert_graph_action(xmlNode * resource, crm_action_t * action, int status, action 151 include/crm_internal.h char *generate_transition_key(int action, int transition_id, int target_rc, const char *node); action 54 lib/fencing/st_client.c char *action; action 158 lib/fencing/st_client.c static int internal_stonith_action_execute(stonith_action_t * action); action 159 lib/fencing/st_client.c static void log_action(stonith_action_t *action, pid_t pid); action 162 lib/fencing/st_client.c log_action(stonith_action_t *action, pid_t pid) action 164 lib/fencing/st_client.c if (action->output) { action 166 lib/fencing/st_client.c char *prefix = crm_strdup_printf("%s[%d] stdout:", action->agent, pid); action 168 lib/fencing/st_client.c crm_log_output(LOG_TRACE, prefix, action->output); action 172 lib/fencing/st_client.c if (action->error) { action 174 lib/fencing/st_client.c char *prefix = crm_strdup_printf("%s[%d] stderr:", action->agent, pid); action 176 lib/fencing/st_client.c crm_log_output(LOG_WARNING, prefix, action->error); action 510 lib/fencing/st_client.c make_args(const char *agent, const char *action, const char *victim, uint32_t victim_nodeid, GHashTable * device_args, action 517 lib/fencing/st_client.c CRM_CHECK(action != NULL, return NULL); action 519 lib/fencing/st_client.c snprintf(buffer, sizeof(buffer), "pcmk_%s_action", action); action 526 lib/fencing/st_client.c snprintf(buffer, sizeof(buffer), "pcmk_%s_cmd", action); action 530 lib/fencing/st_client.c if (value == NULL && device_args && safe_str_eq(action, "off")) { action 536 lib/fencing/st_client.c crm_info("Substituting action '%s' for requested operation '%s'", value, action); action 537 lib/fencing/st_client.c action = value; action 540 lib/fencing/st_client.c append_arg(STONITH_ATTR_ACTION_OP, action, &arg_list); action 557 lib/fencing/st_client.c action, victim, nodeid_str); action 589 lib/fencing/st_client.c crm_debug("Performing %s action for node '%s' as '%s=%s'", action, victim, param, action 635 lib/fencing/st_client.c stonith_action_clear_tracking_data(stonith_action_t * action) action 637 lib/fencing/st_client.c if (action->timer_sigterm > 0) { action 638 lib/fencing/st_client.c g_source_remove(action->timer_sigterm); action 639 lib/fencing/st_client.c action->timer_sigterm = 0; action 641 lib/fencing/st_client.c if (action->timer_sigkill > 0) { action 642 lib/fencing/st_client.c g_source_remove(action->timer_sigkill); action 643 lib/fencing/st_client.c action->timer_sigkill = 0; action 645 lib/fencing/st_client.c if (action->fd_stdout) { action 646 lib/fencing/st_client.c close(action->fd_stdout); action 647 lib/fencing/st_client.c action->fd_stdout = 0; action 649 lib/fencing/st_client.c if (action->fd_stderr) { action 650 lib/fencing/st_client.c close(action->fd_stderr); action 651 lib/fencing/st_client.c action->fd_stderr = 0; action 653 lib/fencing/st_client.c free(action->output); action 654 lib/fencing/st_client.c action->output = NULL; action 655 lib/fencing/st_client.c free(action->error); action 656 lib/fencing/st_client.c action->error = NULL; action 657 lib/fencing/st_client.c action->rc = 0; action 658 lib/fencing/st_client.c action->pid = 0; action 659 lib/fencing/st_client.c action->last_timeout_signo = 0; action 663 lib/fencing/st_client.c stonith_action_destroy(stonith_action_t * action) action 665 lib/fencing/st_client.c stonith_action_clear_tracking_data(action); action 666 lib/fencing/st_client.c free(action->agent); action 667 lib/fencing/st_client.c free(action->args); action 668 lib/fencing/st_client.c free(action->action); action 669 lib/fencing/st_client.c free(action->victim); action 670 lib/fencing/st_client.c free(action); action 681 lib/fencing/st_client.c stonith_action_t *action; action 683 lib/fencing/st_client.c action = calloc(1, sizeof(stonith_action_t)); action 685 lib/fencing/st_client.c action->args = make_args(agent, _action, victim, victim_nodeid, device_args, port_map); action 686 lib/fencing/st_client.c action->agent = strdup(agent); action 687 lib/fencing/st_client.c action->action = strdup(_action); action 689 lib/fencing/st_client.c action->victim = strdup(victim); action 691 lib/fencing/st_client.c action->timeout = action->remaining_timeout = timeout; action 692 lib/fencing/st_client.c action->max_retries = FAILURE_MAX_RETRIES; action 702 lib/fencing/st_client.c action->max_retries = atoi(value); action 706 lib/fencing/st_client.c return action; action 742 lib/fencing/st_client.c update_remaining_timeout(stonith_action_t * action) action 744 lib/fencing/st_client.c int diff = time(NULL) - action->initial_start_time; action 746 lib/fencing/st_client.c if (action->tries >= action->max_retries) { action 748 lib/fencing/st_client.c action->agent, action->action, action->max_retries); action 749 lib/fencing/st_client.c action->remaining_timeout = 0; action 750 lib/fencing/st_client.c } else if ((action->rc != -ETIME) && diff < (action->timeout * 0.7)) { action 753 lib/fencing/st_client.c action->remaining_timeout = action->timeout - diff; action 755 lib/fencing/st_client.c action->remaining_timeout = 0; action 757 lib/fencing/st_client.c return action->remaining_timeout ? TRUE : FALSE; action 763 lib/fencing/st_client.c stonith_action_t *action = mainloop_child_userdata(p); action 765 lib/fencing/st_client.c if (action->timer_sigterm > 0) { action 766 lib/fencing/st_client.c g_source_remove(action->timer_sigterm); action 767 lib/fencing/st_client.c action->timer_sigterm = 0; action 769 lib/fencing/st_client.c if (action->timer_sigkill > 0) { action 770 lib/fencing/st_client.c g_source_remove(action->timer_sigkill); action 771 lib/fencing/st_client.c action->timer_sigkill = 0; action 774 lib/fencing/st_client.c action->output = read_output(action->fd_stdout); action 775 lib/fencing/st_client.c action->error = read_output(action->fd_stderr); action 777 lib/fencing/st_client.c if (action->last_timeout_signo) { action 778 lib/fencing/st_client.c action->rc = -ETIME; action 780 lib/fencing/st_client.c pid, action->action, action->last_timeout_signo); action 783 lib/fencing/st_client.c action->rc = -ECONNABORTED; action 785 lib/fencing/st_client.c pid, action->action, signo); action 789 lib/fencing/st_client.c pid, action->action, exitcode); action 794 lib/fencing/st_client.c if (action->error == NULL) { action 797 lib/fencing/st_client.c } else if (strstr(action->error, "imed out")) { action 801 lib/fencing/st_client.c } else if (strstr(action->error, "Unrecognised action")) { action 808 lib/fencing/st_client.c action->rc = exitcode; action 811 lib/fencing/st_client.c log_action(action, pid); action 813 lib/fencing/st_client.c if (action->rc != pcmk_ok && update_remaining_timeout(action)) { action 814 lib/fencing/st_client.c int rc = internal_stonith_action_execute(action); action 820 lib/fencing/st_client.c if (action->done_cb) { action 821 lib/fencing/st_client.c action->done_cb(pid, action->rc, action->output, action->userdata); action 824 lib/fencing/st_client.c stonith_action_destroy(action); action 828 lib/fencing/st_client.c internal_stonith_action_execute(stonith_action_t * action) action 842 lib/fencing/st_client.c stonith_action_clear_tracking_data(action); action 844 lib/fencing/st_client.c if (!action->tries) { action 845 lib/fencing/st_client.c action->initial_start_time = time(NULL); action 847 lib/fencing/st_client.c action->tries++; action 849 lib/fencing/st_client.c if (action->tries > 1) { action 851 lib/fencing/st_client.c action->tries, action->agent, action->action, action->remaining_timeout); action 857 lib/fencing/st_client.c if (action->args == NULL || action->agent == NULL) action 859 lib/fencing/st_client.c len = strlen(action->args); action 911 lib/fencing/st_client.c execlp(action->agent, action->agent, NULL); action 916 lib/fencing/st_client.c action->pid = pid; action 921 lib/fencing/st_client.c action->agent, pcmk_strerror(rc), rc); action 927 lib/fencing/st_client.c action->agent, pcmk_strerror(rc), rc); action 932 lib/fencing/st_client.c ret = write(p_write_fd, action->args + total, len - total); action 950 lib/fencing/st_client.c if (action->async) { action 951 lib/fencing/st_client.c action->fd_stdout = p_read_fd; action 952 lib/fencing/st_client.c action->fd_stderr = p_stderr_fd; action 953 lib/fencing/st_client.c mainloop_child_add(pid, 0/* Move the timeout here? */, action->action, action, stonith_action_async_done); action 954 lib/fencing/st_client.c crm_trace("Op: %s on %s, pid: %d, timeout: %ds", action->action, action->agent, pid, action 955 lib/fencing/st_client.c action->remaining_timeout); action 956 lib/fencing/st_client.c action->last_timeout_signo = 0; action 957 lib/fencing/st_client.c if (action->remaining_timeout) { action 958 lib/fencing/st_client.c action->timer_sigterm = action 959 lib/fencing/st_client.c g_timeout_add(1000 * action->remaining_timeout, st_child_term, action); action 960 lib/fencing/st_client.c action->timer_sigkill = action 961 lib/fencing/st_client.c g_timeout_add(1000 * (action->remaining_timeout + 5), st_child_kill, action); action 964 lib/fencing/st_client.c action->action, action->agent); action 974 lib/fencing/st_client.c int timeout = action->remaining_timeout + 1; action 977 lib/fencing/st_client.c while (action->remaining_timeout < 0 || timeout > 0) { action 1008 lib/fencing/st_client.c action->output = read_output(p_read_fd); action 1009 lib/fencing/st_client.c action->error = read_output(p_stderr_fd); action 1011 lib/fencing/st_client.c action->rc = -ECONNABORTED; action 1013 lib/fencing/st_client.c log_action(action, pid); action 1015 lib/fencing/st_client.c rc = action->rc; action 1017 lib/fencing/st_client.c action->rc = -ETIME; action 1020 lib/fencing/st_client.c action->rc = -WEXITSTATUS(status); action 1024 lib/fencing/st_client.c crm_err("call %s for %s exited due to signal %d", action->action, action->agent, action 1029 lib/fencing/st_client.c action->action, action->agent, status); action 1059 lib/fencing/st_client.c stonith_action_execute_async(stonith_action_t * action, action 1066 lib/fencing/st_client.c if (!action) { action 1070 lib/fencing/st_client.c action->userdata = userdata; action 1071 lib/fencing/st_client.c action->done_cb = done; action 1072 lib/fencing/st_client.c action->async = 1; action 1074 lib/fencing/st_client.c rc = internal_stonith_action_execute(action); action 1076 lib/fencing/st_client.c return rc < 0 ? rc : action->pid; action 1080 lib/fencing/st_client.c stonith_action_execute(stonith_action_t * action, int *agent_result, char **output) action 1084 lib/fencing/st_client.c if (!action) { action 1089 lib/fencing/st_client.c rc = internal_stonith_action_execute(action); action 1095 lib/fencing/st_client.c } while (update_remaining_timeout(action)); action 1103 lib/fencing/st_client.c *agent_result = action->rc; action 1106 lib/fencing/st_client.c *output = action->output; action 1107 lib/fencing/st_client.c action->output = NULL; /* handed it off, do not free */ action 1110 lib/fencing/st_client.c stonith_action_destroy(action); action 1248 lib/fencing/st_client.c stonith_action_t *action = stonith_action_create(agent, "metadata", NULL, 0, 5, NULL, NULL); action 1249 lib/fencing/st_client.c int exec_rc = stonith_action_execute(action, &rc, &buffer); action 1455 lib/fencing/st_client.c const char *action, const char *victim, int timeout, xmlNode ** output) action 1463 lib/fencing/st_client.c crm_xml_add(data, F_STONITH_ACTION, action); action 1512 lib/fencing/st_client.c stonith_api_fence(stonith_t * stonith, int call_options, const char *node, const char *action, action 1520 lib/fencing/st_client.c crm_xml_add(data, F_STONITH_ACTION, action); action 1565 lib/fencing/st_client.c kvp->action = crm_element_value_copy(op, F_STONITH_ACTION); action 2159 lib/fencing/st_client.c event->action = crm_element_value_copy(data, F_STONITH_ACTION); action 2184 lib/fencing/st_client.c free(event->action); action 2555 lib/fencing/st_client.c const char *action = "reboot"; action 2566 lib/fencing/st_client.c api_log(LOG_ERR, "Connection failed, could not kick (%s) node %u/%s : %s (%d)", action, nodeid, uname, pcmk_strerror(rc), rc); action 2579 lib/fencing/st_client.c action = "off"; action 2583 lib/fencing/st_client.c rc = st->cmds->fence(st, opts, name, action, timeout, 0); action 2585 lib/fencing/st_client.c api_log(LOG_ERR, "Could not kick (%s) node %u/%s : %s (%d)", action, nodeid, uname, pcmk_strerror(rc), rc); action 2587 lib/fencing/st_client.c api_log(LOG_NOTICE, "Node %u/%s kicked: %s ", nodeid, uname, action); action 1592 lib/lrmd/lrmd_client.c svc_action_t *action; action 1602 lib/lrmd/lrmd_client.c action = resources_action_create(type, class, provider, type, action 1605 lib/lrmd/lrmd_client.c if (action == NULL) { action 1607 lib/lrmd/lrmd_client.c services_action_free(action); action 1611 lib/lrmd/lrmd_client.c if (!(services_action_sync(action))) { action 1613 lib/lrmd/lrmd_client.c services_action_free(action); action 1617 lib/lrmd/lrmd_client.c if (!action->stdout_data) { action 1619 lib/lrmd/lrmd_client.c services_action_free(action); action 1623 lib/lrmd/lrmd_client.c *output = strdup(action->stdout_data); action 1624 lib/lrmd/lrmd_client.c services_action_free(action); action 1630 lib/lrmd/lrmd_client.c lrmd_api_exec(lrmd_t * lrmd, const char *rsc_id, const char *action, const char *userdata, int interval, /* ms */ action 1642 lib/lrmd/lrmd_client.c crm_xml_add(data, F_LRMD_RSC_ACTION, action); action 1687 lib/lrmd/lrmd_client.c lrmd_api_cancel(lrmd_t * lrmd, const char *rsc_id, const char *action, int interval) action 1693 lib/lrmd/lrmd_client.c crm_xml_add(data, F_LRMD_RSC_ACTION, action); action 2616 lib/pengine/unpack.c action_t *action = NULL; action 2645 lib/pengine/unpack.c action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); action 2646 lib/pengine/unpack.c if ((action->on_fail <= action_fail_fence && *on_fail < action->on_fail) || action 2647 lib/pengine/unpack.c (action->on_fail == action_fail_reset_remote && *on_fail <= action_fail_recover) || action 2648 lib/pengine/unpack.c (action->on_fail == action_fail_restart_container && *on_fail <= action_fail_recover) || action 2649 lib/pengine/unpack.c (*on_fail == action_fail_restart_container && action->on_fail >= action_fail_migrate)) { action 2651 lib/pengine/unpack.c fail2text(action->on_fail), action->uuid, key); action 2652 lib/pengine/unpack.c *on_fail = action->on_fail; action 2670 lib/pengine/unpack.c if (action->on_fail == action_fail_block) { action 2701 lib/pengine/unpack.c fail2text(action->on_fail), role2text(action->fail_role)); action 2703 lib/pengine/unpack.c if (action->fail_role != RSC_ROLE_STARTED && rsc->next_role < action->fail_role) { action 2704 lib/pengine/unpack.c rsc->next_role = action->fail_role; action 2707 lib/pengine/unpack.c if (action->fail_role == RSC_ROLE_STOPPED) { action 2730 lib/pengine/unpack.c pe_free_action(action); action 2992 lib/pengine/unpack.c action_t *action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); action 2994 lib/pengine/unpack.c result = action->on_fail; action 2995 lib/pengine/unpack.c pe_free_action(action); action 36 lib/pengine/utils.c void unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, action 43 lib/pengine/utils.c pe_rsc_action_details(pe_action_t *action) action 47 lib/pengine/utils.c CRM_CHECK(action != NULL, return NULL); action 49 lib/pengine/utils.c if (action->action_details == NULL) { action 50 lib/pengine/utils.c action->action_details = calloc(1, sizeof(pe_rsc_action_details_t)); action 51 lib/pengine/utils.c CRM_CHECK(action->action_details != NULL, return NULL); action 54 lib/pengine/utils.c details = (pe_rsc_action_details_t *) action->action_details; action 66 lib/pengine/utils.c pe_free_rsc_action_details(pe_action_t *action) action 70 lib/pengine/utils.c if ((action == NULL) || (action->action_details == NULL)) { action 74 lib/pengine/utils.c details = (pe_rsc_action_details_t *) action->action_details; action 83 lib/pengine/utils.c action->action_details = NULL; action 423 lib/pengine/utils.c action_t *action = NULL; action 433 lib/pengine/utils.c action = g_hash_table_lookup(data_set->singletons, key); action 451 lib/pengine/utils.c action = g_list_nth_data(possible_matches, 0); action 453 lib/pengine/utils.c action->id, task, rsc ? rsc->id : "<NULL>", action 458 lib/pengine/utils.c if (action == NULL) { action 465 lib/pengine/utils.c action = calloc(1, sizeof(action_t)); action 467 lib/pengine/utils.c action->id = data_set->action_id++; action 469 lib/pengine/utils.c action->id = 0; action 471 lib/pengine/utils.c action->rsc = rsc; action 473 lib/pengine/utils.c action->task = strdup(task); action 475 lib/pengine/utils.c action->node = node_copy(on_node); action 477 lib/pengine/utils.c action->uuid = strdup(key); action 479 lib/pengine/utils.c pe_set_action_bit(action, pe_action_runnable); action 481 lib/pengine/utils.c pe_rsc_trace(rsc, "Set optional on %s", action->uuid); action 482 lib/pengine/utils.c pe_set_action_bit(action, pe_action_optional); action 484 lib/pengine/utils.c pe_clear_action_bit(action, pe_action_optional); action 485 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset optional on %s", action->uuid); action 499 lib/pengine/utils.c action->extra = crm_str_table_new(); action 500 lib/pengine/utils.c action->meta = crm_str_table_new(); action 503 lib/pengine/utils.c data_set->actions = g_list_prepend(data_set->actions, action); action 505 lib/pengine/utils.c g_hash_table_insert(data_set->singletons, action->uuid, action); action 510 lib/pengine/utils.c action->op_entry = find_rsc_op_entry_helper(rsc, key, TRUE); action 512 lib/pengine/utils.c unpack_operation(action, action->op_entry, rsc->container, data_set); action 515 lib/pengine/utils.c rsc->actions = g_list_prepend(rsc->actions, action); action 520 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %d created", action->id); action 525 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset optional on %s", action->uuid); action 526 lib/pengine/utils.c pe_clear_action_bit(action, pe_action_optional); action 530 lib/pengine/utils.c enum action_tasks a_task = text2task(action->task); action 537 lib/pengine/utils.c if (is_set(action->flags, pe_action_have_node_attrs) == FALSE action 538 lib/pengine/utils.c && action->node != NULL && action->op_entry != NULL) { action 539 lib/pengine/utils.c pe_set_action_bit(action, pe_action_have_node_attrs); action 540 lib/pengine/utils.c unpack_instance_attributes(data_set->input, action->op_entry, XML_TAG_ATTR_SETS, action 541 lib/pengine/utils.c action->node->details->attrs, action 542 lib/pengine/utils.c action->extra, NULL, FALSE, data_set->now); action 545 lib/pengine/utils.c if (is_set(action->flags, pe_action_pseudo)) { action 548 lib/pengine/utils.c } else if (action->node == NULL) { action 549 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset runnable on %s", action->uuid); action 550 lib/pengine/utils.c pe_clear_action_bit(action, pe_action_runnable); action 553 lib/pengine/utils.c && g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL) == NULL) { action 554 lib/pengine/utils.c crm_debug("Action %s (unmanaged)", action->uuid); action 555 lib/pengine/utils.c pe_rsc_trace(rsc, "Set optional on %s", action->uuid); action 556 lib/pengine/utils.c pe_set_action_bit(action, pe_action_optional); action 559 lib/pengine/utils.c } else if (action->node->details->online == FALSE action 560 lib/pengine/utils.c && (!is_container_remote_node(action->node) || action->node->details->remote_requires_reset)) { action 561 lib/pengine/utils.c pe_clear_action_bit(action, pe_action_runnable); action 563 lib/pengine/utils.c action->uuid, action->node->details->uname); action 564 lib/pengine/utils.c if (is_set(action->rsc->flags, pe_rsc_managed) action 566 lib/pengine/utils.c && action->node->details->unclean == FALSE) { action 567 lib/pengine/utils.c pe_fence_node(data_set, action->node, "resource actions are unrunnable"); action 570 lib/pengine/utils.c } else if (action->node->details->pending) { action 571 lib/pengine/utils.c pe_clear_action_bit(action, pe_action_runnable); action 573 lib/pengine/utils.c action->uuid, action->node->details->uname); action 575 lib/pengine/utils.c } else if (action->needs == rsc_req_nothing) { action 576 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %s does not require anything", action->uuid); action 577 lib/pengine/utils.c pe_action_set_reason(action, NULL, TRUE); action 578 lib/pengine/utils.c pe_set_action_bit(action, pe_action_runnable); action 584 lib/pengine/utils.c } else if (action->needs == rsc_req_stonith) { action 585 lib/pengine/utils.c crm_trace("Action %s requires only stonith", action->uuid); action 586 lib/pengine/utils.c action->runnable = TRUE; action 590 lib/pengine/utils.c pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, NULL, "no quorum", pe_action_runnable, TRUE); action 591 lib/pengine/utils.c crm_debug("%s\t%s (cancelled : quorum)", action->node->details->uname, action->uuid); action 595 lib/pengine/utils.c pe_rsc_trace(rsc, "Check resource is already active: %s %s %s %s", rsc->id, action->uuid, role2text(rsc->next_role), role2text(rsc->role)); action 597 lib/pengine/utils.c pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, NULL, "quorum freeze", pe_action_runnable, TRUE); action 599 lib/pengine/utils.c action->node->details->uname, action->uuid); action 602 lib/pengine/utils.c } else if(is_not_set(action->flags, pe_action_runnable)) { action 603 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %s is runnable", action->uuid); action 605 lib/pengine/utils.c pe_set_action_bit(action, pe_action_runnable); action 615 lib/pengine/utils.c if (is_set(action->flags, pe_action_runnable)) { action 626 lib/pengine/utils.c return action; action 630 lib/pengine/utils.c unpack_operation_on_fail(action_t * action) action 633 lib/pengine/utils.c const char *value = g_hash_table_lookup(action->meta, XML_OP_ATTR_ON_FAIL); action 635 lib/pengine/utils.c if (safe_str_eq(action->task, CRMD_ACTION_STOP) && safe_str_eq(value, "standby")) { action 636 lib/pengine/utils.c crm_config_err("on-fail=standby is not allowed for stop actions: %s", action->rsc->id); action 638 lib/pengine/utils.c } else if (safe_str_eq(action->task, CRMD_ACTION_DEMOTE) && !value) { action 647 lib/pengine/utils.c CRM_CHECK(action->rsc != NULL, return NULL); action 649 lib/pengine/utils.c for (operation = __xml_first_child(action->rsc->ops_xml); action 803 lib/pengine/utils.c unpack_timeout(const char *value, action_t *action, xmlNode *xml_obj, action 808 lib/pengine/utils.c if (value == NULL && xml_obj == NULL && action && action 809 lib/pengine/utils.c safe_str_eq(action->task, RSC_STATUS) && interval == 0) { action 811 lib/pengine/utils.c xmlNode *min_interval_mon = find_min_interval_mon(action->rsc, FALSE); action 815 lib/pengine/utils.c pe_rsc_trace(action->rsc, action 817 lib/pengine/utils.c action->uuid, value); action 845 lib/pengine/utils.c pe_get_configured_timeout(resource_t *rsc, const char *action, pe_working_set_t *data_set) action 853 lib/pengine/utils.c if (safe_str_eq(action, crm_element_value(child, XML_NVPAIR_ATTR_NAME))) { action 914 lib/pengine/utils.c unpack_operation(action_t * action, xmlNode * xml_obj, resource_t * container, action 926 lib/pengine/utils.c CRM_CHECK(action->rsc != NULL, return); action 929 lib/pengine/utils.c action->meta, NULL, FALSE, data_set->now); action 938 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(prop_name), strdup(prop_value)); action 943 lib/pengine/utils.c NULL, action->meta, NULL, FALSE, data_set->now); action 946 lib/pengine/utils.c NULL, action->meta, NULL, FALSE, data_set->now); action 949 lib/pengine/utils.c rsc_details = pe_rsc_action_details(action); action 956 lib/pengine/utils.c g_hash_table_remove(action->meta, "id"); action 959 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, field); action 964 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(field), value_ms); action 967 lib/pengine/utils.c g_hash_table_remove(action->meta, field); action 972 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, "requires"); action 979 lib/pengine/utils.c if (safe_str_neq(action->task, RSC_START) action 980 lib/pengine/utils.c && safe_str_neq(action->task, RSC_PROMOTE)) { action 981 lib/pengine/utils.c action->needs = rsc_req_nothing; action 985 lib/pengine/utils.c action->needs = rsc_req_nothing; action 988 lib/pengine/utils.c action->needs = rsc_req_quorum; action 991 lib/pengine/utils.c action->needs = rsc_req_stonith; action 992 lib/pengine/utils.c set_bit(action->rsc->flags, pe_rsc_needs_unfencing); action 994 lib/pengine/utils.c crm_notice("%s requires unfencing but fencing is disabled", action->rsc->id); action 999 lib/pengine/utils.c action->needs = rsc_req_stonith; action 1001 lib/pengine/utils.c crm_notice("%s requires fencing but fencing is disabled", action->rsc->id); action 1005 lib/pengine/utils.c } else if (is_set(action->rsc->flags, pe_rsc_needs_fencing)) { action 1006 lib/pengine/utils.c action->needs = rsc_req_stonith; action 1009 lib/pengine/utils.c } else if (is_set(action->rsc->flags, pe_rsc_needs_quorum)) { action 1010 lib/pengine/utils.c action->needs = rsc_req_quorum; action 1014 lib/pengine/utils.c action->needs = rsc_req_nothing; action 1018 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\tAction %s requires: %s", action->task, value); action 1020 lib/pengine/utils.c value = unpack_operation_on_fail(action); action 1025 lib/pengine/utils.c action->on_fail = action_fail_block; action 1026 lib/pengine/utils.c g_hash_table_insert(action->meta, strdup(XML_OP_ATTR_ON_FAIL), strdup("block")); action 1029 lib/pengine/utils.c action->on_fail = action_fail_fence; action 1034 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1035 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1040 lib/pengine/utils.c action->on_fail = action_fail_standby; action 1045 lib/pengine/utils.c action->on_fail = action_fail_ignore; action 1049 lib/pengine/utils.c action->on_fail = action_fail_migrate; action 1053 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1054 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1058 lib/pengine/utils.c action->on_fail = action_fail_recover; action 1063 lib/pengine/utils.c action->on_fail = action_fail_restart_container; action 1071 lib/pengine/utils.c pe_err("Resource %s: Unknown failure type (%s)", action->rsc->id, value); action 1077 lib/pengine/utils.c action->on_fail = action_fail_restart_container; action 1089 lib/pengine/utils.c } else if (((value == NULL) || !is_set(action->rsc->flags, pe_rsc_managed)) && action 1090 lib/pengine/utils.c (is_rsc_baremetal_remote_node(action->rsc, data_set) && action 1091 lib/pengine/utils.c !(safe_str_eq(action->task, CRMD_ACTION_STATUS) && interval == 0) && action 1092 lib/pengine/utils.c (safe_str_neq(action->task, CRMD_ACTION_START)))) { action 1094 lib/pengine/utils.c if (!is_set(action->rsc->flags, pe_rsc_managed)) { action 1095 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1096 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1106 lib/pengine/utils.c if (action->rsc->remote_reconnect_interval) { action 1107 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1109 lib/pengine/utils.c action->on_fail = action_fail_reset_remote; action 1112 lib/pengine/utils.c } else if (value == NULL && safe_str_eq(action->task, CRMD_ACTION_STOP)) { action 1114 lib/pengine/utils.c action->on_fail = action_fail_fence; action 1118 lib/pengine/utils.c action->on_fail = action_fail_block; action 1123 lib/pengine/utils.c action->on_fail = action_fail_recover; action 1127 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\t%s failure handling: %s", action->task, value); action 1131 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, "role_after_failure"); action 1133 lib/pengine/utils.c if (value != NULL && action->fail_role == RSC_ROLE_UNKNOWN) { action 1134 lib/pengine/utils.c action->fail_role = text2role(value); action 1137 lib/pengine/utils.c if (action->fail_role == RSC_ROLE_UNKNOWN) { action 1138 lib/pengine/utils.c if (safe_str_eq(action->task, CRMD_ACTION_PROMOTE)) { action 1139 lib/pengine/utils.c action->fail_role = RSC_ROLE_SLAVE; action 1141 lib/pengine/utils.c action->fail_role = RSC_ROLE_STARTED; action 1144 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\t%s failure results in: %s", action->task, action 1145 lib/pengine/utils.c role2text(action->fail_role)); action 1148 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_OP_ATTR_START_DELAY); action 1150 lib/pengine/utils.c unpack_start_delay(value, action->meta); action 1152 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_OP_ATTR_ORIGIN); action 1153 lib/pengine/utils.c unpack_interval_origin(value, action->meta, xml_obj, interval, data_set->now); action 1157 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, field); action 1158 lib/pengine/utils.c timeout = unpack_timeout(value, action, xml_obj, interval, data_set->config_hash); action 1159 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_ATTR_TIMEOUT), crm_itoa(timeout)); action 1300 lib/pengine/utils.c pe_free_action(action_t * action) action 1302 lib/pengine/utils.c if (action == NULL) { action 1305 lib/pengine/utils.c g_list_free_full(action->actions_before, free); /* action_wrapper_t* */ action 1306 lib/pengine/utils.c g_list_free_full(action->actions_after, free); /* action_wrapper_t* */ action 1307 lib/pengine/utils.c if (action->extra) { action 1308 lib/pengine/utils.c g_hash_table_destroy(action->extra); action 1310 lib/pengine/utils.c if (action->meta) { action 1311 lib/pengine/utils.c g_hash_table_destroy(action->meta); action 1314 lib/pengine/utils.c if (action->rsc) { action 1315 lib/pengine/utils.c pe_free_rsc_action_details(action); action 1318 lib/pengine/utils.c free(action->cancel_task); action 1319 lib/pengine/utils.c free(action->reason); action 1320 lib/pengine/utils.c free(action->task); action 1321 lib/pengine/utils.c free(action->uuid); action 1322 lib/pengine/utils.c free(action->node); action 1323 lib/pengine/utils.c free(action); action 1336 lib/pengine/utils.c action_t *action = (action_t *) gIter->data; action 1338 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); action 1343 lib/pengine/utils.c } else if (safe_str_eq(CRMD_ACTION_CANCEL, action->task)) { action 1346 lib/pengine/utils.c crm_trace("(null) Found: %s", action->uuid); action 1347 lib/pengine/utils.c result = g_list_prepend(result, action); action 1349 lib/pengine/utils.c } else if (action->node == NULL) { action 1351 lib/pengine/utils.c } else if (action->node->details != not_on_node->details) { action 1352 lib/pengine/utils.c crm_trace("Found: %s", action->uuid); action 1353 lib/pengine/utils.c result = g_list_prepend(result, action); action 1392 lib/pengine/utils.c action_t *action = (action_t *) gIter->data; action 1394 lib/pengine/utils.c if (uuid != NULL && safe_str_neq(uuid, action->uuid)) { action 1397 lib/pengine/utils.c } else if (task != NULL && safe_str_neq(task, action->task)) { action 1401 lib/pengine/utils.c return action; action 1403 lib/pengine/utils.c } else if (action->node == NULL) { action 1406 lib/pengine/utils.c } else if (on_node->details == action->node->details) { action 1407 lib/pengine/utils.c return action; action 1423 lib/pengine/utils.c action_t *action = (action_t *) gIter->data; action 1425 lib/pengine/utils.c if (safe_str_neq(key, action->uuid)) { action 1426 lib/pengine/utils.c crm_trace("%s does not match action %s", key, action->uuid); action 1431 lib/pengine/utils.c result = g_list_prepend(result, action); action 1433 lib/pengine/utils.c } else if (action->node == NULL) { action 1437 lib/pengine/utils.c action->node = node_copy(on_node); action 1438 lib/pengine/utils.c result = g_list_prepend(result, action); action 1440 lib/pengine/utils.c } else if (on_node->details == action->node->details) { action 1442 lib/pengine/utils.c result = g_list_prepend(result, action); action 1446 lib/pengine/utils.c key, action->node->details->uname, action 1463 lib/pengine/utils.c action_t *action = (action_t *) gIter->data; action 1465 lib/pengine/utils.c crm_trace("Matching %s against %s", key, action->uuid); action 1466 lib/pengine/utils.c if (safe_str_neq(key, action->uuid)) { action 1467 lib/pengine/utils.c crm_trace("Key mismatch: %s vs. %s", key, action->uuid); action 1470 lib/pengine/utils.c } else if (on_node == NULL || action->node == NULL) { action 1471 lib/pengine/utils.c crm_trace("on_node=%p, action->node=%p", on_node, action->node); action 1474 lib/pengine/utils.c } else if (safe_str_eq(on_node->details->id, action->node->details->id)) { action 1475 lib/pengine/utils.c result = g_list_prepend(result, action); action 1477 lib/pengine/utils.c crm_trace("Node mismatch: %s vs. %s", on_node->details->id, action->node->details->id); action 1750 lib/pengine/utils.c if (after->action == rh_action && (after->type & order)) { action 1756 lib/pengine/utils.c wrapper->action = rh_action; action 1769 lib/pengine/utils.c wrapper->action = lh_action; action 1897 lib/pengine/utils.c action_t *action = custom_action(rsc, strdup(key), task, node, TRUE, FALSE, data_set); action 1923 lib/pengine/utils.c g_hash_table_foreach(action->extra, hash2field, data->params_all); action 1925 lib/pengine/utils.c g_hash_table_foreach(action->meta, hash2metafield, data->params_all); action 1945 lib/pengine/utils.c pe_rsc_action_details_t *details = pe_rsc_action_details(action); action 1953 lib/pengine/utils.c pe_free_action(action); action 2292 lib/pengine/utils.c pe_action_t *action, pe_action_t *reason, const char *text, action 2317 lib/pengine/utils.c flags, action->uuid, (reason? reason->uuid : 0)); action 2321 lib/pengine/utils.c if(is_set(action->flags, flags)) { action 2322 lib/pengine/utils.c action->flags = crm_clear_bit(function, line, action->uuid, action->flags, flags); action 2327 lib/pengine/utils.c if(is_not_set(action->flags, flags)) { action 2328 lib/pengine/utils.c action->flags = crm_set_bit(function, line, action->uuid, action->flags, flags); action 2336 lib/pengine/utils.c pe_action_set_reason(action, text, overwrite); action 2344 lib/pengine/utils.c if(reason_text && action->rsc != reason->rsc) { action 2345 lib/pengine/utils.c pe_action_set_reason(action, reason_text, overwrite); action 2351 lib/pengine/utils.c void pe_action_set_reason(pe_action_t *action, const char *reason, bool overwrite) action 2353 lib/pengine/utils.c if(action->reason && overwrite) { action 2354 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Changing %s reason from '%s' to '%s'", action->uuid, action->reason, reason); action 2355 lib/pengine/utils.c free(action->reason); action 2356 lib/pengine/utils.c action->reason = NULL; action 2358 lib/pengine/utils.c if(action->reason == NULL) { action 2360 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Set %s reason to '%s'", action->uuid, reason); action 2361 lib/pengine/utils.c action->reason = strdup(reason); action 2363 lib/pengine/utils.c action->reason = NULL; action 52 lib/services/services.c services_action_create(const char *name, const char *action, int interval, int timeout) action 55 lib/services/services.c action, interval, timeout, NULL, 0); action 166 lib/services/services.c const char *agent, const char *action, int interval, int timeout, action 196 lib/services/services.c if (crm_strlen_zero(action)) { action 214 lib/services/services.c op->id = generate_op_key(name, action, interval); action 216 lib/services/services.c if (safe_str_eq(action, "monitor") && ( action 221 lib/services/services.c action = "status"; action 223 lib/services/services.c op->action = strdup(action); action 235 lib/services/services.c op->opaque->args[1] = strdup(action); action 247 lib/services/services.c op->opaque->args[1] = strdup(op->action); action 284 lib/services/services.c op->opaque->args[param_num++] = strdup(op->action); action 312 lib/services/services.c if (safe_str_eq(op->action, "monitor") && op->interval == 0) { action 408 lib/services/services.c svc_action_t *action = services_action_create_generic(exec, NULL); action 410 lib/services/services.c CRM_ASSERT(action); action 411 lib/services/services.c action->timeout = timeout; action 412 lib/services/services.c action->id = strdup(id); action 413 lib/services/services.c action->params = params; action 414 lib/services/services.c action->sequence = sequence; action 415 lib/services/services.c action->cb_data = cb_data; action 416 lib/services/services.c return action; action 482 lib/services/services.c services_alert_async(svc_action_t *action, void (*cb)(svc_action_t *op)) action 486 lib/services/services.c action->synchronous = false; action 487 lib/services/services.c action->opaque->callback = cb; action 488 lib/services/services.c if (action->params) { action 489 lib/services/services.c g_hash_table_foreach(action->params, set_alert_env, NULL); action 491 lib/services/services.c responsible = services_os_action_execute(action); action 492 lib/services/services.c if (action->params) { action 493 lib/services/services.c g_hash_table_foreach(action->params, unset_alert_env, NULL); action 535 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); action 541 lib/services/services.c crm_trace("Cleaning up pending dbus call %p %s for %s", op->opaque->pending, op->action, op->rsc); action 543 lib/services/services.c crm_warn("Pending dbus call %s for %s did not complete", op->action, op->rsc); action 597 lib/services/services.c free(op->action); action 641 lib/services/services.c services_action_cancel(const char *name, const char *action, int interval) action 644 lib/services/services.c char *id = generate_op_key(name, action, interval); action 704 lib/services/services.c services_action_kick(const char *name, const char *action, int interval /* ms */) action 707 lib/services/services.c char *id = generate_op_key(name, action, interval); action 1327 lib/services/services.c if (safe_str_eq(op->action, "meta-data")) { action 1340 lib/services/services.c op->rsc, op->action, op->interval, op->opaque->exec, op->rc); action 333 lib/services/services_linux.c && safe_str_eq(op->action, "status")) { action 414 lib/services/services_linux.c if (safe_str_eq(op->action,"stop")) { action 228 lib/services/systemd.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); action 233 lib/services/systemd.c if (safe_str_eq(op->action, "stop")) { action 234 lib/services/systemd.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); action 239 lib/services/systemd.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); action 528 lib/services/systemd.c crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error.message); action 534 lib/services/systemd.c crm_warn("Call to %s passed but return type was unexpected", op->action); action 543 lib/services/systemd.c crm_info("Call to %s passed: %s", op->action, path); action 561 lib/services/systemd.c crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); action 605 lib/services/systemd.c const char *method = op->action; action 611 lib/services/systemd.c if (safe_str_eq(op->action, "monitor") || safe_str_eq(method, "status")) { action 747 lib/services/systemd.c crm_warn("%s operation on systemd unit %s named '%s' timed out", op->action, op->agent, op->rsc); action 764 lib/services/systemd.c op->synchronous ? "" : "a", op->action, op->agent, op->rsc); action 766 lib/services/systemd.c if (safe_str_eq(op->action, "meta-data")) { action 342 lib/services/upstart.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); action 344 lib/services/upstart.c if(safe_str_eq(op->action, "stop")) { action 345 lib/services/upstart.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); action 348 lib/services/upstart.c } else if(safe_str_eq(op->action, "start")) { action 349 lib/services/upstart.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); action 355 lib/services/upstart.c } else if (safe_str_eq(op->action, "start") action 357 lib/services/upstart.c crm_trace("Mapping %s failure for %s: starting a started resource is allowed", op->action, op->rsc); action 381 lib/services/upstart.c crm_err("%s for %s: %s", op->action, op->rsc, error.message); action 385 lib/services/upstart.c } else if (!g_strcmp0(op->action, "stop")) { action 391 lib/services/upstart.c crm_warn("Call to %s passed but return type was unexpected", op->action); action 400 lib/services/upstart.c crm_info("Call to %s passed: %s", op->action, path); action 422 lib/services/upstart.c const char *action = op->action; action 432 lib/services/upstart.c if (safe_str_eq(op->action, "meta-data")) { action 439 lib/services/upstart.c crm_debug("Could not obtain job named '%s' to %s", op->agent, action); action 440 lib/services/upstart.c if (!g_strcmp0(action, "stop")) { action 450 lib/services/upstart.c if (safe_str_eq(op->action, "monitor") || safe_str_eq(action, "status")) { action 478 lib/services/upstart.c } else if (!g_strcmp0(action, "start")) { action 479 lib/services/upstart.c action = "Start"; action 480 lib/services/upstart.c } else if (!g_strcmp0(action, "stop")) { action 481 lib/services/upstart.c action = "Stop"; action 482 lib/services/upstart.c } else if (!g_strcmp0(action, "restart")) { action 483 lib/services/upstart.c action = "Restart"; action 489 lib/services/upstart.c crm_debug("Calling %s for %s on %s", action, op->rsc, job); action 494 lib/services/upstart.c action); // method name action 527 lib/services/upstart.c action, op->rsc, error.message, job); action 531 lib/services/upstart.c } else if (!g_strcmp0(op->action, "stop")) { action 536 lib/services/upstart.c crm_warn("Call to %s passed but return type was unexpected", op->action); action 545 lib/services/upstart.c crm_info("Call to %s passed: %s", op->action, path); action 74 lib/transition/graph.c crm_action_t *action = (crm_action_t *) lpc->data; action 76 lib/transition/graph.c crm_trace("Processing action %d", action->id); action 78 lib/transition/graph.c if (action->id == action_id) { action 80 lib/transition/graph.c action->confirmed = TRUE; action 83 lib/transition/graph.c } else if (action->confirmed == FALSE) { action 102 lib/transition/graph.c update_graph(crm_graph_t * graph, crm_action_t * action) action 116 lib/transition/graph.c rc = update_synapse_confirmed(synapse, action->id); action 118 lib/transition/graph.c } else if (action->failed == FALSE || synapse->priority == INFINITY) { action 119 lib/transition/graph.c rc = update_synapse_ready(synapse, action->id); action 125 lib/transition/graph.c crm_trace("Updated graph with completed action %d", action->id); action 177 lib/transition/graph.c initiate_action(crm_graph_t * graph, crm_action_t * action) action 181 lib/transition/graph.c CRM_CHECK(action->executed == FALSE, return FALSE); action 183 lib/transition/graph.c id = ID(action->xml); action 186 lib/transition/graph.c action->executed = TRUE; action 187 lib/transition/graph.c if (action->type == action_type_pseudo) { action 188 lib/transition/graph.c crm_trace("Executing pseudo-event: %s (%d)", id, action->id); action 189 lib/transition/graph.c return graph_fns->pseudo(graph, action); action 191 lib/transition/graph.c } else if (action->type == action_type_rsc) { action 192 lib/transition/graph.c crm_trace("Executing rsc-event: %s (%d)", id, action->id); action 193 lib/transition/graph.c return graph_fns->rsc(graph, action); action 195 lib/transition/graph.c } else if (action->type == action_type_crm) { action 198 lib/transition/graph.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 202 lib/transition/graph.c crm_trace("Executing STONITH-event: %s (%d)", id, action->id); action 203 lib/transition/graph.c return graph_fns->stonith(graph, action); action 206 lib/transition/graph.c crm_trace("Executing crm-event: %s (%d)", id, action->id); action 207 lib/transition/graph.c return graph_fns->crmd(graph, action); action 210 lib/transition/graph.c crm_err("Failed on unsupported command type: %s (id=%s)", crm_element_name(action->xml), id); action 226 lib/transition/graph.c crm_action_t *action = (crm_action_t *) lpc->data; action 232 lib/transition/graph.c passed = initiate_action(graph, action); action 235 lib/transition/graph.c crm_element_name(action->xml), action->id, synapse->id); action 237 lib/transition/graph.c action->confirmed = TRUE; action 238 lib/transition/graph.c action->failed = TRUE; action 34 lib/transition/unpack.c crm_action_t *action = NULL; action 43 lib/transition/unpack.c action = calloc(1, sizeof(crm_action_t)); action 44 lib/transition/unpack.c if (action == NULL) { action 50 lib/transition/unpack.c action->id = crm_parse_int(value, NULL); action 51 lib/transition/unpack.c action->type = action_type_rsc; action 52 lib/transition/unpack.c action->xml = copy_xml(xml_action); action 53 lib/transition/unpack.c action->synapse = parent; action 55 lib/transition/unpack.c if (safe_str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_RSC_OP)) { action 56 lib/transition/unpack.c action->type = action_type_rsc; action 58 lib/transition/unpack.c } else if (safe_str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_PSEUDO_EVENT)) { action 59 lib/transition/unpack.c action->type = action_type_pseudo; action 61 lib/transition/unpack.c } else if (safe_str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_CRM_EVENT)) { action 62 lib/transition/unpack.c action->type = action_type_crm; action 65 lib/transition/unpack.c action->params = xml2list(action->xml); action 67 lib/transition/unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_timeout"); action 69 lib/transition/unpack.c action->timeout = crm_parse_int(value, NULL); action 73 lib/transition/unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_start_delay"); action 75 lib/transition/unpack.c action->timeout += crm_parse_int(value, NULL); action 78 lib/transition/unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_interval"); action 80 lib/transition/unpack.c action->interval = crm_parse_int(value, NULL); action 83 lib/transition/unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_can_fail"); action 85 lib/transition/unpack.c crm_str_to_boolean(value, &(action->can_fail)); action 88 lib/transition/unpack.c crm_trace("Action %d has timer set to %dms", action->id, action->timeout); action 90 lib/transition/unpack.c return action; action 122 lib/transition/unpack.c xmlNode *action = NULL; action 124 lib/transition/unpack.c for (action = __xml_first_child(action_set); action != NULL; action 125 lib/transition/unpack.c action = __xml_next(action)) { action 126 lib/transition/unpack.c crm_action_t *new_action = unpack_action(new_synapse, action); action 169 lib/transition/unpack.c static void destroy_action(crm_action_t * action); action 246 lib/transition/unpack.c destroy_action(crm_action_t * action) action 248 lib/transition/unpack.c if (action->timer && action->timer->source_id != 0) { action 249 lib/transition/unpack.c crm_warn("Cancelling timer for action %d (src=%d)", action->id, action->timer->source_id); action 250 lib/transition/unpack.c g_source_remove(action->timer->source_id); action 252 lib/transition/unpack.c if (action->params) { action 253 lib/transition/unpack.c g_hash_table_destroy(action->params); action 255 lib/transition/unpack.c free_xml(action->xml); action 256 lib/transition/unpack.c free(action->timer); action 257 lib/transition/unpack.c free(action); action 264 lib/transition/unpack.c crm_action_t *action = g_list_nth_data(synapse->actions, 0); action 266 lib/transition/unpack.c synapse->actions = g_list_remove(synapse->actions, action); action 267 lib/transition/unpack.c destroy_action(action); action 271 lib/transition/unpack.c crm_action_t *action = g_list_nth_data(synapse->inputs, 0); action 273 lib/transition/unpack.c synapse->inputs = g_list_remove(synapse->inputs, action); action 274 lib/transition/unpack.c destroy_action(action); action 297 lib/transition/unpack.c convert_graph_action(xmlNode * resource, crm_action_t * action, int status, int rc) action 306 lib/transition/unpack.c CRM_CHECK(action != NULL, return NULL); action 307 lib/transition/unpack.c CRM_CHECK(action->type == action_type_rsc, return NULL); action 309 lib/transition/unpack.c action_resource = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 310 lib/transition/unpack.c CRM_CHECK(action_resource != NULL, crm_log_xml_warn(action->xml, "Bad"); action 316 lib/transition/unpack.c op->interval = action->interval; action 317 lib/transition/unpack.c op->op_type = strdup(crm_element_value(action->xml, XML_LRM_ATTR_TASK)); action 327 lib/transition/unpack.c g_hash_table_iter_init(&iter, action->params); action 31 lib/transition/utils.c pseudo_action_dummy(crm_graph_t * graph, crm_action_t * action) action 45 lib/transition/utils.c crm_trace("Dummy event handler: action %d executed", action->id); action 46 lib/transition/utils.c if (action->id == fail) { action 47 lib/transition/utils.c crm_err("Dummy event handler: pretending action %d failed", action->id); action 48 lib/transition/utils.c action->failed = TRUE; action 51 lib/transition/utils.c action->confirmed = TRUE; action 52 lib/transition/utils.c update_graph(graph, action); action 133 lib/transition/utils.c crm_action_t *action = (crm_action_t *) aIter->data; action 135 lib/transition/utils.c if (action->id == id) { action 136 lib/transition/utils.c return action; action 182 lib/transition/utils.c crm_action_t *action = (crm_action_t *) lpc->data; action 183 lib/transition/utils.c const char *key = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 184 lib/transition/utils.c const char *host = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 185 lib/transition/utils.c char *desc = crm_strdup_printf("%s %s op %s", state, actiontype2text(action->type), key); action 189 lib/transition/utils.c action->id, desc, host ? host : "N/A", action 217 lib/transition/utils.c print_action(int log_level, const char *prefix, crm_action_t * action) action 219 lib/transition/utils.c print_synapse(log_level, NULL, action->synapse); action 264 lib/transition/utils.c enum transition_action action, const char *abort_reason) action 282 lib/transition/utils.c if (graph->completion_action < action) { action 284 lib/transition/utils.c abort2text(graph->completion_action), abort2text(action), abort_reason); action 285 lib/transition/utils.c graph->completion_action = action; action 64 lrmd/lrmd.c char *action; action 106 lrmd/lrmd.c if (safe_str_eq(cmd->action, "monitor")) { action 112 lrmd/lrmd.c cmd->rsc_id, cmd->action, cmd->call_id, cmd->last_pid ? "pid:" : "", pid_str, action 117 lrmd/lrmd.c cmd->action, cmd->call_id, cmd->last_pid ? "pid:" : "", pid_str, cmd->exec_rc); action 126 lrmd/lrmd.c if (safe_str_eq(cmd->action, "monitor")) { action 131 lrmd/lrmd.c cmd->rsc_id, cmd->action, cmd->call_id); action 135 lrmd/lrmd.c normalize_action_name(lrmd_rsc_t * rsc, const char *action) action 137 lrmd/lrmd.c if (safe_str_eq(action, "monitor") && action 143 lrmd/lrmd.c return action; action 184 lrmd/lrmd.c cmd->action = crm_element_value_copy(rsc_xml, F_LRMD_RSC_ACTION); action 203 lrmd/lrmd.c crm_debug("Setting flag to leave pid group on timeout and only kill action pid for %s_%s_%d", cmd->rsc_id, cmd->action, cmd->interval); action 222 lrmd/lrmd.c free(cmd->action); action 291 lrmd/lrmd.c if (safe_str_eq(cmd->action, dup->action) && cmd->interval == dup->interval) { action 301 lrmd/lrmd.c if (safe_str_eq(cmd->action, dup->action) && cmd->interval == dup->interval) { action 314 lrmd/lrmd.c normalize_action_name(rsc, dup->action), action 334 lrmd/lrmd.c services_action_kick(rsc->rsc_id, normalize_action_name(rsc, dup->action), dup->interval); action 348 lrmd/lrmd.c crm_trace("Scheduling %s on %s", cmd->action, rsc->rsc_id); action 357 lrmd/lrmd.c if (rsc && safe_str_eq(cmd->action, "stop")) { action 524 lrmd/lrmd.c crm_xml_add(notify, F_LRMD_RSC_ACTION, cmd->action); action 597 lrmd/lrmd.c crm_trace("Resource operation rsc:%s action:%s completed (%p %p)", cmd->rsc_id, cmd->action, action 642 lrmd/lrmd.c hb2uniform_rc(const char *action, int rc, const char *stdout_data) action 655 lrmd/lrmd.c if (!safe_str_eq(action, "status") && !safe_str_eq(action, "monitor")) { action 656 lrmd/lrmd.c return services_get_ocf_exitcode(action, rc); action 696 lrmd/lrmd.c stonith2uniform_rc(const char *action, int rc) action 699 lrmd/lrmd.c if (safe_str_eq(action, "stop")) { action 701 lrmd/lrmd.c } else if (safe_str_eq(action, "start")) { action 714 lrmd/lrmd.c nagios2uniform_rc(const char *action, int rc) action 740 lrmd/lrmd.c get_uniform_rc(const char *standard, const char *action, int rc) action 745 lrmd/lrmd.c return stonith2uniform_rc(action, rc); action 752 lrmd/lrmd.c return nagios2uniform_rc(action, rc); action 755 lrmd/lrmd.c return services_get_ocf_exitcode(action, rc); action 760 lrmd/lrmd.c action_get_uniform_rc(svc_action_t * action) action 762 lrmd/lrmd.c lrmd_cmd_t *cmd = action->cb_data; action 764 lrmd/lrmd.c if (safe_str_eq(action->standard, PCMK_RESOURCE_CLASS_HB)) { action 765 lrmd/lrmd.c return hb2uniform_rc(cmd->action, action->rc, action->stdout_data); action 768 lrmd/lrmd.c return get_uniform_rc(action->standard, cmd->action, action->rc); action 856 lrmd/lrmd.c action_complete(svc_action_t * action) action 859 lrmd/lrmd.c lrmd_cmd_t *cmd = action->cb_data; action 865 lrmd/lrmd.c crm_err("LRMD action (%s) completed does not match any known operations.", action->id); action 869 lrmd/lrmd.c if (cmd->exec_rc != action->rc) { action 874 lrmd/lrmd.c cmd->last_pid = action->pid; action 875 lrmd/lrmd.c cmd->exec_rc = action_get_uniform_rc(action); action 876 lrmd/lrmd.c cmd->lrmd_op_status = action->status; action 886 lrmd/lrmd.c if(cmd->exec_rc == PCMK_OCF_OK && safe_str_eq(cmd->action, "start")) { action 897 lrmd/lrmd.c cmd->real_action = cmd->action; action 898 lrmd/lrmd.c cmd->action = strdup("monitor"); action 900 lrmd/lrmd.c } else if(cmd->exec_rc == PCMK_OCF_OK && safe_str_eq(cmd->action, "stop")) { action 902 lrmd/lrmd.c cmd->real_action = cmd->action; action 903 lrmd/lrmd.c cmd->action = strdup("monitor"); action 931 lrmd/lrmd.c if (safe_str_eq(cmd->action, "monitor") && action 936 lrmd/lrmd.c } else if (safe_str_eq(cmd->action, "start") && cmd->exec_rc != PCMK_OCF_OK) { action 968 lrmd/lrmd.c cmd->rsc_id, cmd->action, time_sum, timeout_left, delay); action 972 lrmd/lrmd.c cmd->rsc_id, cmd->action, services_ocf_exitcode_str(cmd->exec_rc), cmd->exec_rc, time_sum, timeout_left, delay); action 986 lrmd/lrmd.c cmd->rsc_id, cmd->real_action?cmd->real_action:cmd->action, cmd->exec_rc, time_sum, timeout_left); action 994 lrmd/lrmd.c if (action->stderr_data) { action 995 lrmd/lrmd.c cmd->output = strdup(action->stderr_data); action 996 lrmd/lrmd.c cmd->exit_reason = parse_exit_reason(action->stderr_data); action 998 lrmd/lrmd.c } else if (action->stdout_data) { action 999 lrmd/lrmd.c cmd->output = strdup(action->stdout_data); action 1011 lrmd/lrmd.c cmd->exec_rc = get_uniform_rc(PCMK_RESOURCE_CLASS_STONITH, cmd->action, rc); action 1019 lrmd/lrmd.c } else if (rc == -ENODEV && safe_str_eq(cmd->action, "monitor")) { action 1040 lrmd/lrmd.c if (safe_str_eq(cmd->action, "start") && rsc) { action 1107 lrmd/lrmd.c cmd->exec_rc = get_uniform_rc(PCMK_RESOURCE_CLASS_STONITH, cmd->action, action 1114 lrmd/lrmd.c if (safe_str_eq(cmd->action, "start")) { action 1141 lrmd/lrmd.c } else if (safe_str_eq(cmd->action, "stop")) { action 1144 lrmd/lrmd.c } else if (safe_str_eq(cmd->action, "monitor")) { action 1180 lrmd/lrmd.c svc_action_t *action = NULL; action 1187 lrmd/lrmd.c rsc->rsc_id, cmd->action, rsc->class, rsc->provider, rsc->type); action 1192 lrmd/lrmd.c && safe_str_eq(cmd->action, "stop")) { action 1203 lrmd/lrmd.c action = resources_action_create(rsc->rsc_id, action 1207 lrmd/lrmd.c cmd->action, /*action will be normalized in wrapper*/ action 1213 lrmd/lrmd.c action = resources_action_create(rsc->rsc_id, action 1217 lrmd/lrmd.c normalize_action_name(rsc, cmd->action), action 1224 lrmd/lrmd.c if (!action) { action 1225 lrmd/lrmd.c crm_err("Failed to create action, action:%s on resource %s", cmd->action, rsc->rsc_id); action 1230 lrmd/lrmd.c action->cb_data = cmd; action 1238 lrmd/lrmd.c if (services_action_async(action, action_complete)) { action 1242 lrmd/lrmd.c cmd->exec_rc = action->rc; action 1243 lrmd/lrmd.c if(action->status != PCMK_LRM_OP_DONE) { action 1244 lrmd/lrmd.c cmd->lrmd_op_status = action->status; action 1248 lrmd/lrmd.c services_action_free(action); action 1249 lrmd/lrmd.c action = NULL; action 1275 lrmd/lrmd.c cmd->rsc_id, cmd->action, cmd->start_delay); action 1356 lrmd/lrmd.c services_action_cancel(rsc->rsc_id, normalize_action_name(rsc, cmd->action), cmd->interval); action 1533 lrmd/lrmd.c cancel_op(const char *rsc_id, const char *action, int interval) action 1556 lrmd/lrmd.c if (safe_str_eq(cmd->action, action) && cmd->interval == interval) { action 1569 lrmd/lrmd.c if (safe_str_eq(cmd->action, action) && cmd->interval == interval) { action 1577 lrmd/lrmd.c } else if (services_action_cancel(rsc_id, normalize_action_name(rsc, action), interval) == TRUE) { action 1621 lrmd/lrmd.c cancel_op(rsc->rsc_id, cmd->action, cmd->interval); action 1632 lrmd/lrmd.c const char *action = crm_element_value(rsc_xml, F_LRMD_RSC_ACTION); action 1637 lrmd/lrmd.c if (!rsc_id || !action) { action 1641 lrmd/lrmd.c return cancel_op(rsc_id, action, interval); action 67 lrmd/lrmd_alert_api.c alert_complete(svc_action_t *action) action 69 lrmd/lrmd_alert_api.c struct alert_cb_s *cb_data = (struct alert_cb_s *) (action->cb_data); action 73 lrmd/lrmd_alert_api.c action->pid, cb_data->client_id, action->rc); action 76 lrmd/lrmd_alert_api.c free(action->cb_data); action 77 lrmd/lrmd_alert_api.c action->cb_data = NULL; action 88 lrmd/lrmd_alert_api.c svc_action_t *action = NULL; action 119 lrmd/lrmd_alert_api.c action = services_alert_create(alert_id, alert_path, alert_timeout, params, action 121 lrmd/lrmd_alert_api.c rc = services_action_user(action, CRM_DAEMON_USER); action 127 lrmd/lrmd_alert_api.c if (services_alert_async(action, alert_complete) == FALSE) { action 128 lrmd/lrmd_alert_api.c services_action_free(action); action 139 lrmd/lrmd_alert_api.c if (action) { action 140 lrmd/lrmd_alert_api.c services_action_free(action); action 79 lrmd/remote_ctl.c const char *action; action 234 lrmd/remote_ctl.c options.action, action 309 lrmd/remote_ctl.c options.action = optarg; action 86 lrmd/test.c const char *action; action 226 lrmd/test.c options.action, action 259 lrmd/test.c rc = lrmd_conn->cmds->cancel(lrmd_conn, options.rsc_id, options.action, options.interval); action 324 lrmd/test.c print_result(printf("API-CALL FAILURE unknown action '%s'\n", options.action)); action 491 lrmd/test.c options.action = optarg; action 581 lrmd/test.c options.action = "monitor"; action 125 pengine/allocate.c update_action_flags(action_t * action, enum pe_action_flags flags, const char *source, int line) action 130 pengine/allocate.c enum pe_action_flags last = action->flags; action 133 pengine/allocate.c action->flags = crm_clear_bit(source, line, action->uuid, action->flags, flags); action 135 pengine/allocate.c action->flags = crm_set_bit(source, line, action->uuid, action->flags, flags); action 138 pengine/allocate.c if (last != action->flags) { action 145 pengine/allocate.c action->uuid, action->node ? action->node->details->uname : "[none]", action 146 pengine/allocate.c clear ? "un-" : "", flags, last, action->flags, calls, source); action 1802 pengine/allocate.c extern gboolean update_action(action_t * action); action 1803 pengine/allocate.c extern void update_colo_start_chain(action_t * action); action 1806 pengine/allocate.c is_recurring_action(action_t *action) action 1808 pengine/allocate.c const char *interval_s = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); action 1817 pengine/allocate.c apply_container_ordering(action_t *action, pe_working_set_t *data_set) action 1828 pengine/allocate.c enum action_tasks task = text2task(action->task); action 1830 pengine/allocate.c CRM_ASSERT(action->rsc); action 1831 pengine/allocate.c CRM_ASSERT(action->node); action 1832 pengine/allocate.c CRM_ASSERT(is_remote_node(action->node)); action 1834 pengine/allocate.c remote_rsc = action->node->details->remote_rsc; action 1841 pengine/allocate.c pe_fence_node(data_set, action->node, "container failed"); action 1845 pengine/allocate.c action->task, action->uuid, action 1851 pengine/allocate.c if (safe_str_eq(action->task, CRMD_ACTION_MIGRATE) action 1852 pengine/allocate.c || safe_str_eq(action->task, CRMD_ACTION_MIGRATE)) { action 1863 pengine/allocate.c order_start_then_action(container, action, pe_order_implies_then, action 1867 pengine/allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 1889 pengine/allocate.c order_action_then_stop(action, remote_rsc, pe_order_none, action 1896 pengine/allocate.c if (is_recurring_action(action)) { action 1902 pengine/allocate.c order_start_then_action(remote_rsc, action, action 1906 pengine/allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 1989 pengine/allocate.c apply_remote_ordering(action_t *action, pe_working_set_t *data_set) action 1993 pengine/allocate.c enum action_tasks task = text2task(action->task); action 1994 pengine/allocate.c enum remote_connection_state state = get_remote_node_state(action->node); action 1998 pengine/allocate.c if (action->rsc == NULL) { action 2002 pengine/allocate.c CRM_ASSERT(action->node); action 2003 pengine/allocate.c CRM_ASSERT(is_remote_node(action->node)); action 2005 pengine/allocate.c remote_rsc = action->node->details->remote_rsc; action 2013 pengine/allocate.c action->task, action->uuid, action 2017 pengine/allocate.c if (safe_str_eq(action->task, CRMD_ACTION_MIGRATE) action 2018 pengine/allocate.c || safe_str_eq(action->task, CRMD_ACTION_MIGRATE)) { action 2036 pengine/allocate.c order_start_then_action(remote_rsc, action, order_opts, data_set); action 2045 pengine/allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2055 pengine/allocate.c pe_fence_node(data_set, action->node, "resources are active and the connection is unrecoverable"); action 2058 pengine/allocate.c order_action_then_stop(action, remote_rsc, action 2069 pengine/allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2076 pengine/allocate.c if (is_recurring_action(action)) { action 2081 pengine/allocate.c order_start_then_action(remote_rsc, action, action 2091 pengine/allocate.c pe_fence_node(data_set, action->node, "resources are in an unknown state and the connection is unrecoverable"); action 2102 pengine/allocate.c order_action_then_stop(action, remote_rsc, action 2106 pengine/allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2122 pengine/allocate.c action_t *action = (action_t *) gIter->data; action 2126 pengine/allocate.c if (action->rsc == NULL) { action 2134 pengine/allocate.c if (action->rsc->is_remote_node && action 2135 pengine/allocate.c safe_str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT)) { action 2137 pengine/allocate.c custom_action_order(action->rsc, action 2139 pengine/allocate.c action, action 2140 pengine/allocate.c action->rsc, action 2141 pengine/allocate.c generate_op_key(action->rsc->id, RSC_START, 0), action 2150 pengine/allocate.c if (action->node == NULL) { action 2154 pengine/allocate.c if (is_remote_node(action->node) == FALSE) { action 2164 pengine/allocate.c if (is_set(action->flags, pe_action_pseudo)) { action 2168 pengine/allocate.c remote = action->node->details->remote_rsc; action 2184 pengine/allocate.c crm_trace("Container ordering for %s", action->uuid); action 2185 pengine/allocate.c apply_container_ordering(action, data_set); action 2188 pengine/allocate.c crm_trace("Remote ordering for %s", action->uuid); action 2189 pengine/allocate.c apply_remote_ordering(action, data_set); action 2272 pengine/allocate.c action_t *first = before->action; action 2280 pengine/allocate.c crm_trace("Testing %s -> %s (%p) for %s", first->uuid, before->action->uuid, before->action->rsc, start->uuid); action 2282 pengine/allocate.c CRM_ASSERT(before->action->rsc); action 2283 pengine/allocate.c first_rsc = before->action->rsc; action 2355 pengine/allocate.c action_t *action = (action_t *) gIter->data; action 2357 pengine/allocate.c update_colo_start_chain(action); action 2365 pengine/allocate.c action_t *action = (action_t *) gIter->data; action 2367 pengine/allocate.c update_action(action); action 2445 pengine/allocate.c action_t *action = (action_t *) gIter->data; action 2447 pengine/allocate.c if (action->rsc action 2448 pengine/allocate.c && action->node action 2449 pengine/allocate.c && action->node->details->shutdown action 2450 pengine/allocate.c && is_not_set(action->rsc->flags, pe_rsc_maintenance) action 2451 pengine/allocate.c && is_not_set(action->flags, pe_action_optional) action 2452 pengine/allocate.c && is_not_set(action->flags, pe_action_runnable) action 2453 pengine/allocate.c && crm_str_eq(action->task, RSC_STOP, TRUE) action 2462 pengine/allocate.c action->node->details->unclean ? "fence" : "shut down", action 2463 pengine/allocate.c action->node->details->uname, action->rsc->id, action 2464 pengine/allocate.c is_not_set(action->rsc->flags, pe_rsc_managed) ? " unmanaged" : " blocked", action 2465 pengine/allocate.c is_set(action->rsc->flags, pe_rsc_failed) ? " failed" : "", action 2466 pengine/allocate.c action->uuid); action 2470 pengine/allocate.c graph_element_from_action(action, data_set); action 2487 pengine/allocate.c action_t *action = (action_t *) gIter->data; action 2489 pengine/allocate.c if (action->rsc != NULL) { action 2491 pengine/allocate.c } else if (is_set(action->flags, pe_action_optional)) { action 2495 pengine/allocate.c if (is_container_remote_node(action->node)) { action 2496 pengine/allocate.c node_name = crm_strdup_printf("%s (resource: %s)", action->node->details->uname, action->node->details->remote_rsc->container->id); action 2497 pengine/allocate.c } else if(action->node) { action 2498 pengine/allocate.c node_name = crm_strdup_printf("%s", action->node->details->uname); action 2502 pengine/allocate.c if (safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { action 2504 pengine/allocate.c } else if (safe_str_eq(action->task, CRM_OP_FENCE)) { action 2505 pengine/allocate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); action 2511 pengine/allocate.c } else if(terminal && action->reason) { action 2512 pengine/allocate.c printf(" * %s %s '%s'\n", task, node_name, action->reason); action 2515 pengine/allocate.c } else if(action->reason) { action 2516 pengine/allocate.c crm_notice(" * %s %s '%s'\n", task, node_name, action->reason); action 76 pengine/allocate.h extern enum pe_action_flags native_action_flags(action_t * action, node_t * node); action 93 pengine/allocate.h extern enum pe_action_flags group_action_flags(action_t * action, node_t * node); action 107 pengine/allocate.h extern enum pe_action_flags container_action_flags(action_t * action, node_t * node); action 122 pengine/allocate.h extern enum pe_action_flags clone_action_flags(action_t * action, node_t * node); action 175 pengine/allocate.h gboolean update_action_flags(action_t * action, enum pe_action_flags flags, const char *source, int line); action 176 pengine/allocate.h gboolean update_action(action_t * action); action 679 pengine/clone.c action_t *action = (action_t *) gIter->data; action 684 pengine/clone.c } else if (is_set(action->flags, pe_action_optional)) { action 685 pengine/clone.c pe_rsc_trace(rsc, "Skipping optional: %s", action->uuid); action 688 pengine/clone.c } else if (is_set(action->flags, pe_action_pseudo) == FALSE action 689 pengine/clone.c && is_set(action->flags, pe_action_runnable) == FALSE) { action 690 pengine/clone.c pe_rsc_trace(rsc, "Skipping unrunnable: %s", action->uuid); action 693 pengine/clone.c } else if (safe_str_eq(RSC_STOP, action->task)) { action 694 pengine/clone.c pe_rsc_trace(rsc, "Stopping due to: %s", action->uuid); action 697 pengine/clone.c } else if (safe_str_eq(RSC_START, action->task)) { action 698 pengine/clone.c if (is_set(action->flags, pe_action_runnable) == FALSE) { action 700 pengine/clone.c action->uuid, is_set(action->flags, pe_action_runnable), action 701 pengine/clone.c is_set(action->flags, pe_action_pseudo)); action 703 pengine/clone.c pe_rsc_trace(rsc, "Starting due to: %s", action->uuid); action 705 pengine/clone.c action->uuid, is_set(action->flags, pe_action_runnable), action 706 pengine/clone.c is_set(action->flags, pe_action_pseudo)); action 1103 pengine/clone.c clone_child_action(action_t * action) action 1106 pengine/clone.c resource_t *child = (resource_t *) action->rsc->children->data; action 1108 pengine/clone.c if (safe_str_eq(action->task, "notify") action 1109 pengine/clone.c || safe_str_eq(action->task, "notified")) { action 1114 pengine/clone.c char *key = action->uuid; action 1136 pengine/clone.c result = get_complex_task(child, action->task, TRUE); action 1142 pengine/clone.c summary_action_flags(action_t * action, GListPtr children, node_t * node) action 1147 pengine/clone.c enum action_tasks task = clone_child_action(action); action 1156 pengine/clone.c pe_rsc_trace(action->rsc, "Checking for %s in %s on %s (%s)", task_s, child->id, action 1163 pengine/clone.c pe_rsc_trace(child, "%s is mandatory because of %s", action->uuid, action 1165 pengine/clone.c flags = crm_clear_bit(__FUNCTION__, __LINE__, action->rsc->id, flags, pe_action_optional); action 1166 pengine/clone.c pe_clear_action_bit(action, pe_action_optional); action 1175 pengine/clone.c pe_rsc_trace(action->rsc, "%s is not runnable because no children are", action->uuid); action 1176 pengine/clone.c flags = crm_clear_bit(__FUNCTION__, __LINE__, action->rsc->id, flags, pe_action_runnable); action 1178 pengine/clone.c pe_clear_action_bit(action, pe_action_runnable); action 1186 pengine/clone.c clone_action_flags(action_t * action, node_t * node) action 1188 pengine/clone.c return summary_action_flags(action, action->rsc->children, node); action 108 pengine/constraints.c invert_action(const char *action) action 110 pengine/constraints.c if (safe_str_eq(action, RSC_START)) { action 113 pengine/constraints.c } else if (safe_str_eq(action, RSC_STOP)) { action 116 pengine/constraints.c } else if (safe_str_eq(action, RSC_PROMOTE)) { action 119 pengine/constraints.c } else if (safe_str_eq(action, RSC_DEMOTE)) { action 122 pengine/constraints.c } else if (safe_str_eq(action, RSC_PROMOTED)) { action 125 pengine/constraints.c } else if (safe_str_eq(action, RSC_DEMOTED)) { action 128 pengine/constraints.c } else if (safe_str_eq(action, RSC_STARTED)) { action 131 pengine/constraints.c } else if (safe_str_eq(action, RSC_STOPPED)) { action 134 pengine/constraints.c crm_config_warn("Unknown action: %s", action); action 1319 pengine/constraints.c task_from_action_or_key(action_t *action, const char *key) action 1326 pengine/constraints.c if (action) { action 1327 pengine/constraints.c res = strdup(action->task); action 1585 pengine/constraints.c const char *action = crm_element_value(set, "action"); action 1595 pengine/constraints.c if (action == NULL) { action 1596 pengine/constraints.c action = RSC_START; action 1608 pengine/constraints.c flags = get_flags(id, local_kind, action, action, FALSE); action 1651 pengine/constraints.c key = generate_op_key(resource->id, action, 0); action 1668 pengine/constraints.c char *then_key = generate_op_key(then_rsc->id, action, 0); action 1676 pengine/constraints.c new_rsc_order(last, action, resource, action, flags, data_set); action 1695 pengine/constraints.c action = invert_action(action); action 1710 pengine/constraints.c flags = get_flags(id, local_kind, action, action, TRUE); action 1729 pengine/constraints.c new_rsc_order(resource, action, last, action, flags, data_set); action 204 pengine/container.c pe_action_t *action = NULL; action 234 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_PROMOTE, TRUE, TRUE, data_set); action 235 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_PROMOTED, TRUE, TRUE, data_set); action 236 pengine/container.c action->priority = INFINITY; action 239 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_DEMOTE, TRUE, TRUE, data_set); action 240 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_DEMOTED, TRUE, TRUE, data_set); action 241 pengine/container.c action->priority = INFINITY; action 503 pengine/container.c container_action_flags(action_t * action, node_t * node) action 509 pengine/container.c get_container_variant_data(data, action->rsc); action 511 pengine/container.c enum action_tasks task = get_complex_task(data->child, action->task, TRUE); action 520 pengine/container.c return summary_action_flags(action, data->child->children, node); action 526 pengine/container.c containers = get_container_list(action->rsc); action 527 pengine/container.c flags = summary_action_flags(action, containers, node); action 777 pengine/container.c update_action(next->action); action 32 pengine/graph.c void update_colo_start_chain(action_t * action); action 36 pengine/graph.c get_action_flags(action_t * action, node_t * node) action 38 pengine/graph.c enum pe_action_flags flags = action->flags; action 40 pengine/graph.c if (action->rsc) { action 41 pengine/graph.c flags = action->rsc->cmds->action_flags(action, NULL); action 43 pengine/graph.c if (pe_rsc_is_clone(action->rsc) && node) { action 46 pengine/graph.c enum pe_action_flags clone_flags = action->rsc->cmds->action_flags(action, node); action 60 pengine/graph.c pe_rsc_trace(action->rsc, "Fixing up runnable flag for %s", action->uuid); action 147 pengine/graph.c rsc_expand_action(action_t * action) action 150 pengine/graph.c action_t *result = action; action 151 pengine/graph.c resource_t *rsc = action->rsc; action 154 pengine/graph.c return action; action 169 pengine/graph.c uuid = convert_non_atomic_uuid(action->uuid, rsc, notify, FALSE); action 171 pengine/graph.c pe_rsc_trace(rsc, "Converting %s to %s %d", action->uuid, uuid, action 175 pengine/graph.c crm_err("Couldn't expand %s to %s in %s", action->uuid, uuid, rsc->id); action 176 pengine/graph.c result = action; action 465 pengine/graph.c action_t *action = (action_t *) gIter->data; action 467 pengine/graph.c if (safe_str_neq(action->task, RSC_START)) { action 470 pengine/graph.c if (is_set(action->flags, pe_action_runnable)) { action 471 pengine/graph.c pe_action_set_flag_reason(__FUNCTION__, __LINE__, action, NULL, reason_text, pe_action_runnable, FALSE); action 472 pengine/graph.c update_colo_start_chain(action); action 473 pengine/graph.c update_action(action); action 480 pengine/graph.c update_colo_start_chain(action_t *action) action 485 pengine/graph.c if (is_not_set(action->flags, pe_action_runnable) && safe_str_eq(action->task, RSC_START)) { action 486 pengine/graph.c rsc = uber_parent(action->rsc); action 514 pengine/graph.c mark_start_blocked(colocate_with->rsc_lh, action->rsc); action 558 pengine/graph.c action_t *first = other->action; action 584 pengine/graph.c other->action->uuid, first_node->details->uname, action 599 pengine/graph.c set_bit(other->action->flags, pe_action_optional); action 607 pengine/graph.c if (first != other->action) { action 609 pengine/graph.c other->action->uuid); action 628 pengine/graph.c if (first == other->action) { action 657 pengine/graph.c other->action->uuid, then->uuid, first->uuid, then->uuid); action 675 pengine/graph.c update_action(other->action); action 705 pengine/graph.c update_action(other->action); action 721 pengine/graph.c action_t *action = (action_t *) lpc->data; action 723 pengine/graph.c if (action->rsc == NULL || action->node == NULL) { action 725 pengine/graph.c } else if (action->node->details != node->details) { action 727 pengine/graph.c } else if (is_set(action->rsc->flags, pe_rsc_maintenance)) { action 728 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: maintenance mode", action->uuid); action 731 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: node %s is in maintenance mode", action 732 pengine/graph.c action->uuid, node->details->uname); action 734 pengine/graph.c } else if (safe_str_neq(action->task, RSC_STOP)) { action 736 pengine/graph.c } else if (is_not_set(action->rsc->flags, pe_rsc_managed) action 737 pengine/graph.c && is_not_set(action->rsc->flags, pe_rsc_block)) { action 741 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: unmanaged", action->uuid); action 745 pengine/graph.c pe_rsc_trace(action->rsc, "Ordering %s before shutdown on %s", action->uuid, action 747 pengine/graph.c pe_clear_action_bit(action, pe_action_optional); action 748 pengine/graph.c custom_action_order(action->rsc, NULL, action, action 781 pengine/graph.c get_router_node(action_t *action) action 787 pengine/graph.c if (safe_str_eq(action->task, CRM_OP_FENCE) || is_remote_node(action->node) == FALSE) { action 791 pengine/graph.c CRM_ASSERT(action->node->details->remote_rsc != NULL); action 793 pengine/graph.c if (action->node->details->remote_rsc->running_on) { action 794 pengine/graph.c began_on = action->node->details->remote_rsc->running_on->data; action 796 pengine/graph.c ended_on = action->node->details->remote_rsc->allocated_to; action 827 pengine/graph.c if (safe_str_eq(action->task, "stop") || action 828 pengine/graph.c safe_str_eq(action->task, "demote") || action 829 pengine/graph.c safe_str_eq(action->task, "migrate_from") || action 830 pengine/graph.c safe_str_eq(action->task, "migrate_to")) { action 919 pengine/graph.c action_t *action = NULL; action 923 pengine/graph.c action = get_pseudo_op(CRM_OP_MAINTENANCE_NODES, data_set); action 924 pengine/graph.c set_bit(action->flags, pe_action_print_always); action 941 pengine/graph.c add_downed_nodes(xmlNode *xml, const action_t *action, action 944 pengine/graph.c CRM_CHECK(xml && action && action->node && data_set, return); action 946 pengine/graph.c if (safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { action 950 pengine/graph.c add_node_to_xml_by_id(action->node->details->id, downed); action 952 pengine/graph.c } else if (safe_str_eq(action->task, CRM_OP_FENCE)) { action 955 pengine/graph.c const char *fence = g_hash_table_lookup(action->meta, "stonith_action"); action 959 pengine/graph.c add_node_to_xml_by_id(action->node->details->id, downed); action 960 pengine/graph.c pe_foreach_guest_node(data_set, action->node, add_node_to_xml, downed); action 963 pengine/graph.c } else if (action->rsc && action->rsc->is_remote_node action 964 pengine/graph.c && safe_str_eq(action->task, CRMD_ACTION_STOP)) { action 973 pengine/graph.c for (iter = action->actions_before; iter != NULL; iter = iter->next) { action 974 pengine/graph.c input = ((action_wrapper_t *) iter->data)->action; action 975 pengine/graph.c if (input->rsc && safe_str_eq(action->rsc->id, input->rsc->id) action 983 pengine/graph.c add_node_to_xml_by_id(action->rsc->id, downed); action 989 pengine/graph.c action2xml(action_t * action, gboolean as_input, pe_working_set_t *data_set) action 999 pengine/graph.c if (action == NULL) { action 1003 pengine/graph.c if (safe_str_eq(action->task, CRM_OP_FENCE)) { action 1006 pengine/graph.c is_set(action->flags, pe_action_pseudo)? action 1010 pengine/graph.c } else if (safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { action 1013 pengine/graph.c } else if (safe_str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT)) { action 1016 pengine/graph.c } else if (safe_str_eq(action->task, CRM_OP_LRM_REFRESH)) { action 1022 pengine/graph.c } else if (is_set(action->flags, pe_action_pseudo)) { action 1023 pengine/graph.c if (safe_str_eq(action->task, CRM_OP_MAINTENANCE_NODES)) { action 1032 pengine/graph.c rsc_details = pe_rsc_action_details(action); action 1036 pengine/graph.c crm_xml_add_int(action_xml, XML_ATTR_ID, action->id); action 1037 pengine/graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TASK, action->task); action 1038 pengine/graph.c if (action->rsc != NULL && action->rsc->clone_name != NULL) { action 1040 pengine/graph.c const char *interval_s = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); action 1043 pengine/graph.c if (safe_str_eq(action->task, RSC_NOTIFY)) { action 1044 pengine/graph.c const char *n_type = g_hash_table_lookup(action->meta, "notify_type"); action 1045 pengine/graph.c const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); action 1047 pengine/graph.c CRM_CHECK(n_type != NULL, crm_err("No notify type value found for %s", action->uuid)); action 1049 pengine/graph.c crm_err("No notify operation value found for %s", action->uuid)); action 1050 pengine/graph.c clone_key = generate_notify_key(action->rsc->clone_name, n_type, n_task); action 1052 pengine/graph.c } else if(action->cancel_task) { action 1053 pengine/graph.c clone_key = generate_op_key(action->rsc->clone_name, action->cancel_task, interval); action 1055 pengine/graph.c clone_key = generate_op_key(action->rsc->clone_name, action->task, interval); action 1058 pengine/graph.c CRM_CHECK(clone_key != NULL, crm_err("Could not generate a key for %s", action->uuid)); action 1060 pengine/graph.c crm_xml_add(action_xml, "internal_" XML_LRM_ATTR_TASK_KEY, action->uuid); action 1064 pengine/graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TASK_KEY, action->uuid); action 1067 pengine/graph.c if (needs_node_info && action->node != NULL) { action 1068 pengine/graph.c node_t *router_node = get_router_node(action); action 1070 pengine/graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TARGET, action->node->details->uname); action 1071 pengine/graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TARGET_UUID, action->node->details->id); action 1076 pengine/graph.c g_hash_table_insert(action->meta, strdup(XML_LRM_ATTR_TARGET), strdup(action->node->details->uname)); action 1077 pengine/graph.c g_hash_table_insert(action->meta, strdup(XML_LRM_ATTR_TARGET_UUID), strdup(action->node->details->id)); action 1086 pengine/graph.c if (action->rsc) { action 1087 pengine/graph.c if (is_set(action->flags, pe_action_pseudo) == FALSE) { action 1090 pengine/graph.c xmlNode *rsc_xml = create_xml_node(action_xml, crm_element_name(action->rsc->xml)); action 1098 pengine/graph.c if (is_set(action->rsc->flags, pe_rsc_orphan) && action->rsc->clone_name) { action 1110 pengine/graph.c crm_debug("Using orphan clone name %s instead of %s", action->rsc->id, action 1111 pengine/graph.c action->rsc->clone_name); action 1112 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->clone_name); action 1113 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); action 1115 pengine/graph.c } else if (is_not_set(action->rsc->flags, pe_rsc_unique)) { action 1116 pengine/graph.c const char *xml_id = ID(action->rsc->xml); action 1118 pengine/graph.c crm_debug("Using anonymous clone name %s for %s (aka. %s)", xml_id, action->rsc->id, action 1119 pengine/graph.c action->rsc->clone_name); action 1135 pengine/graph.c if (action->rsc->clone_name && safe_str_neq(xml_id, action->rsc->clone_name)) { action 1136 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->clone_name); action 1138 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); action 1142 pengine/graph.c CRM_ASSERT(action->rsc->clone_name == NULL); action 1143 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->id); action 1148 pengine/graph.c g_hash_table_lookup(action->rsc->meta, attr_list[lpc])); action 1157 pengine/graph.c g_hash_table_foreach(action->extra, hash2field, args_xml); action 1158 pengine/graph.c if (action->rsc != NULL && action->node) { action 1161 pengine/graph.c get_rsc_attributes(p, action->rsc, action->node, data_set); action 1169 pengine/graph.c pe_get_versioned_attributes(versioned_parameters, action->rsc, action 1170 pengine/graph.c action->node, data_set); action 1178 pengine/graph.c } else if(action->rsc && action->rsc->variant <= pe_native) { action 1179 pengine/graph.c g_hash_table_foreach(action->rsc->parameters, hash2smartfield, args_xml); action 1182 pengine/graph.c if (xml_has_children(action->rsc->versioned_parameters)) { action 1183 pengine/graph.c add_node_copy(action_xml, action->rsc->versioned_parameters); action 1200 pengine/graph.c g_hash_table_foreach(action->meta, hash2metafield, args_xml); action 1201 pengine/graph.c if (action->rsc != NULL) { action 1203 pengine/graph.c const char *value = g_hash_table_lookup(action->rsc->meta, "external-ip"); action 1204 pengine/graph.c resource_t *parent = action->rsc; action 1212 pengine/graph.c if (isolated && action->node) { action 1214 pengine/graph.c crm_xml_add(args_xml, nodeattr, action->node->details->uname); action 1222 pengine/graph.c if(is_container_remote_node(action->node)) { action 1224 pengine/graph.c enum action_tasks task = text2task(action->task); action 1227 pengine/graph.c const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); action 1237 pengine/graph.c if(action->node->details->remote_rsc->container->running_on) { action 1238 pengine/graph.c host = action->node->details->remote_rsc->container->running_on->data; action 1246 pengine/graph.c if(action->node->details->remote_rsc->container->allocated_to) { action 1247 pengine/graph.c host = action->node->details->remote_rsc->container->allocated_to; action 1256 pengine/graph.c (gpointer)g_hash_table_lookup(action->rsc->meta, XML_RSC_ATTR_TARGET), (gpointer)args_xml); action 1261 pengine/graph.c } else if (safe_str_eq(action->task, CRM_OP_FENCE) && action->node) { action 1268 pengine/graph.c g_hash_table_foreach(action->node->details->attrs, hash2metafield, args_xml); action 1275 pengine/graph.c if (needs_node_info && (action->node != NULL)) { action 1276 pengine/graph.c add_downed_nodes(action_xml, action, data_set); action 1288 pengine/graph.c should_dump_action(action_t * action) action 1290 pengine/graph.c CRM_CHECK(action != NULL, return FALSE); action 1292 pengine/graph.c if (is_set(action->flags, pe_action_dumped)) { action 1293 pengine/graph.c crm_trace("action %d (%s) was already dumped", action->id, action->uuid); action 1296 pengine/graph.c } else if (is_set(action->flags, pe_action_pseudo) && safe_str_eq(action->task, CRM_OP_PROBED)) { action 1314 pengine/graph.c for (lpc = action->actions_after; lpc != NULL; lpc = lpc->next) { action 1317 pengine/graph.c if (is_not_set(wrapper->action->flags, pe_action_runnable)) { action 1319 pengine/graph.c } else if (safe_str_neq(wrapper->action->task, RSC_START)) { action 1321 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_dumped)) { action 1323 pengine/graph.c action->id, action->uuid, wrapper->action->uuid); action 1326 pengine/graph.c } else if (should_dump_action(wrapper->action)) { action 1328 pengine/graph.c action->id, action->uuid, wrapper->action->uuid); action 1334 pengine/graph.c if (is_set(action->flags, pe_action_runnable) == FALSE) { action 1335 pengine/graph.c crm_trace("action %d (%s) was not runnable", action->id, action->uuid); action 1338 pengine/graph.c } else if (is_set(action->flags, pe_action_optional) action 1339 pengine/graph.c && is_set(action->flags, pe_action_print_always) == FALSE) { action 1340 pengine/graph.c crm_trace("action %d (%s) was optional", action->id, action->uuid); action 1343 pengine/graph.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { action 1346 pengine/graph.c interval = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); action 1349 pengine/graph.c if (safe_str_neq(action->task, RSC_STATUS) && interval == NULL) { action 1351 pengine/graph.c action->id, action->uuid, action->rsc->id); action 1356 pengine/graph.c if (is_set(action->flags, pe_action_pseudo) action 1357 pengine/graph.c || safe_str_eq(action->task, CRM_OP_FENCE) action 1358 pengine/graph.c || safe_str_eq(action->task, CRM_OP_SHUTDOWN)) { action 1363 pengine/graph.c if (action->node == NULL) { action 1364 pengine/graph.c pe_err("action %d (%s) was not allocated", action->id, action->uuid); action 1365 pengine/graph.c log_action(LOG_DEBUG, "Unallocated action", action, FALSE); action 1368 pengine/graph.c } else if(is_container_remote_node(action->node) && action->node->details->remote_requires_reset == FALSE) { action 1369 pengine/graph.c crm_trace("Assuming action %s for %s will be runnable", action->uuid, action->node->details->uname); action 1371 pengine/graph.c } else if (action->node->details->online == FALSE) { action 1372 pengine/graph.c pe_err("action %d was (%s) scheduled for offline node", action->id, action->uuid); action 1373 pengine/graph.c log_action(LOG_DEBUG, "Action for offline node", action, FALSE); action 1379 pengine/graph.c } else if (action->node->details->unclean == FALSE) { action 1380 pengine/graph.c pe_err("action %d was (%s) scheduled for unclean node", action->id, action->uuid); action 1381 pengine/graph.c log_action(LOG_DEBUG, "Action for unclean node", action, FALSE); action 1402 pengine/graph.c if (action_wrapper1->action->id > action_wrapper2->action->id) { action 1406 pengine/graph.c if (action_wrapper1->action->id < action_wrapper2->action->id) { action 1413 pengine/graph.c check_dump_input(int last_action, action_t * action, action_wrapper_t * wrapper) action 1429 pengine/graph.c && action->rsc && action->rsc->fillers action 1430 pengine/graph.c && wrapper->action->rsc && wrapper->action->node action 1431 pengine/graph.c && wrapper->action->node->details->remote_rsc action 1432 pengine/graph.c && (wrapper->action->node->details->remote_rsc->container == action->rsc)) { action 1437 pengine/graph.c wrapper->action->rsc->id, action->rsc->id); action 1442 pengine/graph.c if (last_action == wrapper->action->id) { action 1444 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1450 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1453 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_runnable) == FALSE action 1454 pengine/graph.c && type == pe_order_none && safe_str_neq(wrapper->action->uuid, CRM_OP_PROBED)) { action 1456 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1459 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_runnable) == FALSE action 1462 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1465 pengine/graph.c } else if (is_set(action->flags, pe_action_pseudo) action 1468 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1471 pengine/graph.c } else if ((wrapper->type & pe_order_implies_first_migratable) && (is_set(wrapper->action->flags, pe_action_runnable) == FALSE)) { action 1475 pengine/graph.c && (is_set(wrapper->action->flags, pe_action_migrate_runnable))) { action 1479 pengine/graph.c && crm_ends_with(wrapper->action->uuid, "_stop_0") action 1480 pengine/graph.c && is_set(wrapper->action->flags, pe_action_migrate_runnable)) { action 1488 pengine/graph.c wrapper->action->uuid, action 1489 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action->uuid, action 1490 pengine/graph.c action->node ? action->node->details->uname : ""); action 1492 pengine/graph.c if (action->rsc && safe_str_eq(action->task, RSC_MIGRATE)) { action 1502 pengine/graph.c if (wrapper->action->node == NULL || action->rsc->allocated_to == NULL action 1503 pengine/graph.c || wrapper->action->node->details != action->rsc->allocated_to->details) { action 1510 pengine/graph.c } else if (wrapper->action->node == NULL || action->node == NULL action 1511 pengine/graph.c || wrapper->action->node->details != action->node->details) { action 1517 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_optional)) { action 1526 pengine/graph.c wrapper->action->uuid, action 1527 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action 1528 pengine/graph.c action->uuid, action 1529 pengine/graph.c action->node ? action->node->details->uname : ""); action 1531 pengine/graph.c if (wrapper->action->node && action->node action 1532 pengine/graph.c && wrapper->action->node->details != action->node->details) { action 1538 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_optional)) { action 1545 pengine/graph.c } else if (wrapper->action->rsc action 1546 pengine/graph.c && wrapper->action->rsc != action->rsc action 1547 pengine/graph.c && is_set(wrapper->action->rsc->flags, pe_rsc_failed) action 1548 pengine/graph.c && is_not_set(wrapper->action->rsc->flags, pe_rsc_managed) action 1549 pengine/graph.c && crm_ends_with(wrapper->action->uuid, "_stop_0") action 1550 pengine/graph.c && action->rsc && pe_rsc_is_clone(action->rsc)) { action 1553 pengine/graph.c wrapper->action->uuid, action->uuid); action 1556 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_dumped) action 1557 pengine/graph.c || should_dump_action(wrapper->action)) { action 1558 pengine/graph.c crm_trace("Input (%d) %s should be dumped for %s", wrapper->action->id, action 1559 pengine/graph.c wrapper->action->uuid, action->uuid); action 1563 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_runnable) action 1564 pengine/graph.c && is_set(wrapper->action->flags, pe_action_pseudo) action 1565 pengine/graph.c && wrapper->action->rsc->variant != pe_native) { action 1567 pengine/graph.c wrapper->action->id, wrapper->action->uuid, action->uuid); action 1570 pengine/graph.c } else if (is_set(wrapper->action->flags, pe_action_optional) == TRUE action 1571 pengine/graph.c && is_set(wrapper->action->flags, pe_action_print_always) == FALSE) { action 1572 pengine/graph.c crm_trace("Input (%d) %s optional for %s", wrapper->action->id, action 1573 pengine/graph.c wrapper->action->uuid, action->uuid); action 1575 pengine/graph.c wrapper->action->id, wrapper->action->uuid, wrapper->action->node, action 1576 pengine/graph.c is_set(wrapper->action->flags, pe_action_pseudo), action 1577 pengine/graph.c is_set(wrapper->action->flags, pe_action_runnable), action 1578 pengine/graph.c is_set(wrapper->action->flags, pe_action_optional), action 1579 pengine/graph.c is_set(wrapper->action->flags, pe_action_print_always), wrapper->type); action 1589 pengine/graph.c graph_has_loop(action_t * init_action, action_t * action, action_wrapper_t * wrapper) action 1594 pengine/graph.c if (is_set(wrapper->action->flags, pe_action_tracking)) { action 1596 pengine/graph.c wrapper->action->uuid, action 1597 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action 1598 pengine/graph.c action->uuid, action 1599 pengine/graph.c action->node ? action->node->details->uname : "", action 1604 pengine/graph.c if (check_dump_input(-1, action, wrapper) == FALSE) { action 1617 pengine/graph.c wrapper->action->uuid, action 1618 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action 1619 pengine/graph.c action->uuid, action 1620 pengine/graph.c action->node ? action->node->details->uname : "", action 1623 pengine/graph.c if (wrapper->action == init_action) { action 1625 pengine/graph.c action->uuid, action 1626 pengine/graph.c action->node ? action->node->details->uname : "", action 1633 pengine/graph.c set_bit(wrapper->action->flags, pe_action_tracking); action 1635 pengine/graph.c for (lpc = wrapper->action->actions_before; lpc != NULL; lpc = lpc->next) { action 1638 pengine/graph.c if (graph_has_loop(init_action, wrapper->action, wrapper_before)) { action 1645 pengine/graph.c pe_clear_action_bit(wrapper->action, pe_action_tracking); action 1651 pengine/graph.c should_dump_input(int last_action, action_t * action, action_wrapper_t * wrapper) action 1655 pengine/graph.c if (check_dump_input(last_action, action, wrapper) == FALSE) { action 1660 pengine/graph.c && action->rsc action 1661 pengine/graph.c && safe_str_eq(action->task, RSC_MIGRATE)) { action 1663 pengine/graph.c wrapper->action->uuid, action 1664 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action 1665 pengine/graph.c action->uuid, action 1666 pengine/graph.c action->node ? action->node->details->uname : ""); action 1668 pengine/graph.c if (graph_has_loop(action, action, wrapper)) { action 1675 pengine/graph.c wrapper->action->uuid, action 1676 pengine/graph.c wrapper->action->node ? wrapper->action->node->details->uname : "", action 1677 pengine/graph.c action->uuid, action 1678 pengine/graph.c action->node ? action->node->details->uname : ""); action 1686 pengine/graph.c wrapper->action->id, action 1687 pengine/graph.c wrapper->action->uuid, action 1688 pengine/graph.c wrapper->action->node, action 1689 pengine/graph.c is_set(wrapper->action->flags, pe_action_pseudo), action 1690 pengine/graph.c is_set(wrapper->action->flags, pe_action_runnable), action 1691 pengine/graph.c is_set(wrapper->action->flags, pe_action_optional), action 1692 pengine/graph.c is_set(wrapper->action->flags, pe_action_print_always), wrapper->type, action->uuid); action 1697 pengine/graph.c graph_element_from_action(action_t * action, pe_working_set_t * data_set) action 1708 pengine/graph.c if (should_dump_action(action) == FALSE) { action 1712 pengine/graph.c set_bit(action->flags, pe_action_dumped); action 1721 pengine/graph.c if (action->rsc != NULL) { action 1722 pengine/graph.c synapse_priority = action->rsc->priority; action 1724 pengine/graph.c if (action->priority > synapse_priority) { action 1725 pengine/graph.c synapse_priority = action->priority; action 1731 pengine/graph.c xml_action = action2xml(action, FALSE, data_set); action 1734 pengine/graph.c action->actions_before = g_list_sort(action->actions_before, sort_action_id); action 1736 pengine/graph.c for (lpc = action->actions_before; lpc != NULL; lpc = lpc->next) { action 1739 pengine/graph.c if (should_dump_input(last_action, action, wrapper) == FALSE) { action 1744 pengine/graph.c CRM_CHECK(last_action < wrapper->action->id,; action 1746 pengine/graph.c last_action = wrapper->action->id; action 1749 pengine/graph.c xml_action = action2xml(wrapper->action, TRUE, data_set); action 157 pengine/group.c action_t *action = (action_t *) gIter->data; action 159 pengine/group.c if (is_set(action->flags, pe_action_optional)) { action 162 pengine/group.c if (safe_str_eq(RSC_STOP, action->task) && is_set(action->flags, pe_action_runnable)) { action 164 pengine/group.c pe_rsc_trace(action->rsc, "Based on %s the group is stopping", action->uuid); action 166 pengine/group.c } else if (safe_str_eq(RSC_START, action->task) action 167 pengine/group.c && is_set(action->flags, pe_action_runnable)) { action 169 pengine/group.c pe_rsc_trace(action->rsc, "Based on %s the group is starting", action->uuid); action 374 pengine/group.c group_action_flags(action_t * action, node_t * node) action 379 pengine/group.c for (gIter = action->rsc->children; gIter != NULL; gIter = gIter->next) { action 381 pengine/group.c enum action_tasks task = get_complex_task(child, action->task, TRUE); action 390 pengine/group.c pe_rsc_trace(action->rsc, "%s is mandatory because of %s", action->uuid, action 393 pengine/group.c pe_clear_action_bit(action, pe_action_optional); action 395 pengine/group.c if (safe_str_neq(task_s, action->task) action 398 pengine/group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s", action->uuid, action 401 pengine/group.c pe_clear_action_bit(action, pe_action_runnable); action 405 pengine/group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s (not found in %s)", action 406 pengine/group.c action->uuid, task_s, child->id); action 123 pengine/master.c action_t *action = (action_t *) gIter->data; action 128 pengine/master.c } else if (is_set(action->flags, pe_action_optional)) { action 131 pengine/master.c } else if (safe_str_eq(RSC_DEMOTE, action->task)) { action 134 pengine/master.c } else if (safe_str_eq(RSC_PROMOTE, action->task)) { action 826 pengine/master.c action_t *action = NULL; action 859 pengine/master.c action = create_pseudo_resource_op(rsc, RSC_PROMOTE, !any_promoting, TRUE, data_set); action 868 pengine/master.c create_notification_boundaries(rsc, RSC_PROMOTE, action, action_complete, data_set); action 872 pengine/master.c action = create_pseudo_resource_op(rsc, RSC_DEMOTE, !any_demoting, TRUE, data_set); action 880 pengine/master.c create_notification_boundaries(rsc, RSC_DEMOTE, action, action_complete, data_set); action 1876 pengine/native.c native_action_flags(action_t * action, node_t * node) action 1878 pengine/native.c return action->flags; action 2146 pengine/native.c action_t *action = (action_t *) gIter->data; action 2148 pengine/native.c crm_trace("processing action %d for rsc=%s", action->id, rsc->id); action 2149 pengine/native.c graph_element_from_action(action, data_set); action 2186 pengine/native.c LogAction(const char *change, resource_t *rsc, pe_node_t *origin, pe_node_t *destination, pe_action_t *action, pe_action_t *source, gboolean terminal) action 2195 pengine/native.c CRM_ASSERT(action); action 2199 pengine/native.c source = action; action 2261 pengine/native.c if(source->reason && is_not_set(action->flags, pe_action_runnable)) { action 2267 pengine/native.c } else if(is_not_set(action->flags, pe_action_runnable)) { action 3065 pengine/native.c action_t *action = (action_t *) gIter->data; action 3067 pengine/native.c if(action->needs == rsc_req_nothing) { action 3070 pengine/native.c } else if (action->needs == rsc_req_stonith) { action 3071 pengine/native.c order_actions(stonith_done, action, pe_order_optional); action 3073 pengine/native.c } else if (safe_str_eq(action->task, RSC_START) action 3091 pengine/native.c pe_rsc_debug(rsc, "Ordering %s after %s recovery", action->uuid, action 3093 pengine/native.c order_actions(all_stopped, action, pe_order_optional | pe_order_runnable_left); action 3121 pengine/native.c action_t *action = (action_t *) gIter->data; action 3128 pengine/native.c action->uuid, target->details->uname); action 3134 pengine/native.c update_action_flags(action, pe_action_pseudo, __FUNCTION__, __LINE__); action 3135 pengine/native.c update_action_flags(action, pe_action_runnable, __FUNCTION__, __LINE__); action 3136 pengine/native.c update_action_flags(action, pe_action_implied_by_stonith, __FUNCTION__, __LINE__); action 3150 pengine/native.c order_actions(stonith_op, action, flags); action 3175 pengine/native.c create_secondary_notification(action, rsc, stonith_op, data_set); action 3218 pengine/native.c action_t *action = (action_t *) gIter->data; action 3220 pengine/native.c if (action->node->details->online == FALSE || action->node->details->unclean == TRUE action 3229 pengine/native.c action->uuid, target->details->uname); action 3235 pengine/native.c update_action_flags(action, pe_action_pseudo, __FUNCTION__, __LINE__); action 3236 pengine/native.c update_action_flags(action, pe_action_runnable, __FUNCTION__, __LINE__); action 3239 pengine/native.c order_actions(stonith_op, action, pe_order_preserve|pe_order_optional); action 319 pengine/notif.c create_notification_boundaries(resource_t * rsc, const char *action, action_t * start, action 339 pengine/notif.c n_data->action = action; action 353 pengine/notif.c add_hash_param(n_data->pre->meta, "notify_operation", n_data->action); action 368 pengine/notif.c add_hash_param(n_data->pre_done->meta, "notify_operation", n_data->action); action 393 pengine/notif.c add_hash_param(n_data->post->meta, "notify_operation", n_data->action); action 413 pengine/notif.c add_hash_param(n_data->post_done->meta, "notify_operation", n_data->action); action 426 pengine/notif.c if (safe_str_eq(action, RSC_STOP)) { action 547 pengine/notif.c if (safe_str_eq(n_data->action, RSC_STOP)) { action 556 pengine/notif.c if (rsc_list && safe_str_eq(n_data->action, RSC_START)) { action 566 pengine/notif.c if (safe_str_eq(n_data->action, RSC_DEMOTE)) { action 577 pengine/notif.c if (safe_str_eq(n_data->action, RSC_PROMOTE)) { action 645 pengine/notif.c enum action_tasks task = text2task(n_data->action); action 680 pengine/notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); action 746 pengine/notif.c create_secondary_notification(pe_action_t *action, resource_t *rsc, action 752 pengine/notif.c crm_info("Creating secondary notification for %s", action->uuid); action 759 pengine/notif.c strdup(action->node->details->uname)); action 24 pengine/notif.h const char *action, action 39 pengine/notif.h void create_secondary_notification(pe_action_t *action, resource_t *rsc, action 290 pengine/pengine.c action_t *action = (action_t *) gIter->data; action 292 pengine/pengine.c if (is_set(action->flags, pe_action_optional) == FALSE action 293 pengine/pengine.c && is_set(action->flags, pe_action_runnable) == FALSE action 294 pengine/pengine.c && is_set(action->flags, pe_action_pseudo) == FALSE) { action 295 pengine/pengine.c log_action(LOG_TRACE, "\t", action, TRUE); action 141 pengine/pengine.h extern void graph_element_from_action(action_t * action, pe_working_set_t * data_set); action 93 pengine/ptest.c create_action_name(action_t * action) action 98 pengine/ptest.c if (action->node) { action 99 pengine/ptest.c action_host = action->node->details->uname; action 100 pengine/ptest.c action_name = crm_concat(action->uuid, action_host, ' '); action 102 pengine/ptest.c } else if (is_set(action->flags, pe_action_pseudo)) { action 103 pengine/ptest.c action_name = strdup(action->uuid); action 107 pengine/ptest.c action_name = crm_concat(action->uuid, action_host, ' '); action 109 pengine/ptest.c if (safe_str_eq(action->task, RSC_CANCEL)) { action 387 pengine/ptest.c action_t *action = (action_t *) lpc->data; action 392 pengine/ptest.c char *action_name = create_action_name(action); action 394 pengine/ptest.c crm_trace("Action %d: %p", action->id, action); action 396 pengine/ptest.c if (is_set(action->flags, pe_action_pseudo)) { action 401 pengine/ptest.c if (is_set(action->flags, pe_action_dumped)) { action 405 pengine/ptest.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { action 411 pengine/ptest.c } else if (is_set(action->flags, pe_action_optional)) { action 419 pengine/ptest.c CRM_CHECK(is_set(action->flags, pe_action_runnable) == FALSE,; action 423 pengine/ptest.c set_bit(action->flags, pe_action_dumped); action 431 pengine/ptest.c action_t *action = (action_t *) lpc->data; action 435 pengine/ptest.c for (lpc2 = action->actions_before; lpc2 != NULL; lpc2 = lpc2->next) { action 446 pengine/ptest.c } else if (is_set(action->flags, pe_action_pseudo) action 453 pengine/ptest.c } else if (is_set(before->action->flags, pe_action_dumped) action 454 pengine/ptest.c && is_set(action->flags, pe_action_dumped)) { action 459 pengine/ptest.c before_name = create_action_name(before->action); action 460 pengine/ptest.c after_name = create_action_name(action); action 325 pengine/utils.c log_action(unsigned int log_level, const char *pre_text, action_t * action, gboolean details) action 330 pengine/utils.c if (action == NULL) { action 335 pengine/utils.c if (is_set(action->flags, pe_action_pseudo)) { action 339 pengine/utils.c } else if (action->node != NULL) { action 340 pengine/utils.c node_uname = action->node->details->uname; action 341 pengine/utils.c node_uuid = action->node->details->id; action 347 pengine/utils.c switch (text2task(action->task)) { action 353 pengine/utils.c is_set(action->flags, action 354 pengine/utils.c pe_action_pseudo) ? "Pseudo " : is_set(action->flags, action 356 pengine/utils.c "Optional " : is_set(action->flags, action 357 pengine/utils.c pe_action_runnable) ? is_set(action->flags, action 359 pengine/utils.c ? "" : "(Provisional) " : "!!Non-Startable!! ", action->id, action 360 pengine/utils.c action->uuid, node_uname ? "\ton " : "", action 368 pengine/utils.c is_set(action->flags, action 369 pengine/utils.c pe_action_optional) ? "Optional " : is_set(action->flags, action 371 pengine/utils.c ? "Pseudo " : is_set(action->flags, action 372 pengine/utils.c pe_action_runnable) ? is_set(action->flags, action 374 pengine/utils.c ? "" : "(Provisional) " : "!!Non-Startable!! ", action->id, action 375 pengine/utils.c action->uuid, action->rsc ? action->rsc->id : "<none>", action 387 pengine/utils.c gIter = action->actions_before; action 391 pengine/utils.c log_action(log_level + 1, "\t\t", other->action, FALSE); action 396 pengine/utils.c gIter = action->actions_after; action 400 pengine/utils.c log_action(log_level + 1, "\t\t", other->action, FALSE); action 407 pengine/utils.c action->seen_count, action 408 pengine/utils.c g_list_length(action->actions_before), g_list_length(action->actions_after)); action 435 pengine/utils.c pe_action_t *action = custom_action(rsc, generate_op_key(rsc->id, task, 0), task, NULL, optional, TRUE, data_set); action 436 pengine/utils.c update_action_flags(action, pe_action_pseudo, __FUNCTION__, __LINE__); action 437 pengine/utils.c update_action_flags(action, pe_action_runnable, __FUNCTION__, __LINE__); action 439 pengine/utils.c update_action_flags(action, pe_action_runnable, __FUNCTION__, __LINE__); action 441 pengine/utils.c return action; action 50 pengine/utils.h action_t * action, gboolean details); action 59 pengine/utils.h enum pe_action_flags summary_action_flags(action_t * action, GListPtr children, node_t * node); action 60 pengine/utils.h enum action_tasks clone_child_action(action_t * action); action 3795 tools/crm_mon.c int action = -1; action 3834 tools/crm_mon.c if (FALSE == decode_transition_magic(magic, &update_te_uuid, &transition_num, &action, action 1346 tools/crm_resource_runtime.c #define action_is_pending(action) \ action 1347 tools/crm_resource_runtime.c ((is_set((action)->flags, pe_action_optional) == FALSE) \ action 1348 tools/crm_resource_runtime.c && (is_set((action)->flags, pe_action_runnable) == TRUE) \ action 1349 tools/crm_resource_runtime.c && (is_set((action)->flags, pe_action_pseudo) == FALSE)) action 1362 tools/crm_resource_runtime.c GListPtr action; action 1364 tools/crm_resource_runtime.c for (action = actions; action != NULL; action = action->next) { action 1365 tools/crm_resource_runtime.c if (action_is_pending((action_t *) action->data)) { action 1383 tools/crm_resource_runtime.c GListPtr action; action 1386 tools/crm_resource_runtime.c for (action = actions; action != NULL; action = action->next) { action 1387 tools/crm_resource_runtime.c action_t *a = (action_t *) action->data; action 1469 tools/crm_resource_runtime.c const char *action = NULL; action 1473 tools/crm_resource_runtime.c action = "validate-all"; action 1476 tools/crm_resource_runtime.c action = "monitor"; action 1479 tools/crm_resource_runtime.c action = rsc_action+6; action 1484 tools/crm_resource_runtime.c action = rsc_action+6; action 1490 tools/crm_resource_runtime.c action, rsc->id); action 1520 tools/crm_resource_runtime.c timeout_ms = pe_get_configured_timeout(rsc, action, data_set); action 1530 tools/crm_resource_runtime.c op = resources_action_create(rid, rclass, rprov, rtype, action, 0, action 1535 tools/crm_resource_runtime.c op = resources_action_create(rid, rclass, rprov, rtype, action, 0, action 1569 tools/crm_resource_runtime.c action, rsc->id, rclass, rprov ? rprov : "", rtype, action 1573 tools/crm_resource_runtime.c action, rsc->id, rclass, rprov ? rprov : "", rtype, action 1578 tools/crm_resource_runtime.c if (resource_verbose == 0 && safe_str_eq(action, "validate-all")) action 208 tools/crm_simulate.c create_action_name(action_t * action) action 213 tools/crm_simulate.c const char *task = action->task; action 215 tools/crm_simulate.c if (action->node) { action 216 tools/crm_simulate.c action_host = action->node->details->uname; action 217 tools/crm_simulate.c } else if (is_not_set(action->flags, pe_action_pseudo)) { action 221 tools/crm_simulate.c if (safe_str_eq(action->task, RSC_CANCEL)) { action 226 tools/crm_simulate.c if (action->rsc && action->rsc->clone_name) { action 228 tools/crm_simulate.c const char *name = action->rsc->clone_name; action 229 tools/crm_simulate.c const char *interval_s = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL); action 233 tools/crm_simulate.c if (safe_str_eq(action->task, RSC_NOTIFY) action 234 tools/crm_simulate.c || safe_str_eq(action->task, RSC_NOTIFIED)) { action 235 tools/crm_simulate.c const char *n_type = g_hash_table_lookup(action->meta, "notify_key_type"); action 236 tools/crm_simulate.c const char *n_task = g_hash_table_lookup(action->meta, "notify_key_operation"); action 253 tools/crm_simulate.c } else if (safe_str_eq(action->task, CRM_OP_FENCE)) { action 254 tools/crm_simulate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); action 256 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s '%s' %s", prefix ? prefix : "", action->task, op, action_host); action 258 tools/crm_simulate.c } else if (action->rsc && action_host) { action 259 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s %s", prefix ? prefix : "", action->uuid, action_host); action 262 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s %s", prefix ? prefix : "", action->task, action_host); action 265 tools/crm_simulate.c action_name = crm_strdup_printf("%s", action->uuid); action 269 tools/crm_simulate.c char *with_id = crm_strdup_printf("%s (%d)", action_name, action->id); action 290 tools/crm_simulate.c action_t *action = (action_t *) gIter->data; action 294 tools/crm_simulate.c char *action_name = create_action_name(action); action 296 tools/crm_simulate.c crm_trace("Action %d: %s %s %p", action->id, action_name, action->uuid, action); action 298 tools/crm_simulate.c if (is_set(action->flags, pe_action_pseudo)) { action 302 tools/crm_simulate.c if (is_set(action->flags, pe_action_dumped)) { action 306 tools/crm_simulate.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { action 313 tools/crm_simulate.c } else if (is_set(action->flags, pe_action_optional)) { action 321 tools/crm_simulate.c CRM_CHECK(is_set(action->flags, pe_action_runnable) == FALSE,; action 325 tools/crm_simulate.c set_bit(action->flags, pe_action_dumped); action 335 tools/crm_simulate.c action_t *action = (action_t *) gIter->data; action 339 tools/crm_simulate.c for (gIter2 = action->actions_before; gIter2 != NULL; gIter2 = gIter2->next) { action 350 tools/crm_simulate.c } else if (is_set(action->flags, pe_action_pseudo) action 357 tools/crm_simulate.c } else if (is_set(before->action->flags, pe_action_dumped) action 358 tools/crm_simulate.c && is_set(action->flags, pe_action_dumped) action 364 tools/crm_simulate.c before_name = create_action_name(before->action); action 365 tools/crm_simulate.c after_name = create_action_name(action); action 427 tools/crm_ticket.c ticket_warning(const char *ticket_id, const char *action) action 437 tools/crm_ticket.c if (safe_str_eq(action, "grant")) { action 460 tools/crm_ticket.c action, ticket_id, word); action 608 tools/fake_transition.c exec_pseudo_action(crm_graph_t * graph, crm_action_t * action) action 610 tools/fake_transition.c const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 611 tools/fake_transition.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 613 tools/fake_transition.c action->confirmed = TRUE; action 616 tools/fake_transition.c update_graph(graph, action); action 621 tools/fake_transition.c exec_rsc_action(crm_graph_t * graph, crm_action_t * action) action 633 tools/fake_transition.c const char *operation = crm_element_value(action->xml, "operation"); action 634 tools/fake_transition.c const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); action 638 tools/fake_transition.c xmlNode *action_rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 640 tools/fake_transition.c char *node = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); action 641 tools/fake_transition.c char *uuid = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET_UUID); action 642 tools/fake_transition.c const char *router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 651 tools/fake_transition.c crm_log_xml_err(action->xml, "Bad"); action 695 tools/fake_transition.c op = convert_graph_action(cib_resource, action, 0, target_outcome); action 721 tools/fake_transition.c action->failed = TRUE; action 723 tools/fake_transition.c printf("\tPretending action %d failed with rc=%d\n", action->id, op->rc); action 741 tools/fake_transition.c action->confirmed = TRUE; action 742 tools/fake_transition.c update_graph(graph, action); action 747 tools/fake_transition.c exec_crmd_action(crm_graph_t * graph, crm_action_t * action) action 749 tools/fake_transition.c const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 750 tools/fake_transition.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 751 tools/fake_transition.c xmlNode *rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 753 tools/fake_transition.c action->confirmed = TRUE; action 760 tools/fake_transition.c update_graph(graph, action); action 765 tools/fake_transition.c exec_stonith_action(crm_graph_t * graph, crm_action_t * action) action 767 tools/fake_transition.c const char *op = crm_meta_value(action->params, "stonith_action"); action 768 tools/fake_transition.c char *target = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); action 795 tools/fake_transition.c action->confirmed = TRUE; action 796 tools/fake_transition.c update_graph(graph, action);