action 51 daemons/controld/controld_based.c do_cib_control(long long action, action 58 daemons/controld/controld_based.c if (action & A_CIB_STOP) { action 80 daemons/controld/controld_based.c if (action & A_CIB_START) { action 164 daemons/controld/controld_based.c controld_action_is_recordable(const char *action) action 166 daemons/controld/controld_based.c return !pcmk__strcase_any_of(action, CRMD_ACTION_CANCEL, CRMD_ACTION_DELETE, action 42 daemons/controld/controld_control.c do_ha_control(long long action, action 54 daemons/controld/controld_control.c if (action & A_HA_DISCONNECT) { action 61 daemons/controld/controld_control.c if (action & A_HA_CONNECT) { action 92 daemons/controld/controld_control.c if (action & ~(A_HA_CONNECT | A_HA_DISCONNECT)) { action 93 daemons/controld/controld_control.c crm_err("Unexpected action %s in %s", fsa_action2string(action), action 100 daemons/controld/controld_control.c do_shutdown(long long action, action 111 daemons/controld/controld_control.c do_shutdown_req(long long action, action 313 daemons/controld/controld_control.c do_exit(long long action, action 321 daemons/controld/controld_control.c if (action & A_EXIT_1) { action 329 daemons/controld/controld_control.c fsa_action2string(action), exit_type); action 339 daemons/controld/controld_control.c do_startup(long long action, action 428 daemons/controld/controld_control.c do_stop(long long action, action 439 daemons/controld/controld_control.c do_started(long long action, action 502 daemons/controld/controld_control.c do_recover(long long action, action 803 daemons/controld/controld_control.c do_read_config(long long action, action 72 daemons/controld/controld_election.c do_election_vote(long long action, action 118 daemons/controld/controld_election.c do_election_check(long long action, action 132 daemons/controld/controld_election.c do_election_count_vote(long long action, action 185 daemons/controld/controld_election.c do_dc_takeover(long long action, action 237 daemons/controld/controld_election.c do_dc_release(long long action, action 242 daemons/controld/controld_election.c if (action & A_DC_RELEASE) { action 247 daemons/controld/controld_election.c } else if (action & A_DC_RELEASED) { action 270 daemons/controld/controld_election.c crm_err("Unknown DC action %s", fsa_action2string(action)); action 316 daemons/controld/controld_execd.c do_lrm_control(long long action, action 337 daemons/controld/controld_execd.c if (action & A_LRM_DISCONNECT) { action 339 daemons/controld/controld_execd.c if (action == A_LRM_DISCONNECT) { action 352 daemons/controld/controld_execd.c if (action & A_LRM_CONNECT) { action 383 daemons/controld/controld_execd.c if (action & ~(A_LRM_CONNECT | A_LRM_DISCONNECT)) { action 384 daemons/controld/controld_execd.c crm_err("Unexpected action %s in %s", fsa_action2string(action), action 1440 daemons/controld/controld_execd.c synthesize_lrmd_failure(lrm_state_t *lrm_state, xmlNode *action, action 1444 daemons/controld/controld_execd.c const char *operation = crm_element_value(action, XML_LRM_ATTR_TASK); action 1445 daemons/controld/controld_execd.c const char *target_node = crm_element_value(action, XML_LRM_ATTR_TARGET); action 1446 daemons/controld/controld_execd.c xmlNode *xml_rsc = find_xml_node(action, XML_CIB_TAG_RESOURCE, TRUE); action 1451 daemons/controld/controld_execd.c crm_element_value(action, XML_LRM_ATTR_TASK_KEY), rc, action 1462 daemons/controld/controld_execd.c op = construct_op(lrm_state, action, ID(xml_rsc), operation); action 1474 daemons/controld/controld_execd.c process_lrm_event(lrm_state, op, NULL, action); action 1734 daemons/controld/controld_execd.c do_lrm_invoke(long long action, action 2544 daemons/controld/controld_execd.c do_lrm_event(long long action, action 636 daemons/controld/controld_execd_state.c lrm_state_cancel(lrm_state_t *lrm_state, const char *rsc_id, const char *action, action 646 daemons/controld/controld_execd_state.c return remote_ra_cancel(lrm_state, rsc_id, action, interval_ms); action 649 daemons/controld/controld_execd_state.c action, interval_ms); action 680 daemons/controld/controld_execd_state.c lrm_state_exec(lrm_state_t *lrm_state, const char *rsc_id, const char *action, action 693 daemons/controld/controld_execd_state.c return remote_ra_exec(lrm_state, rsc_id, action, userdata, interval_ms, action 699 daemons/controld/controld_execd_state.c action, action 800 daemons/controld/controld_execd_state.c e->action, e->target, action 173 daemons/controld/controld_fencing.c send_stonith_update(crm_action_t *action, const char *target, const char *uuid) action 382 daemons/controld/controld_fencing.c crm_action_t *action = (crm_action_t *) lpc2->data; action 384 daemons/controld/controld_fencing.c if (action->type != action_type_crm || action->confirmed) { action 388 daemons/controld/controld_fencing.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 390 daemons/controld/controld_fencing.c action->failed = TRUE; action 391 daemons/controld/controld_fencing.c last_action = action->xml; action 392 daemons/controld/controld_fencing.c update_graph(graph, action); action 394 daemons/controld/controld_fencing.c action->id, ID(action->xml)); action 454 daemons/controld/controld_fencing.c if ((st_event->result == pcmk_ok) && pcmk__str_eq("on", st_event->action, pcmk__str_casei)) { action 462 daemons/controld/controld_fencing.c } else if (pcmk__str_eq("on", st_event->action, pcmk__str_casei)) { action 507 daemons/controld/controld_fencing.c st_event->action, action 716 daemons/controld/controld_fencing.c crm_action_t *action = NULL; action 743 daemons/controld/controld_fencing.c action = controld_get_action(stonith_id); action 744 daemons/controld/controld_fencing.c if (action == NULL) { action 749 daemons/controld/controld_fencing.c stop_te_timer(action->timer); action 751 daemons/controld/controld_fencing.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 752 daemons/controld/controld_fencing.c const char *uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 753 daemons/controld/controld_fencing.c const char *op = crm_meta_value(action->params, "stonith_action"); action 756 daemons/controld/controld_fencing.c if (action->confirmed == FALSE) { action 757 daemons/controld/controld_fencing.c te_action_confirmed(action, NULL); action 765 daemons/controld/controld_fencing.c value = crm_meta_value(action->params, XML_OP_ATTR_DIGESTS_ALL); action 768 daemons/controld/controld_fencing.c value = crm_meta_value(action->params, XML_OP_ATTR_DIGESTS_SECURE); action 771 daemons/controld/controld_fencing.c } else if (action->sent_update == FALSE) { action 772 daemons/controld/controld_fencing.c send_stonith_update(action, target, uuid); action 773 daemons/controld/controld_fencing.c action->sent_update = TRUE; action 779 daemons/controld/controld_fencing.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 782 daemons/controld/controld_fencing.c action->failed = TRUE; action 802 daemons/controld/controld_fencing.c update_graph(transition_graph, action); action 826 daemons/controld/controld_fencing.c te_fence_node(crm_graph_t *graph, crm_action_t *action) action 837 daemons/controld/controld_fencing.c id = ID(action->xml); action 838 daemons/controld/controld_fencing.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 839 daemons/controld/controld_fencing.c uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 840 daemons/controld/controld_fencing.c type = crm_meta_value(action->params, "stonith_action"); action 848 daemons/controld/controld_fencing.c crm_log_xml_warn(action->xml, "BadAction"); action 852 daemons/controld/controld_fencing.c priority_delay = crm_meta_value(action->params, XML_CONFIG_ATTR_PRIORITY_FENCING_DELAY); action 864 daemons/controld/controld_fencing.c transition_key = pcmk__transition_key(transition_graph->id, action->id, 0, action 26 daemons/controld/controld_fencing.h gboolean te_fence_node(crm_graph_t *graph, crm_action_t *action); action 103 daemons/controld/controld_fsa.c void (*function) (long long action, action 119 daemons/controld/controld_fsa.c do_log(long long action, enum crmd_fsa_cause cause, action 125 daemons/controld/controld_fsa.c if (action & A_LOG) { action 127 daemons/controld/controld_fsa.c } else if (action & A_WARN) { action 129 daemons/controld/controld_fsa.c } else if (action & A_ERROR) { action 526 daemons/controld/controld_fsa.h const char *fsa_action2string(long long action); action 540 daemons/controld/controld_fsa.h void do_read_config(long long action, enum crmd_fsa_cause cause, action 545 daemons/controld/controld_fsa.h void do_pe_invoke(long long action, enum crmd_fsa_cause cause, action 550 daemons/controld/controld_fsa.h void do_log(long long action, enum crmd_fsa_cause cause, action 555 daemons/controld/controld_fsa.h void do_startup(long long action, enum crmd_fsa_cause cause, action 560 daemons/controld/controld_fsa.h void do_cib_control(long long action, enum crmd_fsa_cause cause, action 565 daemons/controld/controld_fsa.h void do_ha_control(long long action, enum crmd_fsa_cause cause, action 570 daemons/controld/controld_fsa.h void do_lrm_control(long long action, enum crmd_fsa_cause cause, action 575 daemons/controld/controld_fsa.h void do_pe_control(long long action, enum crmd_fsa_cause cause, action 580 daemons/controld/controld_fsa.h void do_te_control(long long action, enum crmd_fsa_cause cause, action 585 daemons/controld/controld_fsa.h void do_started(long long action, enum crmd_fsa_cause cause, action 590 daemons/controld/controld_fsa.h void do_msg_route(long long action, enum crmd_fsa_cause cause, action 595 daemons/controld/controld_fsa.h void do_recover(long long action, enum crmd_fsa_cause cause, action 600 daemons/controld/controld_fsa.h void do_election_vote(long long action, enum crmd_fsa_cause cause, action 605 daemons/controld/controld_fsa.h void do_election_count_vote(long long action, enum crmd_fsa_cause cause, action 611 daemons/controld/controld_fsa.h void do_election_check(long long action, enum crmd_fsa_cause cause, action 616 daemons/controld/controld_fsa.h void do_timer_control(long long action, enum crmd_fsa_cause cause, action 621 daemons/controld/controld_fsa.h void do_dc_takeover(long long action, enum crmd_fsa_cause cause, action 626 daemons/controld/controld_fsa.h void do_dc_release(long long action, enum crmd_fsa_cause cause, action 631 daemons/controld/controld_fsa.h void do_dc_join_offer_all(long long action, enum crmd_fsa_cause cause, action 636 daemons/controld/controld_fsa.h void do_dc_join_offer_one(long long action, enum crmd_fsa_cause cause, action 641 daemons/controld/controld_fsa.h void do_dc_join_ack(long long action, enum crmd_fsa_cause cause, action 646 daemons/controld/controld_fsa.h void do_dc_join_filter_offer(long long action, enum crmd_fsa_cause cause, action 652 daemons/controld/controld_fsa.h void do_dc_join_finalize(long long action, enum crmd_fsa_cause cause, action 658 daemons/controld/controld_fsa.h void do_cl_join_query(long long action, enum crmd_fsa_cause cause, action 663 daemons/controld/controld_fsa.h void do_cl_join_announce(long long action, enum crmd_fsa_cause cause, action 668 daemons/controld/controld_fsa.h void do_cl_join_offer_respond(long long action, enum crmd_fsa_cause cause, action 674 daemons/controld/controld_fsa.h void do_cl_join_finalize_respond(long long action, enum crmd_fsa_cause cause, action 680 daemons/controld/controld_fsa.h void do_lrm_invoke(long long action, enum crmd_fsa_cause cause, action 685 daemons/controld/controld_fsa.h void do_lrm_event(long long action, enum crmd_fsa_cause cause, action 690 daemons/controld/controld_fsa.h void do_te_invoke(long long action, enum crmd_fsa_cause cause, action 695 daemons/controld/controld_fsa.h void do_shutdown_req(long long action, enum crmd_fsa_cause cause, action 700 daemons/controld/controld_fsa.h void do_shutdown(long long action, enum crmd_fsa_cause cause, action 705 daemons/controld/controld_fsa.h void do_stop(long long action, enum crmd_fsa_cause cause, action 710 daemons/controld/controld_fsa.h void do_exit(long long action, enum crmd_fsa_cause cause, action 715 daemons/controld/controld_fsa.h void do_dc_join_final(long long action, enum crmd_fsa_cause cause, action 47 daemons/controld/controld_join_client.c do_cl_join_query(long long action, action 68 daemons/controld/controld_join_client.c do_cl_join_announce(long long action, action 102 daemons/controld/controld_join_client.c do_cl_join_offer_respond(long long action, action 219 daemons/controld/controld_join_client.c do_cl_join_finalize_respond(long long action, action 178 daemons/controld/controld_join_dc.c do_dc_join_offer_all(long long action, action 208 daemons/controld/controld_join_dc.c do_dc_join_offer_one(long long action, action 288 daemons/controld/controld_join_dc.c do_dc_join_filter_offer(long long action, action 406 daemons/controld/controld_join_dc.c do_dc_join_finalize(long long action, action 529 daemons/controld/controld_join_dc.c do_dc_join_ack(long long action, action 739 daemons/controld/controld_join_dc.c do_dc_join_final(long long action, action 152 daemons/controld/controld_lrm.h const char *action, guint interval_ms); action 154 daemons/controld/controld_lrm.h const char *action, const char *userdata, guint interval_ms, action 172 daemons/controld/controld_lrm.h const char *action, guint interval_ms); action 174 daemons/controld/controld_lrm.h const char *action, const char *userdata, guint interval_ms, action 277 daemons/controld/controld_messages.c do_msg_route(long long action, action 50 daemons/controld/controld_messages.h ((fsa_data_t*)msg_data)->data, action, TRUE, __func__); \ action 54 daemons/controld/controld_messages.h NULL, action, TRUE, __func__); \ action 31 daemons/controld/controld_remote_ra.c char *action; action 114 daemons/controld/controld_remote_ra.c free(cmd->action); action 303 daemons/controld/controld_remote_ra.c if (pcmk__str_eq(cmd->action, "start", pcmk__str_casei)) { action 306 daemons/controld/controld_remote_ra.c } else if (pcmk__str_eq(cmd->action, "migrate_from", pcmk__str_casei)) { action 319 daemons/controld/controld_remote_ra.c } else if (pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 357 daemons/controld/controld_remote_ra.c op.op_type = cmd->action; action 419 daemons/controld/controld_remote_ra.c if (!pcmk__strcase_any_of(cmd->action, "start", "migrate_from", NULL)) { action 601 daemons/controld/controld_remote_ra.c if (op->type == lrmd_event_connect && pcmk__strcase_any_of(cmd->action, "start", action 631 daemons/controld/controld_remote_ra.c crm_debug("Remote connection event matched %s action", cmd->action); action 635 daemons/controld/controld_remote_ra.c } else if (op->type == lrmd_event_poke && pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 652 daemons/controld/controld_remote_ra.c crm_debug("Remote poke event matched %s action", cmd->action); action 663 daemons/controld/controld_remote_ra.c } else if (op->type == lrmd_event_disconnect && pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 673 daemons/controld/controld_remote_ra.c } else if (op->type == lrmd_event_new_client && pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 679 daemons/controld/controld_remote_ra.c crm_debug("Event did not match %s action", ra_data->cur_cmd->action); action 777 daemons/controld/controld_remote_ra.c if (!strcmp(cmd->action, "start") || !strcmp(cmd->action, "migrate_from")) { action 783 daemons/controld/controld_remote_ra.c cmd->action); action 788 daemons/controld/controld_remote_ra.c cmd->action); action 794 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, "monitor")) { action 817 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, "stop")) { action 833 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, "migrate_to")) { action 838 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, "reload")) { action 917 daemons/controld/controld_remote_ra.c is_remote_ra_supported_action(const char *action) action 919 daemons/controld/controld_remote_ra.c if (!action) { action 921 daemons/controld/controld_remote_ra.c } else if (strcmp(action, "start") && action 922 daemons/controld/controld_remote_ra.c strcmp(action, "stop") && action 923 daemons/controld/controld_remote_ra.c strcmp(action, "reload") && action 924 daemons/controld/controld_remote_ra.c strcmp(action, "migrate_to") && action 925 daemons/controld/controld_remote_ra.c strcmp(action, "migrate_from") && strcmp(action, "monitor")) { action 941 daemons/controld/controld_remote_ra.c if ((cmd->interval_ms > 0) && pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 952 daemons/controld/controld_remote_ra.c cmd->action, cmd->rsc_id, cmd->interval_ms, cmd->userdata); action 965 daemons/controld/controld_remote_ra.c remove_cmd(GList * list, const char *action, guint interval_ms) action 973 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, action, pcmk__str_casei)) { action 987 daemons/controld/controld_remote_ra.c const char *action, guint interval_ms) action 998 daemons/controld/controld_remote_ra.c ra_data->cmds = remove_cmd(ra_data->cmds, action, interval_ms); action 999 daemons/controld/controld_remote_ra.c ra_data->recurring_cmds = remove_cmd(ra_data->recurring_cmds, action, action 1003 daemons/controld/controld_remote_ra.c (pcmk__str_eq(ra_data->cur_cmd->action, action, pcmk__str_casei))) { action 1031 daemons/controld/controld_remote_ra.c pcmk__str_eq(ra_data->cur_cmd->action, "monitor", pcmk__str_casei)) { action 1040 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 1048 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 1086 daemons/controld/controld_remote_ra.c remote_ra_exec(lrm_state_t *lrm_state, const char *rsc_id, const char *action, action 1097 daemons/controld/controld_remote_ra.c if (is_remote_ra_supported_action(action) == FALSE) { action 1120 daemons/controld/controld_remote_ra.c cmd->action = strdup(action); action 196 daemons/controld/controld_schedulerd.c do_pe_control(long long action, action 201 daemons/controld/controld_schedulerd.c if (action & A_PE_STOP) { action 204 daemons/controld/controld_schedulerd.c if ((action & A_PE_START) action 303 daemons/controld/controld_schedulerd.c do_pe_invoke(long long action, action 310 daemons/controld/controld_schedulerd.c fsa_action2string(action)); action 25 daemons/controld/controld_te_actions.c void send_rsc_command(crm_action_t * action); action 26 daemons/controld/controld_te_actions.c static void te_update_job_count(crm_action_t * action, int offset); action 29 daemons/controld/controld_te_actions.c te_start_action_timer(crm_graph_t * graph, crm_action_t * action) action 31 daemons/controld/controld_te_actions.c action->timer = calloc(1, sizeof(crm_action_timer_t)); action 32 daemons/controld/controld_te_actions.c action->timer->timeout = action->timeout; action 33 daemons/controld/controld_te_actions.c action->timer->action = action; action 34 daemons/controld/controld_te_actions.c action->timer->source_id = g_timeout_add(action->timer->timeout + graph->network_delay, action 35 daemons/controld/controld_te_actions.c action_timer_callback, (void *)action->timer); action 37 daemons/controld/controld_te_actions.c CRM_ASSERT(action->timer->source_id != 0); action 77 daemons/controld/controld_te_actions.c get_target_rc(crm_action_t * action) action 79 daemons/controld/controld_te_actions.c const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); action 88 daemons/controld/controld_te_actions.c te_crm_command(crm_graph_t * graph, crm_action_t * action) action 103 daemons/controld/controld_te_actions.c id = ID(action->xml); action 104 daemons/controld/controld_te_actions.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 105 daemons/controld/controld_te_actions.c on_node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 106 daemons/controld/controld_te_actions.c router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 111 daemons/controld/controld_te_actions.c const char *mode = crm_element_value(action->xml, PCMK__XA_MODE); action 127 daemons/controld/controld_te_actions.c value = crm_meta_value(action->params, XML_ATTR_TE_NOWAIT); action 141 daemons/controld/controld_te_actions.c te_action_confirmed(action, graph); action 149 daemons/controld/controld_te_actions.c cmd = create_request(task, action->xml, router_node, CRM_SYSTEM_CRMD, CRM_SYSTEM_TENGINE, NULL); action 151 daemons/controld/controld_te_actions.c counter = pcmk__transition_key(transition_graph->id, action->id, action 152 daemons/controld/controld_te_actions.c get_target_rc(action), te_uuid); action 160 daemons/controld/controld_te_actions.c crm_err("Action %d failed: send", action->id); action 164 daemons/controld/controld_te_actions.c te_action_confirmed(action, graph); action 167 daemons/controld/controld_te_actions.c if (action->timeout <= 0) { action 169 daemons/controld/controld_te_actions.c action->id, task, on_node, action->timeout, graph->network_delay); action 170 daemons/controld/controld_te_actions.c action->timeout = (int) graph->network_delay; action 172 daemons/controld/controld_te_actions.c te_start_action_timer(graph, action); action 179 daemons/controld/controld_te_actions.c controld_record_action_timeout(crm_action_t *action) action 190 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 191 daemons/controld/controld_te_actions.c const char *task_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 192 daemons/controld/controld_te_actions.c const char *target_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 195 daemons/controld/controld_te_actions.c int target_rc = get_target_rc(action); action 198 daemons/controld/controld_te_actions.c crm_element_name(action->xml), action->id, task_uuid, target); action 200 daemons/controld/controld_te_actions.c action_rsc = find_xml_node(action->xml, XML_CIB_TAG_RESOURCE, TRUE); action 207 daemons/controld/controld_te_actions.c crm_log_xml_err(action->xml, "Bad:action"); return); action 244 daemons/controld/controld_te_actions.c op = convert_graph_action(NULL, action, PCMK_LRM_OP_TIMEOUT, action 247 daemons/controld/controld_te_actions.c op->user_data = pcmk__transition_key(transition_graph->id, action->id, action 261 daemons/controld/controld_te_actions.c rc, action->id, task_uuid, target); action 262 daemons/controld/controld_te_actions.c action->sent_update = TRUE; action 266 daemons/controld/controld_te_actions.c te_rsc_command(crm_graph_t * graph, crm_action_t * action) action 288 daemons/controld/controld_te_actions.c CRM_ASSERT(action != NULL); action 289 daemons/controld/controld_te_actions.c CRM_ASSERT(action->xml != NULL); action 291 daemons/controld/controld_te_actions.c action->executed = FALSE; action 292 daemons/controld/controld_te_actions.c on_node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 295 daemons/controld/controld_te_actions.c crm_err("Corrupted command(id=%s) %s: no node", ID(action->xml), crm_str(task)); action 298 daemons/controld/controld_te_actions.c rsc_op = action->xml; action 300 daemons/controld/controld_te_actions.c task_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 307 daemons/controld/controld_te_actions.c counter = pcmk__transition_key(transition_graph->id, action->id, action 308 daemons/controld/controld_te_actions.c get_target_rc(action), te_uuid); action 315 daemons/controld/controld_te_actions.c value = crm_meta_value(action->params, XML_ATTR_TE_NOWAIT); action 322 daemons/controld/controld_te_actions.c (no_wait? " without waiting" : ""), action->id); action 353 daemons/controld/controld_te_actions.c action->executed = TRUE; action 356 daemons/controld/controld_te_actions.c crm_err("Action %d failed: send", action->id); action 360 daemons/controld/controld_te_actions.c crm_info("Action %d confirmed - no wait", action->id); action 361 daemons/controld/controld_te_actions.c action->confirmed = TRUE; /* Just mark confirmed. action 364 daemons/controld/controld_te_actions.c update_graph(transition_graph, action); action 367 daemons/controld/controld_te_actions.c } else if (action->confirmed == TRUE) { action 369 daemons/controld/controld_te_actions.c action->id, task, task_uuid, on_node, action->timeout); action 371 daemons/controld/controld_te_actions.c if (action->timeout <= 0) { action 373 daemons/controld/controld_te_actions.c action->id, task, task_uuid, on_node, action->timeout, graph->network_delay); action 374 daemons/controld/controld_te_actions.c action->timeout = (int) graph->network_delay; action 376 daemons/controld/controld_te_actions.c te_update_job_count(action, 1); action 377 daemons/controld/controld_te_actions.c te_start_action_timer(graph, action); action 438 daemons/controld/controld_te_actions.c te_update_job_count(crm_action_t * action, int offset) action 440 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 441 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 443 daemons/controld/controld_te_actions.c if (action->type != action_type_rsc || target == NULL) { action 452 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 457 daemons/controld/controld_te_actions.c const char *t1 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); action 458 daemons/controld/controld_te_actions.c const char *t2 = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); action 464 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 471 daemons/controld/controld_te_actions.c te_should_perform_action_on(crm_graph_t * graph, crm_action_t * action, const char *target) action 475 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 476 daemons/controld/controld_te_actions.c const char *id = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 514 daemons/controld/controld_te_actions.c te_should_perform_action(crm_graph_t * graph, crm_action_t * action) action 517 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 519 daemons/controld/controld_te_actions.c if (action->type != action_type_rsc) { action 528 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 532 daemons/controld/controld_te_actions.c target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_SOURCE); action 533 daemons/controld/controld_te_actions.c if(te_should_perform_action_on(graph, action, target) == FALSE) { action 537 daemons/controld/controld_te_actions.c target = crm_meta_value(action->params, XML_LRM_ATTR_MIGRATE_TARGET); action 540 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 543 daemons/controld/controld_te_actions.c return te_should_perform_action_on(graph, action, target); action 553 daemons/controld/controld_te_actions.c te_action_confirmed(crm_action_t *action, crm_graph_t *graph) action 555 daemons/controld/controld_te_actions.c if (action->confirmed == FALSE) { action 556 daemons/controld/controld_te_actions.c if ((action->type == action_type_rsc) action 557 daemons/controld/controld_te_actions.c && (crm_element_value(action->xml, XML_LRM_ATTR_TARGET) != NULL)) { action 558 daemons/controld/controld_te_actions.c te_update_job_count(action, -1); action 560 daemons/controld/controld_te_actions.c action->confirmed = TRUE; action 563 daemons/controld/controld_te_actions.c update_graph(graph, action); action 685 daemons/controld/controld_te_callbacks.c CRM_CHECK(timer->action != NULL, return FALSE); action 687 daemons/controld/controld_te_callbacks.c task = crm_element_value(timer->action->xml, XML_LRM_ATTR_TASK); action 688 daemons/controld/controld_te_callbacks.c on_node = crm_element_value(timer->action->xml, XML_LRM_ATTR_TARGET); action 689 daemons/controld/controld_te_callbacks.c via_node = crm_element_value(timer->action->xml, XML_LRM_ATTR_ROUTER_NODE); action 704 daemons/controld/controld_te_callbacks.c print_action(LOG_ERR, "Aborting transition, action lost: ", timer->action); action 706 daemons/controld/controld_te_callbacks.c timer->action->failed = TRUE; action 707 daemons/controld/controld_te_callbacks.c te_action_confirmed(timer->action, transition_graph); action 711 daemons/controld/controld_te_callbacks.c if ((timer->action->type == action_type_rsc) action 713 daemons/controld/controld_te_callbacks.c controld_record_action_timeout(timer->action); action 49 daemons/controld/controld_te_events.c crm_action_t *action = (crm_action_t *) gIter2->data; action 51 daemons/controld/controld_te_events.c if (action->type == action_type_pseudo || action->confirmed) { action 53 daemons/controld/controld_te_events.c } else if (action->type == action_type_crm) { action 54 daemons/controld/controld_te_events.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 61 daemons/controld/controld_te_events.c target_uuid = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 62 daemons/controld/controld_te_events.c router = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 71 daemons/controld/controld_te_events.c action->failed = TRUE; action 73 daemons/controld/controld_te_events.c last_action = action->xml; action 74 daemons/controld/controld_te_events.c stop_te_timer(action->timer); action 75 daemons/controld/controld_te_events.c update_graph(graph, action); action 79 daemons/controld/controld_te_events.c action->id, crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY), down_node); action 82 daemons/controld/controld_te_events.c action->id, crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY), down_node); action 206 daemons/controld/controld_te_events.c crm_action_t *action = (crm_action_t *) item2->data; action 208 daemons/controld/controld_te_events.c if (action->id == id) { action 209 daemons/controld/controld_te_events.c return action; action 230 daemons/controld/controld_te_events.c crm_action_t *action = (crm_action_t *) gIter2->data; action 232 daemons/controld/controld_te_events.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 237 daemons/controld/controld_te_events.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 243 daemons/controld/controld_te_events.c target = crm_element_value(action->xml, XML_LRM_ATTR_TARGET_UUID); action 250 daemons/controld/controld_te_events.c return action; action 420 daemons/controld/controld_te_events.c crm_action_t *action = controld_get_action(action_num); action 422 daemons/controld/controld_te_events.c if (action == NULL) { action 427 daemons/controld/controld_te_events.c } else if (action->confirmed == TRUE) { action 442 daemons/controld/controld_te_events.c if (pcmk__str_eq(crm_meta_value(action->params, XML_OP_ATTR_ON_FAIL), "ignore", pcmk__str_casei)) { action 446 daemons/controld/controld_te_events.c action->failed = TRUE; action 449 daemons/controld/controld_te_events.c stop_te_timer(action->timer); action 450 daemons/controld/controld_te_events.c te_action_confirmed(action, transition_graph); action 452 daemons/controld/controld_te_events.c if (action->failed) { action 453 daemons/controld/controld_te_events.c abort_transition(action->synapse->priority + 1, tg_restart, action 102 daemons/controld/controld_te_utils.c enum transition_action action; action 110 daemons/controld/controld_te_utils.c abort_transition(abort_timer.priority, abort_timer.action, action 133 daemons/controld/controld_te_utils.c abort_timer.action = abort_action; action 51 daemons/controld/controld_timers.c do_timer_control(long long action, action 58 daemons/controld/controld_timers.c if (action & A_DC_TIMER_STOP) { action 61 daemons/controld/controld_timers.c } else if (action & A_FINALIZE_TIMER_STOP) { action 64 daemons/controld/controld_timers.c } else if (action & A_INTEGRATE_TIMER_STOP) { action 69 daemons/controld/controld_timers.c if (action & A_DC_TIMER_START && timer_op_ok) { action 76 daemons/controld/controld_timers.c } else if (action & A_FINALIZE_TIMER_START) { action 79 daemons/controld/controld_timers.c } else if (action & A_INTEGRATE_TIMER_START) { action 38 daemons/controld/controld_transition.c do_te_control(long long action, action 45 daemons/controld/controld_transition.c if (action & A_TE_STOP) { action 60 daemons/controld/controld_transition.c if ((action & A_TE_START) == 0) { action 67 daemons/controld/controld_transition.c } else if ((action & A_TE_START) && cur_state == S_STOPPING) { action 114 daemons/controld/controld_transition.c do_te_invoke(long long action, action 120 daemons/controld/controld_transition.c if (AM_I_DC == FALSE || (fsa_state != S_TRANSITION_ENGINE && (action & A_TE_INVOKE))) { action 122 daemons/controld/controld_transition.c fsa_action2string(action), fsa_state2string(fsa_state)); action 126 daemons/controld/controld_transition.c if (action & A_TE_CANCEL) { action 134 daemons/controld/controld_transition.c } else if (action & A_TE_HALT) { action 141 daemons/controld/controld_transition.c } else if (action & A_TE_INVOKE) { action 21 daemons/controld/controld_transition.h void controld_record_action_timeout(crm_action_t *action); action 54 daemons/controld/controld_transition.h # define abort_transition(pri, action, text, reason) \ action 55 daemons/controld/controld_transition.h abort_transition_graph(pri, action, text, reason,__func__,__LINE__); action 62 daemons/controld/controld_transition.h void te_action_confirmed(crm_action_t *action, crm_graph_t *graph); action 245 daemons/controld/controld_utils.c fsa_action2string(long long action) action 249 daemons/controld/controld_utils.c switch (action) { action 441 daemons/controld/controld_utils.c crm_err("Action %.16llx is unknown", action); action 533 daemons/controld/controld_utils.c fsa_dump_actions(uint64_t action, const char *text) action 535 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_READCONFIG)) { action 538 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STARTUP)) { action 541 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STARTED)) { action 544 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_HA_CONNECT)) { action 547 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_HA_DISCONNECT)) { action 550 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_CONNECT)) { action 553 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_EVENT)) { action 556 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_INVOKE)) { action 559 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_DISCONNECT)) { action 562 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TIMER_STOP)) { action 565 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TIMER_START)) { action 568 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_INTEGRATE_TIMER_START)) { action 571 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_INTEGRATE_TIMER_STOP)) { action 574 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_FINALIZE_TIMER_START)) { action 577 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_FINALIZE_TIMER_STOP)) { action 580 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_COUNT)) { action 583 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_VOTE)) { action 586 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_CHECK)) { action 589 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_ANNOUNCE)) { action 592 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_REQUEST)) { action 595 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_RESULT)) { action 598 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_OFFER_ALL)) { action 601 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_OFFER_ONE)) { action 604 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_PROCESS_REQ)) { action 607 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_PROCESS_ACK)) { action 610 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_FINALIZE)) { action 613 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_MSG_PROCESS)) { action 616 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_MSG_ROUTE)) { action 619 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_RECOVER)) { action 622 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_RELEASE)) { action 625 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_RELEASED)) { action 628 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TAKEOVER)) { action 631 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_SHUTDOWN)) { action 634 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_SHUTDOWN_REQ)) { action 637 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STOP)) { action 640 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_EXIT_0)) { action 643 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_EXIT_1)) { action 646 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CIB_START)) { action 649 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CIB_STOP)) { action 652 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_INVOKE)) { action 655 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_START)) { action 658 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_STOP)) { action 661 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_CANCEL)) { action 664 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_INVOKE)) { action 667 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_START)) { action 670 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_STOP)) { action 673 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_NODE_BLOCK)) { action 676 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_UPDATE_NODESTATUS)) { action 679 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LOG)) { action 682 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ERROR)) { action 685 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_WARN)) { action 76 daemons/controld/controld_utils.h void fsa_dump_actions(uint64_t action, const char *text); action 99 daemons/controld/controld_utils.h bool controld_action_is_recordable(const char *action); action 145 daemons/execd/cts-exec-helper.c const char *action; action 284 daemons/execd/cts-exec-helper.c options.action, action 317 daemons/execd/cts-exec-helper.c rc = lrmd_conn->cmds->cancel(lrmd_conn, options.rsc_id, options.action, action 392 daemons/execd/cts-exec-helper.c op_info->rsc_id, op_info->action, action 399 daemons/execd/cts-exec-helper.c print_result(printf("API-CALL FAILURE unknown action '%s'\n", options.action)); action 573 daemons/execd/cts-exec-helper.c options.action = optarg; action 661 daemons/execd/cts-exec-helper.c options.action = "monitor"; action 69 daemons/execd/execd_alerts.c alert_complete(svc_action_t *action) action 71 daemons/execd/execd_alerts.c struct alert_cb_s *cb_data = (struct alert_cb_s *) (action->cb_data); action 75 daemons/execd/execd_alerts.c action->pid, cb_data->client_id, action->rc); action 78 daemons/execd/execd_alerts.c free(action->cb_data); action 79 daemons/execd/execd_alerts.c action->cb_data = NULL; action 90 daemons/execd/execd_alerts.c svc_action_t *action = NULL; action 123 daemons/execd/execd_alerts.c action = services_alert_create(alert_id, alert_path, alert_timeout, params, action 125 daemons/execd/execd_alerts.c rc = services_action_user(action, CRM_DAEMON_USER); action 131 daemons/execd/execd_alerts.c if (services_alert_async(action, alert_complete) == FALSE) { action 132 daemons/execd/execd_alerts.c services_action_free(action); action 143 daemons/execd/execd_alerts.c if (action) { action 144 daemons/execd/execd_alerts.c services_action_free(action); action 58 daemons/execd/execd_commands.c char *action; action 206 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 212 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->call_id, action 217 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->call_id, action 227 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 232 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->call_id); action 236 daemons/execd/execd_commands.c normalize_action_name(lrmd_rsc_t * rsc, const char *action) action 238 daemons/execd/execd_commands.c if (pcmk__str_eq(action, "monitor", pcmk__str_casei) && action 242 daemons/execd/execd_commands.c return action; action 284 daemons/execd/execd_commands.c cmd->action = crm_element_value_copy(rsc_xml, F_LRMD_RSC_ACTION); action 293 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->interval_ms); action 296 daemons/execd/execd_commands.c cmd->action, 0, action 325 daemons/execd/execd_commands.c free(cmd->action); action 401 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, dup->action, pcmk__str_casei) action 412 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, dup->action, pcmk__str_casei) action 427 daemons/execd/execd_commands.c rsc->rsc_id, normalize_action_name(rsc, dup->action), action 447 daemons/execd/execd_commands.c normalize_action_name(rsc, dup->action), action 462 daemons/execd/execd_commands.c crm_trace("Scheduling %s on %s", cmd->action, rsc->rsc_id); action 473 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 600 daemons/execd/execd_commands.c crm_xml_add(notify, F_LRMD_RSC_ACTION, cmd->action); action 675 daemons/execd/execd_commands.c crm_trace("Resource operation rsc:%s action:%s completed (%p %p)", cmd->rsc_id, cmd->action, action 725 daemons/execd/execd_commands.c stonith2uniform_rc(const char *action, int rc) action 736 daemons/execd/execd_commands.c if (pcmk__str_eq(action, "monitor", pcmk__str_casei)) { action 738 daemons/execd/execd_commands.c } else if (pcmk__str_eq(action, "stop", pcmk__str_casei)) { action 763 daemons/execd/execd_commands.c nagios2uniform_rc(const char *action, int rc) action 789 daemons/execd/execd_commands.c get_uniform_rc(const char *standard, const char *action, int rc) action 794 daemons/execd/execd_commands.c return stonith2uniform_rc(action, rc); action 801 daemons/execd/execd_commands.c return nagios2uniform_rc(action, rc); action 804 daemons/execd/execd_commands.c return services_get_ocf_exitcode(action, rc); action 809 daemons/execd/execd_commands.c action_get_uniform_rc(svc_action_t * action) action 811 daemons/execd/execd_commands.c lrmd_cmd_t *cmd = action->cb_data; action 812 daemons/execd/execd_commands.c return get_uniform_rc(action->standard, cmd->action, action->rc); action 897 daemons/execd/execd_commands.c action_complete(svc_action_t * action) action 900 daemons/execd/execd_commands.c lrmd_cmd_t *cmd = action->cb_data; action 909 daemons/execd/execd_commands.c action->id); action 914 daemons/execd/execd_commands.c if (cmd->exec_rc != action->rc) { action 919 daemons/execd/execd_commands.c cmd->last_pid = action->pid; action 920 daemons/execd/execd_commands.c cmd->exec_rc = action_get_uniform_rc(action); action 921 daemons/execd/execd_commands.c cmd->lrmd_op_status = action->status; action 933 daemons/execd/execd_commands.c && pcmk__strcase_any_of(cmd->action, "start", "stop", NULL)) { action 940 daemons/execd/execd_commands.c cmd->real_action = cmd->action; action 941 daemons/execd/execd_commands.c cmd->action = strdup("monitor"); action 981 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei) && action 986 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, "start", pcmk__str_casei) && cmd->exec_rc != PCMK_OCF_OK) { action 1015 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, time_sum, timeout_left, delay); action 1019 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, services_ocf_exitcode_str(cmd->exec_rc), cmd->exec_rc, time_sum, timeout_left, delay); action 1033 daemons/execd/execd_commands.c cmd->rsc_id, cmd->real_action?cmd->real_action:cmd->action, cmd->exec_rc, time_sum, timeout_left); action 1041 daemons/execd/execd_commands.c if (action->stderr_data) { action 1042 daemons/execd/execd_commands.c cmd->output = strdup(action->stderr_data); action 1043 daemons/execd/execd_commands.c cmd->exit_reason = parse_exit_reason(action->stderr_data); action 1045 daemons/execd/execd_commands.c } else if (action->stdout_data) { action 1046 daemons/execd/execd_commands.c cmd->output = strdup(action->stdout_data); action 1067 daemons/execd/execd_commands.c stonith_rc2status(const char *action, guint interval_ms, int rc) action 1108 daemons/execd/execd_commands.c cmd->exec_rc = stonith2uniform_rc(cmd->action, rc); action 1115 daemons/execd/execd_commands.c cmd->lrmd_op_status = stonith_rc2status(cmd->action, cmd->interval_ms, action 1120 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, "start", pcmk__str_casei)) { action 1122 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 1306 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, "start", pcmk__str_casei)) { action 1312 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 1315 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, "monitor", pcmk__str_casei)) { action 1337 daemons/execd/execd_commands.c svc_action_t *action = NULL; action 1344 daemons/execd/execd_commands.c rsc->rsc_id, cmd->action, rsc->class, rsc->provider, rsc->type); action 1349 daemons/execd/execd_commands.c && pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 1358 daemons/execd/execd_commands.c action = resources_action_create(rsc->rsc_id, rsc->class, rsc->provider, action 1360 daemons/execd/execd_commands.c normalize_action_name(rsc, cmd->action), action 1364 daemons/execd/execd_commands.c if (!action) { action 1365 daemons/execd/execd_commands.c crm_err("Failed to create action, action:%s on resource %s", cmd->action, rsc->rsc_id); action 1370 daemons/execd/execd_commands.c action->cb_data = cmd; action 1378 daemons/execd/execd_commands.c if (services_action_async(action, action_complete)) { action 1382 daemons/execd/execd_commands.c cmd->exec_rc = action->rc; action 1383 daemons/execd/execd_commands.c if(action->status != PCMK_LRM_OP_DONE) { action 1384 daemons/execd/execd_commands.c cmd->lrmd_op_status = action->status; action 1388 daemons/execd/execd_commands.c services_action_free(action); action 1389 daemons/execd/execd_commands.c action = NULL; action 1415 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->start_delay); action 1496 daemons/execd/execd_commands.c normalize_action_name(rsc, cmd->action), action 1660 daemons/execd/execd_commands.c cancel_op(const char *rsc_id, const char *action, guint interval_ms) action 1683 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, action, pcmk__str_casei) action 1698 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, action, pcmk__str_casei) action 1709 daemons/execd/execd_commands.c normalize_action_name(rsc, action), action 1754 daemons/execd/execd_commands.c cancel_op(rsc->rsc_id, cmd->action, cmd->interval_ms); action 1765 daemons/execd/execd_commands.c const char *action = crm_element_value(rsc_xml, F_LRMD_RSC_ACTION); action 1770 daemons/execd/execd_commands.c if (!rsc_id || !action) { action 1774 daemons/execd/execd_commands.c return cancel_op(rsc_id, action, interval_ms); action 1788 daemons/execd/execd_commands.c (cmd->real_action? cmd->real_action : cmd->action)); action 46 daemons/fenced/fenced_commands.c char *action; action 92 daemons/fenced/fenced_commands.c char *action; action 115 daemons/fenced/fenced_commands.c is_action_required(const char *action, stonith_device_t *device) action 117 daemons/fenced/fenced_commands.c return device && device->automatic_unfencing && pcmk__str_eq(action, "on", action 122 daemons/fenced/fenced_commands.c get_action_delay_max(stonith_device_t * device, const char * action) action 127 daemons/fenced/fenced_commands.c if (!pcmk__strcase_any_of(action, "off", "reboot", NULL)) { action 140 daemons/fenced/fenced_commands.c get_action_delay_base(stonith_device_t * device, const char * action) action 145 daemons/fenced/fenced_commands.c if (!pcmk__strcase_any_of(action, "off", "reboot", NULL)) { action 178 daemons/fenced/fenced_commands.c get_action_timeout(stonith_device_t * device, const char *action, int default_timeout) action 180 daemons/fenced/fenced_commands.c if (action && device && device->params) { action 187 daemons/fenced/fenced_commands.c if (pcmk__str_eq(action, "reboot", pcmk__str_casei) action 191 daemons/fenced/fenced_commands.c action = "off"; action 195 daemons/fenced/fenced_commands.c snprintf(buffer, sizeof(buffer), "pcmk_%s_timeout", action); action 219 daemons/fenced/fenced_commands.c free(cmd->action); action 235 daemons/fenced/fenced_commands.c const char *action = crm_element_value(op, F_STONITH_ACTION); action 237 daemons/fenced/fenced_commands.c CRM_CHECK(action != NULL, crm_log_xml_warn(msg, "NoAction"); return NULL); action 253 daemons/fenced/fenced_commands.c cmd->action = strdup(action); action 318 daemons/fenced/fenced_commands.c cmd->action, cmd->victim ? " targeting " : "", cmd->victim ? cmd->victim : "", action 331 daemons/fenced/fenced_commands.c stonith_action_t *action = NULL; action 355 daemons/fenced/fenced_commands.c pending_op->action, pending_op->victim ? " targeting " : "", action 374 daemons/fenced/fenced_commands.c if(pcmk__str_eq(cmd->action, "reboot", pcmk__str_casei)) { action 378 daemons/fenced/fenced_commands.c } else if(pcmk__str_eq(cmd->action, "off", pcmk__str_casei)) { action 383 daemons/fenced/fenced_commands.c crm_info("Faking success for %s watchdog operation", cmd->action); action 392 daemons/fenced/fenced_commands.c if (pcmk__str_eq(cmd->action, "stop", pcmk__str_casei)) { action 406 daemons/fenced/fenced_commands.c action_str = cmd->action; action 407 daemons/fenced/fenced_commands.c if (pcmk__str_eq(cmd->action, "reboot", pcmk__str_casei) action 421 daemons/fenced/fenced_commands.c action = stonith_action_create(device->agent, action 431 daemons/fenced/fenced_commands.c exec_rc = stonith_action_execute_async(action, (void *)cmd, action 436 daemons/fenced/fenced_commands.c cmd->action, cmd->victim ? " targeting " : "", cmd->victim ? cmd->victim : "", action 495 daemons/fenced/fenced_commands.c cmd->timeout = get_action_timeout(device, cmd->action, cmd->default_timeout); action 499 daemons/fenced/fenced_commands.c cmd->action, action 504 daemons/fenced/fenced_commands.c cmd->action, action 517 daemons/fenced/fenced_commands.c delay_max = get_action_delay_max(device, cmd->action); action 518 daemons/fenced/fenced_commands.c delay_base = get_action_delay_base(device, cmd->action); action 525 daemons/fenced/fenced_commands.c delay_base, delay_max, cmd->action, device->id); action 538 daemons/fenced/fenced_commands.c cmd->action, action 559 daemons/fenced/fenced_commands.c crm_warn("Removal of device '%s' purged operation '%s'", device->id, cmd->action); action 737 daemons/fenced/fenced_commands.c add_action(char *actions, const char *action) action 750 daemons/fenced/fenced_commands.c offset += snprintf(actions+offset, MAX_ACTION_LEN - offset, "%s", action); action 776 daemons/fenced/fenced_commands.c const char *action = NULL; action 783 daemons/fenced/fenced_commands.c action = crm_element_value(match, "name"); action 785 daemons/fenced/fenced_commands.c if(pcmk__str_eq(action, "list", pcmk__str_casei)) { action 788 daemons/fenced/fenced_commands.c } else if(pcmk__str_eq(action, "status", pcmk__str_casei)) { action 791 daemons/fenced/fenced_commands.c } else if(pcmk__str_eq(action, "reboot", pcmk__str_casei)) { action 794 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, "on", pcmk__str_casei)) { action 806 daemons/fenced/fenced_commands.c if (action && crm_is_true(on_target)) { action 807 daemons/fenced/fenced_commands.c device->on_target_actions = add_action(device->on_target_actions, action); action 823 daemons/fenced/fenced_commands.c map_action(GHashTable *params, const char *action, const char *value) action 825 daemons/fenced/fenced_commands.c char *key = crm_strdup_printf("pcmk_%s_action", action); action 968 daemons/fenced/fenced_commands.c const char *action, action 982 daemons/fenced/fenced_commands.c cmd->action = strdup(action); action 1523 daemons/fenced/fenced_commands.c const char *action = crm_element_value(op, F_STONITH_ACTION); action 1527 daemons/fenced/fenced_commands.c if ((id == NULL) || (action == NULL)) { action 1530 daemons/fenced/fenced_commands.c (action? action : "not specified")); action 1536 daemons/fenced/fenced_commands.c || (!device->api_registered && !strcmp(action, "monitor"))) { action 1540 daemons/fenced/fenced_commands.c action, id); action 1566 daemons/fenced/fenced_commands.c search->action ? search->action : "<unknown>", action 1571 daemons/fenced/fenced_commands.c free(search->action); action 1588 daemons/fenced/fenced_commands.c localhost_is_eligible(const stonith_device_t *device, const char *action, action 1594 daemons/fenced/fenced_commands.c if (device && action && device->on_target_actions action 1595 daemons/fenced/fenced_commands.c && strstr(device->on_target_actions, action)) { action 1598 daemons/fenced/fenced_commands.c action, device->id, target); action 1603 daemons/fenced/fenced_commands.c crm_trace("'%s' operation does not support self-fencing", action); action 1627 daemons/fenced/fenced_commands.c if (pcmk__str_eq(search->action, "reboot", pcmk__str_casei)) { action 1638 daemons/fenced/fenced_commands.c } else if (!localhost_is_eligible(dev, search->action, host, action 1671 daemons/fenced/fenced_commands.c check_type, dev->id, search->host, search->action); action 1686 daemons/fenced/fenced_commands.c check_type, dev->id, search->host, search->action); action 1698 daemons/fenced/fenced_commands.c dev->id, (can? "" : " not"), search->action, host, action 1702 daemons/fenced/fenced_commands.c dev->id, (can? "" : " not"), search->action, host, alias, action 1721 daemons/fenced/fenced_commands.c get_capable_devices(const char *host, const char *action, int timeout, bool suicide, void *user_data, action 1769 daemons/fenced/fenced_commands.c search->action = action ? strdup(action) : NULL; action 1782 daemons/fenced/fenced_commands.c search->action ? search->action : "<unknown>", action 1792 daemons/fenced/fenced_commands.c char *action; action 1805 daemons/fenced/fenced_commands.c add_action_specific_attributes(xmlNode *xml, const char *action, action 1812 daemons/fenced/fenced_commands.c CRM_CHECK(xml && action && device, return); action 1814 daemons/fenced/fenced_commands.c if (is_action_required(action, device)) { action 1815 daemons/fenced/fenced_commands.c crm_trace("Action '%s' is required on %s", action, device->id); action 1819 daemons/fenced/fenced_commands.c action_specific_timeout = get_action_timeout(device, action, 0); action 1822 daemons/fenced/fenced_commands.c action, action_specific_timeout, device->id); action 1826 daemons/fenced/fenced_commands.c delay_max = get_action_delay_max(device, action); action 1829 daemons/fenced/fenced_commands.c action, delay_max, device->id); action 1833 daemons/fenced/fenced_commands.c delay_base = get_action_delay_base(device, action); action 1840 daemons/fenced/fenced_commands.c action, delay_max, device->id); action 1843 daemons/fenced/fenced_commands.c action, delay_base, device->id); action 1847 daemons/fenced/fenced_commands.c action, delay_base, delay_max, device->id); action 1862 daemons/fenced/fenced_commands.c add_disallowed(xmlNode *xml, const char *action, stonith_device_t *device, action 1865 daemons/fenced/fenced_commands.c if (!localhost_is_eligible(device, action, target, allow_suicide)) { action 1867 daemons/fenced/fenced_commands.c action, device->id); action 1883 daemons/fenced/fenced_commands.c add_action_reply(xmlNode *xml, const char *action, stonith_device_t *device, action 1888 daemons/fenced/fenced_commands.c crm_xml_add(child, XML_ATTR_ID, action); action 1889 daemons/fenced/fenced_commands.c add_action_specific_attributes(child, action, device); action 1890 daemons/fenced/fenced_commands.c add_disallowed(child, action, device, target, allow_suicide); action 1907 daemons/fenced/fenced_commands.c const char *action = query->action; action 1927 daemons/fenced/fenced_commands.c && pcmk__str_eq(query->action, "reboot", pcmk__str_casei)) { action 1930 daemons/fenced/fenced_commands.c action = "off"; action 1934 daemons/fenced/fenced_commands.c add_action_specific_attributes(dev, action, device); action 1935 daemons/fenced/fenced_commands.c if (pcmk__str_eq(query->action, "reboot", pcmk__str_casei)) { action 1947 daemons/fenced/fenced_commands.c add_disallowed(dev, action, device, query->target, action 1979 daemons/fenced/fenced_commands.c free(query->action); action 1989 daemons/fenced/fenced_commands.c const char *action = NULL; action 1999 daemons/fenced/fenced_commands.c action = crm_element_value(dev, F_STONITH_ACTION); action 2013 daemons/fenced/fenced_commands.c query->action = action ? strdup(action) : NULL; action 2016 daemons/fenced/fenced_commands.c get_capable_devices(target, action, timeout, action 2032 daemons/fenced/fenced_commands.c cmd->action, pid, cmd->id, cmd->client_name, cmd->victim, action 2039 daemons/fenced/fenced_commands.c cmd->action, pid, cmd->device, action 2062 daemons/fenced/fenced_commands.c if (pcmk__str_eq(cmd->action, "metadata", pcmk__str_casei)) { action 2067 daemons/fenced/fenced_commands.c } else if (pcmk__str_any_of(cmd->action, "monitor", "list", "status", NULL)) { action 2068 daemons/fenced/fenced_commands.c crm_trace("Never broadcast '%s' replies", cmd->action); action 2070 daemons/fenced/fenced_commands.c } else if (!stand_alone && pcmk__str_eq(cmd->origin, cmd->victim, pcmk__str_casei) && !pcmk__str_eq(cmd->action, "on", pcmk__str_casei)) { action 2071 daemons/fenced/fenced_commands.c crm_trace("Broadcast '%s' reply for %s", cmd->action, cmd->victim); action 2130 daemons/fenced/fenced_commands.c crm_trace("Cancel scheduled '%s' action on %s", cmd->action, device->id); action 2153 daemons/fenced/fenced_commands.c (pcmk__strcase_any_of(cmd->action, "list", "monitor", "status", NULL))) { action 2162 daemons/fenced/fenced_commands.c cmd->action, cmd->device, rc, g_list_length(cmd->device_next)); action 2170 daemons/fenced/fenced_commands.c if (next_device != NULL && is_action_required(cmd->action, next_device)) { action 2177 daemons/fenced/fenced_commands.c } else if (rc != 0 && cmd->device_next && (is_action_required(cmd->action, device) == FALSE)) { action 2221 daemons/fenced/fenced_commands.c !pcmk__str_eq(cmd->action, cmd_other->action, pcmk__str_casei) || action 2237 daemons/fenced/fenced_commands.c cmd_other->action, cmd_other->victim, cmd_other->client_name, cmd->client_name); action 2334 daemons/fenced/fenced_commands.c get_capable_devices(host, cmd->action, cmd->default_timeout, action 2528 daemons/fenced/fenced_commands.c relay_op->id, relay_op->action, relay_op->target, relay_op->client_name, action 2529 daemons/fenced/fenced_commands.c op_id, relay_op->action, target, client_name); action 2655 daemons/fenced/fenced_commands.c const char *action = crm_element_value(dev, F_STONITH_ACTION); action 2662 daemons/fenced/fenced_commands.c client->name, client->id, action, target, device ? device : "(any)"); action 2666 daemons/fenced/fenced_commands.c if (stonith_check_fence_tolerance(tolerance, target, action)) { action 2673 daemons/fenced/fenced_commands.c remote_peer, action, target, device ? device : "(any)"); action 245 daemons/fenced/fenced_history.c op->action = crm_element_value_copy(xml_op, F_STONITH_ACTION); action 307 daemons/fenced/fenced_history.c crm_xml_add(entry, F_STONITH_ACTION, op->action); action 242 daemons/fenced/fenced_remote.c free(op->action); action 284 daemons/fenced/fenced_remote.c return ((op->phase > st_phase_requested)? "reboot" : op->action); action 303 daemons/fenced/fenced_remote.c strcpy(op->action, "off"); action 321 daemons/fenced/fenced_remote.c strcpy(op->action, "on"); action 354 daemons/fenced/fenced_remote.c strcpy(op->action, "reboot"); action 366 daemons/fenced/fenced_remote.c crm_xml_add(notify_data, F_STONITH_ACTION, op->action); action 417 daemons/fenced/fenced_remote.c crm_xml_add(data, F_STONITH_OPERATION, op->action); action 498 daemons/fenced/fenced_remote.c op->action, op->target, action 543 daemons/fenced/fenced_remote.c op->action, (op->target? " targeting " : ""), action 580 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 594 daemons/fenced/fenced_remote.c " id=%s", op->action, op->target, op->client_name, op->id); action 609 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 615 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 854 daemons/fenced/fenced_remote.c if (g_list_next(op->devices_list) && pcmk__str_eq(op->action, "reboot", pcmk__str_casei)) { action 894 daemons/fenced/fenced_remote.c } else if (!pcmk__str_eq(op->action, other_action, pcmk__str_casei)) { action 896 daemons/fenced/fenced_remote.c op->action, other_action); action 910 daemons/fenced/fenced_remote.c other->action, other->target, other->client_name, other->originator, other->id); action 917 daemons/fenced/fenced_remote.c other->action, other->target, other->client_name, other->originator, other->id, action 933 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id, action 1027 daemons/fenced/fenced_remote.c op->action = crm_element_value_copy(dev, F_STONITH_ACTION); action 1061 daemons/fenced/fenced_remote.c (peer && dev)? "Recorded" : "Generated", op->id, op->action, action 1120 daemons/fenced/fenced_remote.c CRM_CHECK(op->action, return NULL); action 1129 daemons/fenced/fenced_remote.c CRM_XS " id=%s", op->action, op->target, op->id); action 1135 daemons/fenced/fenced_remote.c CRM_XS " id=%s", op->action, op->target, op->id); action 1141 daemons/fenced/fenced_remote.c op->action, op->target, op->id, op->state); action 1233 daemons/fenced/fenced_remote.c op->action, op->target, device); action 1236 daemons/fenced/fenced_remote.c op->action, op->target); action 1277 daemons/fenced/fenced_remote.c op->action, op->target, (device? device : "any device")); action 1459 daemons/fenced/fenced_remote.c if ((op->phase == st_phase_requested) && pcmk__str_eq(op->action, "on", pcmk__str_casei)) { action 1537 daemons/fenced/fenced_remote.c crm_xml_add(remote_op, F_STONITH_ACTION, op->action); action 1550 daemons/fenced/fenced_remote.c peer->host, op->action, op->target, device, action 1559 daemons/fenced/fenced_remote.c peer->host, op->action, op->target, op->client_name, action 1571 daemons/fenced/fenced_remote.c stonith_watchdog_timeout_ms/1000, op->target, op->action, action 1578 daemons/fenced/fenced_remote.c && !pcmk__str_eq(op->action, "on", pcmk__str_casei)) { action 1580 daemons/fenced/fenced_remote.c stonith_watchdog_timeout_ms/1000, op->target, op->action, action 1605 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name); action 1611 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->state); action 1625 daemons/fenced/fenced_remote.c op->action, op->client_name, op->id); action 1634 daemons/fenced/fenced_remote.c op->replies, op->action, op->target, op->client_name, action 1645 daemons/fenced/fenced_remote.c op->replies, op->action, op->target, op->client_name, action 1655 daemons/fenced/fenced_remote.c op->action, op->target, (device? " with " : ""), action 1698 daemons/fenced/fenced_remote.c if (pcmk__strcase_any_of(op->action, "off", "reboot", NULL)) { action 1737 daemons/fenced/fenced_remote.c const char *action, remote_fencing_op_t *op, action 1745 daemons/fenced/fenced_remote.c peer, device, action, props->custom_action_timeout[phase]); action 1752 daemons/fenced/fenced_remote.c peer, device, props->delay_max[phase], action); action 1759 daemons/fenced/fenced_remote.c peer, device, props->delay_base[phase], action); action 1763 daemons/fenced/fenced_remote.c if (pcmk__str_eq(action, "on", pcmk__str_casei)) { action 1769 daemons/fenced/fenced_remote.c peer, device, action); action 1780 daemons/fenced/fenced_remote.c peer, action, device); action 1929 daemons/fenced/fenced_remote.c op->target, op->action, ndevices, id); action 2029 daemons/fenced/fenced_remote.c device, (const char *) op->devices->data, op->action, op->target); action 2035 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id, op->originator, action 2058 daemons/fenced/fenced_remote.c op->action, op->target, device, op->client_name, action 2114 daemons/fenced/fenced_remote.c stonith_check_fence_tolerance(int tolerance, const char *target, const char *action) action 2124 daemons/fenced/fenced_remote.c action == NULL) { action 2137 daemons/fenced/fenced_remote.c } else if (strcmp(rop->action, action) != 0) { action 2144 daemons/fenced/fenced_remote.c target, action, tolerance, rop->delegate, rop->originator); action 21 daemons/fenced/pacemaker-fenced.h gboolean stonith_check_fence_tolerance(int tolerance, const char *target, const char *action); action 81 daemons/fenced/pacemaker-fenced.h char *action; action 60 include/crm/fencing/internal.h void stonith__destroy_action(stonith_action_t *action); action 61 include/crm/fencing/internal.h void stonith__action_result(stonith_action_t *action, int *rc, char **output, action 65 include/crm/fencing/internal.h stonith_action_execute_async(stonith_action_t * action, action 71 include/crm/fencing/internal.h int stonith__execute(stonith_action_t *action); action 265 include/crm/lrmd.h char *action; action 395 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 424 include/crm/lrmd.h int (*cancel) (lrmd_t *lrmd, const char *rsc_id, const char *action, action 59 include/crm/pengine/internal.h #define pe__set_action_flags(action, flags_to_set) do { \ action 60 include/crm/pengine/internal.h (action)->flags = pcmk__set_flags_as(__func__, __LINE__, \ action 62 include/crm/pengine/internal.h "Action", (action)->uuid, \ action 63 include/crm/pengine/internal.h (action)->flags, \ action 68 include/crm/pengine/internal.h #define pe__clear_action_flags(action, flags_to_clear) do { \ action 69 include/crm/pengine/internal.h (action)->flags = pcmk__clear_flags_as(__func__, __LINE__, \ action 71 include/crm/pengine/internal.h "Action", (action)->uuid, \ action 72 include/crm/pengine/internal.h (action)->flags, \ action 93 include/crm/pengine/internal.h #define pe__set_action_flags_as(function, line, action, flags_to_set) do { \ action 94 include/crm/pengine/internal.h (action)->flags = pcmk__set_flags_as((function), (line), \ action 96 include/crm/pengine/internal.h "Action", (action)->uuid, \ action 97 include/crm/pengine/internal.h (action)->flags, \ action 102 include/crm/pengine/internal.h #define pe__clear_action_flags_as(function, line, action, flags_to_clear) do { \ action 103 include/crm/pengine/internal.h (action)->flags = pcmk__clear_flags_as((function), (line), \ action 105 include/crm/pengine/internal.h "Action", (action)->uuid, \ action 106 include/crm/pengine/internal.h (action)->flags, \ action 193 include/crm/pengine/internal.h const char *action; action 452 include/crm/pengine/internal.h extern int pe_get_configured_timeout(pe_resource_t *rsc, const char *action, action 467 include/crm/pengine/internal.h extern void pe_free_action(pe_action_t * action); action 532 include/crm/pengine/internal.h void pe_action_set_reason(pe_action_t *action, const char *reason, bool overwrite); action 533 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 535 include/crm/pengine/internal.h #define pe_action_required(action, reason, text) \ action 536 include/crm/pengine/internal.h pe_action_set_flag_reason(__func__, __LINE__, action, reason, text, \ action 538 include/crm/pengine/internal.h #define pe_action_implies(action, reason, flag) \ action 539 include/crm/pengine/internal.h pe_action_set_flag_reason(__func__, __LINE__, action, reason, NULL, \ action 510 include/crm/pengine/pe_types.h pe_action_t *action; action 47 include/crm/pengine/status.h pe_rsc_action_details_t *pe_rsc_action_details(pe_action_t *action); action 125 include/crm/services.h char *action; action 221 include/crm/services.h svc_action_t *services_action_create(const char *name, const char *action, action 244 include/crm/services.h const char *action, guint interval_ms, action 251 include/crm/services.h gboolean services_action_kick(const char *name, const char *action, action 294 include/crm/services.h gboolean services_action_cancel(const char *name, const char *action, action 301 include/crm/services.h gboolean services_alert_async(svc_action_t *action, action 372 include/crm/services.h services_get_ocf_exitcode(const char *action, int lsb_exitcode) action 375 include/crm/services.h if (action && strcmp(action, "status") && strcmp(action, "monitor")) { action 100 include/crm/stonith-ng.h char *action; action 121 include/crm/stonith-ng.h char *action; action 278 include/crm/stonith-ng.h int (*fence)(stonith_t *st, int options, const char *node, const char *action, action 412 include/crm/stonith-ng.h int (*fence_with_delay)(stonith_t *st, int options, const char *node, const char *action, action 558 include/crm/stonith-ng.h const char *stonith_action_str(const char *action); action 44 include/pacemaker.h int pcmk_fence_action(stonith_t *st, const char *target, const char *action, action 34 include/pcmki/pcmki_fence.h int pcmk__fence_action(stonith_t *st, const char *target, const char *action, action 66 include/pcmki/pcmki_sched_allocate.h extern enum pe_action_flags native_action_flags(pe_action_t * action, pe_node_t * node); action 84 include/pcmki/pcmki_sched_allocate.h extern enum pe_action_flags group_action_flags(pe_action_t * action, pe_node_t * node); action 107 include/pcmki/pcmki_sched_allocate.h enum pe_action_flags pcmk__bundle_action_flags(pe_action_t *action, action 123 include/pcmki/pcmki_sched_allocate.h extern enum pe_action_flags clone_action_flags(pe_action_t * action, pe_node_t * node); action 178 include/pcmki/pcmki_sched_allocate.h gboolean update_action_flags(pe_action_t * action, enum pe_action_flags flags, const char *source, int line); action 179 include/pcmki/pcmki_sched_allocate.h gboolean update_action(pe_action_t *action, pe_working_set_t *data_set); action 15 include/pcmki/pcmki_sched_notif.h const char *action, action 30 include/pcmki/pcmki_sched_notif.h void create_secondary_notification(pe_action_t *action, pe_resource_t *rsc, action 51 include/pcmki/pcmki_sched_utils.h pe_action_t * action, gboolean details); action 62 include/pcmki/pcmki_sched_utils.h enum pe_action_flags summary_action_flags(pe_action_t * action, GListPtr children, pe_node_t * node); action 63 include/pcmki/pcmki_sched_utils.h enum action_tasks clone_child_action(pe_action_t * action); action 100 include/pcmki/pcmki_scheduler.h extern void graph_element_from_action(pe_action_t * action, pe_working_set_t * data_set); action 104 include/pcmki/pcmki_scheduler.h bool pcmk__ordering_is_invalid(pe_action_t *action, pe_action_wrapper_t *input); action 68 include/pcmki/pcmki_transition.h crm_action_t *action; action 107 include/pcmki/pcmki_transition.h gboolean(*pseudo) (crm_graph_t * graph, crm_action_t * action); action 108 include/pcmki/pcmki_transition.h gboolean(*rsc) (crm_graph_t * graph, crm_action_t * action); action 109 include/pcmki/pcmki_transition.h gboolean(*crmd) (crm_graph_t * graph, crm_action_t * action); action 110 include/pcmki/pcmki_transition.h gboolean(*stonith) (crm_graph_t * graph, crm_action_t * action); action 111 include/pcmki/pcmki_transition.h gboolean(*allowed) (crm_graph_t * graph, crm_action_t * action); action 128 include/pcmki/pcmki_transition.h gboolean update_graph(crm_graph_t * graph, crm_action_t * action); action 132 include/pcmki/pcmki_transition.h void print_action(int log_level, const char *prefix, crm_action_t * action); action 134 include/pcmki/pcmki_transition.h enum transition_action action, const char *abort_reason); action 136 include/pcmki/pcmki_transition.h lrmd_event_data_t *convert_graph_action(xmlNode * resource, crm_action_t * action, int status, action 39 lib/fencing/st_client.c char *action; action 119 lib/fencing/st_client.c static int internal_stonith_action_execute(stonith_action_t * action); action 120 lib/fencing/st_client.c static void log_action(stonith_action_t *action, pid_t pid); action 198 lib/fencing/st_client.c log_action(stonith_action_t *action, pid_t pid) action 200 lib/fencing/st_client.c if (action->output) { action 202 lib/fencing/st_client.c char *prefix = crm_strdup_printf("%s[%d] stdout:", action->agent, pid); action 204 lib/fencing/st_client.c crm_log_output(LOG_TRACE, prefix, action->output); action 208 lib/fencing/st_client.c if (action->error) { action 210 lib/fencing/st_client.c char *prefix = crm_strdup_printf("%s[%d] stderr:", action->agent, pid); action 212 lib/fencing/st_client.c crm_log_output(LOG_WARNING, prefix, action->error); action 497 lib/fencing/st_client.c make_args(const char *agent, const char *action, const char *victim, action 505 lib/fencing/st_client.c CRM_CHECK(action != NULL, return NULL); action 507 lib/fencing/st_client.c snprintf(buffer, sizeof(buffer), "pcmk_%s_action", action); action 512 lib/fencing/st_client.c crm_debug("Substituting action '%s' for requested operation '%s'", value, action); action 513 lib/fencing/st_client.c action = value; action 516 lib/fencing/st_client.c append_arg(STONITH_ATTR_ACTION_OP, action, &arg_list); action 533 lib/fencing/st_client.c action, victim, nodeid_str); action 562 lib/fencing/st_client.c crm_debug("Performing '%s' action targeting '%s' as '%s=%s'", action, victim, param, action 582 lib/fencing/st_client.c stonith__destroy_action(stonith_action_t *action) action 584 lib/fencing/st_client.c if (action) { action 585 lib/fencing/st_client.c free(action->agent); action 586 lib/fencing/st_client.c if (action->args) { action 587 lib/fencing/st_client.c g_hash_table_destroy(action->args); action 589 lib/fencing/st_client.c free(action->action); action 590 lib/fencing/st_client.c free(action->victim); action 591 lib/fencing/st_client.c if (action->svc_action) { action 592 lib/fencing/st_client.c services_action_free(action->svc_action); action 594 lib/fencing/st_client.c free(action->output); action 595 lib/fencing/st_client.c free(action->error); action 596 lib/fencing/st_client.c free(action); action 613 lib/fencing/st_client.c stonith__action_result(stonith_action_t *action, int *rc, char **output, action 625 lib/fencing/st_client.c if (action != NULL) { action 627 lib/fencing/st_client.c *rc = action->rc; action 629 lib/fencing/st_client.c if (output && action->output) { action 630 lib/fencing/st_client.c *output = action->output; action 631 lib/fencing/st_client.c action->output = NULL; // hand off memory management to caller action 633 lib/fencing/st_client.c if (error_output && action->error) { action 634 lib/fencing/st_client.c *error_output = action->error; action 635 lib/fencing/st_client.c action->error = NULL; // hand off memory management to caller action 649 lib/fencing/st_client.c stonith_action_t *action; action 651 lib/fencing/st_client.c action = calloc(1, sizeof(stonith_action_t)); action 652 lib/fencing/st_client.c action->args = make_args(agent, _action, victim, victim_nodeid, action 656 lib/fencing/st_client.c action->agent = strdup(agent); action 657 lib/fencing/st_client.c action->action = strdup(_action); action 659 lib/fencing/st_client.c action->victim = strdup(victim); action 661 lib/fencing/st_client.c action->timeout = action->remaining_timeout = timeout; action 662 lib/fencing/st_client.c action->max_retries = FAILURE_MAX_RETRIES; action 672 lib/fencing/st_client.c action->max_retries = atoi(value); action 676 lib/fencing/st_client.c return action; action 680 lib/fencing/st_client.c update_remaining_timeout(stonith_action_t * action) action 682 lib/fencing/st_client.c int diff = time(NULL) - action->initial_start_time; action 684 lib/fencing/st_client.c if (action->tries >= action->max_retries) { action 686 lib/fencing/st_client.c action->agent, action->action, action->max_retries); action 687 lib/fencing/st_client.c action->remaining_timeout = 0; action 688 lib/fencing/st_client.c } else if ((action->rc != -ETIME) && diff < (action->timeout * 0.7)) { action 691 lib/fencing/st_client.c action->remaining_timeout = action->timeout - diff; action 693 lib/fencing/st_client.c action->remaining_timeout = 0; action 695 lib/fencing/st_client.c return action->remaining_timeout ? TRUE : FALSE; action 729 lib/fencing/st_client.c stonith_action_t *action = (stonith_action_t *) svc_action->cb_data; action 731 lib/fencing/st_client.c action->rc = svc_action_to_errno(svc_action); action 732 lib/fencing/st_client.c action->output = svc_action->stdout_data; action 734 lib/fencing/st_client.c action->error = svc_action->stderr_data; action 740 lib/fencing/st_client.c action->pid, action->action, svc_action->rc); action 742 lib/fencing/st_client.c log_action(action, action->pid); action 744 lib/fencing/st_client.c if (action->rc != pcmk_ok && update_remaining_timeout(action)) { action 745 lib/fencing/st_client.c int rc = internal_stonith_action_execute(action); action 751 lib/fencing/st_client.c if (action->done_cb) { action 752 lib/fencing/st_client.c action->done_cb(action->pid, action->rc, action->output, action->userdata); action 755 lib/fencing/st_client.c action->svc_action = NULL; // don't remove our caller action 756 lib/fencing/st_client.c stonith__destroy_action(action); action 762 lib/fencing/st_client.c stonith_action_t *action = (stonith_action_t *) svc_action->cb_data; action 764 lib/fencing/st_client.c action->pid = svc_action->pid; action 765 lib/fencing/st_client.c action->svc_action = svc_action; action 767 lib/fencing/st_client.c if (action->fork_cb) { action 768 lib/fencing/st_client.c (action->fork_cb) (svc_action->pid, action->userdata); action 772 lib/fencing/st_client.c action->pid, action->action); action 776 lib/fencing/st_client.c internal_stonith_action_execute(stonith_action_t * action) action 784 lib/fencing/st_client.c if (!action->tries) { action 785 lib/fencing/st_client.c action->initial_start_time = time(NULL); action 787 lib/fencing/st_client.c action->tries++; action 789 lib/fencing/st_client.c if (action->tries > 1) { action 791 lib/fencing/st_client.c action->tries, action->agent, action->action, action->remaining_timeout); action 795 lib/fencing/st_client.c if (action->args == NULL || action->agent == NULL) action 799 lib/fencing/st_client.c basename(action->agent)); action 802 lib/fencing/st_client.c svc_action->timeout = 1000 * action->remaining_timeout; action 804 lib/fencing/st_client.c svc_action->id = crm_strdup_printf("%s_%s_%d", basename(action->agent), action 805 lib/fencing/st_client.c action->action, action->tries); action 806 lib/fencing/st_client.c svc_action->agent = strdup(action->agent); action 808 lib/fencing/st_client.c svc_action->params = action->args; action 809 lib/fencing/st_client.c svc_action->cb_data = (void *) action; action 818 lib/fencing/st_client.c free(action->output); action 819 lib/fencing/st_client.c action->output = NULL; action 820 lib/fencing/st_client.c free(action->error); action 821 lib/fencing/st_client.c action->error = NULL; action 825 lib/fencing/st_client.c if (action->async) { action 840 lib/fencing/st_client.c action->rc = svc_action_to_errno(svc_action); action 841 lib/fencing/st_client.c action->output = svc_action->stdout_data; action 843 lib/fencing/st_client.c action->error = svc_action->stderr_data; action 846 lib/fencing/st_client.c action->rc = -ECONNABORTED; action 847 lib/fencing/st_client.c rc = action->rc; action 870 lib/fencing/st_client.c stonith_action_execute_async(stonith_action_t * action, action 876 lib/fencing/st_client.c if (!action) { action 880 lib/fencing/st_client.c action->userdata = userdata; action 881 lib/fencing/st_client.c action->done_cb = done; action 882 lib/fencing/st_client.c action->fork_cb = fork_cb; action 883 lib/fencing/st_client.c action->async = 1; action 885 lib/fencing/st_client.c return internal_stonith_action_execute(action); action 897 lib/fencing/st_client.c stonith__execute(stonith_action_t *action) action 901 lib/fencing/st_client.c CRM_CHECK(action != NULL, return -EINVAL); action 905 lib/fencing/st_client.c rc = internal_stonith_action_execute(action); action 906 lib/fencing/st_client.c } while ((rc != pcmk_ok) && update_remaining_timeout(action)); action 1019 lib/fencing/st_client.c const char *action, const char *victim, int timeout, xmlNode ** output) action 1027 lib/fencing/st_client.c crm_xml_add(data, F_STONITH_ACTION, action); action 1077 lib/fencing/st_client.c const char *action, int timeout, int tolerance, int delay) action 1084 lib/fencing/st_client.c crm_xml_add(data, F_STONITH_ACTION, action); action 1096 lib/fencing/st_client.c stonith_api_fence(stonith_t * stonith, int call_options, const char *node, const char *action, action 1099 lib/fencing/st_client.c return stonith_api_fence_with_delay(stonith, call_options, node, action, action 1143 lib/fencing/st_client.c kvp->action = crm_element_value_copy(op, F_STONITH_ACTION); action 1171 lib/fencing/st_client.c free(hp->action); action 1755 lib/fencing/st_client.c event->action = crm_element_value_copy(data, F_STONITH_ACTION); action 1780 lib/fencing/st_client.c free(event->action); action 2259 lib/fencing/st_client.c const char *action = off? "off" : "reboot"; action 2264 lib/fencing/st_client.c action, nodeid, uname); action 2271 lib/fencing/st_client.c action, nodeid, uname, pcmk_strerror(rc), rc); action 2281 lib/fencing/st_client.c rc = st->cmds->fence(st, opts, name, action, timeout, 0); action 2286 lib/fencing/st_client.c action, nodeid, uname, pcmk_strerror(rc), rc); action 2288 lib/fencing/st_client.c api_log(LOG_NOTICE, "Node %u/%s kicked: %s", nodeid, uname, action); action 2392 lib/fencing/st_client.c stonith_action_str(const char *action) action 2394 lib/fencing/st_client.c if (action == NULL) { action 2396 lib/fencing/st_client.c } else if (!strcmp(action, "on")) { action 2398 lib/fencing/st_client.c } else if (!strcmp(action, "off")) { action 2401 lib/fencing/st_client.c return action; action 2551 lib/fencing/st_client.c pcmk__str_eq(event->action, prev_hp->action, pcmk__str_casei) && action 240 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 254 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 267 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 287 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 296 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 304 lib/fencing/st_output.c stonith_action_str(event->action), event->target, action 345 lib/fencing/st_output.c xmlSetProp(node, (pcmkXmlStr) "action", (pcmkXmlStr) event->action); action 128 lib/fencing/st_rhcs.c stonith_action_t *action = stonith_action_create(agent, "metadata", NULL, 0, action 130 lib/fencing/st_rhcs.c int rc = stonith__execute(action); action 135 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 139 lib/fencing/st_rhcs.c stonith__action_result(action, &rc, &buffer, NULL); action 140 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 252 lib/fencing/st_rhcs.c stonith_action_t *action = NULL; action 284 lib/fencing/st_rhcs.c action = stonith_action_create(agent, "validate-all", action 288 lib/fencing/st_rhcs.c rc = stonith__execute(action); action 290 lib/fencing/st_rhcs.c stonith__action_result(action, &rc, output, error_output); action 292 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 1626 lib/lrmd/lrmd_client.c free(op_info->action); action 1677 lib/lrmd/lrmd_client.c op_info->action = crm_element_value_copy(op_xml, F_LRMD_RSC_ACTION); action 1765 lib/lrmd/lrmd_client.c svc_action_t *action = NULL; action 1782 lib/lrmd/lrmd_client.c action = resources_action_create(type, standard, provider, type, action 1788 lib/lrmd/lrmd_client.c if (action == NULL) { action 1794 lib/lrmd/lrmd_client.c if (!services_action_sync(action)) { action 1797 lib/lrmd/lrmd_client.c services_action_free(action); action 1801 lib/lrmd/lrmd_client.c if (!action->stdout_data) { action 1804 lib/lrmd/lrmd_client.c services_action_free(action); action 1808 lib/lrmd/lrmd_client.c *output = strdup(action->stdout_data); action 1809 lib/lrmd/lrmd_client.c services_action_free(action); action 1815 lib/lrmd/lrmd_client.c lrmd_api_exec(lrmd_t *lrmd, const char *rsc_id, const char *action, action 1828 lib/lrmd/lrmd_client.c crm_xml_add(data, F_LRMD_RSC_ACTION, action); action 1873 lib/lrmd/lrmd_client.c lrmd_api_cancel(lrmd_t *lrmd, const char *rsc_id, const char *action, action 1880 lib/lrmd/lrmd_client.c crm_xml_add(data, F_LRMD_RSC_ACTION, action); action 30 lib/pacemaker/pcmk_fence.c const char *action; action 84 lib/pacemaker/pcmk_fence.c pcmk__str_eq(async_fence_data.action, e->action, pcmk__str_casei)) { action 117 lib/pacemaker/pcmk_fence.c async_fence_data.action, action 136 lib/pacemaker/pcmk_fence.c pcmk__fence_action(stonith_t *st, const char *target, const char *action, action 145 lib/pacemaker/pcmk_fence.c async_fence_data.action = action; action 164 lib/pacemaker/pcmk_fence.c pcmk_fence_action(stonith_t *st, const char *target, const char *action, action 168 lib/pacemaker/pcmk_fence.c return pcmk__fence_action(st, target, action, name, timeout, tolerance, delay); action 120 lib/pacemaker/pcmk_sched_allocate.c update_action_flags(pe_action_t * action, enum pe_action_flags flags, const char *source, int line) action 125 lib/pacemaker/pcmk_sched_allocate.c enum pe_action_flags last = action->flags; action 128 lib/pacemaker/pcmk_sched_allocate.c pe__clear_action_flags_as(source, line, action, flags); action 130 lib/pacemaker/pcmk_sched_allocate.c pe__set_action_flags_as(source, line, action, flags); action 133 lib/pacemaker/pcmk_sched_allocate.c if (last != action->flags) { action 140 lib/pacemaker/pcmk_sched_allocate.c action->uuid, action->node ? action->node->details->uname : "[none]", action 141 lib/pacemaker/pcmk_sched_allocate.c clear ? "un-" : "", flags, last, action->flags, calls, source); action 1914 lib/pacemaker/pcmk_sched_allocate.c extern void update_colo_start_chain(pe_action_t *action, action 1918 lib/pacemaker/pcmk_sched_allocate.c is_recurring_action(pe_action_t *action) action 1922 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__guint_from_hash(action->meta, action 1931 lib/pacemaker/pcmk_sched_allocate.c apply_container_ordering(pe_action_t *action, pe_working_set_t *data_set) action 1942 lib/pacemaker/pcmk_sched_allocate.c enum action_tasks task = text2task(action->task); action 1944 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(action->rsc); action 1945 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(action->node); action 1946 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(pe__is_guest_or_remote_node(action->node)); action 1948 lib/pacemaker/pcmk_sched_allocate.c remote_rsc = action->node->details->remote_rsc; action 1955 lib/pacemaker/pcmk_sched_allocate.c pe_fence_node(data_set, action->node, "container failed", FALSE); action 1959 lib/pacemaker/pcmk_sched_allocate.c action->task, action->uuid, action 1965 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__strcase_any_of(action->task, CRMD_ACTION_MIGRATE, CRMD_ACTION_MIGRATED, NULL)) { action 1976 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(container, action, pe_order_implies_then, action 1980 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2002 lib/pacemaker/pcmk_sched_allocate.c order_action_then_stop(action, remote_rsc, pe_order_none, action 2009 lib/pacemaker/pcmk_sched_allocate.c if (is_recurring_action(action)) { action 2015 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, action 2019 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2104 lib/pacemaker/pcmk_sched_allocate.c apply_remote_ordering(pe_action_t *action, pe_working_set_t *data_set) action 2107 lib/pacemaker/pcmk_sched_allocate.c enum action_tasks task = text2task(action->task); action 2108 lib/pacemaker/pcmk_sched_allocate.c enum remote_connection_state state = get_remote_node_state(action->node); action 2112 lib/pacemaker/pcmk_sched_allocate.c if (action->rsc == NULL) { action 2116 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(action->node); action 2117 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(pe__is_guest_or_remote_node(action->node)); action 2119 lib/pacemaker/pcmk_sched_allocate.c remote_rsc = action->node->details->remote_rsc; action 2123 lib/pacemaker/pcmk_sched_allocate.c action->task, action->uuid, action 2127 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__strcase_any_of(action->task, CRMD_ACTION_MIGRATE, CRMD_ACTION_MIGRATED, NULL)) { action 2145 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, order_opts, data_set); action 2150 lib/pacemaker/pcmk_sched_allocate.c order_action_then_stop(action, remote_rsc, action 2160 lib/pacemaker/pcmk_sched_allocate.c pe_fence_node(data_set, action->node, "resources are active and the connection is unrecoverable", FALSE); action 2167 lib/pacemaker/pcmk_sched_allocate.c order_action_then_stop(action, remote_rsc, action 2174 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, pe_order_none, data_set); action 2184 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2191 lib/pacemaker/pcmk_sched_allocate.c if (is_recurring_action(action)) { action 2196 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, action 2208 lib/pacemaker/pcmk_sched_allocate.c pe_fence_node(data_set, action->node, "resources are in an unknown state and the connection is unrecoverable", FALSE); action 2219 lib/pacemaker/pcmk_sched_allocate.c order_action_then_stop(action, remote_rsc, action 2223 lib/pacemaker/pcmk_sched_allocate.c order_start_then_action(remote_rsc, action, pe_order_none, action 2239 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2243 lib/pacemaker/pcmk_sched_allocate.c if (action->rsc == NULL) { action 2251 lib/pacemaker/pcmk_sched_allocate.c if (action->rsc->is_remote_node && action 2252 lib/pacemaker/pcmk_sched_allocate.c pcmk__str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT, pcmk__str_casei)) { action 2254 lib/pacemaker/pcmk_sched_allocate.c custom_action_order(action->rsc, action 2256 lib/pacemaker/pcmk_sched_allocate.c action, action 2257 lib/pacemaker/pcmk_sched_allocate.c action->rsc, action 2258 lib/pacemaker/pcmk_sched_allocate.c pcmk__op_key(action->rsc->id, RSC_START, 0), action 2267 lib/pacemaker/pcmk_sched_allocate.c if (action->node == NULL) { action 2271 lib/pacemaker/pcmk_sched_allocate.c if (!pe__is_guest_or_remote_node(action->node)) { action 2281 lib/pacemaker/pcmk_sched_allocate.c if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 2285 lib/pacemaker/pcmk_sched_allocate.c remote = action->node->details->remote_rsc; action 2296 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__str_eq(action->task, RSC_START, pcmk__str_casei)) { action 2297 lib/pacemaker/pcmk_sched_allocate.c for (GList *item = action->rsc->actions; item != NULL; action 2301 lib/pacemaker/pcmk_sched_allocate.c if ((rsc_action->node->details != action->node->details) action 2304 lib/pacemaker/pcmk_sched_allocate.c action->rsc, NULL, rsc_action, action 2320 lib/pacemaker/pcmk_sched_allocate.c crm_trace("Container ordering for %s", action->uuid); action 2321 lib/pacemaker/pcmk_sched_allocate.c apply_container_ordering(action, data_set); action 2324 lib/pacemaker/pcmk_sched_allocate.c crm_trace("Remote ordering for %s", action->uuid); action 2325 lib/pacemaker/pcmk_sched_allocate.c apply_remote_ordering(action, data_set); action 2586 lib/pacemaker/pcmk_sched_allocate.c || after_wrapper->action->rsc == NULL action 2587 lib/pacemaker/pcmk_sched_allocate.c || after_wrapper->action->rsc->variant > pe_group action 2588 lib/pacemaker/pcmk_sched_allocate.c || after->rsc != after_wrapper->action->rsc->parent) { action 2598 lib/pacemaker/pcmk_sched_allocate.c || compatible_rsc != after_wrapper->action->rsc)) { action 2606 lib/pacemaker/pcmk_sched_allocate.c after_wrapper->action->uuid, action 2607 lib/pacemaker/pcmk_sched_allocate.c after_wrapper->action->node ? after_wrapper->action->node->details->uname : "", action 2610 lib/pacemaker/pcmk_sched_allocate.c order_first_probe_then_restart_repromote(probe, after_wrapper->action, data_set); action 2619 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2621 lib/pacemaker/pcmk_sched_allocate.c if (pcmk_is_set(action->flags, pe_action_tracking)) { action 2622 lib/pacemaker/pcmk_sched_allocate.c pe__clear_action_flags(action, pe_action_tracking); action 2652 lib/pacemaker/pcmk_sched_allocate.c order_first_probe_then_restart_repromote(probe, after_wrapper->action, data_set); action 2747 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *first = before->action; action 2755 lib/pacemaker/pcmk_sched_allocate.c crm_trace("Testing %s -> %s (%p) for %s", first->uuid, before->action->uuid, before->action->rsc, start->uuid); action 2757 lib/pacemaker/pcmk_sched_allocate.c CRM_ASSERT(before->action->rsc); action 2758 lib/pacemaker/pcmk_sched_allocate.c first_rsc = before->action->rsc; action 2837 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2839 lib/pacemaker/pcmk_sched_allocate.c update_colo_start_chain(action, data_set); action 2847 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2849 lib/pacemaker/pcmk_sched_allocate.c update_action(action, data_set); action 2854 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2857 lib/pacemaker/pcmk_sched_allocate.c for (GList *input_iter = action->actions_before; action 2861 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__ordering_is_invalid(action, input)) { action 2983 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 2985 lib/pacemaker/pcmk_sched_allocate.c if (action->rsc action 2986 lib/pacemaker/pcmk_sched_allocate.c && action->node action 2987 lib/pacemaker/pcmk_sched_allocate.c && action->node->details->shutdown action 2988 lib/pacemaker/pcmk_sched_allocate.c && !pcmk_is_set(action->rsc->flags, pe_rsc_maintenance) action 2989 lib/pacemaker/pcmk_sched_allocate.c && !pcmk_any_flags_set(action->flags, action 2991 lib/pacemaker/pcmk_sched_allocate.c && pcmk__str_eq(action->task, RSC_STOP, pcmk__str_none) action 3000 lib/pacemaker/pcmk_sched_allocate.c action->node->details->unclean ? "fence" : "shut down", action 3001 lib/pacemaker/pcmk_sched_allocate.c action->node->details->uname, action->rsc->id, action 3002 lib/pacemaker/pcmk_sched_allocate.c pcmk_is_set(action->rsc->flags, pe_rsc_managed)? " blocked" : " unmanaged", action 3003 lib/pacemaker/pcmk_sched_allocate.c pcmk_is_set(action->rsc->flags, pe_rsc_failed)? " failed" : "", action 3004 lib/pacemaker/pcmk_sched_allocate.c action->uuid); action 3008 lib/pacemaker/pcmk_sched_allocate.c graph_element_from_action(action, data_set); action 3025 lib/pacemaker/pcmk_sched_allocate.c pe_action_t *action = (pe_action_t *) gIter->data; action 3027 lib/pacemaker/pcmk_sched_allocate.c if (action->rsc != NULL) { action 3029 lib/pacemaker/pcmk_sched_allocate.c } else if (pcmk_is_set(action->flags, pe_action_optional)) { action 3033 lib/pacemaker/pcmk_sched_allocate.c if (pe__is_guest_node(action->node)) { action 3034 lib/pacemaker/pcmk_sched_allocate.c node_name = crm_strdup_printf("%s (resource: %s)", action->node->details->uname, action->node->details->remote_rsc->container->id); action 3035 lib/pacemaker/pcmk_sched_allocate.c } else if(action->node) { action 3036 lib/pacemaker/pcmk_sched_allocate.c node_name = crm_strdup_printf("%s", action->node->details->uname); action 3040 lib/pacemaker/pcmk_sched_allocate.c if (pcmk__str_eq(action->task, CRM_OP_SHUTDOWN, pcmk__str_casei)) { action 3042 lib/pacemaker/pcmk_sched_allocate.c } else if (pcmk__str_eq(action->task, CRM_OP_FENCE, pcmk__str_casei)) { action 3043 lib/pacemaker/pcmk_sched_allocate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); action 3049 lib/pacemaker/pcmk_sched_allocate.c } else if(terminal && action->reason) { action 3050 lib/pacemaker/pcmk_sched_allocate.c printf(" * %s %s '%s'\n", task, node_name, action->reason); action 3053 lib/pacemaker/pcmk_sched_allocate.c } else if(action->reason) { action 3054 lib/pacemaker/pcmk_sched_allocate.c crm_notice(" * %s %s '%s'\n", task, node_name, action->reason); action 205 lib/pacemaker/pcmk_sched_bundle.c pe_action_t *action = NULL; action 238 lib/pacemaker/pcmk_sched_bundle.c action = create_pseudo_resource_op(rsc, RSC_PROMOTED, TRUE, TRUE, data_set); action 239 lib/pacemaker/pcmk_sched_bundle.c action->priority = INFINITY; action 243 lib/pacemaker/pcmk_sched_bundle.c action = create_pseudo_resource_op(rsc, RSC_DEMOTED, TRUE, TRUE, data_set); action 244 lib/pacemaker/pcmk_sched_bundle.c action->priority = INFINITY; action 553 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_action_flags(pe_action_t *action, pe_node_t *node) action 559 lib/pacemaker/pcmk_sched_bundle.c get_bundle_variant_data(data, action->rsc); action 561 lib/pacemaker/pcmk_sched_bundle.c enum action_tasks task = get_complex_task(data->child, action->task, TRUE); action 570 lib/pacemaker/pcmk_sched_bundle.c return summary_action_flags(action, data->child->children, node); action 576 lib/pacemaker/pcmk_sched_bundle.c containers = get_container_list(action->rsc); action 577 lib/pacemaker/pcmk_sched_bundle.c flags = summary_action_flags(action, containers, node); action 852 lib/pacemaker/pcmk_sched_bundle.c update_action(next->action, data_set); action 716 lib/pacemaker/pcmk_sched_clone.c pe_action_t *action = (pe_action_t *) gIter->data; action 721 lib/pacemaker/pcmk_sched_clone.c } else if (pcmk_is_set(action->flags, pe_action_optional)) { action 722 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(rsc, "Skipping optional: %s", action->uuid); action 725 lib/pacemaker/pcmk_sched_clone.c } else if (!pcmk_any_flags_set(action->flags, action 727 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(rsc, "Skipping unrunnable: %s", action->uuid); action 730 lib/pacemaker/pcmk_sched_clone.c } else if (pcmk__str_eq(RSC_STOP, action->task, pcmk__str_casei)) { action 731 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(rsc, "Stopping due to: %s", action->uuid); action 734 lib/pacemaker/pcmk_sched_clone.c } else if (pcmk__str_eq(RSC_START, action->task, pcmk__str_casei)) { action 735 lib/pacemaker/pcmk_sched_clone.c if (!pcmk_is_set(action->flags, pe_action_runnable)) { action 737 lib/pacemaker/pcmk_sched_clone.c action->uuid, action 738 lib/pacemaker/pcmk_sched_clone.c pcmk_is_set(action->flags, pe_action_runnable), action 739 lib/pacemaker/pcmk_sched_clone.c pcmk_is_set(action->flags, pe_action_pseudo)); action 741 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(rsc, "Starting due to: %s", action->uuid); action 743 lib/pacemaker/pcmk_sched_clone.c action->uuid, action 744 lib/pacemaker/pcmk_sched_clone.c pcmk_is_set(action->flags, pe_action_runnable), action 745 lib/pacemaker/pcmk_sched_clone.c pcmk_is_set(action->flags, pe_action_pseudo)); action 1168 lib/pacemaker/pcmk_sched_clone.c clone_child_action(pe_action_t * action) action 1171 lib/pacemaker/pcmk_sched_clone.c pe_resource_t *child = (pe_resource_t *) action->rsc->children->data; action 1173 lib/pacemaker/pcmk_sched_clone.c if (pcmk__strcase_any_of(action->task, "notify", "notified", NULL)) { action 1178 lib/pacemaker/pcmk_sched_clone.c char *key = action->uuid; action 1200 lib/pacemaker/pcmk_sched_clone.c result = get_complex_task(child, action->task, TRUE); action 1205 lib/pacemaker/pcmk_sched_clone.c #define pe__clear_action_summary_flags(flags, action, flag) do { \ action 1207 lib/pacemaker/pcmk_sched_clone.c "Action summary", action->rsc->id, \ action 1212 lib/pacemaker/pcmk_sched_clone.c summary_action_flags(pe_action_t * action, GListPtr children, pe_node_t * node) action 1217 lib/pacemaker/pcmk_sched_clone.c enum action_tasks task = clone_child_action(action); action 1226 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(action->rsc, "Checking for %s in %s on %s (%s)", task_s, child->id, action 1233 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(child, "%s is mandatory because of %s", action->uuid, action 1235 lib/pacemaker/pcmk_sched_clone.c pe__clear_action_summary_flags(flags, action, pe_action_optional); action 1236 lib/pacemaker/pcmk_sched_clone.c pe__clear_action_flags(action, pe_action_optional); action 1245 lib/pacemaker/pcmk_sched_clone.c pe_rsc_trace(action->rsc, "%s is not runnable because no children are", action->uuid); action 1246 lib/pacemaker/pcmk_sched_clone.c pe__clear_action_summary_flags(flags, action, pe_action_runnable); action 1248 lib/pacemaker/pcmk_sched_clone.c pe__clear_action_flags(action, pe_action_runnable); action 1256 lib/pacemaker/pcmk_sched_clone.c clone_action_flags(pe_action_t * action, pe_node_t * node) action 1258 lib/pacemaker/pcmk_sched_clone.c return summary_action_flags(action, action->rsc->children, node); action 119 lib/pacemaker/pcmk_sched_constraints.c invert_action(const char *action) action 121 lib/pacemaker/pcmk_sched_constraints.c if (pcmk__str_eq(action, RSC_START, pcmk__str_casei)) { action 124 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_STOP, pcmk__str_casei)) { action 127 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_PROMOTE, pcmk__str_casei)) { action 130 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_DEMOTE, pcmk__str_casei)) { action 133 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_PROMOTED, pcmk__str_casei)) { action 136 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_DEMOTED, pcmk__str_casei)) { action 139 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_STARTED, pcmk__str_casei)) { action 142 lib/pacemaker/pcmk_sched_constraints.c } else if (pcmk__str_eq(action, RSC_STOPPED, pcmk__str_casei)) { action 145 lib/pacemaker/pcmk_sched_constraints.c crm_warn("Unknown action '%s' specified in order constraint", action); action 1429 lib/pacemaker/pcmk_sched_constraints.c task_from_action_or_key(pe_action_t *action, const char *key) action 1433 lib/pacemaker/pcmk_sched_constraints.c if (action) { action 1434 lib/pacemaker/pcmk_sched_constraints.c res = strdup(action->task); action 1697 lib/pacemaker/pcmk_sched_constraints.c const char *action = crm_element_value(set, "action"); action 1707 lib/pacemaker/pcmk_sched_constraints.c if (action == NULL) { action 1708 lib/pacemaker/pcmk_sched_constraints.c action = RSC_START; action 1722 lib/pacemaker/pcmk_sched_constraints.c flags = get_flags(id, local_kind, action, action, FALSE); action 1767 lib/pacemaker/pcmk_sched_constraints.c key = pcmk__op_key(resource->id, action, 0); action 1784 lib/pacemaker/pcmk_sched_constraints.c char *then_key = pcmk__op_key(then_rsc->id, action, 0); action 1792 lib/pacemaker/pcmk_sched_constraints.c new_rsc_order(last, action, resource, action, flags, data_set); action 1804 lib/pacemaker/pcmk_sched_constraints.c action = invert_action(action); action 1819 lib/pacemaker/pcmk_sched_constraints.c flags = get_flags(id, local_kind, action, action, TRUE); action 1838 lib/pacemaker/pcmk_sched_constraints.c new_rsc_order(resource, action, last, action, flags, data_set); action 22 lib/pacemaker/pcmk_sched_graph.c void update_colo_start_chain(pe_action_t *action, pe_working_set_t *data_set); action 26 lib/pacemaker/pcmk_sched_graph.c get_action_flags(pe_action_t * action, pe_node_t * node) action 28 lib/pacemaker/pcmk_sched_graph.c enum pe_action_flags flags = action->flags; action 30 lib/pacemaker/pcmk_sched_graph.c if (action->rsc) { action 31 lib/pacemaker/pcmk_sched_graph.c flags = action->rsc->cmds->action_flags(action, NULL); action 33 lib/pacemaker/pcmk_sched_graph.c if (pe_rsc_is_clone(action->rsc) && node) { action 36 lib/pacemaker/pcmk_sched_graph.c enum pe_action_flags clone_flags = action->rsc->cmds->action_flags(action, node); action 51 lib/pacemaker/pcmk_sched_graph.c pe__set_raw_action_flags(clone_flags, action->rsc->id, action 138 lib/pacemaker/pcmk_sched_graph.c rsc_expand_action(pe_action_t * action) action 141 lib/pacemaker/pcmk_sched_graph.c pe_action_t *result = action; action 142 lib/pacemaker/pcmk_sched_graph.c pe_resource_t *rsc = action->rsc; action 145 lib/pacemaker/pcmk_sched_graph.c return action; action 160 lib/pacemaker/pcmk_sched_graph.c uuid = convert_non_atomic_uuid(action->uuid, rsc, notify, FALSE); action 162 lib/pacemaker/pcmk_sched_graph.c pe_rsc_trace(rsc, "Converting %s to %s %d", action->uuid, uuid, action 166 lib/pacemaker/pcmk_sched_graph.c crm_err("Couldn't expand %s to %s in %s", action->uuid, uuid, rsc->id); action 167 lib/pacemaker/pcmk_sched_graph.c result = action; action 463 lib/pacemaker/pcmk_sched_graph.c pe_action_t *action = (pe_action_t *) gIter->data; action 465 lib/pacemaker/pcmk_sched_graph.c if (!pcmk__str_eq(action->task, RSC_START, pcmk__str_casei)) { action 468 lib/pacemaker/pcmk_sched_graph.c if (pcmk_is_set(action->flags, pe_action_runnable)) { action 469 lib/pacemaker/pcmk_sched_graph.c pe_action_set_flag_reason(__func__, __LINE__, action, NULL, action 471 lib/pacemaker/pcmk_sched_graph.c update_colo_start_chain(action, data_set); action 472 lib/pacemaker/pcmk_sched_graph.c update_action(action, data_set); action 479 lib/pacemaker/pcmk_sched_graph.c update_colo_start_chain(pe_action_t *action, pe_working_set_t *data_set) action 484 lib/pacemaker/pcmk_sched_graph.c if (!pcmk_is_set(action->flags, pe_action_runnable) action 485 lib/pacemaker/pcmk_sched_graph.c && pcmk__str_eq(action->task, RSC_START, pcmk__str_casei)) { action 487 lib/pacemaker/pcmk_sched_graph.c rsc = uber_parent(action->rsc); action 515 lib/pacemaker/pcmk_sched_graph.c mark_start_blocked(colocate_with->rsc_lh, action->rsc, data_set); action 559 lib/pacemaker/pcmk_sched_graph.c pe_action_t *first = other->action; action 586 lib/pacemaker/pcmk_sched_graph.c other->action->uuid, first_node->details->uname, action 600 lib/pacemaker/pcmk_sched_graph.c pe__set_action_flags(other->action, pe_action_optional); action 610 lib/pacemaker/pcmk_sched_graph.c if (first != other->action) { action 612 lib/pacemaker/pcmk_sched_graph.c other->action->uuid); action 631 lib/pacemaker/pcmk_sched_graph.c if (first == other->action) { action 662 lib/pacemaker/pcmk_sched_graph.c other->action->uuid, then->uuid, first->uuid, then->uuid); action 679 lib/pacemaker/pcmk_sched_graph.c update_action(other->action, data_set); action 709 lib/pacemaker/pcmk_sched_graph.c update_action(other->action, data_set); action 725 lib/pacemaker/pcmk_sched_graph.c pe_action_t *action = (pe_action_t *) lpc->data; action 727 lib/pacemaker/pcmk_sched_graph.c if (action->rsc == NULL || action->node == NULL) { action 729 lib/pacemaker/pcmk_sched_graph.c } else if (action->node->details != node->details) { action 731 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->rsc->flags, pe_rsc_maintenance)) { action 732 lib/pacemaker/pcmk_sched_graph.c pe_rsc_trace(action->rsc, "Skipping %s: maintenance mode", action->uuid); action 735 lib/pacemaker/pcmk_sched_graph.c pe_rsc_trace(action->rsc, "Skipping %s: node %s is in maintenance mode", action 736 lib/pacemaker/pcmk_sched_graph.c action->uuid, node->details->uname); action 738 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk__str_eq(action->task, RSC_STOP, pcmk__str_casei)) { action 740 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk_any_flags_set(action->rsc->flags, action 745 lib/pacemaker/pcmk_sched_graph.c pe_rsc_trace(action->rsc, "Skipping %s: unmanaged", action->uuid); action 749 lib/pacemaker/pcmk_sched_graph.c pe_rsc_trace(action->rsc, "Ordering %s before shutdown on %s", action->uuid, action 751 lib/pacemaker/pcmk_sched_graph.c pe__clear_action_flags(action, pe_action_optional); action 752 lib/pacemaker/pcmk_sched_graph.c custom_action_order(action->rsc, NULL, action, action 781 lib/pacemaker/pcmk_sched_graph.c get_router_node(pe_action_t *action) action 787 lib/pacemaker/pcmk_sched_graph.c const char *task = action->task; action 790 lib/pacemaker/pcmk_sched_graph.c || !pe__is_guest_or_remote_node(action->node)) { action 794 lib/pacemaker/pcmk_sched_graph.c CRM_ASSERT(action->node->details->remote_rsc != NULL); action 796 lib/pacemaker/pcmk_sched_graph.c began_on = pe__current_node(action->node->details->remote_rsc); action 797 lib/pacemaker/pcmk_sched_graph.c ended_on = action->node->details->remote_rsc->allocated_to; action 798 lib/pacemaker/pcmk_sched_graph.c if (action->node->details->remote_rsc action 799 lib/pacemaker/pcmk_sched_graph.c && (action->node->details->remote_rsc->container == NULL) action 800 lib/pacemaker/pcmk_sched_graph.c && action->node->details->remote_rsc->partial_migration_target) { action 837 lib/pacemaker/pcmk_sched_graph.c task = g_hash_table_lookup(action->meta, "notify_operation"); action 930 lib/pacemaker/pcmk_sched_graph.c pe_action_t *action = NULL; action 934 lib/pacemaker/pcmk_sched_graph.c action = get_pseudo_op(CRM_OP_MAINTENANCE_NODES, data_set); action 935 lib/pacemaker/pcmk_sched_graph.c pe__set_action_flags(action, pe_action_print_always); action 952 lib/pacemaker/pcmk_sched_graph.c add_downed_nodes(xmlNode *xml, const pe_action_t *action, action 955 lib/pacemaker/pcmk_sched_graph.c CRM_CHECK(xml && action && action->node && data_set, return); action 957 lib/pacemaker/pcmk_sched_graph.c if (pcmk__str_eq(action->task, CRM_OP_SHUTDOWN, pcmk__str_casei)) { action 961 lib/pacemaker/pcmk_sched_graph.c add_node_to_xml_by_id(action->node->details->id, downed); action 963 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_FENCE, pcmk__str_casei)) { action 966 lib/pacemaker/pcmk_sched_graph.c const char *fence = g_hash_table_lookup(action->meta, "stonith_action"); action 970 lib/pacemaker/pcmk_sched_graph.c add_node_to_xml_by_id(action->node->details->id, downed); action 971 lib/pacemaker/pcmk_sched_graph.c pe_foreach_guest_node(data_set, action->node, add_node_to_xml, downed); action 974 lib/pacemaker/pcmk_sched_graph.c } else if (action->rsc && action->rsc->is_remote_node action 975 lib/pacemaker/pcmk_sched_graph.c && pcmk__str_eq(action->task, CRMD_ACTION_STOP, pcmk__str_casei)) { action 984 lib/pacemaker/pcmk_sched_graph.c for (iter = action->actions_before; iter != NULL; iter = iter->next) { action 985 lib/pacemaker/pcmk_sched_graph.c input = ((pe_action_wrapper_t *) iter->data)->action; action 986 lib/pacemaker/pcmk_sched_graph.c if (input->rsc && pcmk__str_eq(action->rsc->id, input->rsc->id, pcmk__str_casei) action 994 lib/pacemaker/pcmk_sched_graph.c add_node_to_xml_by_id(action->rsc->id, downed); action 1000 lib/pacemaker/pcmk_sched_graph.c should_lock_action(pe_action_t *action) action 1003 lib/pacemaker/pcmk_sched_graph.c if ((action->rsc->lock_node == NULL) || (action->node == NULL) action 1004 lib/pacemaker/pcmk_sched_graph.c || (action->node->details != action->rsc->lock_node->details)) { action 1011 lib/pacemaker/pcmk_sched_graph.c if (action->node->details->shutdown && action->task action 1012 lib/pacemaker/pcmk_sched_graph.c && strcmp(action->task, RSC_STOP)) { action 1020 lib/pacemaker/pcmk_sched_graph.c action2xml(pe_action_t * action, gboolean as_input, pe_working_set_t *data_set) action 1030 lib/pacemaker/pcmk_sched_graph.c if (action == NULL) { action 1034 lib/pacemaker/pcmk_sched_graph.c if (pcmk__str_eq(action->task, CRM_OP_FENCE, pcmk__str_casei)) { action 1037 lib/pacemaker/pcmk_sched_graph.c pcmk_is_set(action->flags, pe_action_pseudo)? action 1041 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_SHUTDOWN, pcmk__str_casei)) { action 1044 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_CLEAR_FAILCOUNT, pcmk__str_casei)) { action 1047 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_LRM_REFRESH, pcmk__str_casei)) { action 1050 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_LRM_DELETE, pcmk__str_casei)) { action 1058 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 1059 lib/pacemaker/pcmk_sched_graph.c if (pcmk__str_eq(action->task, CRM_OP_MAINTENANCE_NODES, pcmk__str_casei)) { action 1069 lib/pacemaker/pcmk_sched_graph.c rsc_details = pe_rsc_action_details(action); action 1073 lib/pacemaker/pcmk_sched_graph.c crm_xml_add_int(action_xml, XML_ATTR_ID, action->id); action 1074 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TASK, action->task); action 1075 lib/pacemaker/pcmk_sched_graph.c if (action->rsc != NULL && action->rsc->clone_name != NULL) { action 1079 lib/pacemaker/pcmk_sched_graph.c if (pcmk__guint_from_hash(action->meta, action 1085 lib/pacemaker/pcmk_sched_graph.c if (pcmk__str_eq(action->task, RSC_NOTIFY, pcmk__str_casei)) { action 1086 lib/pacemaker/pcmk_sched_graph.c const char *n_type = g_hash_table_lookup(action->meta, "notify_type"); action 1087 lib/pacemaker/pcmk_sched_graph.c const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); action 1089 lib/pacemaker/pcmk_sched_graph.c CRM_CHECK(n_type != NULL, crm_err("No notify type value found for %s", action->uuid)); action 1091 lib/pacemaker/pcmk_sched_graph.c crm_err("No notify operation value found for %s", action->uuid)); action 1092 lib/pacemaker/pcmk_sched_graph.c clone_key = pcmk__notify_key(action->rsc->clone_name, action 1095 lib/pacemaker/pcmk_sched_graph.c } else if(action->cancel_task) { action 1096 lib/pacemaker/pcmk_sched_graph.c clone_key = pcmk__op_key(action->rsc->clone_name, action 1097 lib/pacemaker/pcmk_sched_graph.c action->cancel_task, interval_ms); action 1099 lib/pacemaker/pcmk_sched_graph.c clone_key = pcmk__op_key(action->rsc->clone_name, action 1100 lib/pacemaker/pcmk_sched_graph.c action->task, interval_ms); action 1103 lib/pacemaker/pcmk_sched_graph.c CRM_CHECK(clone_key != NULL, crm_err("Could not generate a key for %s", action->uuid)); action 1105 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(action_xml, "internal_" XML_LRM_ATTR_TASK_KEY, action->uuid); action 1109 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TASK_KEY, action->uuid); action 1112 lib/pacemaker/pcmk_sched_graph.c if (needs_node_info && action->node != NULL) { action 1113 lib/pacemaker/pcmk_sched_graph.c pe_node_t *router_node = get_router_node(action); action 1115 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TARGET, action->node->details->uname); action 1116 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(action_xml, XML_LRM_ATTR_TARGET_UUID, action->node->details->id); action 1121 lib/pacemaker/pcmk_sched_graph.c g_hash_table_insert(action->meta, strdup(XML_LRM_ATTR_TARGET), strdup(action->node->details->uname)); action 1122 lib/pacemaker/pcmk_sched_graph.c g_hash_table_insert(action->meta, strdup(XML_LRM_ATTR_TARGET_UUID), strdup(action->node->details->id)); action 1130 lib/pacemaker/pcmk_sched_graph.c if (action->rsc && !pcmk_is_set(action->flags, pe_action_pseudo)) { action 1142 lib/pacemaker/pcmk_sched_graph.c if (should_lock_action(action)) { action 1144 lib/pacemaker/pcmk_sched_graph.c (long long) action->rsc->lock_time); action 1150 lib/pacemaker/pcmk_sched_graph.c crm_element_name(action->rsc->xml)); action 1151 lib/pacemaker/pcmk_sched_graph.c if (pcmk_is_set(action->rsc->flags, pe_rsc_orphan) action 1152 lib/pacemaker/pcmk_sched_graph.c && action->rsc->clone_name) { action 1164 lib/pacemaker/pcmk_sched_graph.c crm_debug("Using orphan clone name %s instead of %s", action->rsc->id, action 1165 lib/pacemaker/pcmk_sched_graph.c action->rsc->clone_name); action 1166 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->clone_name); action 1167 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); action 1169 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk_is_set(action->rsc->flags, pe_rsc_unique)) { action 1170 lib/pacemaker/pcmk_sched_graph.c const char *xml_id = ID(action->rsc->xml); action 1172 lib/pacemaker/pcmk_sched_graph.c crm_debug("Using anonymous clone name %s for %s (aka. %s)", xml_id, action->rsc->id, action 1173 lib/pacemaker/pcmk_sched_graph.c action->rsc->clone_name); action 1189 lib/pacemaker/pcmk_sched_graph.c if (action->rsc->clone_name && !pcmk__str_eq(xml_id, action->rsc->clone_name, pcmk__str_casei)) { action 1190 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->clone_name); action 1192 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); action 1196 lib/pacemaker/pcmk_sched_graph.c CRM_ASSERT(action->rsc->clone_name == NULL); action 1197 lib/pacemaker/pcmk_sched_graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->id); action 1202 lib/pacemaker/pcmk_sched_graph.c g_hash_table_lookup(action->rsc->meta, attr_list[lpc])); action 1210 lib/pacemaker/pcmk_sched_graph.c g_hash_table_foreach(action->extra, hash2field, args_xml); action 1211 lib/pacemaker/pcmk_sched_graph.c if (action->rsc != NULL && action->node) { action 1214 lib/pacemaker/pcmk_sched_graph.c get_rsc_attributes(p, action->rsc, action->node, data_set); action 1222 lib/pacemaker/pcmk_sched_graph.c pe_get_versioned_attributes(versioned_parameters, action->rsc, action 1223 lib/pacemaker/pcmk_sched_graph.c action->node, data_set); action 1231 lib/pacemaker/pcmk_sched_graph.c } else if(action->rsc && action->rsc->variant <= pe_native) { action 1232 lib/pacemaker/pcmk_sched_graph.c g_hash_table_foreach(action->rsc->parameters, hash2smartfield, args_xml); action 1235 lib/pacemaker/pcmk_sched_graph.c if (xml_has_children(action->rsc->versioned_parameters)) { action 1236 lib/pacemaker/pcmk_sched_graph.c add_node_copy(action_xml, action->rsc->versioned_parameters); action 1253 lib/pacemaker/pcmk_sched_graph.c g_hash_table_foreach(action->meta, hash2metafield, args_xml); action 1254 lib/pacemaker/pcmk_sched_graph.c if (action->rsc != NULL) { action 1255 lib/pacemaker/pcmk_sched_graph.c const char *value = g_hash_table_lookup(action->rsc->meta, "external-ip"); action 1256 lib/pacemaker/pcmk_sched_graph.c pe_resource_t *parent = action->rsc; action 1267 lib/pacemaker/pcmk_sched_graph.c if (action->node && /* make clang analyzer happy */ action 1268 lib/pacemaker/pcmk_sched_graph.c pe__is_guest_node(action->node)) { action 1270 lib/pacemaker/pcmk_sched_graph.c enum action_tasks task = text2task(action->task); action 1273 lib/pacemaker/pcmk_sched_graph.c const char *n_task = g_hash_table_lookup(action->meta, "notify_operation"); action 1283 lib/pacemaker/pcmk_sched_graph.c host = pe__current_node(action->node->details->remote_rsc->container); action 1290 lib/pacemaker/pcmk_sched_graph.c host = action->node->details->remote_rsc->container->allocated_to; action 1298 lib/pacemaker/pcmk_sched_graph.c (gpointer)g_hash_table_lookup(action->rsc->meta, XML_RSC_ATTR_TARGET), (gpointer)args_xml); action 1305 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk__str_eq(action->task, CRM_OP_FENCE, pcmk__str_casei) && action->node) { action 1312 lib/pacemaker/pcmk_sched_graph.c g_hash_table_foreach(action->node->details->attrs, hash2metafield, args_xml); action 1319 lib/pacemaker/pcmk_sched_graph.c if (needs_node_info && (action->node != NULL)) { action 1320 lib/pacemaker/pcmk_sched_graph.c add_downed_nodes(action_xml, action, data_set); action 1332 lib/pacemaker/pcmk_sched_graph.c should_dump_action(pe_action_t *action) action 1334 lib/pacemaker/pcmk_sched_graph.c CRM_CHECK(action != NULL, return false); action 1336 lib/pacemaker/pcmk_sched_graph.c if (pcmk_is_set(action->flags, pe_action_dumped)) { action 1337 lib/pacemaker/pcmk_sched_graph.c crm_trace("Action %s (%d) already dumped", action->uuid, action->id); action 1340 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->flags, pe_action_pseudo) action 1341 lib/pacemaker/pcmk_sched_graph.c && pcmk__str_eq(action->task, CRM_OP_PROBED, pcmk__str_casei)) { action 1359 lib/pacemaker/pcmk_sched_graph.c for (lpc = action->actions_after; lpc != NULL; lpc = lpc->next) { action 1362 lib/pacemaker/pcmk_sched_graph.c if (!pcmk_is_set(wrapper->action->flags, pe_action_runnable)) { action 1364 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk__str_eq(wrapper->action->task, RSC_START, pcmk__str_casei)) { action 1366 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(wrapper->action->flags, pe_action_dumped) action 1367 lib/pacemaker/pcmk_sched_graph.c || should_dump_action(wrapper->action)) { action 1370 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1371 lib/pacemaker/pcmk_sched_graph.c wrapper->action->uuid, wrapper->action->id); action 1377 lib/pacemaker/pcmk_sched_graph.c if (!pcmk_is_set(action->flags, pe_action_runnable)) { action 1379 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1382 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->flags, pe_action_optional) action 1383 lib/pacemaker/pcmk_sched_graph.c && !pcmk_is_set(action->flags, pe_action_print_always)) { action 1385 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1389 lib/pacemaker/pcmk_sched_graph.c } else if (action->rsc && !pcmk_is_set(action->rsc->flags, pe_rsc_managed) action 1390 lib/pacemaker/pcmk_sched_graph.c && !pcmk__str_eq(action->task, RSC_STATUS, pcmk__str_casei)) { action 1392 lib/pacemaker/pcmk_sched_graph.c const char *interval_ms_s = g_hash_table_lookup(action->meta, action 1398 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action->rsc->id); action 1403 lib/pacemaker/pcmk_sched_graph.c if (pcmk_is_set(action->flags, pe_action_pseudo) || action 1404 lib/pacemaker/pcmk_sched_graph.c pcmk__strcase_any_of(action->task, CRM_OP_FENCE, CRM_OP_SHUTDOWN, NULL)) { action 1409 lib/pacemaker/pcmk_sched_graph.c if (action->node == NULL) { action 1412 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1413 lib/pacemaker/pcmk_sched_graph.c log_action(LOG_DEBUG, "Unallocated action", action, false); action 1416 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->flags, pe_action_dc)) { action 1419 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action->node->details->uname); action 1421 lib/pacemaker/pcmk_sched_graph.c } else if (pe__is_guest_node(action->node) action 1422 lib/pacemaker/pcmk_sched_graph.c && !action->node->details->remote_requires_reset) { action 1425 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action->node->details->uname); action 1427 lib/pacemaker/pcmk_sched_graph.c } else if (action->node->details->online == false) { action 1430 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1431 lib/pacemaker/pcmk_sched_graph.c log_action(LOG_DEBUG, "Action for offline node", action, FALSE); action 1437 lib/pacemaker/pcmk_sched_graph.c } else if (action->node->details->unclean == false) { action 1440 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1441 lib/pacemaker/pcmk_sched_graph.c log_action(LOG_DEBUG, "Action for unclean node", action, false); action 1462 lib/pacemaker/pcmk_sched_graph.c if (action_wrapper1->action->id > action_wrapper2->action->id) { action 1466 lib/pacemaker/pcmk_sched_graph.c if (action_wrapper1->action->id < action_wrapper2->action->id) { action 1484 lib/pacemaker/pcmk_sched_graph.c check_dump_input(pe_action_t *action, pe_action_wrapper_t *input) action 1499 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1500 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1503 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk_is_set(input->action->flags, pe_action_runnable) action 1505 lib/pacemaker/pcmk_sched_graph.c && !pcmk__str_eq(input->action->uuid, CRM_OP_PROBED, pcmk__str_casei)) { action 1508 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1509 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1512 lib/pacemaker/pcmk_sched_graph.c } else if (!pcmk_is_set(input->action->flags, pe_action_runnable) action 1516 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1517 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1520 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(action->flags, pe_action_pseudo) action 1524 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1525 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1529 lib/pacemaker/pcmk_sched_graph.c && !pcmk_is_set(input->action->flags, pe_action_runnable)) { action 1532 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1533 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1537 lib/pacemaker/pcmk_sched_graph.c && pcmk_is_set(input->action->flags, pe_action_migrate_runnable)) { action 1540 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1541 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1545 lib/pacemaker/pcmk_sched_graph.c && pcmk_is_set(input->action->flags, pe_action_migrate_runnable) action 1546 lib/pacemaker/pcmk_sched_graph.c && pcmk__ends_with(input->action->uuid, "_stop_0")) { action 1549 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1550 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1554 lib/pacemaker/pcmk_sched_graph.c pe_node_t *input_node = input->action->node; action 1558 lib/pacemaker/pcmk_sched_graph.c if (action->rsc && pcmk__str_eq(action->task, RSC_MIGRATE, pcmk__str_casei)) { action 1559 lib/pacemaker/pcmk_sched_graph.c pe_node_t *allocated = action->rsc->allocated_to; action 1568 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1569 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id, action 1576 lib/pacemaker/pcmk_sched_graph.c } else if ((input_node == NULL) || (action->node == NULL) action 1577 lib/pacemaker/pcmk_sched_graph.c || (input_node->details != action->node->details)) { action 1580 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1581 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id, action 1582 lib/pacemaker/pcmk_sched_graph.c (action->node? action->node->details->uname : "<none>"), action 1587 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(input->action->flags, pe_action_optional)) { action 1590 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1591 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1597 lib/pacemaker/pcmk_sched_graph.c if (input->action->node && action->node action 1598 lib/pacemaker/pcmk_sched_graph.c && (input->action->node->details != action->node->details)) { action 1601 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1602 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id, action 1603 lib/pacemaker/pcmk_sched_graph.c action->node->details->uname, action 1604 lib/pacemaker/pcmk_sched_graph.c input->action->node->details->uname); action 1608 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(input->action->flags, pe_action_optional)) { action 1611 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1612 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1617 lib/pacemaker/pcmk_sched_graph.c } else if (input->action->rsc action 1618 lib/pacemaker/pcmk_sched_graph.c && input->action->rsc != action->rsc action 1619 lib/pacemaker/pcmk_sched_graph.c && pcmk_is_set(input->action->rsc->flags, pe_rsc_failed) action 1620 lib/pacemaker/pcmk_sched_graph.c && !pcmk_is_set(input->action->rsc->flags, pe_rsc_managed) action 1621 lib/pacemaker/pcmk_sched_graph.c && pcmk__ends_with(input->action->uuid, "_stop_0") action 1622 lib/pacemaker/pcmk_sched_graph.c && action->rsc && pe_rsc_is_clone(action->rsc)) { action 1625 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, action->uuid); action 1628 lib/pacemaker/pcmk_sched_graph.c } else if (pcmk_is_set(input->action->flags, pe_action_optional) action 1629 lib/pacemaker/pcmk_sched_graph.c && !pcmk_any_flags_set(input->action->flags, action 1631 lib/pacemaker/pcmk_sched_graph.c && !should_dump_action(input->action)) { action 1634 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1635 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id); action 1640 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id, action 1641 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id, action 1642 lib/pacemaker/pcmk_sched_graph.c input->action->node? input->action->node->details->uname : "no node", action 1643 lib/pacemaker/pcmk_sched_graph.c pcmk_is_set(input->action->flags, pe_action_pseudo)? "pseudo" : "real", action 1644 lib/pacemaker/pcmk_sched_graph.c pcmk_is_set(input->action->flags, pe_action_runnable)? "runnable" : "unrunnable", action 1645 lib/pacemaker/pcmk_sched_graph.c pcmk_is_set(input->action->flags, pe_action_optional)? "optional" : "required", action 1651 lib/pacemaker/pcmk_sched_graph.c graph_has_loop(pe_action_t *init_action, pe_action_t *action, action 1656 lib/pacemaker/pcmk_sched_graph.c if (pcmk_is_set(input->action->flags, pe_action_tracking)) { action 1658 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, action 1659 lib/pacemaker/pcmk_sched_graph.c input->action->node? input->action->node->details->uname : "", action 1660 lib/pacemaker/pcmk_sched_graph.c action->uuid, action 1661 lib/pacemaker/pcmk_sched_graph.c action->node? action->node->details->uname : "", action 1667 lib/pacemaker/pcmk_sched_graph.c if (!check_dump_input(action, input)) { action 1671 lib/pacemaker/pcmk_sched_graph.c if (input->action == init_action) { action 1673 lib/pacemaker/pcmk_sched_graph.c action->uuid, action 1674 lib/pacemaker/pcmk_sched_graph.c action->node? action->node->details->uname : "", action 1680 lib/pacemaker/pcmk_sched_graph.c pe__set_action_flags(input->action, pe_action_tracking); action 1684 lib/pacemaker/pcmk_sched_graph.c action->uuid, action 1685 lib/pacemaker/pcmk_sched_graph.c action->node? action->node->details->uname : "", action 1686 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, action 1687 lib/pacemaker/pcmk_sched_graph.c input->action->node? input->action->node->details->uname : "", action 1693 lib/pacemaker/pcmk_sched_graph.c for (GList *iter = input->action->actions_before; action 1696 lib/pacemaker/pcmk_sched_graph.c if (graph_has_loop(init_action, input->action, action 1705 lib/pacemaker/pcmk_sched_graph.c pe__clear_action_flags(input->action, pe_action_tracking); action 1709 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, action 1710 lib/pacemaker/pcmk_sched_graph.c input->action->node? input->action->node->details->uname : "", action 1711 lib/pacemaker/pcmk_sched_graph.c action->uuid, action 1712 lib/pacemaker/pcmk_sched_graph.c action->node? action->node->details->uname : "", action 1719 lib/pacemaker/pcmk_sched_graph.c pcmk__ordering_is_invalid(pe_action_t *action, pe_action_wrapper_t *input) action 1725 lib/pacemaker/pcmk_sched_graph.c && action->rsc && action->rsc->fillers action 1726 lib/pacemaker/pcmk_sched_graph.c && input->action->rsc && input->action->node action 1727 lib/pacemaker/pcmk_sched_graph.c && input->action->node->details->remote_rsc action 1728 lib/pacemaker/pcmk_sched_graph.c && (input->action->node->details->remote_rsc->container == action->rsc)) { action 1730 lib/pacemaker/pcmk_sched_graph.c input->action->rsc->id, action->rsc->id); action 1741 lib/pacemaker/pcmk_sched_graph.c if ((input->type == pe_order_load) && action->rsc action 1742 lib/pacemaker/pcmk_sched_graph.c && pcmk__str_eq(action->task, RSC_MIGRATE, pcmk__str_casei) action 1743 lib/pacemaker/pcmk_sched_graph.c && graph_has_loop(action, action, input)) { action 1752 lib/pacemaker/pcmk_sched_graph.c deduplicate_inputs(pe_action_t *action) action 1758 lib/pacemaker/pcmk_sched_graph.c action->actions_before = g_list_sort(action->actions_before, action 1760 lib/pacemaker/pcmk_sched_graph.c for (item = action->actions_before; item != NULL; item = next) { action 1764 lib/pacemaker/pcmk_sched_graph.c if (last_input && (input->action->id == last_input->action->id)) { action 1766 lib/pacemaker/pcmk_sched_graph.c input->action->uuid, input->action->id, action 1767 lib/pacemaker/pcmk_sched_graph.c action->uuid, action->id); action 1779 lib/pacemaker/pcmk_sched_graph.c action->actions_before = g_list_delete_link(action->actions_before, action 1804 lib/pacemaker/pcmk_sched_graph.c graph_element_from_action(pe_action_t *action, pe_working_set_t *data_set) action 1817 lib/pacemaker/pcmk_sched_graph.c if (!pcmk_is_set(action->flags, pe_action_dedup)) { action 1818 lib/pacemaker/pcmk_sched_graph.c deduplicate_inputs(action); action 1819 lib/pacemaker/pcmk_sched_graph.c pe__set_action_flags(action, pe_action_dedup); action 1822 lib/pacemaker/pcmk_sched_graph.c if (should_dump_action(action) == FALSE) { action 1826 lib/pacemaker/pcmk_sched_graph.c pe__set_action_flags(action, pe_action_dumped); action 1835 lib/pacemaker/pcmk_sched_graph.c if (action->rsc != NULL) { action 1836 lib/pacemaker/pcmk_sched_graph.c synapse_priority = action->rsc->priority; action 1838 lib/pacemaker/pcmk_sched_graph.c if (action->priority > synapse_priority) { action 1839 lib/pacemaker/pcmk_sched_graph.c synapse_priority = action->priority; action 1845 lib/pacemaker/pcmk_sched_graph.c xml_action = action2xml(action, FALSE, data_set); action 1848 lib/pacemaker/pcmk_sched_graph.c for (lpc = action->actions_before; lpc != NULL; lpc = lpc->next) { action 1850 lib/pacemaker/pcmk_sched_graph.c if (check_dump_input(action, input)) { action 1854 lib/pacemaker/pcmk_sched_graph.c xml_action = action2xml(input->action, TRUE, data_set); action 144 lib/pacemaker/pcmk_sched_group.c pe_action_t *action = (pe_action_t *) gIter->data; action 146 lib/pacemaker/pcmk_sched_group.c if (pcmk_is_set(action->flags, pe_action_optional)) { action 149 lib/pacemaker/pcmk_sched_group.c if (pcmk__str_eq(RSC_STOP, action->task, pcmk__str_casei) action 150 lib/pacemaker/pcmk_sched_group.c && pcmk_is_set(action->flags, pe_action_runnable)) { action 153 lib/pacemaker/pcmk_sched_group.c pe_rsc_trace(action->rsc, "Based on %s the group is stopping", action->uuid); action 155 lib/pacemaker/pcmk_sched_group.c } else if (pcmk__str_eq(RSC_START, action->task, pcmk__str_casei) action 156 lib/pacemaker/pcmk_sched_group.c && pcmk_is_set(action->flags, pe_action_runnable)) { action 158 lib/pacemaker/pcmk_sched_group.c pe_rsc_trace(action->rsc, "Based on %s the group is starting", action->uuid); action 381 lib/pacemaker/pcmk_sched_group.c group_action_flags(pe_action_t * action, pe_node_t * node) action 386 lib/pacemaker/pcmk_sched_group.c for (gIter = action->rsc->children; gIter != NULL; gIter = gIter->next) { action 388 lib/pacemaker/pcmk_sched_group.c enum action_tasks task = get_complex_task(child, action->task, TRUE); action 397 lib/pacemaker/pcmk_sched_group.c pe_rsc_trace(action->rsc, "%s is mandatory because of %s", action->uuid, action 401 lib/pacemaker/pcmk_sched_group.c pe__clear_action_flags(action, pe_action_optional); action 403 lib/pacemaker/pcmk_sched_group.c if (!pcmk__str_eq(task_s, action->task, pcmk__str_casei) action 407 lib/pacemaker/pcmk_sched_group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s", action->uuid, action 411 lib/pacemaker/pcmk_sched_group.c pe__clear_action_flags(action, pe_action_runnable); action 415 lib/pacemaker/pcmk_sched_group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s (not found in %s)", action 416 lib/pacemaker/pcmk_sched_group.c action->uuid, task_s, child->id); action 137 lib/pacemaker/pcmk_sched_messages.c pe_action_t *action = (pe_action_t *) gIter->data; action 139 lib/pacemaker/pcmk_sched_messages.c if (!pcmk_any_flags_set(action->flags, action 143 lib/pacemaker/pcmk_sched_messages.c log_action(LOG_TRACE, "\t", action, TRUE); action 2057 lib/pacemaker/pcmk_sched_native.c native_action_flags(pe_action_t * action, pe_node_t * node) action 2059 lib/pacemaker/pcmk_sched_native.c return action->flags; action 2063 lib/pacemaker/pcmk_sched_native.c is_primitive_action(pe_action_t *action) action 2065 lib/pacemaker/pcmk_sched_native.c return action && action->rsc && (action->rsc->variant == pe_native); action 2357 lib/pacemaker/pcmk_sched_native.c pe_action_t *action = (pe_action_t *) gIter->data; action 2359 lib/pacemaker/pcmk_sched_native.c crm_trace("processing action %d for rsc=%s", action->id, rsc->id); action 2360 lib/pacemaker/pcmk_sched_native.c graph_element_from_action(action, data_set); action 2397 lib/pacemaker/pcmk_sched_native.c LogAction(const char *change, pe_resource_t *rsc, pe_node_t *origin, pe_node_t *destination, pe_action_t *action, pe_action_t *source, gboolean terminal) action 2409 lib/pacemaker/pcmk_sched_native.c CRM_ASSERT(action); action 2413 lib/pacemaker/pcmk_sched_native.c source = action; action 2479 lib/pacemaker/pcmk_sched_native.c if(source->reason && !pcmk_is_set(action->flags, pe_action_runnable)) { action 2485 lib/pacemaker/pcmk_sched_native.c } else if (!pcmk_is_set(action->flags, pe_action_runnable)) { action 2754 lib/pacemaker/pcmk_sched_native.c order_after_unfencing(pe_resource_t *rsc, pe_node_t *node, pe_action_t *action, action 2773 lib/pacemaker/pcmk_sched_native.c order_actions(unfence, action, order); action 2778 lib/pacemaker/pcmk_sched_native.c rsc->id, action->task); action 3188 lib/pacemaker/pcmk_sched_native.c pe_action_t *action = (pe_action_t *) gIter->data; action 3190 lib/pacemaker/pcmk_sched_native.c switch (action->needs) { action 3196 lib/pacemaker/pcmk_sched_native.c order_actions(stonith_op, action, pe_order_optional); action 3200 lib/pacemaker/pcmk_sched_native.c if (pcmk__str_eq(action->task, RSC_START, pcmk__str_casei) action 3213 lib/pacemaker/pcmk_sched_native.c pe_rsc_debug(rsc, "Ordering %s after %s recovery", action->uuid, action 3215 lib/pacemaker/pcmk_sched_native.c order_actions(stonith_op, action, action 3257 lib/pacemaker/pcmk_sched_native.c pe_action_t *action = (pe_action_t *) gIter->data; action 3260 lib/pacemaker/pcmk_sched_native.c update_action_flags(action, pe_action_pseudo|pe_action_runnable, action 3264 lib/pacemaker/pcmk_sched_native.c update_action_flags(action, pe_action_implied_by_stonith, action 3280 lib/pacemaker/pcmk_sched_native.c order_actions(stonith_op, action, pe_order_preserve); action 3291 lib/pacemaker/pcmk_sched_native.c action->uuid, (order_implicit? "after" : "because"), action 3316 lib/pacemaker/pcmk_sched_native.c create_secondary_notification(action, rsc, stonith_op, data_set); action 3357 lib/pacemaker/pcmk_sched_native.c pe_action_t *action = (pe_action_t *) gIter->data; action 3359 lib/pacemaker/pcmk_sched_native.c if (action->node->details->online == FALSE || action->node->details->unclean == TRUE action 3368 lib/pacemaker/pcmk_sched_native.c action->uuid, target->details->uname); action 3374 lib/pacemaker/pcmk_sched_native.c update_action_flags(action, pe_action_pseudo|pe_action_runnable, action 3381 lib/pacemaker/pcmk_sched_native.c order_actions(stonith_op, action, pe_order_preserve|pe_order_optional); action 194 lib/pacemaker/pcmk_sched_notif.c add_notify_data_to_action_meta(notify_data_t *n_data, pe_action_t *action) action 199 lib/pacemaker/pcmk_sched_notif.c add_hash_param(action->meta, nvpair->name, nvpair->value); action 288 lib/pacemaker/pcmk_sched_notif.c create_notification_boundaries(pe_resource_t * rsc, const char *action, pe_action_t * start, action 308 lib/pacemaker/pcmk_sched_notif.c n_data->action = action; action 323 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre->meta, "notify_operation", n_data->action); action 340 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->pre_done->meta, "notify_operation", n_data->action); action 368 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post->meta, "notify_operation", n_data->action); action 391 lib/pacemaker/pcmk_sched_notif.c add_hash_param(n_data->post_done->meta, "notify_operation", n_data->action); action 539 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_STOP, pcmk__str_casei)) { action 546 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_START, pcmk__str_casei)) { action 554 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_DEMOTE, pcmk__str_casei)) { action 562 lib/pacemaker/pcmk_sched_notif.c && pcmk__str_eq(n_data->action, RSC_PROMOTE, pcmk__str_casei)) { action 629 lib/pacemaker/pcmk_sched_notif.c find_remote_start(pe_action_t *action) action 631 lib/pacemaker/pcmk_sched_notif.c if (action && action->node) { action 632 lib/pacemaker/pcmk_sched_notif.c pe_resource_t *remote_rsc = action->node->details->remote_rsc; action 648 lib/pacemaker/pcmk_sched_notif.c enum action_tasks task = text2task(n_data->action); action 687 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); action 694 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); action 701 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); action 713 lib/pacemaker/pcmk_sched_notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); action 794 lib/pacemaker/pcmk_sched_notif.c create_secondary_notification(pe_action_t *action, pe_resource_t *rsc, action 800 lib/pacemaker/pcmk_sched_notif.c crm_info("Creating secondary notification for %s", action->uuid); action 805 lib/pacemaker/pcmk_sched_notif.c add_notify_env(n_data, "notify_stop_uname", action->node->details->uname); action 113 lib/pacemaker/pcmk_sched_promotable.c pe_action_t *action = (pe_action_t *) gIter->data; action 118 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk_is_set(action->flags, pe_action_optional)) { action 121 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk__str_eq(RSC_DEMOTE, action->task, pcmk__str_casei)) { action 124 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk__str_eq(RSC_PROMOTE, action->task, pcmk__str_casei)) { action 823 lib/pacemaker/pcmk_sched_promotable.c pe_action_t *action = NULL; action 853 lib/pacemaker/pcmk_sched_promotable.c action = create_pseudo_resource_op(rsc, RSC_PROMOTE, !any_promoting, TRUE, data_set); action 862 lib/pacemaker/pcmk_sched_promotable.c create_notification_boundaries(rsc, RSC_PROMOTE, action, action_complete, data_set); action 866 lib/pacemaker/pcmk_sched_promotable.c action = create_pseudo_resource_op(rsc, RSC_DEMOTE, !any_demoting, TRUE, data_set); action 874 lib/pacemaker/pcmk_sched_promotable.c create_notification_boundaries(rsc, RSC_DEMOTE, action, action_complete, data_set); action 597 lib/pacemaker/pcmk_sched_transition.c exec_pseudo_action(crm_graph_t * graph, crm_action_t * action) action 599 lib/pacemaker/pcmk_sched_transition.c const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 600 lib/pacemaker/pcmk_sched_transition.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 602 lib/pacemaker/pcmk_sched_transition.c action->confirmed = TRUE; action 605 lib/pacemaker/pcmk_sched_transition.c update_graph(graph, action); action 610 lib/pacemaker/pcmk_sched_transition.c exec_rsc_action(crm_graph_t * graph, crm_action_t * action) action 622 lib/pacemaker/pcmk_sched_transition.c const char *operation = crm_element_value(action->xml, "operation"); action 623 lib/pacemaker/pcmk_sched_transition.c const char *target_rc_s = crm_meta_value(action->params, XML_ATTR_TE_TARGET_RC); action 627 lib/pacemaker/pcmk_sched_transition.c xmlNode *action_rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 629 lib/pacemaker/pcmk_sched_transition.c char *node = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); action 630 lib/pacemaker/pcmk_sched_transition.c char *uuid = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET_UUID); action 631 lib/pacemaker/pcmk_sched_transition.c const char *router_node = crm_element_value(action->xml, XML_LRM_ATTR_ROUTER_NODE); action 639 lib/pacemaker/pcmk_sched_transition.c crm_log_xml_err(action->xml, "Bad"); action 687 lib/pacemaker/pcmk_sched_transition.c op = convert_graph_action(cib_resource, action, 0, target_outcome); action 728 lib/pacemaker/pcmk_sched_transition.c action->failed = TRUE; action 730 lib/pacemaker/pcmk_sched_transition.c printf("\tPretending action %d failed with rc=%d\n", action->id, op->rc); action 747 lib/pacemaker/pcmk_sched_transition.c action->confirmed = TRUE; action 748 lib/pacemaker/pcmk_sched_transition.c update_graph(graph, action); action 753 lib/pacemaker/pcmk_sched_transition.c exec_crmd_action(crm_graph_t * graph, crm_action_t * action) action 755 lib/pacemaker/pcmk_sched_transition.c const char *node = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 756 lib/pacemaker/pcmk_sched_transition.c const char *task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 757 lib/pacemaker/pcmk_sched_transition.c xmlNode *rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 759 lib/pacemaker/pcmk_sched_transition.c action->confirmed = TRUE; action 766 lib/pacemaker/pcmk_sched_transition.c update_graph(graph, action); action 771 lib/pacemaker/pcmk_sched_transition.c exec_stonith_action(crm_graph_t * graph, crm_action_t * action) action 773 lib/pacemaker/pcmk_sched_transition.c const char *op = crm_meta_value(action->params, "stonith_action"); action 774 lib/pacemaker/pcmk_sched_transition.c char *target = crm_element_value_copy(action->xml, XML_LRM_ATTR_TARGET); action 801 lib/pacemaker/pcmk_sched_transition.c action->confirmed = TRUE; action 802 lib/pacemaker/pcmk_sched_transition.c update_graph(graph, action); action 353 lib/pacemaker/pcmk_sched_utils.c log_action(unsigned int log_level, const char *pre_text, pe_action_t * action, gboolean details) action 359 lib/pacemaker/pcmk_sched_utils.c if (action == NULL) { action 364 lib/pacemaker/pcmk_sched_utils.c if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 368 lib/pacemaker/pcmk_sched_utils.c } else if (action->node != NULL) { action 369 lib/pacemaker/pcmk_sched_utils.c node_uname = action->node->details->uname; action 370 lib/pacemaker/pcmk_sched_utils.c node_uuid = action->node->details->id; action 376 lib/pacemaker/pcmk_sched_utils.c switch (text2task(action->task)) { action 379 lib/pacemaker/pcmk_sched_utils.c if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 381 lib/pacemaker/pcmk_sched_utils.c } else if (pcmk_is_set(action->flags, pe_action_optional)) { action 383 lib/pacemaker/pcmk_sched_utils.c } else if (!pcmk_is_set(action->flags, pe_action_runnable)) { action 385 lib/pacemaker/pcmk_sched_utils.c } else if (pcmk_is_set(action->flags, pe_action_processed)) { action 393 lib/pacemaker/pcmk_sched_utils.c desc, action->id, action->uuid, action 399 lib/pacemaker/pcmk_sched_utils.c if (pcmk_is_set(action->flags, pe_action_optional)) { action 401 lib/pacemaker/pcmk_sched_utils.c } else if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 403 lib/pacemaker/pcmk_sched_utils.c } else if (!pcmk_is_set(action->flags, pe_action_runnable)) { action 405 lib/pacemaker/pcmk_sched_utils.c } else if (pcmk_is_set(action->flags, pe_action_processed)) { action 413 lib/pacemaker/pcmk_sched_utils.c desc, action->id, action->uuid, action 414 lib/pacemaker/pcmk_sched_utils.c (action->rsc? action->rsc->id : "<none>"), action 426 lib/pacemaker/pcmk_sched_utils.c gIter = action->actions_before; action 430 lib/pacemaker/pcmk_sched_utils.c log_action(log_level + 1, "\t\t", other->action, FALSE); action 435 lib/pacemaker/pcmk_sched_utils.c gIter = action->actions_after; action 439 lib/pacemaker/pcmk_sched_utils.c log_action(log_level + 1, "\t\t", other->action, FALSE); action 446 lib/pacemaker/pcmk_sched_utils.c g_list_length(action->actions_before), g_list_length(action->actions_after)); action 473 lib/pacemaker/pcmk_sched_utils.c pe_action_t *action = custom_action(rsc, pcmk__op_key(rsc->id, task, 0), action 475 lib/pacemaker/pcmk_sched_utils.c update_action_flags(action, pe_action_pseudo, __func__, __LINE__); action 476 lib/pacemaker/pcmk_sched_utils.c update_action_flags(action, pe_action_runnable, __func__, __LINE__); action 478 lib/pacemaker/pcmk_sched_utils.c update_action_flags(action, pe_action_runnable, __func__, __LINE__); action 480 lib/pacemaker/pcmk_sched_utils.c return action; action 63 lib/pacemaker/pcmk_trans_graph.c crm_action_t *action = (crm_action_t *) lpc->data; action 65 lib/pacemaker/pcmk_trans_graph.c crm_trace("Processing action %d", action->id); action 67 lib/pacemaker/pcmk_trans_graph.c if (action->id == action_id) { action 69 lib/pacemaker/pcmk_trans_graph.c action->confirmed = TRUE; action 72 lib/pacemaker/pcmk_trans_graph.c } else if (action->confirmed == FALSE) { action 91 lib/pacemaker/pcmk_trans_graph.c update_graph(crm_graph_t * graph, crm_action_t * action) action 105 lib/pacemaker/pcmk_trans_graph.c rc = update_synapse_confirmed(synapse, action->id); action 107 lib/pacemaker/pcmk_trans_graph.c } else if (action->failed == FALSE || synapse->priority == INFINITY) { action 108 lib/pacemaker/pcmk_trans_graph.c rc = update_synapse_ready(synapse, action->id); action 114 lib/pacemaker/pcmk_trans_graph.c crm_trace("Updated graph with completed action %d", action->id); action 166 lib/pacemaker/pcmk_trans_graph.c initiate_action(crm_graph_t * graph, crm_action_t * action) action 170 lib/pacemaker/pcmk_trans_graph.c CRM_CHECK(action->executed == FALSE, return FALSE); action 172 lib/pacemaker/pcmk_trans_graph.c id = ID(action->xml); action 175 lib/pacemaker/pcmk_trans_graph.c action->executed = TRUE; action 176 lib/pacemaker/pcmk_trans_graph.c if (action->type == action_type_pseudo) { action 177 lib/pacemaker/pcmk_trans_graph.c crm_trace("Executing pseudo-event: %s (%d)", id, action->id); action 178 lib/pacemaker/pcmk_trans_graph.c return graph_fns->pseudo(graph, action); action 180 lib/pacemaker/pcmk_trans_graph.c } else if (action->type == action_type_rsc) { action 181 lib/pacemaker/pcmk_trans_graph.c crm_trace("Executing rsc-event: %s (%d)", id, action->id); action 182 lib/pacemaker/pcmk_trans_graph.c return graph_fns->rsc(graph, action); action 184 lib/pacemaker/pcmk_trans_graph.c } else if (action->type == action_type_crm) { action 187 lib/pacemaker/pcmk_trans_graph.c task = crm_element_value(action->xml, XML_LRM_ATTR_TASK); action 191 lib/pacemaker/pcmk_trans_graph.c crm_trace("Executing STONITH-event: %s (%d)", id, action->id); action 192 lib/pacemaker/pcmk_trans_graph.c return graph_fns->stonith(graph, action); action 195 lib/pacemaker/pcmk_trans_graph.c crm_trace("Executing crm-event: %s (%d)", id, action->id); action 196 lib/pacemaker/pcmk_trans_graph.c return graph_fns->crmd(graph, action); action 199 lib/pacemaker/pcmk_trans_graph.c crm_err("Failed on unsupported command type: %s (id=%s)", crm_element_name(action->xml), id); action 215 lib/pacemaker/pcmk_trans_graph.c crm_action_t *action = (crm_action_t *) lpc->data; action 221 lib/pacemaker/pcmk_trans_graph.c passed = initiate_action(graph, action); action 224 lib/pacemaker/pcmk_trans_graph.c crm_element_name(action->xml), action->id, synapse->id); action 226 lib/pacemaker/pcmk_trans_graph.c action->confirmed = TRUE; action 227 lib/pacemaker/pcmk_trans_graph.c action->failed = TRUE; action 24 lib/pacemaker/pcmk_trans_unpack.c crm_action_t *action = NULL; action 33 lib/pacemaker/pcmk_trans_unpack.c action = calloc(1, sizeof(crm_action_t)); action 34 lib/pacemaker/pcmk_trans_unpack.c if (action == NULL) { action 40 lib/pacemaker/pcmk_trans_unpack.c action->id = crm_parse_int(value, NULL); action 41 lib/pacemaker/pcmk_trans_unpack.c action->type = action_type_rsc; action 42 lib/pacemaker/pcmk_trans_unpack.c action->xml = copy_xml(xml_action); action 43 lib/pacemaker/pcmk_trans_unpack.c action->synapse = parent; action 45 lib/pacemaker/pcmk_trans_unpack.c if (pcmk__str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_RSC_OP, pcmk__str_casei)) { action 46 lib/pacemaker/pcmk_trans_unpack.c action->type = action_type_rsc; action 48 lib/pacemaker/pcmk_trans_unpack.c } else if (pcmk__str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_PSEUDO_EVENT, pcmk__str_casei)) { action 49 lib/pacemaker/pcmk_trans_unpack.c action->type = action_type_pseudo; action 51 lib/pacemaker/pcmk_trans_unpack.c } else if (pcmk__str_eq(crm_element_name(action->xml), XML_GRAPH_TAG_CRM_EVENT, pcmk__str_casei)) { action 52 lib/pacemaker/pcmk_trans_unpack.c action->type = action_type_crm; action 55 lib/pacemaker/pcmk_trans_unpack.c action->params = xml2list(action->xml); action 57 lib/pacemaker/pcmk_trans_unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_timeout"); action 59 lib/pacemaker/pcmk_trans_unpack.c action->timeout = crm_parse_int(value, NULL); action 63 lib/pacemaker/pcmk_trans_unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_start_delay"); action 65 lib/pacemaker/pcmk_trans_unpack.c action->timeout += crm_parse_int(value, NULL); action 68 lib/pacemaker/pcmk_trans_unpack.c if (pcmk__guint_from_hash(action->params, action 70 lib/pacemaker/pcmk_trans_unpack.c &(action->interval_ms)) != pcmk_rc_ok) { action 71 lib/pacemaker/pcmk_trans_unpack.c action->interval_ms = 0; action 74 lib/pacemaker/pcmk_trans_unpack.c value = g_hash_table_lookup(action->params, "CRM_meta_can_fail"); action 76 lib/pacemaker/pcmk_trans_unpack.c crm_str_to_boolean(value, &(action->can_fail)); action 79 lib/pacemaker/pcmk_trans_unpack.c crm_trace("Action %d has timer set to %dms", action->id, action->timeout); action 81 lib/pacemaker/pcmk_trans_unpack.c return action; action 115 lib/pacemaker/pcmk_trans_unpack.c xmlNode *action = NULL; action 117 lib/pacemaker/pcmk_trans_unpack.c for (action = pcmk__xml_first_child(action_set); action != NULL; action 118 lib/pacemaker/pcmk_trans_unpack.c action = pcmk__xml_next(action)) { action 119 lib/pacemaker/pcmk_trans_unpack.c crm_action_t *new_action = unpack_action(new_synapse, action); action 165 lib/pacemaker/pcmk_trans_unpack.c static void destroy_action(crm_action_t * action); action 243 lib/pacemaker/pcmk_trans_unpack.c destroy_action(crm_action_t * action) action 245 lib/pacemaker/pcmk_trans_unpack.c if (action->timer && action->timer->source_id != 0) { action 246 lib/pacemaker/pcmk_trans_unpack.c crm_warn("Cancelling timer for action %d (src=%d)", action->id, action->timer->source_id); action 247 lib/pacemaker/pcmk_trans_unpack.c g_source_remove(action->timer->source_id); action 249 lib/pacemaker/pcmk_trans_unpack.c if (action->params) { action 250 lib/pacemaker/pcmk_trans_unpack.c g_hash_table_destroy(action->params); action 252 lib/pacemaker/pcmk_trans_unpack.c free_xml(action->xml); action 253 lib/pacemaker/pcmk_trans_unpack.c free(action->timer); action 254 lib/pacemaker/pcmk_trans_unpack.c free(action); action 261 lib/pacemaker/pcmk_trans_unpack.c crm_action_t *action = g_list_nth_data(synapse->actions, 0); action 263 lib/pacemaker/pcmk_trans_unpack.c synapse->actions = g_list_remove(synapse->actions, action); action 264 lib/pacemaker/pcmk_trans_unpack.c destroy_action(action); action 268 lib/pacemaker/pcmk_trans_unpack.c crm_action_t *action = g_list_nth_data(synapse->inputs, 0); action 270 lib/pacemaker/pcmk_trans_unpack.c synapse->inputs = g_list_remove(synapse->inputs, action); action 271 lib/pacemaker/pcmk_trans_unpack.c destroy_action(action); action 294 lib/pacemaker/pcmk_trans_unpack.c convert_graph_action(xmlNode * resource, crm_action_t * action, int status, int rc) action 303 lib/pacemaker/pcmk_trans_unpack.c CRM_CHECK(action != NULL, return NULL); action 304 lib/pacemaker/pcmk_trans_unpack.c CRM_CHECK(action->type == action_type_rsc, return NULL); action 306 lib/pacemaker/pcmk_trans_unpack.c action_resource = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); action 307 lib/pacemaker/pcmk_trans_unpack.c CRM_CHECK(action_resource != NULL, crm_log_xml_warn(action->xml, "Bad"); action 311 lib/pacemaker/pcmk_trans_unpack.c crm_element_value(action->xml, XML_LRM_ATTR_TASK), action 312 lib/pacemaker/pcmk_trans_unpack.c action->interval_ms); action 320 lib/pacemaker/pcmk_trans_unpack.c g_hash_table_iter_init(&iter, action->params); action 20 lib/pacemaker/pcmk_trans_utils.c pseudo_action_dummy(crm_graph_t * graph, crm_action_t * action) action 34 lib/pacemaker/pcmk_trans_utils.c crm_trace("Dummy event handler: action %d executed", action->id); action 35 lib/pacemaker/pcmk_trans_utils.c if (action->id == fail) { action 36 lib/pacemaker/pcmk_trans_utils.c crm_err("Dummy event handler: pretending action %d failed", action->id); action 37 lib/pacemaker/pcmk_trans_utils.c action->failed = TRUE; action 40 lib/pacemaker/pcmk_trans_utils.c action->confirmed = TRUE; action 41 lib/pacemaker/pcmk_trans_utils.c update_graph(graph, action); action 121 lib/pacemaker/pcmk_trans_utils.c crm_action_t *action = (crm_action_t *) aIter->data; action 123 lib/pacemaker/pcmk_trans_utils.c if (action->id == id) { action 124 lib/pacemaker/pcmk_trans_utils.c return action; action 197 lib/pacemaker/pcmk_trans_utils.c crm_action_t *action, const char *pending_inputs) action 199 lib/pacemaker/pcmk_trans_utils.c const char *key = crm_element_value(action->xml, XML_LRM_ATTR_TASK_KEY); action 200 lib/pacemaker/pcmk_trans_utils.c const char *host = crm_element_value(action->xml, XML_LRM_ATTR_TARGET); action 203 lib/pacemaker/pcmk_trans_utils.c actiontype2text(action->type), key); action 207 lib/pacemaker/pcmk_trans_utils.c action->id, desc, (host? " on " : ""), (host? host : ""), action 231 lib/pacemaker/pcmk_trans_utils.c print_action(int log_level, const char *prefix, crm_action_t * action) action 233 lib/pacemaker/pcmk_trans_utils.c print_synapse(log_level, NULL, action->synapse); action 278 lib/pacemaker/pcmk_trans_utils.c enum transition_action action, const char *abort_reason) action 296 lib/pacemaker/pcmk_trans_utils.c if (graph->completion_action < action) { action 298 lib/pacemaker/pcmk_trans_utils.c abort2text(graph->completion_action), abort2text(action), abort_reason); action 299 lib/pacemaker/pcmk_trans_utils.c graph->completion_action = action; action 2643 lib/pengine/unpack.c xmlNode *action = find_lrm_op(rsc->id, action_name, node_name, NULL, TRUE, action 2646 lib/pengine/unpack.c return pe__call_id(action) > call_id; action 2909 lib/pengine/unpack.c pe_action_t *action = NULL; action 2961 lib/pengine/unpack.c action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); action 2962 lib/pengine/unpack.c if (cmp_on_fail(*on_fail, action->on_fail) < 0) { action 2964 lib/pengine/unpack.c fail2text(action->on_fail), action->uuid, key); action 2965 lib/pengine/unpack.c *on_fail = action->on_fail; action 2981 lib/pengine/unpack.c if (action->on_fail == action_fail_block) { action 3011 lib/pengine/unpack.c fail2text(action->on_fail), role2text(action->fail_role)); action 3013 lib/pengine/unpack.c if (action->fail_role != RSC_ROLE_STARTED && rsc->next_role < action->fail_role) { action 3014 lib/pengine/unpack.c rsc->next_role = action->fail_role; action 3017 lib/pengine/unpack.c if (action->fail_role == RSC_ROLE_STOPPED) { action 3043 lib/pengine/unpack.c pe_free_action(action); action 3231 lib/pengine/unpack.c order_after_remote_fencing(pe_action_t *action, pe_resource_t *remote_conn, action 3240 lib/pengine/unpack.c order_actions(fence, action, pe_order_implies_then); action 3440 lib/pengine/unpack.c pe_action_t *action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); action 3442 lib/pengine/unpack.c result = action->on_fail; action 3443 lib/pengine/unpack.c pe_free_action(action); action 26 lib/pengine/utils.c static void unpack_operation(pe_action_t * action, xmlNode * xml_obj, pe_resource_t * container, action 33 lib/pengine/utils.c pe_rsc_action_details(pe_action_t *action) action 37 lib/pengine/utils.c CRM_CHECK(action != NULL, return NULL); action 39 lib/pengine/utils.c if (action->action_details == NULL) { action 40 lib/pengine/utils.c action->action_details = calloc(1, sizeof(pe_rsc_action_details_t)); action 41 lib/pengine/utils.c CRM_CHECK(action->action_details != NULL, return NULL); action 44 lib/pengine/utils.c details = (pe_rsc_action_details_t *) action->action_details; action 56 lib/pengine/utils.c pe_free_rsc_action_details(pe_action_t *action) action 60 lib/pengine/utils.c if ((action == NULL) || (action->action_details == NULL)) { action 64 lib/pengine/utils.c details = (pe_rsc_action_details_t *) action->action_details; action 73 lib/pengine/utils.c action->action_details = NULL; action 469 lib/pengine/utils.c pe_action_t *action = NULL; action 479 lib/pengine/utils.c action = g_hash_table_lookup(data_set->singletons, key); action 497 lib/pengine/utils.c action = g_list_nth_data(possible_matches, 0); action 499 lib/pengine/utils.c action->id, task, (rsc? rsc->id : "no resource"), action 500 lib/pengine/utils.c action->uuid, action 505 lib/pengine/utils.c if (action == NULL) { action 514 lib/pengine/utils.c action = calloc(1, sizeof(pe_action_t)); action 516 lib/pengine/utils.c action->id = data_set->action_id++; action 518 lib/pengine/utils.c action->id = 0; action 520 lib/pengine/utils.c action->rsc = rsc; action 521 lib/pengine/utils.c action->task = strdup(task); action 523 lib/pengine/utils.c action->node = pe__copy_node(on_node); action 525 lib/pengine/utils.c action->uuid = strdup(key); action 529 lib/pengine/utils.c pe__set_action_flags(action, pe_action_dc); action 532 lib/pengine/utils.c pe__set_action_flags(action, pe_action_runnable); action 534 lib/pengine/utils.c pe__set_action_flags(action, pe_action_optional); action 536 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_optional); action 539 lib/pengine/utils.c action->extra = crm_str_table_new(); action 540 lib/pengine/utils.c action->meta = crm_str_table_new(); action 543 lib/pengine/utils.c data_set->actions = g_list_prepend(data_set->actions, action); action 545 lib/pengine/utils.c g_hash_table_insert(data_set->singletons, action->uuid, action); action 552 lib/pengine/utils.c action->op_entry = find_rsc_op_entry_helper(rsc, key, TRUE); action 555 lib/pengine/utils.c unpack_operation(action, action->op_entry, rsc->container, data_set, action 559 lib/pengine/utils.c rsc->actions = g_list_prepend(rsc->actions, action); action 564 lib/pengine/utils.c if (!optional && pcmk_is_set(action->flags, pe_action_optional)) { action 565 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_optional); action 569 lib/pengine/utils.c enum action_tasks a_task = text2task(action->task); action 577 lib/pengine/utils.c if (!pcmk_is_set(action->flags, pe_action_have_node_attrs) action 578 lib/pengine/utils.c && action->node != NULL && action->op_entry != NULL) { action 580 lib/pengine/utils.c .node_hash = action->node->details->attrs, action 588 lib/pengine/utils.c pe__set_action_flags(action, pe_action_have_node_attrs); action 589 lib/pengine/utils.c pe__unpack_dataset_nvpairs(action->op_entry, XML_TAG_ATTR_SETS, action 590 lib/pengine/utils.c &rule_data, action->extra, NULL, action 594 lib/pengine/utils.c if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 597 lib/pengine/utils.c } else if (action->node == NULL) { action 599 lib/pengine/utils.c action->uuid); action 600 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_runnable); action 603 lib/pengine/utils.c && g_hash_table_lookup(action->meta, action 606 lib/pengine/utils.c action->uuid, action->node->details->uname, rsc->id); action 607 lib/pengine/utils.c pe__set_action_flags(action, pe_action_optional); action 610 lib/pengine/utils.c } else if (!pcmk_is_set(action->flags, pe_action_dc) action 611 lib/pengine/utils.c && !(action->node->details->online) action 612 lib/pengine/utils.c && (!pe__is_guest_node(action->node) action 613 lib/pengine/utils.c || action->node->details->remote_requires_reset)) { action 614 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_runnable); action 617 lib/pengine/utils.c action->uuid, action->node->details->uname); action 618 lib/pengine/utils.c if (pcmk_is_set(action->rsc->flags, pe_rsc_managed) action 620 lib/pengine/utils.c && action->node->details->unclean == FALSE) { action 621 lib/pengine/utils.c pe_fence_node(data_set, action->node, "resource actions are unrunnable", FALSE); action 624 lib/pengine/utils.c } else if (!pcmk_is_set(action->flags, pe_action_dc) action 625 lib/pengine/utils.c && action->node->details->pending) { action 626 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_runnable); action 629 lib/pengine/utils.c action->uuid, action->node->details->uname); action 631 lib/pengine/utils.c } else if (action->needs == rsc_req_nothing) { action 632 lib/pengine/utils.c pe_action_set_reason(action, NULL, TRUE); action 633 lib/pengine/utils.c if (pe__is_guest_node(action->node) action 634 lib/pengine/utils.c && !pe_can_fence(data_set, action->node)) { action 642 lib/pengine/utils.c action->uuid, action->node->details->uname); action 643 lib/pengine/utils.c pe__clear_action_flags(action, pe_action_runnable); action 646 lib/pengine/utils.c action->uuid, action->node->details->uname); action 647 lib/pengine/utils.c pe__set_action_flags(action, pe_action_runnable); action 654 lib/pengine/utils.c } else if (action->needs == rsc_req_stonith) { action 655 lib/pengine/utils.c crm_trace("Action %s requires only stonith", action->uuid); action 656 lib/pengine/utils.c action->runnable = TRUE; action 660 lib/pengine/utils.c action->uuid, action->node->details->uname); action 661 lib/pengine/utils.c pe_action_set_flag_reason(__func__, __LINE__, action, NULL, action 667 lib/pengine/utils.c action->uuid, action->node->details->uname); action 668 lib/pengine/utils.c pe_action_set_flag_reason(__func__, __LINE__, action, NULL, action 675 lib/pengine/utils.c pe__set_action_flags(action, pe_action_runnable); action 685 lib/pengine/utils.c if (pcmk_is_set(action->flags, pe_action_runnable)) { action 696 lib/pengine/utils.c return action; action 706 lib/pengine/utils.c unpack_operation_on_fail(pe_action_t * action) action 714 lib/pengine/utils.c const char *value = g_hash_table_lookup(action->meta, XML_OP_ATTR_ON_FAIL); action 716 lib/pengine/utils.c if (pcmk__str_eq(action->task, CRMD_ACTION_STOP, pcmk__str_casei) action 721 lib/pengine/utils.c "allowed for stop", action->rsc->id, value); action 724 lib/pengine/utils.c } else if (pcmk__str_eq(action->task, CRMD_ACTION_DEMOTE, pcmk__str_casei) && !value) { action 728 lib/pengine/utils.c CRM_CHECK(action->rsc != NULL, return NULL); action 730 lib/pengine/utils.c for (operation = pcmk__xe_first_child(action->rsc->ops_xml); action 756 lib/pengine/utils.c } else if (pcmk__str_eq(action->task, CRM_OP_LRM_DELETE, pcmk__str_casei)) { action 760 lib/pengine/utils.c name = crm_element_value(action->op_entry, "name"); action 761 lib/pengine/utils.c role = crm_element_value(action->op_entry, "role"); action 762 lib/pengine/utils.c interval_spec = crm_element_value(action->op_entry, action 771 lib/pengine/utils.c "allowed for it", action->rsc->id, name); action 892 lib/pengine/utils.c pe_get_configured_timeout(pe_resource_t *rsc, const char *action, pe_working_set_t *data_set) action 910 lib/pengine/utils.c if (pcmk__str_eq(action, crm_element_value(child, XML_NVPAIR_ATTR_NAME), action 992 lib/pengine/utils.c unpack_operation(pe_action_t * action, xmlNode * xml_obj, pe_resource_t * container, action 1002 lib/pengine/utils.c .standard = crm_element_value(action->rsc->xml, XML_AGENT_ATTR_CLASS), action 1003 lib/pengine/utils.c .provider = crm_element_value(action->rsc->xml, XML_AGENT_ATTR_PROVIDER), action 1004 lib/pengine/utils.c .agent = crm_element_value(action->rsc->xml, XML_EXPR_ATTR_TYPE) action 1008 lib/pengine/utils.c .op_name = action->task, action 1021 lib/pengine/utils.c CRM_CHECK(action && action->rsc, return); action 1025 lib/pengine/utils.c action->meta, NULL, FALSE, data_set); action 1028 lib/pengine/utils.c if (pcmk__str_eq(action->task, RSC_STATUS, pcmk__str_casei) action 1030 lib/pengine/utils.c xmlNode *min_interval_mon = find_min_interval_mon(action->rsc, FALSE); action 1036 lib/pengine/utils.c "monitor's timeout '%s'", action->uuid, value); action 1037 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_ATTR_TIMEOUT), action 1048 lib/pengine/utils.c action->meta, NULL, TRUE, data_set); action 1051 lib/pengine/utils.c rsc_details = pe_rsc_action_details(action); action 1070 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(prop_name), strdup(prop_value)); action 1074 lib/pengine/utils.c g_hash_table_remove(action->meta, "id"); action 1078 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_LRM_ATTR_INTERVAL), action 1081 lib/pengine/utils.c g_hash_table_remove(action->meta, XML_LRM_ATTR_INTERVAL); action 1100 lib/pengine/utils.c && (pcmk__str_eq(action->task, RSC_START, pcmk__str_casei) action 1101 lib/pengine/utils.c || (pcmk__str_eq(action->task, RSC_STATUS, pcmk__str_casei) action 1103 lib/pengine/utils.c && action->rsc->parameters) { action 1105 lib/pengine/utils.c value = g_hash_table_lookup(action->rsc->parameters, action 1110 lib/pengine/utils.c "overriding default", action->uuid, value); action 1111 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_ATTR_TIMEOUT), action 1117 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_ATTR_TIMEOUT); action 1119 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_ATTR_TIMEOUT), action 1122 lib/pengine/utils.c if (!pcmk__strcase_any_of(action->task, RSC_START, RSC_PROMOTE, NULL)) { action 1123 lib/pengine/utils.c action->needs = rsc_req_nothing; action 1126 lib/pengine/utils.c } else if (pcmk_is_set(action->rsc->flags, pe_rsc_needs_fencing)) { action 1127 lib/pengine/utils.c action->needs = rsc_req_stonith; action 1130 lib/pengine/utils.c } else if (pcmk_is_set(action->rsc->flags, pe_rsc_needs_quorum)) { action 1131 lib/pengine/utils.c action->needs = rsc_req_quorum; action 1135 lib/pengine/utils.c action->needs = rsc_req_nothing; action 1138 lib/pengine/utils.c pe_rsc_trace(action->rsc, "%s requires %s", action->uuid, value); action 1140 lib/pengine/utils.c value = unpack_operation_on_fail(action); action 1145 lib/pengine/utils.c action->on_fail = action_fail_block; action 1146 lib/pengine/utils.c g_hash_table_insert(action->meta, strdup(XML_OP_ATTR_ON_FAIL), strdup("block")); action 1150 lib/pengine/utils.c action->on_fail = action_fail_fence; action 1156 lib/pengine/utils.c "valid when fencing is disabled", action->uuid); action 1157 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1158 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1163 lib/pengine/utils.c action->on_fail = action_fail_standby; action 1167 lib/pengine/utils.c action->on_fail = action_fail_ignore; action 1171 lib/pengine/utils.c action->on_fail = action_fail_migrate; action 1175 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1176 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1180 lib/pengine/utils.c action->on_fail = action_fail_recover; action 1185 lib/pengine/utils.c action->on_fail = action_fail_restart_container; action 1193 lib/pengine/utils.c action->on_fail = action_fail_demote; action 1197 lib/pengine/utils.c pe_err("Resource %s: Unknown failure type (%s)", action->rsc->id, value); action 1203 lib/pengine/utils.c action->on_fail = action_fail_restart_container; action 1214 lib/pengine/utils.c } else if (((value == NULL) || !pcmk_is_set(action->rsc->flags, pe_rsc_managed)) action 1215 lib/pengine/utils.c && pe__resource_is_remote_conn(action->rsc, data_set) action 1216 lib/pengine/utils.c && !(pcmk__str_eq(action->task, CRMD_ACTION_STATUS, pcmk__str_casei) action 1218 lib/pengine/utils.c && !pcmk__str_eq(action->task, CRMD_ACTION_START, pcmk__str_casei)) { action 1220 lib/pengine/utils.c if (!pcmk_is_set(action->rsc->flags, pe_rsc_managed)) { action 1221 lib/pengine/utils.c action->on_fail = action_fail_stop; action 1222 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1232 lib/pengine/utils.c if (action->rsc->remote_reconnect_ms) { action 1233 lib/pengine/utils.c action->fail_role = RSC_ROLE_STOPPED; action 1235 lib/pengine/utils.c action->on_fail = action_fail_reset_remote; action 1238 lib/pengine/utils.c } else if (value == NULL && pcmk__str_eq(action->task, CRMD_ACTION_STOP, pcmk__str_casei)) { action 1240 lib/pengine/utils.c action->on_fail = action_fail_fence; action 1244 lib/pengine/utils.c action->on_fail = action_fail_block; action 1249 lib/pengine/utils.c action->on_fail = action_fail_recover; action 1253 lib/pengine/utils.c pe_rsc_trace(action->rsc, "%s failure handling: %s", action 1254 lib/pengine/utils.c action->uuid, value); action 1258 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, "role_after_failure"); action 1264 lib/pengine/utils.c if (value != NULL && action->fail_role == RSC_ROLE_UNKNOWN) { action 1265 lib/pengine/utils.c action->fail_role = text2role(value); action 1268 lib/pengine/utils.c if (action->fail_role == RSC_ROLE_UNKNOWN) { action 1269 lib/pengine/utils.c if (pcmk__str_eq(action->task, CRMD_ACTION_PROMOTE, pcmk__str_casei)) { action 1270 lib/pengine/utils.c action->fail_role = RSC_ROLE_SLAVE; action 1272 lib/pengine/utils.c action->fail_role = RSC_ROLE_STARTED; action 1275 lib/pengine/utils.c pe_rsc_trace(action->rsc, "%s failure results in: %s", action 1276 lib/pengine/utils.c action->uuid, role2text(action->fail_role)); action 1278 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_OP_ATTR_START_DELAY); action 1280 lib/pengine/utils.c unpack_start_delay(value, action->meta); action 1284 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_OP_ATTR_ORIGIN); action 1287 lib/pengine/utils.c g_hash_table_replace(action->meta, strdup(XML_OP_ATTR_START_DELAY), action 1419 lib/pengine/utils.c pe_free_action(pe_action_t * action) action 1421 lib/pengine/utils.c if (action == NULL) { action 1424 lib/pengine/utils.c g_list_free_full(action->actions_before, free); /* pe_action_wrapper_t* */ action 1425 lib/pengine/utils.c g_list_free_full(action->actions_after, free); /* pe_action_wrapper_t* */ action 1426 lib/pengine/utils.c if (action->extra) { action 1427 lib/pengine/utils.c g_hash_table_destroy(action->extra); action 1429 lib/pengine/utils.c if (action->meta) { action 1430 lib/pengine/utils.c g_hash_table_destroy(action->meta); action 1433 lib/pengine/utils.c if (action->rsc) { action 1434 lib/pengine/utils.c pe_free_rsc_action_details(action); action 1437 lib/pengine/utils.c free(action->cancel_task); action 1438 lib/pengine/utils.c free(action->reason); action 1439 lib/pengine/utils.c free(action->task); action 1440 lib/pengine/utils.c free(action->uuid); action 1441 lib/pengine/utils.c free(action->node); action 1442 lib/pengine/utils.c free(action); action 1455 lib/pengine/utils.c pe_action_t *action = (pe_action_t *) gIter->data; action 1457 lib/pengine/utils.c value = g_hash_table_lookup(action->meta, XML_LRM_ATTR_INTERVAL_MS); action 1462 lib/pengine/utils.c } else if (pcmk__str_eq(CRMD_ACTION_CANCEL, action->task, pcmk__str_casei)) { action 1465 lib/pengine/utils.c crm_trace("(null) Found: %s", action->uuid); action 1466 lib/pengine/utils.c result = g_list_prepend(result, action); action 1468 lib/pengine/utils.c } else if (action->node == NULL) { action 1470 lib/pengine/utils.c } else if (action->node->details != not_on_node->details) { action 1471 lib/pengine/utils.c crm_trace("Found: %s", action->uuid); action 1472 lib/pengine/utils.c result = g_list_prepend(result, action); action 1510 lib/pengine/utils.c pe_action_t *action = (pe_action_t *) gIter->data; action 1512 lib/pengine/utils.c if (uuid != NULL && !pcmk__str_eq(uuid, action->uuid, pcmk__str_casei)) { action 1515 lib/pengine/utils.c } else if (task != NULL && !pcmk__str_eq(task, action->task, pcmk__str_casei)) { action 1519 lib/pengine/utils.c return action; action 1521 lib/pengine/utils.c } else if (action->node == NULL) { action 1524 lib/pengine/utils.c } else if (on_node->details == action->node->details) { action 1525 lib/pengine/utils.c return action; action 1541 lib/pengine/utils.c pe_action_t *action = (pe_action_t *) gIter->data; action 1543 lib/pengine/utils.c if (!pcmk__str_eq(key, action->uuid, pcmk__str_casei)) { action 1544 lib/pengine/utils.c crm_trace("%s does not match action %s", key, action->uuid); action 1549 lib/pengine/utils.c result = g_list_prepend(result, action); action 1551 lib/pengine/utils.c } else if (action->node == NULL) { action 1555 lib/pengine/utils.c action->node = pe__copy_node(on_node); action 1556 lib/pengine/utils.c result = g_list_prepend(result, action); action 1558 lib/pengine/utils.c } else if (on_node->details == action->node->details) { action 1560 lib/pengine/utils.c result = g_list_prepend(result, action); action 1564 lib/pengine/utils.c key, action->node->details->uname, action 1586 lib/pengine/utils.c pe_action_t *action = (pe_action_t *) gIter->data; action 1588 lib/pengine/utils.c if (action->node == NULL) { action 1590 lib/pengine/utils.c key, action->uuid); action 1592 lib/pengine/utils.c } else if (!pcmk__str_eq(key, action->uuid, pcmk__str_casei)) { action 1593 lib/pengine/utils.c crm_trace("Desired action %s doesn't match %s", key, action->uuid); action 1595 lib/pengine/utils.c } else if (!pcmk__str_eq(on_node->details->id, action->node->details->id, pcmk__str_casei)) { action 1597 lib/pengine/utils.c key, on_node->details->id, action->node->details->id); action 1601 lib/pengine/utils.c result = g_list_prepend(result, action); action 1907 lib/pengine/utils.c if (after->action == rh_action && (after->type & order)) { action 1913 lib/pengine/utils.c wrapper->action = rh_action; action 1920 lib/pengine/utils.c wrapper->action = lh_action; action 2063 lib/pengine/utils.c pe_action_t *action = custom_action(rsc, strdup(key), task, node, TRUE, FALSE, data_set); action 2091 lib/pengine/utils.c g_hash_table_foreach(action->extra, hash2field, data->params_all); action 2093 lib/pengine/utils.c g_hash_table_foreach(action->meta, hash2metafield, data->params_all); action 2113 lib/pengine/utils.c pe_rsc_action_details_t *details = pe_rsc_action_details(action); action 2121 lib/pengine/utils.c pe_free_action(action); action 2621 lib/pengine/utils.c pe_action_t *action, pe_action_t *reason, const char *text, action 2644 lib/pengine/utils.c flags, action->uuid, (reason? reason->uuid : "0")); action 2648 lib/pengine/utils.c if (pcmk_is_set(action->flags, flags)) { action 2649 lib/pengine/utils.c pe__clear_action_flags_as(function, line, action, flags); action 2654 lib/pengine/utils.c if (!pcmk_is_set(action->flags, flags)) { action 2655 lib/pengine/utils.c pe__set_action_flags_as(function, line, action, flags); action 2663 lib/pengine/utils.c pe_action_set_reason(action, text, overwrite); action 2671 lib/pengine/utils.c if(reason_text && action->rsc != reason->rsc) { action 2672 lib/pengine/utils.c pe_action_set_reason(action, reason_text, overwrite); action 2678 lib/pengine/utils.c void pe_action_set_reason(pe_action_t *action, const char *reason, bool overwrite) action 2680 lib/pengine/utils.c if (action->reason != NULL && overwrite) { action 2681 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Changing %s reason from '%s' to '%s'", action 2682 lib/pengine/utils.c action->uuid, action->reason, crm_str(reason)); action 2683 lib/pengine/utils.c free(action->reason); action 2684 lib/pengine/utils.c } else if (action->reason == NULL) { action 2685 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Set %s reason to '%s'", action 2686 lib/pengine/utils.c action->uuid, crm_str(reason)); action 2693 lib/pengine/utils.c action->reason = strdup(reason); action 2695 lib/pengine/utils.c action->reason = NULL; action 167 lib/services/services.c const char *action, guint interval_ms, int timeout, action 200 lib/services/services.c if (pcmk__str_empty(action)) { action 218 lib/services/services.c op->id = pcmk__op_key(name, action, interval_ms); action 221 lib/services/services.c && pcmk__str_eq(action, "monitor", pcmk__str_casei)) { action 223 lib/services/services.c op->action = strdup("status"); action 225 lib/services/services.c op->action = strdup(action); action 241 lib/services/services.c op->opaque->args[1] = strdup(op->action); action 246 lib/services/services.c op->opaque->args[1] = strdup(op->action); action 261 lib/services/services.c if (pcmk__str_eq(op->action, "monitor", pcmk__str_casei) && (op->interval_ms == 0)) { action 352 lib/services/services.c svc_action_t *action = services_action_create_generic(exec, NULL); action 354 lib/services/services.c CRM_ASSERT(action); action 355 lib/services/services.c action->timeout = timeout; action 356 lib/services/services.c action->id = strdup(id); action 357 lib/services/services.c action->params = params; action 358 lib/services/services.c action->sequence = sequence; action 359 lib/services/services.c action->cb_data = cb_data; action 360 lib/services/services.c return action; action 397 lib/services/services.c services_alert_async(svc_action_t *action, void (*cb)(svc_action_t *op)) action 399 lib/services/services.c action->synchronous = false; action 400 lib/services/services.c action->opaque->callback = cb; action 401 lib/services/services.c return services_os_action_execute(action); action 441 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); action 506 lib/services/services.c free(op->action); action 550 lib/services/services.c services_action_cancel(const char *name, const char *action, guint interval_ms) action 553 lib/services/services.c char *id = pcmk__op_key(name, action, interval_ms); action 617 lib/services/services.c services_action_kick(const char *name, const char *action, guint interval_ms) action 620 lib/services/services.c char *id = pcmk__op_key(name, action, interval_ms); action 888 lib/services/services.c if (pcmk__str_eq(op->action, "meta-data", pcmk__str_casei)) { action 901 lib/services/services.c op->rsc, op->action, op->interval_ms, op->opaque->exec, op->rc); action 641 lib/services/services_linux.c && pcmk__str_eq(op->action, "status", pcmk__str_casei)) { action 717 lib/services/services_linux.c if (pcmk__str_eq(op->action, "stop", pcmk__str_casei)) { action 276 lib/services/services_lsb.c services_action_create(const char *name, const char *action, action 280 lib/services/services_lsb.c action, interval_ms, timeout, NULL, 0); action 234 lib/services/systemd.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); action 239 lib/services/systemd.c if (pcmk__str_eq(op->action, "stop", pcmk__str_casei)) { action 240 lib/services/systemd.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); action 245 lib/services/systemd.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); action 554 lib/services/systemd.c crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error.message); action 560 lib/services/systemd.c crm_warn("Call to %s passed but return type was unexpected", op->action); action 569 lib/services/systemd.c crm_info("Call to %s passed: %s", op->action, path); action 587 lib/services/systemd.c crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); action 725 lib/services/systemd.c const char *method = op->action; action 731 lib/services/systemd.c if (pcmk__str_eq(op->action, "monitor", pcmk__str_casei) || pcmk__str_eq(method, "status", pcmk__str_casei)) { action 821 lib/services/systemd.c crm_warn("%s operation on systemd unit %s named '%s' timed out", op->action, op->agent, op->rsc); action 838 lib/services/systemd.c op->synchronous ? "" : "a", op->action, op->agent, op->rsc); action 840 lib/services/systemd.c if (pcmk__str_eq(op->action, "meta-data", pcmk__str_casei)) { action 343 lib/services/upstart.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); action 345 lib/services/upstart.c if(pcmk__str_eq(op->action, "stop", pcmk__str_casei)) { action 346 lib/services/upstart.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); action 349 lib/services/upstart.c } else if(pcmk__str_eq(op->action, "start", pcmk__str_casei)) { action 350 lib/services/upstart.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); action 356 lib/services/upstart.c } else if (pcmk__str_eq(op->action, "start", pcmk__str_casei) action 358 lib/services/upstart.c crm_trace("Mapping %s failure for %s: starting a started resource is allowed", op->action, op->rsc); action 382 lib/services/upstart.c crm_err("%s for %s: %s", op->action, op->rsc, error.message); action 386 lib/services/upstart.c } else if (!g_strcmp0(op->action, "stop")) { action 392 lib/services/upstart.c crm_warn("Call to %s passed but return type was unexpected", op->action); action 401 lib/services/upstart.c crm_info("Call to %s passed: %s", op->action, path); action 423 lib/services/upstart.c const char *action = op->action; action 433 lib/services/upstart.c if (pcmk__str_eq(op->action, "meta-data", pcmk__str_casei)) { action 440 lib/services/upstart.c crm_debug("Could not obtain job named '%s' to %s", op->agent, action); action 441 lib/services/upstart.c if (!g_strcmp0(action, "stop")) { action 451 lib/services/upstart.c if (pcmk__strcase_any_of(op->action, "monitor", "status", NULL)) { 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 1558 tools/crm_mon.c pcmk__str_eq(hp->action, np->action, pcmk__str_casei) && action 335 tools/crm_mon_curses.c stonith_action_str(event->action), event->target, action 344 tools/crm_mon_curses.c stonith_action_str(event->action), event->target, action 352 tools/crm_mon_curses.c stonith_action_str(event->action), event->target, action 1532 tools/crm_resource_runtime.c static inline bool action_is_pending(pe_action_t *action) action 1534 tools/crm_resource_runtime.c if (pcmk_any_flags_set(action->flags, pe_action_optional|pe_action_pseudo) action 1535 tools/crm_resource_runtime.c || !pcmk_is_set(action->flags, pe_action_runnable) action 1536 tools/crm_resource_runtime.c || pcmk__str_eq("notify", action->task, pcmk__str_casei)) { action 1553 tools/crm_resource_runtime.c GListPtr action; action 1555 tools/crm_resource_runtime.c for (action = actions; action != NULL; action = action->next) { action 1556 tools/crm_resource_runtime.c pe_action_t *a = (pe_action_t *)action->data; action 1576 tools/crm_resource_runtime.c GListPtr action; action 1579 tools/crm_resource_runtime.c for (action = actions; action != NULL; action = action->next) { action 1580 tools/crm_resource_runtime.c pe_action_t *a = (pe_action_t *) action->data; action 1680 tools/crm_resource_runtime.c const char *action, GHashTable *params, action 1690 tools/crm_resource_runtime.c action, rsc_class); action 1713 tools/crm_resource_runtime.c op = resources_action_create(rsc_name, rsc_class, rsc_prov, rsc_type, action, 0, action 1719 tools/crm_resource_runtime.c op = resources_action_create(rsc_name, rsc_class, rsc_prov, rsc_type, action, 0, action 1766 tools/crm_resource_runtime.c action, rsc_name, rsc_class, rsc_prov ? rsc_prov : "", rsc_type, action 1770 tools/crm_resource_runtime.c action, rsc_name, rsc_class, rsc_prov ? rsc_prov : "", rsc_type, action 1775 tools/crm_resource_runtime.c if (resource_verbose == 0 && pcmk__str_eq(action, "validate-all", pcmk__str_casei)) action 1828 tools/crm_resource_runtime.c const char *action = NULL; action 1832 tools/crm_resource_runtime.c action = "validate-all"; action 1835 tools/crm_resource_runtime.c action = "monitor"; action 1838 tools/crm_resource_runtime.c action = rsc_action+6; action 1842 tools/crm_resource_runtime.c action = rsc_action+6; action 1848 tools/crm_resource_runtime.c action, rsc->id); action 1856 tools/crm_resource_runtime.c action = rsc_action; action 1877 tools/crm_resource_runtime.c timeout_ms = pe_get_configured_timeout(rsc, action, data_set); action 1882 tools/crm_resource_runtime.c exit_code = cli_resource_execute_from_params(rid, rclass, rprov, rtype, action, action 519 tools/crm_simulate.c create_action_name(pe_action_t *action) action 525 tools/crm_simulate.c const char *task = action->task; action 527 tools/crm_simulate.c if (action->node) { action 528 tools/crm_simulate.c action_host = action->node->details->uname; action 529 tools/crm_simulate.c } else if (!pcmk_is_set(action->flags, pe_action_pseudo)) { action 533 tools/crm_simulate.c if (pcmk__str_eq(action->task, RSC_CANCEL, pcmk__str_casei)) { action 535 tools/crm_simulate.c task = action->cancel_task; action 538 tools/crm_simulate.c if (action->rsc && action->rsc->clone_name) { action 539 tools/crm_simulate.c clone_name = action->rsc->clone_name; action 546 tools/crm_simulate.c if (pcmk__guint_from_hash(action->meta, action 552 tools/crm_simulate.c if (pcmk__strcase_any_of(action->task, RSC_NOTIFY, RSC_NOTIFIED, NULL)) { action 553 tools/crm_simulate.c const char *n_type = g_hash_table_lookup(action->meta, "notify_key_type"); action 554 tools/crm_simulate.c const char *n_task = g_hash_table_lookup(action->meta, "notify_key_operation"); action 571 tools/crm_simulate.c } else if (pcmk__str_eq(action->task, CRM_OP_FENCE, pcmk__str_casei)) { action 572 tools/crm_simulate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); action 574 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s '%s' %s", prefix, action->task, op, action_host); action 576 tools/crm_simulate.c } else if (action->rsc && action_host) { action 577 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s %s", prefix, action->uuid, action_host); action 580 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s %s", prefix, action->task, action_host); action 583 tools/crm_simulate.c action_name = crm_strdup_printf("%s", action->uuid); action 587 tools/crm_simulate.c char *with_id = crm_strdup_printf("%s (%d)", action_name, action->id); action 611 tools/crm_simulate.c pe_action_t *action = (pe_action_t *) gIter->data; action 615 tools/crm_simulate.c char *action_name = create_action_name(action); action 617 tools/crm_simulate.c crm_trace("Action %d: %s %s %p", action->id, action_name, action->uuid, action); action 619 tools/crm_simulate.c if (pcmk_is_set(action->flags, pe_action_pseudo)) { action 623 tools/crm_simulate.c if (pcmk_is_set(action->flags, pe_action_dumped)) { action 627 tools/crm_simulate.c } else if ((action->rsc != NULL) action 628 tools/crm_simulate.c && !pcmk_is_set(action->rsc->flags, pe_rsc_managed)) { action 635 tools/crm_simulate.c } else if (pcmk_is_set(action->flags, pe_action_optional)) { action 643 tools/crm_simulate.c CRM_CHECK(!pcmk_is_set(action->flags, pe_action_runnable), ;); action 646 tools/crm_simulate.c pe__set_action_flags(action, pe_action_dumped); action 656 tools/crm_simulate.c pe_action_t *action = (pe_action_t *) gIter->data; action 660 tools/crm_simulate.c for (gIter2 = action->actions_before; gIter2 != NULL; gIter2 = gIter2->next) { action 671 tools/crm_simulate.c } else if (pcmk_is_set(action->flags, pe_action_pseudo) action 676 tools/crm_simulate.c } else if (pcmk_is_set(before->action->flags, pe_action_dumped) action 677 tools/crm_simulate.c && pcmk_is_set(action->flags, pe_action_dumped) action 683 tools/crm_simulate.c before_name = create_action_name(before->action); action 684 tools/crm_simulate.c after_name = create_action_name(action); action 287 tools/crm_ticket.c ticket_warning(const char *ticket_id, const char *action) action 297 tools/crm_ticket.c if (pcmk__str_eq(action, "grant", pcmk__str_casei)) { action 320 tools/crm_ticket.c action, ticket_id, word); action 42 tools/stonith_admin.c char action = 0; action 391 tools/stonith_admin.c action = 'K'; action 396 tools/stonith_admin.c action = 'I'; action 400 tools/stonith_admin.c action = 'L'; action 405 tools/stonith_admin.c action = 'R'; action 410 tools/stonith_admin.c action = 'Q'; action 415 tools/stonith_admin.c action = 'D'; action 420 tools/stonith_admin.c action = 's'; action 425 tools/stonith_admin.c action = 'L'; action 432 tools/stonith_admin.c action = 'M'; action 437 tools/stonith_admin.c action = 'B'; action 444 tools/stonith_admin.c action = 'F'; action 451 tools/stonith_admin.c action = 'U'; action 457 tools/stonith_admin.c action = 'C'; action 463 tools/stonith_admin.c action = 'h'; action 468 tools/stonith_admin.c action = 'H'; action 473 tools/stonith_admin.c action = 'r'; action 478 tools/stonith_admin.c action = 'd'; action 482 tools/stonith_admin.c if (optind > argc || action == 0) { action 515 tools/stonith_admin.c switch (action) {