action 345 daemons/attrd/attrd_sync.c struct confirmation_action *action = (struct confirmation_action *) data; action 346 daemons/attrd/attrd_sync.c g_list_free_full(action->respondents, free); action 347 daemons/attrd/attrd_sync.c mainloop_timer_del(action->timer); action 348 daemons/attrd/attrd_sync.c pcmk__xml_free(action->xml); action 349 daemons/attrd/attrd_sync.c free(action->client_id); action 350 daemons/attrd/attrd_sync.c free(action); action 361 daemons/attrd/attrd_sync.c struct confirmation_action *action = (struct confirmation_action *) data; action 373 daemons/attrd/attrd_sync.c if (value == action) { action 374 daemons/attrd/attrd_sync.c pcmk__client_t *client = pcmk__find_client_by_id(action->client_id); action 380 daemons/attrd/attrd_sync.c pcmk__ipc_send_ack(client, action->ipc_id, action 381 daemons/attrd/attrd_sync.c action->flags|crm_ipc_client_response, action 445 daemons/attrd/attrd_sync.c struct confirmation_action *action = (struct confirmation_action *) value; action 447 daemons/attrd/attrd_sync.c if (pcmk__str_eq(action->client_id, client->id, pcmk__str_none)) { action 477 daemons/attrd/attrd_sync.c struct confirmation_action *action = NULL; action 505 daemons/attrd/attrd_sync.c action = pcmk__assert_alloc(1, sizeof(struct confirmation_action)); action 507 daemons/attrd/attrd_sync.c action->respondents = respondents; action 508 daemons/attrd/attrd_sync.c action->fn = fn; action 509 daemons/attrd/attrd_sync.c action->xml = pcmk__xml_copy(NULL, request->xml); action 510 daemons/attrd/attrd_sync.c action->client_id = pcmk__str_copy(request->ipc_client->id); action 511 daemons/attrd/attrd_sync.c action->ipc_id = request->ipc_id; action 512 daemons/attrd/attrd_sync.c action->flags = request->flags; action 514 daemons/attrd/attrd_sync.c action->timer = mainloop_timer_add(NULL, 15000, FALSE, confirmation_timeout_cb, action); action 515 daemons/attrd/attrd_sync.c mainloop_timer_start(action->timer); action 517 daemons/attrd/attrd_sync.c pcmk__intkey_table_insert(expected_confirmations, callid, action); action 545 daemons/attrd/attrd_sync.c struct confirmation_action *action = NULL; action 552 daemons/attrd/attrd_sync.c action = pcmk__intkey_table_lookup(expected_confirmations, callid); action 553 daemons/attrd/attrd_sync.c if (action == NULL) { action 557 daemons/attrd/attrd_sync.c node = g_list_find_custom(action->respondents, host, (GCompareFunc) strcasecmp); action 563 daemons/attrd/attrd_sync.c action->respondents = g_list_remove(action->respondents, node->data); action 564 daemons/attrd/attrd_sync.c crm_trace("Callid %d now waiting on %d confirmations", callid, g_list_length(action->respondents)); action 566 daemons/attrd/attrd_sync.c if (action->respondents == NULL) { action 567 daemons/attrd/attrd_sync.c action->fn(action->xml); action 121 daemons/controld/controld_cib.c do_cib_control(long long action, action 137 daemons/controld/controld_cib.c if (pcmk_is_set(action, A_CIB_STOP)) { action 149 daemons/controld/controld_cib.c if (!pcmk_is_set(action, A_CIB_START)) { action 1010 daemons/controld/controld_cib.c const char *action, guint interval_ms) action 1018 daemons/controld/controld_cib.c if (action == NULL) { action 1022 daemons/controld/controld_cib.c char *action_key = pcmk__op_key(rsc_id, action, interval_ms); action 97 daemons/controld/controld_cib.h const char *action, guint interval_ms); action 115 daemons/controld/controld_cib.h controld_action_is_recordable(const char *action) action 117 daemons/controld/controld_cib.h return !pcmk__str_any_of(action, PCMK_ACTION_CANCEL, PCMK_ACTION_DELETE, action 37 daemons/controld/controld_control.c do_ha_control(long long action, action 48 daemons/controld/controld_control.c if (action & A_HA_DISCONNECT) { action 55 daemons/controld/controld_control.c if (action & A_HA_CONNECT) { action 91 daemons/controld/controld_control.c if (action & ~(A_HA_CONNECT | A_HA_DISCONNECT)) { action 92 daemons/controld/controld_control.c crm_err("Unexpected action %s in %s", fsa_action2string(action), action 99 daemons/controld/controld_control.c do_shutdown(long long action, action 110 daemons/controld/controld_control.c do_shutdown_req(long long action, action 325 daemons/controld/controld_control.c do_exit(long long action, action 331 daemons/controld/controld_control.c if (pcmk_is_set(action, A_EXIT_1)) { action 343 daemons/controld/controld_control.c do_startup(long long action, action 463 daemons/controld/controld_control.c do_stop(long long action, action 474 daemons/controld/controld_control.c do_started(long long action, action 542 daemons/controld/controld_control.c do_recover(long long action, action 686 daemons/controld/controld_control.c do_read_config(long long action, action 71 daemons/controld/controld_election.c do_election_vote(long long action, action 117 daemons/controld/controld_election.c do_election_check(long long action, action 131 daemons/controld/controld_election.c do_election_count_vote(long long action, action 201 daemons/controld/controld_election.c do_dc_takeover(long long action, action 249 daemons/controld/controld_election.c do_dc_release(long long action, action 254 daemons/controld/controld_election.c if (action & A_DC_RELEASE) { action 259 daemons/controld/controld_election.c } else if (action & A_DC_RELEASED) { action 276 daemons/controld/controld_election.c crm_err("Unknown DC action %s", fsa_action2string(action)); action 311 daemons/controld/controld_execd.c try_local_executor_connect(long long action, fsa_data_t *msg_data, action 347 daemons/controld/controld_execd.c do_lrm_control(long long action, action 368 daemons/controld/controld_execd.c if (action & A_LRM_DISCONNECT) { action 370 daemons/controld/controld_execd.c if (action == A_LRM_DISCONNECT) { action 381 daemons/controld/controld_execd.c if (action & A_LRM_CONNECT) { action 382 daemons/controld/controld_execd.c try_local_executor_connect(action, msg_data, lrm_state); action 385 daemons/controld/controld_execd.c if (action & ~(A_LRM_CONNECT | A_LRM_DISCONNECT)) { action 386 daemons/controld/controld_execd.c crm_err("Unexpected action %s in %s", fsa_action2string(action), action 1096 daemons/controld/controld_execd.c synthesize_lrmd_failure(lrm_state_t *lrm_state, const xmlNode *action, action 1101 daemons/controld/controld_execd.c const char *operation = crm_element_value(action, PCMK_XA_OPERATION); action 1102 daemons/controld/controld_execd.c const char *target_node = crm_element_value(action, PCMK__META_ON_NODE); action 1103 daemons/controld/controld_execd.c xmlNode *xml_rsc = pcmk__xe_first_child(action, PCMK_XE_PRIMITIVE, NULL, action 1109 daemons/controld/controld_execd.c crm_element_value(action, PCMK__XA_OPERATION_KEY), rc, action 1120 daemons/controld/controld_execd.c op = construct_op(lrm_state, action, pcmk__xe_id(xml_rsc), operation); action 1133 daemons/controld/controld_execd.c process_lrm_event(lrm_state, op, NULL, action); action 1392 daemons/controld/controld_execd.c do_lrm_invoke(long long action, action 1839 daemons/controld/controld_execd.c should_cancel_recurring(const char *rsc_id, const char *action, guint interval_ms) action 1842 daemons/controld/controld_execd.c && (strcmp(action, PCMK_ACTION_MIGRATE_TO) == 0)) { action 1852 daemons/controld/controld_execd.c && !pcmk__str_any_of(action, PCMK_ACTION_MONITOR, action 1866 daemons/controld/controld_execd.c should_nack_action(const char *action) action 1869 daemons/controld/controld_execd.c && pcmk__str_eq(action, PCMK_ACTION_START, pcmk__str_none)) { action 1881 daemons/controld/controld_execd.c if (!pcmk__str_eq(action, PCMK_ACTION_STOP, pcmk__str_none)) { action 676 daemons/controld/controld_execd_state.c lrm_state_cancel(lrm_state_t *lrm_state, const char *rsc_id, const char *action, action 686 daemons/controld/controld_execd_state.c return remote_ra_cancel(lrm_state, rsc_id, action, interval_ms); action 689 daemons/controld/controld_execd_state.c action, interval_ms); action 737 daemons/controld/controld_execd_state.c const char *action, const char *userdata, action 763 daemons/controld/controld_execd_state.c rc = controld_execute_remote_agent(lrm_state, rsc_id, action, action 769 daemons/controld/controld_execd_state.c action, userdata, action 418 daemons/controld/controld_fencing.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) lpc2->data; action 420 daemons/controld/controld_fencing.c if ((action->type != pcmk__cluster_graph_action) action 421 daemons/controld/controld_fencing.c || pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 425 daemons/controld/controld_fencing.c task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 427 daemons/controld/controld_fencing.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 428 daemons/controld/controld_fencing.c last_action = action->xml; action 429 daemons/controld/controld_fencing.c pcmk__update_graph(graph, action); action 431 daemons/controld/controld_fencing.c action->id, pcmk__xe_id(action->xml)); action 520 daemons/controld/controld_fencing.c if (pcmk__str_eq(PCMK_ACTION_ON, event->action, pcmk__str_none)) { action 571 daemons/controld/controld_fencing.c event->action, executioner, client, event->origin, action 783 daemons/controld/controld_fencing.c pcmk__graph_action_t *action = NULL; action 822 daemons/controld/controld_fencing.c action = controld_get_action(stonith_id); action 823 daemons/controld/controld_fencing.c if (action == NULL) { action 831 daemons/controld/controld_fencing.c target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 838 daemons/controld/controld_fencing.c stop_te_timer(action); action 840 daemons/controld/controld_fencing.c const char *uuid = crm_element_value(action->xml, action 842 daemons/controld/controld_fencing.c const char *op = crm_meta_value(action->params, action 846 daemons/controld/controld_fencing.c if (!(pcmk_is_set(action->flags, pcmk__graph_action_confirmed))) { action 847 daemons/controld/controld_fencing.c te_action_confirmed(action, NULL); action 869 daemons/controld/controld_fencing.c value = crm_meta_value(action->params, PCMK__META_DIGESTS_ALL); action 873 daemons/controld/controld_fencing.c value = crm_meta_value(action->params, action 878 daemons/controld/controld_fencing.c } else if (!(pcmk_is_set(action->flags, pcmk__graph_action_sent_update))) { action 880 daemons/controld/controld_fencing.c pcmk__set_graph_action_flags(action, action 898 daemons/controld/controld_fencing.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 921 daemons/controld/controld_fencing.c pcmk__update_graph(controld_globals.transition_graph, action); action 954 daemons/controld/controld_fencing.c pcmk__graph_action_t *action) action 957 daemons/controld/controld_fencing.c const char *id = pcmk__xe_id(action->xml); action 958 daemons/controld/controld_fencing.c const char *uuid = crm_element_value(action->xml, PCMK__META_ON_NODE_UUID); action 959 daemons/controld/controld_fencing.c const char *target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 960 daemons/controld/controld_fencing.c const char *type = crm_meta_value(action->params, action 974 daemons/controld/controld_fencing.c crm_log_xml_warn(action->xml, "BadAction"); action 978 daemons/controld/controld_fencing.c priority_delay = crm_meta_value(action->params, action 993 daemons/controld/controld_fencing.c action->id, 0, action 25 daemons/controld/controld_fencing.h pcmk__graph_action_t *action); action 40 daemons/controld/controld_fsa.c void (*function) (long long action, action 56 daemons/controld/controld_fsa.c do_log(long long action, enum crmd_fsa_cause cause, action 62 daemons/controld/controld_fsa.c if (action & A_LOG) { action 64 daemons/controld/controld_fsa.c } else if (action & A_WARN) { action 66 daemons/controld/controld_fsa.c } else if (action & A_ERROR) { action 486 daemons/controld/controld_fsa.h const char *fsa_action2string(long long action); action 505 daemons/controld/controld_fsa.h void do_read_config(long long action, enum crmd_fsa_cause cause, action 510 daemons/controld/controld_fsa.h void do_pe_invoke(long long action, enum crmd_fsa_cause cause, action 515 daemons/controld/controld_fsa.h void do_log(long long action, enum crmd_fsa_cause cause, action 520 daemons/controld/controld_fsa.h void do_startup(long long action, enum crmd_fsa_cause cause, action 525 daemons/controld/controld_fsa.h void do_cib_control(long long action, enum crmd_fsa_cause cause, action 530 daemons/controld/controld_fsa.h void do_ha_control(long long action, enum crmd_fsa_cause cause, action 535 daemons/controld/controld_fsa.h void do_lrm_control(long long action, enum crmd_fsa_cause cause, action 540 daemons/controld/controld_fsa.h void do_pe_control(long long action, enum crmd_fsa_cause cause, action 545 daemons/controld/controld_fsa.h void do_te_control(long long action, enum crmd_fsa_cause cause, action 550 daemons/controld/controld_fsa.h void do_started(long long action, enum crmd_fsa_cause cause, action 555 daemons/controld/controld_fsa.h void do_msg_route(long long action, enum crmd_fsa_cause cause, action 560 daemons/controld/controld_fsa.h void do_recover(long long action, enum crmd_fsa_cause cause, action 565 daemons/controld/controld_fsa.h void do_election_vote(long long action, enum crmd_fsa_cause cause, action 570 daemons/controld/controld_fsa.h void do_election_count_vote(long long action, enum crmd_fsa_cause cause, action 576 daemons/controld/controld_fsa.h void do_election_check(long long action, enum crmd_fsa_cause cause, action 581 daemons/controld/controld_fsa.h void do_timer_control(long long action, enum crmd_fsa_cause cause, action 586 daemons/controld/controld_fsa.h void do_dc_takeover(long long action, enum crmd_fsa_cause cause, action 591 daemons/controld/controld_fsa.h void do_dc_release(long long action, enum crmd_fsa_cause cause, action 596 daemons/controld/controld_fsa.h void do_dc_join_offer_all(long long action, enum crmd_fsa_cause cause, action 601 daemons/controld/controld_fsa.h void do_dc_join_offer_one(long long action, enum crmd_fsa_cause cause, action 606 daemons/controld/controld_fsa.h void do_dc_join_ack(long long action, enum crmd_fsa_cause cause, action 611 daemons/controld/controld_fsa.h void do_dc_join_filter_offer(long long action, enum crmd_fsa_cause cause, action 617 daemons/controld/controld_fsa.h void do_dc_join_finalize(long long action, enum crmd_fsa_cause cause, action 623 daemons/controld/controld_fsa.h void do_cl_join_query(long long action, enum crmd_fsa_cause cause, action 628 daemons/controld/controld_fsa.h void do_cl_join_announce(long long action, enum crmd_fsa_cause cause, action 633 daemons/controld/controld_fsa.h void do_cl_join_offer_respond(long long action, enum crmd_fsa_cause cause, action 639 daemons/controld/controld_fsa.h void do_cl_join_finalize_respond(long long action, enum crmd_fsa_cause cause, action 645 daemons/controld/controld_fsa.h void do_lrm_invoke(long long action, enum crmd_fsa_cause cause, action 650 daemons/controld/controld_fsa.h void do_te_invoke(long long action, enum crmd_fsa_cause cause, action 655 daemons/controld/controld_fsa.h void do_shutdown_req(long long action, enum crmd_fsa_cause cause, action 660 daemons/controld/controld_fsa.h void do_shutdown(long long action, enum crmd_fsa_cause cause, action 665 daemons/controld/controld_fsa.h void do_stop(long long action, enum crmd_fsa_cause cause, action 670 daemons/controld/controld_fsa.h void do_exit(long long action, enum crmd_fsa_cause cause, action 675 daemons/controld/controld_fsa.h void do_dc_join_final(long long action, enum crmd_fsa_cause cause, action 48 daemons/controld/controld_join_client.c do_cl_join_query(long long action, action 69 daemons/controld/controld_join_client.c do_cl_join_announce(long long action, action 104 daemons/controld/controld_join_client.c do_cl_join_offer_respond(long long action, action 256 daemons/controld/controld_join_client.c do_cl_join_finalize_respond(long long action, action 316 daemons/controld/controld_join_dc.c do_dc_join_offer_all(long long action, action 345 daemons/controld/controld_join_dc.c do_dc_join_offer_one(long long action, action 440 daemons/controld/controld_join_dc.c do_dc_join_filter_offer(long long action, action 613 daemons/controld/controld_join_dc.c do_dc_join_finalize(long long action, action 761 daemons/controld/controld_join_dc.c do_dc_join_ack(long long action, action 1062 daemons/controld/controld_join_dc.c do_dc_join_final(long long action, action 133 daemons/controld/controld_lrm.h const char *action, guint interval_ms); action 135 daemons/controld/controld_lrm.h const char *action, const char *userdata, action 153 daemons/controld/controld_lrm.h const char *action, guint interval_ms); action 155 daemons/controld/controld_lrm.h const char *rsc_id, const char *action, action 282 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 51 daemons/controld/controld_remote_ra.c char *action; action 141 daemons/controld/controld_remote_ra.c free(cmd->action); action 414 daemons/controld/controld_remote_ra.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_START, pcmk__str_casei)) { action 417 daemons/controld/controld_remote_ra.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_MIGRATE_FROM, action 432 daemons/controld/controld_remote_ra.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, pcmk__str_casei)) { action 471 daemons/controld/controld_remote_ra.c op.op_type = cmd->action; action 544 daemons/controld/controld_remote_ra.c if (!pcmk__is_up_action(cmd->action)) { action 733 daemons/controld/controld_remote_ra.c if ((op->type == lrmd_event_connect) && pcmk__is_up_action(cmd->action)) { action 765 daemons/controld/controld_remote_ra.c crm_debug("Remote connection event matched %s action", cmd->action); action 770 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 787 daemons/controld/controld_remote_ra.c crm_debug("Remote poke event matched %s action", cmd->action); action 799 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 814 daemons/controld/controld_remote_ra.c crm_debug("Event did not match %s action", ra_data->cur_cmd->action); action 924 daemons/controld/controld_remote_ra.c if (pcmk__str_any_of(cmd->action, PCMK_ACTION_START, action 931 daemons/controld/controld_remote_ra.c cmd->action); action 937 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, PCMK_ACTION_MONITOR)) { action 960 daemons/controld/controld_remote_ra.c } else if (!strcmp(cmd->action, PCMK_ACTION_STOP)) { action 979 daemons/controld/controld_remote_ra.c } else if (strcmp(cmd->action, PCMK_ACTION_MIGRATE_TO) == 0) { action 985 daemons/controld/controld_remote_ra.c } else if (pcmk__str_any_of(cmd->action, PCMK_ACTION_RELOAD, action 1071 daemons/controld/controld_remote_ra.c is_remote_ra_supported_action(const char *action) action 1073 daemons/controld/controld_remote_ra.c return pcmk__str_any_of(action, action 1094 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 1106 daemons/controld/controld_remote_ra.c cmd->action, cmd->rsc_id, cmd->interval_ms, cmd->userdata); action 1119 daemons/controld/controld_remote_ra.c remove_cmd(GList * list, const char *action, guint interval_ms) action 1127 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, action, pcmk__str_casei)) { action 1141 daemons/controld/controld_remote_ra.c const char *action, guint interval_ms) action 1154 daemons/controld/controld_remote_ra.c ra_data->cmds = remove_cmd(ra_data->cmds, action, interval_ms); action 1155 daemons/controld/controld_remote_ra.c ra_data->recurring_cmds = remove_cmd(ra_data->recurring_cmds, action, action 1159 daemons/controld/controld_remote_ra.c (pcmk__str_eq(ra_data->cur_cmd->action, action, pcmk__str_casei))) { action 1187 daemons/controld/controld_remote_ra.c && pcmk__str_eq(ra_data->cur_cmd->action, PCMK_ACTION_MONITOR, action 1197 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 1206 daemons/controld/controld_remote_ra.c && pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 1264 daemons/controld/controld_remote_ra.c const char *action, const char *userdata, action 1275 daemons/controld/controld_remote_ra.c CRM_CHECK((lrm_state != NULL) && (rsc_id != NULL) && (action != NULL) action 1279 daemons/controld/controld_remote_ra.c if (!is_remote_ra_supported_action(action)) { action 1304 daemons/controld/controld_remote_ra.c cmd->action = pcmk__str_copy(action); action 217 daemons/controld/controld_schedulerd.c do_pe_control(long long action, action 222 daemons/controld/controld_schedulerd.c if (pcmk_is_set(action, A_PE_STOP)) { action 227 daemons/controld/controld_schedulerd.c if (pcmk_is_set(action, A_PE_START) action 324 daemons/controld/controld_schedulerd.c do_pe_invoke(long long action, action 333 daemons/controld/controld_schedulerd.c fsa_action2string(action)); action 23 daemons/controld/controld_te_actions.c void send_rsc_command(pcmk__graph_action_t *action); action 24 daemons/controld/controld_te_actions.c static void te_update_job_count(pcmk__graph_action_t *action, int offset); action 27 daemons/controld/controld_te_actions.c te_start_action_timer(const pcmk__graph_t *graph, pcmk__graph_action_t *action) action 29 daemons/controld/controld_te_actions.c action->timer = pcmk__create_timer(action->timeout + graph->network_delay, action 30 daemons/controld/controld_te_actions.c action_timer_callback, action); action 31 daemons/controld/controld_te_actions.c pcmk__assert(action->timer != 0); action 81 daemons/controld/controld_te_actions.c get_target_rc(pcmk__graph_action_t *action) action 85 daemons/controld/controld_te_actions.c pcmk__scan_min_int(crm_meta_value(action->params, PCMK__META_OP_TARGET_RC), action 100 daemons/controld/controld_te_actions.c execute_cluster_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 117 daemons/controld/controld_te_actions.c id = pcmk__xe_id(action->xml); action 120 daemons/controld/controld_te_actions.c task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 123 daemons/controld/controld_te_actions.c on_node = crm_element_value(action->xml, PCMK__META_ON_NODE); action 126 daemons/controld/controld_te_actions.c router_node = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 130 daemons/controld/controld_te_actions.c const char *mode = crm_element_value(action->xml, PCMK__XA_MODE); action 142 daemons/controld/controld_te_actions.c value = crm_meta_value(action->params, PCMK__META_OP_NO_WAIT); action 157 daemons/controld/controld_te_actions.c te_action_confirmed(action, graph); action 169 daemons/controld/controld_te_actions.c CRM_SYSTEM_CRMD, task, action->xml); action 172 daemons/controld/controld_te_actions.c action->id, get_target_rc(action), action 183 daemons/controld/controld_te_actions.c crm_err("Action %d failed: send", action->id); action 187 daemons/controld/controld_te_actions.c te_action_confirmed(action, graph); action 190 daemons/controld/controld_te_actions.c if (action->timeout <= 0) { action 192 daemons/controld/controld_te_actions.c action->id, task, on_node, action->timeout, graph->network_delay); action 193 daemons/controld/controld_te_actions.c action->timeout = (int) graph->network_delay; action 195 daemons/controld/controld_te_actions.c te_start_action_timer(graph, action); action 218 daemons/controld/controld_te_actions.c synthesize_timeout_event(const pcmk__graph_action_t *action, int target_rc) action 221 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 231 daemons/controld/controld_te_actions.c router_node = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 240 daemons/controld/controld_te_actions.c op = pcmk__event_from_graph_action(NULL, action, PCMK_EXEC_TIMEOUT, action 244 daemons/controld/controld_te_actions.c action->id, target_rc, action 251 daemons/controld/controld_te_actions.c controld_record_action_event(pcmk__graph_action_t *action, action 263 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 264 daemons/controld/controld_te_actions.c const char *task_uuid = crm_element_value(action->xml, action 266 daemons/controld/controld_te_actions.c const char *target_uuid = crm_element_value(action->xml, action 269 daemons/controld/controld_te_actions.c int target_rc = get_target_rc(action); action 271 daemons/controld/controld_te_actions.c action_rsc = pcmk__xe_first_child(action->xml, PCMK_XE_PRIMITIVE, NULL, action 279 daemons/controld/controld_te_actions.c crm_log_xml_err(action->xml, "Bad:action"); return); action 315 daemons/controld/controld_te_actions.c rc, action->id, task_uuid, target); action 316 daemons/controld/controld_te_actions.c pcmk__set_graph_action_flags(action, pcmk__graph_action_sent_update); action 320 daemons/controld/controld_te_actions.c controld_record_action_timeout(pcmk__graph_action_t *action) action 324 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 325 daemons/controld/controld_te_actions.c const char *task_uuid = crm_element_value(action->xml, action 328 daemons/controld/controld_te_actions.c int target_rc = get_target_rc(action); action 331 daemons/controld/controld_te_actions.c action->xml->name, action->id, task_uuid, target); action 333 daemons/controld/controld_te_actions.c op = synthesize_timeout_event(action, target_rc); action 334 daemons/controld/controld_te_actions.c controld_record_action_event(action, op); action 348 daemons/controld/controld_te_actions.c execute_rsc_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 370 daemons/controld/controld_te_actions.c pcmk__assert((action != NULL) && (action->xml != NULL)); action 372 daemons/controld/controld_te_actions.c pcmk__clear_graph_action_flags(action, pcmk__graph_action_executed); action 373 daemons/controld/controld_te_actions.c on_node = crm_element_value(action->xml, PCMK__META_ON_NODE); action 377 daemons/controld/controld_te_actions.c rsc_op = action->xml; action 379 daemons/controld/controld_te_actions.c task_uuid = crm_element_value(action->xml, PCMK__XA_OPERATION_KEY); action 387 daemons/controld/controld_te_actions.c action->id, get_target_rc(action), action 395 daemons/controld/controld_te_actions.c value = crm_meta_value(action->params, PCMK__META_OP_NO_WAIT); action 431 daemons/controld/controld_te_actions.c (no_wait? " without waiting" : ""), counter, action->id); action 438 daemons/controld/controld_te_actions.c pcmk__set_graph_action_flags(action, pcmk__graph_action_executed); action 441 daemons/controld/controld_te_actions.c crm_err("Action %d failed: send", action->id); action 448 daemons/controld/controld_te_actions.c crm_info("Action %d confirmed - no wait", action->id); action 449 daemons/controld/controld_te_actions.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 450 daemons/controld/controld_te_actions.c pcmk__update_graph(controld_globals.transition_graph, action); action 453 daemons/controld/controld_te_actions.c } else if (pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 455 daemons/controld/controld_te_actions.c action->id, task, task_uuid, on_node, action->timeout); action 457 daemons/controld/controld_te_actions.c if (action->timeout <= 0) { action 459 daemons/controld/controld_te_actions.c action->id, task, task_uuid, on_node, action->timeout, graph->network_delay); action 460 daemons/controld/controld_te_actions.c action->timeout = (int) graph->network_delay; action 462 daemons/controld/controld_te_actions.c te_update_job_count(action, 1); action 463 daemons/controld/controld_te_actions.c te_start_action_timer(graph, action); action 524 daemons/controld/controld_te_actions.c te_update_job_count(pcmk__graph_action_t *action, int offset) action 526 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 527 daemons/controld/controld_te_actions.c const char *target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 529 daemons/controld/controld_te_actions.c if ((action->type != pcmk__rsc_graph_action) || (target == NULL)) { action 538 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 544 daemons/controld/controld_te_actions.c const char *t1 = crm_meta_value(action->params, action 546 daemons/controld/controld_te_actions.c const char *t2 = crm_meta_value(action->params, action 553 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 570 daemons/controld/controld_te_actions.c allowed_on_node(const pcmk__graph_t *graph, const pcmk__graph_action_t *action, action 575 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 576 daemons/controld/controld_te_actions.c const char *id = crm_element_value(action->xml, PCMK__XA_OPERATION_KEY); action 624 daemons/controld/controld_te_actions.c graph_action_allowed(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 627 daemons/controld/controld_te_actions.c const char *task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 629 daemons/controld/controld_te_actions.c if (action->type != pcmk__rsc_graph_action) { action 638 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 643 daemons/controld/controld_te_actions.c target = crm_meta_value(action->params, PCMK__META_MIGRATE_SOURCE); action 644 daemons/controld/controld_te_actions.c if (!allowed_on_node(graph, action, target)) { action 648 daemons/controld/controld_te_actions.c target = crm_meta_value(action->params, PCMK__META_MIGRATE_TARGET); action 651 daemons/controld/controld_te_actions.c target = crm_element_value(action->xml, PCMK__META_ON_NODE); action 654 daemons/controld/controld_te_actions.c return allowed_on_node(graph, action, target); action 664 daemons/controld/controld_te_actions.c te_action_confirmed(pcmk__graph_action_t *action, pcmk__graph_t *graph) action 666 daemons/controld/controld_te_actions.c if (!pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 667 daemons/controld/controld_te_actions.c if ((action->type == pcmk__rsc_graph_action) action 668 daemons/controld/controld_te_actions.c && (crm_element_value(action->xml, PCMK__META_ON_NODE) != NULL)) { action 669 daemons/controld/controld_te_actions.c te_update_job_count(action, -1); action 671 daemons/controld/controld_te_actions.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 674 daemons/controld/controld_te_actions.c pcmk__update_graph(graph, action); action 484 daemons/controld/controld_te_callbacks.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) data; action 491 daemons/controld/controld_te_callbacks.c stop_te_timer(action); action 493 daemons/controld/controld_te_callbacks.c task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 494 daemons/controld/controld_te_callbacks.c on_node = crm_element_value(action->xml, PCMK__META_ON_NODE); action 495 daemons/controld/controld_te_callbacks.c via_node = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 501 daemons/controld/controld_te_callbacks.c (via_node? via_node : "controller"), action->timeout); action 509 daemons/controld/controld_te_callbacks.c (action->timeout action 511 daemons/controld/controld_te_callbacks.c pcmk__log_graph_action(LOG_ERR, action); action 513 daemons/controld/controld_te_callbacks.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 515 daemons/controld/controld_te_callbacks.c te_action_confirmed(action, controld_globals.transition_graph); action 520 daemons/controld/controld_te_callbacks.c if ((action->type == pcmk__rsc_graph_action) action 522 daemons/controld/controld_te_callbacks.c controld_record_action_timeout(action); action 108 daemons/controld/controld_te_events.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) gIter2->data; action 110 daemons/controld/controld_te_events.c if ((action->type == pcmk__pseudo_graph_action) action 111 daemons/controld/controld_te_events.c || pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 113 daemons/controld/controld_te_events.c } else if (action->type == pcmk__cluster_graph_action) { action 114 daemons/controld/controld_te_events.c const char *task = crm_element_value(action->xml, action 122 daemons/controld/controld_te_events.c target_uuid = crm_element_value(action->xml, action 124 daemons/controld/controld_te_events.c router = crm_element_value(action->xml, PCMK__XA_ROUTER_NODE); action 136 daemons/controld/controld_te_events.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 138 daemons/controld/controld_te_events.c last_action = action->xml; action 139 daemons/controld/controld_te_events.c stop_te_timer(action); action 140 daemons/controld/controld_te_events.c pcmk__update_graph(graph, action); action 144 daemons/controld/controld_te_events.c action->id, action 145 daemons/controld/controld_te_events.c crm_element_value(action->xml, action 150 daemons/controld/controld_te_events.c action->id, action 151 daemons/controld/controld_te_events.c crm_element_value(action->xml, PCMK__XA_OPERATION_KEY), action 300 daemons/controld/controld_te_events.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) item2->data; action 302 daemons/controld/controld_te_events.c if (action->id == id) { action 303 daemons/controld/controld_te_events.c return action; action 324 daemons/controld/controld_te_events.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) gIter2->data; action 326 daemons/controld/controld_te_events.c task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 331 daemons/controld/controld_te_events.c task = crm_element_value(action->xml, PCMK__XA_OPERATION_KEY); action 336 daemons/controld/controld_te_events.c target = crm_element_value(action->xml, PCMK__META_ON_NODE_UUID); action 343 daemons/controld/controld_te_events.c return action; action 526 daemons/controld/controld_te_events.c pcmk__graph_action_t *action = controld_get_action(action_num); action 528 daemons/controld/controld_te_events.c if (action == NULL) { action 534 daemons/controld/controld_te_events.c } else if (pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 549 daemons/controld/controld_te_events.c if (pcmk__str_eq(crm_meta_value(action->params, PCMK_META_ON_FAIL), action 554 daemons/controld/controld_te_events.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 557 daemons/controld/controld_te_events.c stop_te_timer(action); action 558 daemons/controld/controld_te_events.c te_action_confirmed(action, controld_globals.transition_graph); action 560 daemons/controld/controld_te_events.c if (pcmk_is_set(action->flags, pcmk__graph_action_failed)) { action 561 daemons/controld/controld_te_events.c abort_transition(action->synapse->priority + 1, action 22 daemons/controld/controld_te_utils.c stop_te_timer(pcmk__graph_action_t *action) action 24 daemons/controld/controld_te_utils.c if (action == NULL) { action 27 daemons/controld/controld_te_utils.c if (action->timer != 0) { action 29 daemons/controld/controld_te_utils.c g_source_remove(action->timer); action 30 daemons/controld/controld_te_utils.c action->timer = 0; action 129 daemons/controld/controld_te_utils.c enum pcmk__graph_next action; action 139 daemons/controld/controld_te_utils.c abort_transition(abort_timer->priority, abort_timer->action, action 162 daemons/controld/controld_te_utils.c abort_timer.action = abort_action; action 236 daemons/controld/controld_te_utils.c node_pending_timer->action = pcmk__graph_restart; action 315 daemons/controld/controld_te_utils.c enum pcmk__graph_next action, const char *abort_reason) action 333 daemons/controld/controld_te_utils.c if (graph->completion_action < action) { action 335 daemons/controld/controld_te_utils.c abort2text(graph->completion_action), abort2text(action), abort_reason); action 336 daemons/controld/controld_te_utils.c graph->completion_action = action; action 138 daemons/controld/controld_timers.c do_timer_control(long long action, action 145 daemons/controld/controld_timers.c if (action & A_DC_TIMER_STOP) { action 148 daemons/controld/controld_timers.c } else if (action & A_FINALIZE_TIMER_STOP) { action 151 daemons/controld/controld_timers.c } else if (action & A_INTEGRATE_TIMER_STOP) { action 156 daemons/controld/controld_timers.c if (action & A_DC_TIMER_START && timer_op_ok) { action 163 daemons/controld/controld_timers.c } else if (action & A_FINALIZE_TIMER_START) { action 166 daemons/controld/controld_timers.c } else if (action & A_INTEGRATE_TIMER_START) { action 30 daemons/controld/controld_transition.c do_te_control(long long action, action 38 daemons/controld/controld_transition.c if (pcmk_is_set(action, A_TE_STOP)) { action 52 daemons/controld/controld_transition.c if ((action & A_TE_START) == 0) { action 60 daemons/controld/controld_transition.c } else if ((action & A_TE_START) && cur_state == S_STOPPING) { action 94 daemons/controld/controld_transition.c do_te_invoke(long long action, action 102 daemons/controld/controld_transition.c && pcmk_is_set(action, A_TE_INVOKE))) { action 104 daemons/controld/controld_transition.c fsa_action2string(action), action 109 daemons/controld/controld_transition.c if (action & A_TE_CANCEL) { action 118 daemons/controld/controld_transition.c } else if (action & A_TE_HALT) { action 125 daemons/controld/controld_transition.c } else if (action & A_TE_INVOKE) { action 25 daemons/controld/controld_transition.h void controld_record_action_timeout(pcmk__graph_action_t *action); action 35 daemons/controld/controld_transition.h gboolean stop_te_timer(pcmk__graph_action_t *action); action 63 daemons/controld/controld_transition.h # define abort_transition(pri, action, text, reason) \ action 64 daemons/controld/controld_transition.h abort_transition_graph(pri, action, text, reason,__func__,__LINE__); action 66 daemons/controld/controld_transition.h void te_action_confirmed(pcmk__graph_action_t *action, pcmk__graph_t *graph); action 269 daemons/controld/controld_utils.c fsa_action2string(long long action) action 273 daemons/controld/controld_utils.c switch (action) { action 462 daemons/controld/controld_utils.c crm_err("Action %.16llx is unknown", action); action 551 daemons/controld/controld_utils.c fsa_dump_actions(uint64_t action, const char *text) action 553 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_READCONFIG)) { action 556 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STARTUP)) { action 559 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STARTED)) { action 562 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_HA_CONNECT)) { action 565 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_HA_DISCONNECT)) { action 568 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_CONNECT)) { action 571 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_INVOKE)) { action 574 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LRM_DISCONNECT)) { action 577 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TIMER_STOP)) { action 580 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TIMER_START)) { action 583 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_INTEGRATE_TIMER_START)) { action 586 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_INTEGRATE_TIMER_STOP)) { action 589 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_FINALIZE_TIMER_START)) { action 592 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_FINALIZE_TIMER_STOP)) { action 595 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_COUNT)) { action 598 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_VOTE)) { action 601 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ELECTION_CHECK)) { action 604 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_ANNOUNCE)) { action 607 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_REQUEST)) { action 610 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CL_JOIN_RESULT)) { action 613 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_OFFER_ALL)) { action 616 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_OFFER_ONE)) { action 619 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_PROCESS_REQ)) { action 622 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_PROCESS_ACK)) { action 625 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_JOIN_FINALIZE)) { action 628 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_MSG_PROCESS)) { action 631 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_MSG_ROUTE)) { action 634 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_RECOVER)) { action 637 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_RELEASE)) { action 640 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_RELEASED)) { action 643 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_DC_TAKEOVER)) { action 646 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_SHUTDOWN)) { action 649 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_SHUTDOWN_REQ)) { action 652 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_STOP)) { action 655 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_EXIT_0)) { action 658 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_EXIT_1)) { action 661 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CIB_START)) { action 664 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_CIB_STOP)) { action 667 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_INVOKE)) { action 670 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_START)) { action 673 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_STOP)) { action 676 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_TE_CANCEL)) { action 679 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_INVOKE)) { action 682 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_START)) { action 685 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_PE_STOP)) { action 688 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_NODE_BLOCK)) { action 691 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_UPDATE_NODESTATUS)) { action 694 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_LOG)) { action 697 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_ERROR)) { action 700 daemons/controld/controld_utils.c if (pcmk_is_set(action, A_WARN)) { action 59 daemons/controld/controld_utils.h void fsa_dump_actions(uint64_t action, const char *text); action 51 daemons/execd/cts-exec-helper.c const char *action; action 124 daemons/execd/cts-exec-helper.c { "action", 'a', 0, G_OPTION_ARG_STRING, &options.action, action 294 daemons/execd/cts-exec-helper.c options.action, action 329 daemons/execd/cts-exec-helper.c rc = lrmd_conn->cmds->cancel(lrmd_conn, options.rsc_id, options.action, action 404 daemons/execd/cts-exec-helper.c op_info->rsc_id, op_info->action, action 411 daemons/execd/cts-exec-helper.c print_result("API-CALL FAILURE unknown action '%s'", options.action); action 592 daemons/execd/cts-exec-helper.c options.action = PCMK_ACTION_MONITOR; action 71 daemons/execd/execd_alerts.c alert_complete(svc_action_t *action) action 73 daemons/execd/execd_alerts.c struct alert_cb_s *cb_data = (struct alert_cb_s *) (action->cb_data); action 79 daemons/execd/execd_alerts.c if (action->status != PCMK_EXEC_DONE) { action 80 daemons/execd/execd_alerts.c const char *reason = services__exit_reason(action); action 83 daemons/execd/execd_alerts.c pcmk_exec_status_str(action->status), action 89 daemons/execd/execd_alerts.c } else if (action->rc != 0) { action 92 daemons/execd/execd_alerts.c action->pid, action->rc, cb_data->client_id); action 96 daemons/execd/execd_alerts.c action->pid, cb_data->client_id); action 100 daemons/execd/execd_alerts.c free(action->cb_data); action 101 daemons/execd/execd_alerts.c action->cb_data = NULL; action 115 daemons/execd/execd_alerts.c svc_action_t *action = NULL; action 144 daemons/execd/execd_alerts.c action = services_alert_create(alert_id, alert_path, alert_timeout, params, action 146 daemons/execd/execd_alerts.c if (action->rc != PCMK_OCF_UNKNOWN) { action 151 daemons/execd/execd_alerts.c rc = services_action_user(action, CRM_DAEMON_USER); action 157 daemons/execd/execd_alerts.c if (services_alert_async(action, alert_complete) == FALSE) { action 158 daemons/execd/execd_alerts.c services_action_free(action); action 167 daemons/execd/execd_alerts.c services_action_free(action); action 58 daemons/execd/execd_commands.c char *action; action 197 daemons/execd/execd_commands.c action_matches(const lrmd_cmd_t *cmd, const char *action, guint interval_ms) action 200 daemons/execd/execd_commands.c && pcmk__str_eq(cmd->action, action, pcmk__str_casei); action 217 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, pcmk__str_casei)) { action 222 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->call_id); action 263 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, pcmk__str_casei)) { action 268 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->call_id); action 272 daemons/execd/execd_commands.c normalize_action_name(lrmd_rsc_t * rsc, const char *action) action 274 daemons/execd/execd_commands.c if (pcmk__str_eq(action, PCMK_ACTION_MONITOR, pcmk__str_casei) && action 278 daemons/execd/execd_commands.c return action; action 328 daemons/execd/execd_commands.c cmd->action = crm_element_value_copy(rsc_xml, PCMK__XA_LRMD_RSC_ACTION); action 339 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->interval_ms); action 342 daemons/execd/execd_commands.c cmd->action, 0, action 372 daemons/execd/execd_commands.c free(cmd->action); action 448 daemons/execd/execd_commands.c if (action_matches(cmd, dup->action, dup->interval_ms)) { action 489 daemons/execd/execd_commands.c rsc->rsc_id, normalize_action_name(rsc, dup->action), action 512 daemons/execd/execd_commands.c normalize_action_name(rsc, dup->action), action 525 daemons/execd/execd_commands.c crm_trace("Scheduling %s on %s", cmd->action, rsc->rsc_id); action 535 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, pcmk__str_casei)) { action 658 daemons/execd/execd_commands.c crm_xml_add(notify, PCMK__XA_LRMD_RSC_ACTION, cmd->action); action 743 daemons/execd/execd_commands.c crm_trace("Resource operation rsc:%s action:%s completed (%p %p)", cmd->rsc_id, cmd->action, action 826 daemons/execd/execd_commands.c action_complete(svc_action_t * action) action 829 daemons/execd/execd_commands.c lrmd_cmd_t *cmd = action->cb_data; action 842 daemons/execd/execd_commands.c action->id); action 847 daemons/execd/execd_commands.c if (cmd->result.exit_status != action->rc) { action 852 daemons/execd/execd_commands.c cmd->last_pid = action->pid; action 855 daemons/execd/execd_commands.c code = services_result2ocf(action->standard, cmd->action, action->rc); action 857 daemons/execd/execd_commands.c action->status, services__exit_reason(action)); action 877 daemons/execd/execd_commands.c && pcmk__strcase_any_of(cmd->action, PCMK_ACTION_START, action 887 daemons/execd/execd_commands.c services__copy_result(action, &(cmd->result)); action 891 daemons/execd/execd_commands.c pcmk__str_any_of(cmd->action, PCMK_ACTION_MONITOR, PCMK_ACTION_STATUS, NULL) && action 896 daemons/execd/execd_commands.c cmd->real_action = cmd->action; action 897 daemons/execd/execd_commands.c cmd->action = pcmk__str_copy(PCMK_ACTION_MONITOR); action 932 daemons/execd/execd_commands.c } else if (pcmk__str_any_of(cmd->action, PCMK_ACTION_MONITOR, PCMK_ACTION_STATUS, NULL) action 945 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->result.exit_status, action 979 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, time_sum, timeout_left, delay); action 985 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, action 1003 daemons/execd/execd_commands.c (cmd->real_action? cmd->real_action : cmd->action), action 1014 daemons/execd/execd_commands.c pcmk__set_result_output(&(cmd->result), services__grab_stdout(action), action 1015 daemons/execd/execd_commands.c services__grab_stderr(action)); action 1062 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 1066 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, action 1090 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_START, pcmk__str_casei)) { action 1094 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, action 1293 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, pcmk__str_casei) action 1309 daemons/execd/execd_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_START, pcmk__str_casei)) { action 1315 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, pcmk__str_casei)) { action 1318 daemons/execd/execd_commands.c } else if (pcmk__str_eq(cmd->action, PCMK_ACTION_MONITOR, action 1348 daemons/execd/execd_commands.c svc_action_t *action = NULL; action 1354 daemons/execd/execd_commands.c rsc->rsc_id, cmd->action, rsc->class, rsc->provider, rsc->type); action 1358 daemons/execd/execd_commands.c action = services__create_resource_action(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 == NULL) { action 1371 daemons/execd/execd_commands.c if (action->rc != PCMK_OCF_UNKNOWN) { action 1372 daemons/execd/execd_commands.c services__copy_result(action, &(cmd->result)); action 1373 daemons/execd/execd_commands.c services_action_free(action); action 1378 daemons/execd/execd_commands.c action->cb_data = cmd; action 1380 daemons/execd/execd_commands.c if (services_action_async(action, action_complete)) { action 1397 daemons/execd/execd_commands.c services__copy_result(action, &(cmd->result)); action 1398 daemons/execd/execd_commands.c services_action_free(action); action 1422 daemons/execd/execd_commands.c cmd->rsc_id, cmd->action, cmd->start_delay); action 1497 daemons/execd/execd_commands.c normalize_action_name(rsc, cmd->action), action 1695 daemons/execd/execd_commands.c cancel_op(const char *rsc_id, const char *action, guint interval_ms) action 1718 daemons/execd/execd_commands.c if (action_matches(cmd, action, interval_ms)) { action 1731 daemons/execd/execd_commands.c if (action_matches(cmd, action, interval_ms)) { action 1740 daemons/execd/execd_commands.c normalize_action_name(rsc, action), action 1785 daemons/execd/execd_commands.c cancel_op(rsc->rsc_id, cmd->action, cmd->interval_ms); action 1798 daemons/execd/execd_commands.c const char *action = crm_element_value(rsc_xml, PCMK__XA_LRMD_RSC_ACTION); action 1803 daemons/execd/execd_commands.c if (!rsc_id || !action) { action 1807 daemons/execd/execd_commands.c return cancel_op(rsc_id, action, interval_ms); action 1821 daemons/execd/execd_commands.c pcmk__s(cmd->real_action, cmd->action)); action 52 daemons/fenced/fenced_commands.c char *action; action 100 daemons/fenced/fenced_commands.c char *action; action 178 daemons/fenced/fenced_commands.c is_action_required(const char *action, const fenced_device_t *device) action 182 daemons/fenced/fenced_commands.c && pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none); action 186 daemons/fenced/fenced_commands.c get_action_delay_max(const fenced_device_t *device, const char *action) action 191 daemons/fenced/fenced_commands.c if (!pcmk__is_fencing_action(action)) { action 205 daemons/fenced/fenced_commands.c get_action_delay_base(const fenced_device_t *device, const char *action, action 211 daemons/fenced/fenced_commands.c if (!pcmk__is_fencing_action(action)) { action 271 daemons/fenced/fenced_commands.c get_action_timeout(const fenced_device_t *device, const char *action, action 274 daemons/fenced/fenced_commands.c if (action && device && device->params) { action 281 daemons/fenced/fenced_commands.c if (pcmk__str_eq(action, PCMK_ACTION_REBOOT, pcmk__str_none) action 285 daemons/fenced/fenced_commands.c action = PCMK_ACTION_OFF; action 289 daemons/fenced/fenced_commands.c snprintf(buffer, sizeof(buffer), "pcmk_%s_timeout", action); action 327 daemons/fenced/fenced_commands.c const char *action = NULL; action 333 daemons/fenced/fenced_commands.c action = g_hash_table_lookup(device->params, "pcmk_reboot_action"); action 336 daemons/fenced/fenced_commands.c return pcmk__s(action, PCMK_ACTION_REBOOT); action 375 daemons/fenced/fenced_commands.c free(cmd->action); action 416 daemons/fenced/fenced_commands.c cmd->action = crm_element_value_copy(op, PCMK__XA_ST_DEVICE_ACTION); action 419 daemons/fenced/fenced_commands.c if ((cmd->action == NULL) || (cmd->op == NULL) || (cmd->client == NULL)) { action 501 daemons/fenced/fenced_commands.c cmd->action, pid, action 560 daemons/fenced/fenced_commands.c stonith_action_t *action = NULL; action 585 daemons/fenced/fenced_commands.c pending_op->action, action 606 daemons/fenced/fenced_commands.c if (pcmk__is_fencing_action(cmd->action)) { action 612 daemons/fenced/fenced_commands.c crm_info("Faking success for %s watchdog operation", cmd->action); action 621 daemons/fenced/fenced_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_STOP, pcmk__str_none)) { action 636 daemons/fenced/fenced_commands.c action_str = cmd->action; action 637 daemons/fenced/fenced_commands.c if (pcmk__str_eq(cmd->action, PCMK_ACTION_REBOOT, pcmk__str_none) action 647 daemons/fenced/fenced_commands.c action = stonith__action_create(device->agent, action_str, cmd->target, action 654 daemons/fenced/fenced_commands.c exec_rc = stonith__execute_async(action, (void *)cmd, cmd->done_cb, action 658 daemons/fenced/fenced_commands.c cmd->done_cb(0, stonith__action_result(action), cmd); action 659 daemons/fenced/fenced_commands.c stonith__destroy_action(action); action 707 daemons/fenced/fenced_commands.c cmd->timeout = get_action_timeout(device, cmd->action, cmd->default_timeout); action 712 daemons/fenced/fenced_commands.c cmd->action, action 718 daemons/fenced/fenced_commands.c cmd->action, action 732 daemons/fenced/fenced_commands.c delay_max = get_action_delay_max(device, cmd->action); action 733 daemons/fenced/fenced_commands.c delay_base = get_action_delay_base(device, cmd->action, cmd->target); action 741 daemons/fenced/fenced_commands.c delay_base, delay_max, cmd->action, device->id); action 754 daemons/fenced/fenced_commands.c cmd->action, action 776 daemons/fenced/fenced_commands.c crm_warn("Removal of device '%s' purged operation '%s'", device->id, cmd->action); action 981 daemons/fenced/fenced_commands.c const char *action = NULL; action 987 daemons/fenced/fenced_commands.c action = crm_element_value(match, PCMK_XA_NAME); action 989 daemons/fenced/fenced_commands.c if (pcmk__str_eq(action, PCMK_ACTION_LIST, pcmk__str_none)) { action 992 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, PCMK_ACTION_STATUS, pcmk__str_none)) { action 995 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, PCMK_ACTION_REBOOT, pcmk__str_none)) { action 998 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none)) { action 1013 daemons/fenced/fenced_commands.c if ((action != NULL) action 1016 daemons/fenced/fenced_commands.c pcmk__add_word(&(device->on_target_actions), 64, action); action 1125 daemons/fenced/fenced_commands.c const char *action, const char *target, int timeout, action 1138 daemons/fenced/fenced_commands.c cmd->action = pcmk__str_copy(action); action 1902 daemons/fenced/fenced_commands.c const char *action = crm_element_value(op, PCMK__XA_ST_DEVICE_ACTION); action 1906 daemons/fenced/fenced_commands.c if ((id == NULL) || (action == NULL)) { action 1909 daemons/fenced/fenced_commands.c (action? action : "not specified")); action 1921 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, PCMK_ACTION_LIST, pcmk__str_none)) { action 1929 daemons/fenced/fenced_commands.c } else if (pcmk__str_eq(action, PCMK_ACTION_MONITOR, pcmk__str_none)) { action 1938 daemons/fenced/fenced_commands.c action, id); action 1944 daemons/fenced/fenced_commands.c && (strcmp(action, PCMK_ACTION_MONITOR) == 0)) { action 1947 daemons/fenced/fenced_commands.c action, id); action 1985 daemons/fenced/fenced_commands.c (search->action? search->action : "unknown action"), action 1990 daemons/fenced/fenced_commands.c free(search->action); action 2007 daemons/fenced/fenced_commands.c localhost_is_eligible(const fenced_device_t *device, const char *action, action 2013 daemons/fenced/fenced_commands.c if ((device != NULL) && (action != NULL) action 2016 daemons/fenced/fenced_commands.c action) != NULL)) { action 2020 daemons/fenced/fenced_commands.c "host, not %s", action, device->id, target); action 2025 daemons/fenced/fenced_commands.c crm_trace("'%s' operation does not support self-fencing", action); action 2045 daemons/fenced/fenced_commands.c const char *action, const char *target, action 2049 daemons/fenced/fenced_commands.c if (localhost_is_eligible(device, action, target, allow_self)) { action 2055 daemons/fenced/fenced_commands.c if (pcmk__str_eq(action, PCMK_ACTION_REBOOT, pcmk__str_none)) { action 2094 daemons/fenced/fenced_commands.c const char *action = (search == NULL)? NULL : search->action; action 2096 daemons/fenced/fenced_commands.c CRM_CHECK((dev != NULL) && (action != NULL), goto search_report_results); action 2112 daemons/fenced/fenced_commands.c if (pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none) action 2117 daemons/fenced/fenced_commands.c } else if (!localhost_is_eligible_with_remap(dev, action, target, action 2153 daemons/fenced/fenced_commands.c check_type, dev_id, target, action); action 2178 daemons/fenced/fenced_commands.c check_type, dev_id, target, action); action 2190 daemons/fenced/fenced_commands.c dev_id, (can? "" : " not"), pcmk__s(action, "unspecified action"), action 2208 daemons/fenced/fenced_commands.c get_capable_devices(const char *host, const char *action, int timeout, action 2224 daemons/fenced/fenced_commands.c search->action = pcmk__str_copy(action); action 2238 daemons/fenced/fenced_commands.c (search->action? search->action : "unknown action"), action 2248 daemons/fenced/fenced_commands.c char *action; action 2262 daemons/fenced/fenced_commands.c add_action_specific_attributes(xmlNode *xml, const char *action, action 2270 daemons/fenced/fenced_commands.c CRM_CHECK(xml && action && device, return); action 2273 daemons/fenced/fenced_commands.c if (is_action_required(action, device)) { action 2274 daemons/fenced/fenced_commands.c crm_trace("Action '%s' is required using %s", action, device->id); action 2279 daemons/fenced/fenced_commands.c action_specific_timeout = get_action_timeout(device, action, 0); action 2282 daemons/fenced/fenced_commands.c action, action_specific_timeout, device->id); action 2287 daemons/fenced/fenced_commands.c delay_max = get_action_delay_max(device, action); action 2290 daemons/fenced/fenced_commands.c action, delay_max, device->id); action 2294 daemons/fenced/fenced_commands.c delay_base = get_action_delay_base(device, action, target); action 2301 daemons/fenced/fenced_commands.c action, delay_max, device->id); action 2304 daemons/fenced/fenced_commands.c action, delay_base, device->id); action 2308 daemons/fenced/fenced_commands.c action, delay_base, delay_max, device->id); action 2323 daemons/fenced/fenced_commands.c add_disallowed(xmlNode *xml, const char *action, const fenced_device_t *device, action 2326 daemons/fenced/fenced_commands.c if (!localhost_is_eligible(device, action, target, allow_self)) { action 2328 daemons/fenced/fenced_commands.c action, device->id); action 2344 daemons/fenced/fenced_commands.c add_action_reply(xmlNode *xml, const char *action, action 2350 daemons/fenced/fenced_commands.c crm_xml_add(child, PCMK_XA_ID, action); action 2351 daemons/fenced/fenced_commands.c add_action_specific_attributes(child, action, device, target); action 2352 daemons/fenced/fenced_commands.c add_disallowed(child, action, device, target, allow_self); action 2408 daemons/fenced/fenced_commands.c const char *action = query->action; action 2434 daemons/fenced/fenced_commands.c && pcmk__str_eq(query->action, PCMK_ACTION_REBOOT, action 2438 daemons/fenced/fenced_commands.c action = PCMK_ACTION_OFF; action 2442 daemons/fenced/fenced_commands.c add_action_specific_attributes(dev, action, device, query->target); action 2443 daemons/fenced/fenced_commands.c if (pcmk__str_eq(query->action, PCMK_ACTION_REBOOT, pcmk__str_none)) { action 2455 daemons/fenced/fenced_commands.c add_disallowed(dev, action, device, query->target, action 2492 daemons/fenced/fenced_commands.c free(query->action); action 2522 daemons/fenced/fenced_commands.c && !pcmk__str_eq(cmd->action, PCMK_ACTION_METADATA, action 2530 daemons/fenced/fenced_commands.c && !pcmk__str_eq(cmd->action, PCMK_ACTION_METADATA, action 2537 daemons/fenced/fenced_commands.c pcmk__g_strcat(msg, "Operation '", cmd->action, "' ", NULL); action 2618 daemons/fenced/fenced_commands.c if (pcmk__is_fencing_action(cmd->action) action 2624 daemons/fenced/fenced_commands.c cmd->action, cmd->target); action 2644 daemons/fenced/fenced_commands.c cmd->action, device->id); action 2691 daemons/fenced/fenced_commands.c !pcmk__str_eq(cmd->action, cmd_other->action, pcmk__str_none) || action 2699 daemons/fenced/fenced_commands.c cmd_other->action, action 2729 daemons/fenced/fenced_commands.c if (is_action_required(cmd->action, next_device)) { action 2757 daemons/fenced/fenced_commands.c && pcmk__strcase_any_of(cmd->action, PCMK_ACTION_LIST, action 2771 daemons/fenced/fenced_commands.c && !is_action_required(cmd->action, device)) { action 2883 daemons/fenced/fenced_commands.c get_capable_devices(host, cmd->action, cmd->default_timeout, action 2885 daemons/fenced/fenced_commands.c fenced_support_flag(cmd->action)); action 3078 daemons/fenced/fenced_commands.c relay_op->id, relay_op->action, action 3081 daemons/fenced/fenced_commands.c relay_op->client_name, op_id, relay_op->action, action 3162 daemons/fenced/fenced_commands.c const char *action = NULL; action 3188 daemons/fenced/fenced_commands.c action = crm_element_value(dev, PCMK__XA_ST_DEVICE_ACTION); action 3199 daemons/fenced/fenced_commands.c query->action = pcmk__str_copy(action); action 3203 daemons/fenced/fenced_commands.c get_capable_devices(target, action, timeout, action 3293 daemons/fenced/fenced_commands.c const char *action = crm_element_value(dev, PCMK__XA_ST_DEVICE_ACTION); action 3300 daemons/fenced/fenced_commands.c pcmk__request_origin(request), action, action 3303 daemons/fenced/fenced_commands.c if (stonith_check_fence_tolerance(tolerance, target, action)) { action 3313 daemons/fenced/fenced_commands.c request->peer, action, target, action 268 daemons/fenced/fenced_history.c op->action = crm_element_value_copy(xml_op, PCMK__XA_ST_DEVICE_ACTION); action 387 daemons/fenced/fenced_history.c crm_xml_add(entry, PCMK__XA_ST_DEVICE_ACTION, op->action); action 221 daemons/fenced/fenced_remote.c fenced_support_flag(op->action)); action 261 daemons/fenced/fenced_remote.c free(op->action); action 305 daemons/fenced/fenced_remote.c return ((op->phase > st_phase_requested)? PCMK_ACTION_REBOOT : op->action); action 324 daemons/fenced/fenced_remote.c strcpy(op->action, PCMK_ACTION_OFF); action 342 daemons/fenced/fenced_remote.c strcpy(op->action, PCMK_ACTION_ON); action 375 daemons/fenced/fenced_remote.c strcpy(op->action, PCMK_ACTION_REBOOT); action 396 daemons/fenced/fenced_remote.c crm_xml_add(notify_data, PCMK__XA_ST_DEVICE_ACTION, op->action); action 464 daemons/fenced/fenced_remote.c crm_xml_add(data, PCMK__XA_ST_OP, op->action); action 569 daemons/fenced/fenced_remote.c op->action, (op->target? " targeting " : ""), action 623 daemons/fenced/fenced_remote.c QB_XS " id=%.8s", op->action, (op->target? " targeting " : ""), action 672 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 687 daemons/fenced/fenced_remote.c " id=%.8s", op->action, op->target, op->client_name, op->id); action 696 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 716 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 750 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, op->id); action 989 daemons/fenced/fenced_remote.c && pcmk__str_eq(op->action, PCMK_ACTION_REBOOT, pcmk__str_none)) { action 1039 daemons/fenced/fenced_remote.c if (!pcmk__str_eq(op->action, other_action, pcmk__str_none)) { action 1041 daemons/fenced/fenced_remote.c op->id, other->id, op->action, other_action); action 1061 daemons/fenced/fenced_remote.c other->action, other->target, other->client_name, action 1089 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name, action 1205 daemons/fenced/fenced_remote.c op->action = crm_element_value_copy(dev, PCMK__XA_ST_DEVICE_ACTION); action 1253 daemons/fenced/fenced_remote.c (peer && dev)? "Recorded" : "Generated", op->id, op->action, action 1326 daemons/fenced/fenced_remote.c CRM_CHECK(op->action, return NULL); action 1338 daemons/fenced/fenced_remote.c QB_XS " id=%.8s", op->action, op->target, op->id); action 1344 daemons/fenced/fenced_remote.c QB_XS " id=%.8s", op->action, op->target, op->id); action 1350 daemons/fenced/fenced_remote.c op->action, op->target, op->id, action 1398 daemons/fenced/fenced_remote.c && pcmk__is_fencing_action(op->action) action 1433 daemons/fenced/fenced_remote.c fenced_support_flag(op->action))) { action 1454 daemons/fenced/fenced_remote.c op->action, op->target, device); action 1457 daemons/fenced/fenced_remote.c op->action, op->target); action 1506 daemons/fenced/fenced_remote.c op->action, op->target, (device? device : "any device")); action 1530 daemons/fenced/fenced_remote.c op->action, specified_timeout, device? device : "watchdog", action 1631 daemons/fenced/fenced_remote.c if (pcmk__str_eq(op->action, PCMK_ACTION_ON, pcmk__str_none) action 1662 daemons/fenced/fenced_remote.c fenced_support_flag(op->action))) { action 1794 daemons/fenced/fenced_remote.c && pcmk__str_eq(op->action, PCMK_ACTION_ON, pcmk__str_none)) { action 1845 daemons/fenced/fenced_remote.c pcmk__readable_interval(timeout_ms), op->target, op->action, action 1959 daemons/fenced/fenced_remote.c crm_xml_add(remote_op, PCMK__XA_ST_DEVICE_ACTION, op->action); action 1972 daemons/fenced/fenced_remote.c peer->host, op->action, op->target, device, action 1980 daemons/fenced/fenced_remote.c peer->host, op->action, op->target, op->client_name, action 2033 daemons/fenced/fenced_remote.c op->action, op->target, op->client_name); action 2038 daemons/fenced/fenced_remote.c QB_XS " state=%s", op->action, op->target, op->client_name, action 2063 daemons/fenced/fenced_remote.c op->replies, op->action, op->target, op->client_name, action 2084 daemons/fenced/fenced_remote.c op->replies, op->action, op->target, op->client_name, action 2094 daemons/fenced/fenced_remote.c op->action, op->target, (device? " using " : ""), action 2139 daemons/fenced/fenced_remote.c if (pcmk__is_fencing_action(op->action)) { action 2180 daemons/fenced/fenced_remote.c const char *action, remote_fencing_op_t *op, action 2188 daemons/fenced/fenced_remote.c peer, device, action, props->custom_action_timeout[phase]); action 2195 daemons/fenced/fenced_remote.c peer, device, props->delay_max[phase], action); action 2203 daemons/fenced/fenced_remote.c peer, device, props->delay_base[phase], action); action 2207 daemons/fenced/fenced_remote.c if (pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none)) { action 2213 daemons/fenced/fenced_remote.c peer, device, action); action 2224 daemons/fenced/fenced_remote.c peer, action, device); action 2388 daemons/fenced/fenced_remote.c op->target, op->action, ndevices, pcmk__plural_s(ndevices), id); action 2412 daemons/fenced/fenced_remote.c fenced_support_flag(op->action)); action 2498 daemons/fenced/fenced_remote.c device, (const char *) op->devices->data, op->action, op->target); action 2550 daemons/fenced/fenced_remote.c op->action, op->target, action 2600 daemons/fenced/fenced_remote.c stonith_check_fence_tolerance(int tolerance, const char *target, const char *action) action 2607 daemons/fenced/fenced_remote.c action == NULL) { action 2620 daemons/fenced/fenced_remote.c } else if (strcmp(rop->action, action) != 0) { action 2627 daemons/fenced/fenced_remote.c target, action, tolerance, rop->delegate, rop->originator); action 27 daemons/fenced/pacemaker-fenced.h gboolean stonith_check_fence_tolerance(int tolerance, const char *target, const char *action); action 174 daemons/fenced/pacemaker-fenced.h char *action; action 390 daemons/fenced/pacemaker-fenced.h fenced_support_flag(const char *action) action 392 daemons/fenced/pacemaker-fenced.h if (pcmk__str_eq(action, PCMK_ACTION_ON, pcmk__str_none)) { action 152 include/crm/common/action_relation_internal.h pcmk_action_t *action; // Action to be sequenced action 39 include/crm/common/actions_internal.h #define pcmk__set_action_flags(action, flags_to_set) do { \ action 40 include/crm/common/actions_internal.h (action)->flags = pcmk__set_flags_as(__func__, __LINE__, \ action 42 include/crm/common/actions_internal.h "Action", (action)->uuid, \ action 43 include/crm/common/actions_internal.h (action)->flags, \ action 55 include/crm/common/actions_internal.h #define pcmk__clear_action_flags(action, flags_to_clear) do { \ action 56 include/crm/common/actions_internal.h (action)->flags = pcmk__clear_flags_as(__func__, __LINE__, \ action 58 include/crm/common/actions_internal.h "Action", (action)->uuid, \ action 59 include/crm/common/actions_internal.h (action)->flags, \ action 244 include/crm/common/actions_internal.h bool pcmk__is_fencing_action(const char *action); action 246 include/crm/common/actions_internal.h const char *pcmk__action_text(enum pcmk__action_type action); action 277 include/crm/common/actions_internal.h pcmk__is_up_action(const char *action) action 279 include/crm/common/actions_internal.h return pcmk__str_any_of(action, PCMK_ACTION_START, PCMK_ACTION_PROMOTE, action 292 include/crm/common/actions_internal.h pcmk__is_down_action(const char *action) action 294 include/crm/common/actions_internal.h return pcmk__str_any_of(action, PCMK_ACTION_STOP, PCMK_ACTION_DEMOTE, action 64 include/crm/fencing/internal.h void stonith__destroy_action(stonith_action_t *action); action 65 include/crm/fencing/internal.h pcmk__action_result_t *stonith__action_result(stonith_action_t *action); action 71 include/crm/fencing/internal.h int stonith__execute_async(stonith_action_t *action, void *userdata, action 159 include/crm/lrmd.h char *action; action 332 include/crm/lrmd.h int (*exec) (lrmd_t *lrmd, const char *rsc_id, const char *action, action 355 include/crm/lrmd.h int (*cancel) (lrmd_t *lrmd, const char *rsc_id, const char *action, action 89 include/crm/pengine/internal.h void pe__order_notifs_after_fencing(const pcmk_action_t *action, action 284 include/crm/pengine/internal.h char *pe__action2reason(const pcmk_action_t *action, action 286 include/crm/pengine/internal.h void pe_action_set_reason(pcmk_action_t *action, const char *reason, action 288 include/crm/pengine/internal.h void pe__add_action_expected_result(pcmk_action_t *action, int expected_result); action 109 include/crm/services.h char *action; action 241 include/crm/services.h const char *action, guint interval_ms, action 254 include/crm/services.h gboolean services_action_kick(const char *name, const char *action, action 347 include/crm/services.h gboolean services_action_cancel(const char *name, const char *action, action 354 include/crm/services.h gboolean services_alert_async(svc_action_t *action, action 357 include/crm/services.h enum ocf_exitcode services_result2ocf(const char *standard, const char *action, action 44 include/crm/services_internal.h const char *action, action 49 include/crm/services_internal.h const char *services__exit_reason(const svc_action_t *action); action 50 include/crm/services_internal.h char *services__grab_stdout(svc_action_t *action); action 51 include/crm/services_internal.h char *services__grab_stderr(svc_action_t *action); action 53 include/crm/services_internal.h void services__set_result(svc_action_t *action, int agent_status, action 56 include/crm/services_internal.h void services__copy_result(const svc_action_t *action, action 59 include/crm/services_internal.h void services__format_result(svc_action_t *action, int agent_status, action 175 include/crm/stonith-ng.h char *action; action 200 include/crm/stonith-ng.h char *action; action 455 include/crm/stonith-ng.h const char *action, int timeout, int tolerance); action 647 include/crm/stonith-ng.h const char *node, const char *action, int timeout, action 804 include/crm/stonith-ng.h const char *stonith_action_str(const char *action); action 563 include/pacemaker.h int pcmk_request_fencing(xmlNodePtr *xml, const char *target, const char *action, action 53 include/pcmki/pcmki_fence.h int pcmk__request_fencing(stonith_t *st, const char *target, const char *action, action 89 include/pcmki/pcmki_transition.h #define pcmk__set_graph_action_flags(action, flags_to_set) do { \ action 90 include/pcmki/pcmki_transition.h (action)->flags = pcmk__set_flags_as(__func__, __LINE__, \ action 93 include/pcmki/pcmki_transition.h (action)->flags, (flags_to_set), #flags_to_set); \ action 96 include/pcmki/pcmki_transition.h #define pcmk__clear_graph_action_flags(action, flags_to_clear) do { \ action 97 include/pcmki/pcmki_transition.h (action)->flags = pcmk__clear_flags_as(__func__, __LINE__, \ action 100 include/pcmki/pcmki_transition.h (action)->flags, (flags_to_clear), #flags_to_clear); \ action 150 include/pcmki/pcmki_transition.h int (*pseudo) (pcmk__graph_t *graph, pcmk__graph_action_t *action); action 151 include/pcmki/pcmki_transition.h int (*rsc) (pcmk__graph_t *graph, pcmk__graph_action_t *action); action 152 include/pcmki/pcmki_transition.h int (*cluster) (pcmk__graph_t *graph, pcmk__graph_action_t *action); action 153 include/pcmki/pcmki_transition.h int (*fence) (pcmk__graph_t *graph, pcmk__graph_action_t *action); action 154 include/pcmki/pcmki_transition.h bool (*allowed) (pcmk__graph_t *graph, pcmk__graph_action_t *action); action 169 include/pcmki/pcmki_transition.h const pcmk__graph_action_t *action); action 173 include/pcmki/pcmki_transition.h void pcmk__log_graph_action(int log_level, pcmk__graph_action_t *action); action 177 include/pcmki/pcmki_transition.h const pcmk__graph_action_t *action, action 34 lib/common/actions.c pcmk__action_text(enum pcmk__action_type action) action 36 lib/common/actions.c switch (action) { action 191 lib/common/actions.c pcmk_action_t *action = user_data; action 193 lib/common/actions.c if (action == NULL) { action 196 lib/common/actions.c g_list_free_full(action->actions_before, free); action 197 lib/common/actions.c g_list_free_full(action->actions_after, free); action 198 lib/common/actions.c if (action->extra != NULL) { action 199 lib/common/actions.c g_hash_table_destroy(action->extra); action 201 lib/common/actions.c if (action->meta != NULL) { action 202 lib/common/actions.c g_hash_table_destroy(action->meta); action 204 lib/common/actions.c pcmk__free_node_copy(action->node); action 205 lib/common/actions.c free(action->cancel_task); action 206 lib/common/actions.c free(action->reason); action 207 lib/common/actions.c free(action->task); action 208 lib/common/actions.c free(action->uuid); action 209 lib/common/actions.c free(action); action 611 lib/common/actions.c pcmk__is_fencing_action(const char *action) action 613 lib/common/actions.c return pcmk__str_any_of(action, PCMK_ACTION_OFF, PCMK_ACTION_REBOOT, NULL); action 25 lib/fencing/fencing_private.h int stonith__execute(stonith_action_t *action); action 34 lib/fencing/st_actions.c char *action; action 55 lib/fencing/st_actions.c static int internal_stonith_action_execute(stonith_action_t *action); action 56 lib/fencing/st_actions.c static void log_action(stonith_action_t *action, pid_t pid); action 66 lib/fencing/st_actions.c set_result_from_svc_action(stonith_action_t *action, svc_action_t *svc_action) action 68 lib/fencing/st_actions.c services__copy_result(svc_action, &(action->result)); action 69 lib/fencing/st_actions.c pcmk__set_result_output(&(action->result), action 75 lib/fencing/st_actions.c log_action(stonith_action_t *action, pid_t pid) action 80 lib/fencing/st_actions.c if (action->result.action_stderr != NULL) { action 82 lib/fencing/st_actions.c char *prefix = crm_strdup_printf("%s[%d] stderr:", action->agent, pid); action 84 lib/fencing/st_actions.c crm_log_output(LOG_WARNING, prefix, action->result.action_stderr); action 123 lib/fencing/st_actions.c make_args(const char *agent, const char *action, const char *target, action 130 lib/fencing/st_actions.c CRM_CHECK(action != NULL, return NULL); action 138 lib/fencing/st_actions.c snprintf(buffer, sizeof(buffer), "pcmk_%s_action", action); action 142 lib/fencing/st_actions.c value, action, pcmk__s(target, "no node")); action 143 lib/fencing/st_actions.c action = value; action 148 lib/fencing/st_actions.c pcmk__insert_dup(arg_list, STONITH_ATTR_ACTION_OP, action); action 186 lib/fencing/st_actions.c param, alias, action, pcmk__s(target, "no node")); action 206 lib/fencing/st_actions.c stonith__destroy_action(stonith_action_t *action) action 208 lib/fencing/st_actions.c if (action) { action 209 lib/fencing/st_actions.c free(action->agent); action 210 lib/fencing/st_actions.c if (action->args) { action 211 lib/fencing/st_actions.c g_hash_table_destroy(action->args); action 213 lib/fencing/st_actions.c free(action->action); action 214 lib/fencing/st_actions.c if (action->svc_action) { action 215 lib/fencing/st_actions.c services_action_free(action->svc_action); action 217 lib/fencing/st_actions.c pcmk__reset_result(&(action->result)); action 218 lib/fencing/st_actions.c free(action); action 231 lib/fencing/st_actions.c stonith__action_result(stonith_action_t *action) action 233 lib/fencing/st_actions.c return (action == NULL)? NULL : &(action->result); action 258 lib/fencing/st_actions.c stonith_action_t *action = pcmk__assert_alloc(1, sizeof(stonith_action_t)); action 260 lib/fencing/st_actions.c action->args = make_args(agent, action_name, target, device_args, port_map, action 264 lib/fencing/st_actions.c action->agent = strdup(agent); action 265 lib/fencing/st_actions.c action->action = strdup(action_name); action 266 lib/fencing/st_actions.c action->timeout = action->remaining_timeout = timeout_sec; action 267 lib/fencing/st_actions.c action->max_retries = FAILURE_MAX_RETRIES; action 269 lib/fencing/st_actions.c pcmk__set_result(&(action->result), PCMK_OCF_UNKNOWN, PCMK_EXEC_UNKNOWN, action 280 lib/fencing/st_actions.c action->max_retries = atoi(value); action 284 lib/fencing/st_actions.c return action; action 288 lib/fencing/st_actions.c update_remaining_timeout(stonith_action_t * action) action 290 lib/fencing/st_actions.c int diff = time(NULL) - action->initial_start_time; action 292 lib/fencing/st_actions.c if (action->tries >= action->max_retries) { action 294 lib/fencing/st_actions.c action->agent, action->action, action->max_retries); action 295 lib/fencing/st_actions.c action->remaining_timeout = 0; action 296 lib/fencing/st_actions.c } else if ((action->result.execution_status != PCMK_EXEC_TIMEOUT) action 297 lib/fencing/st_actions.c && (diff < (action->timeout * 0.7))) { action 300 lib/fencing/st_actions.c action->remaining_timeout = action->timeout - diff; action 302 lib/fencing/st_actions.c action->remaining_timeout = 0; action 304 lib/fencing/st_actions.c return action->remaining_timeout ? TRUE : FALSE; action 525 lib/fencing/st_actions.c stonith_action_t *action = (stonith_action_t *) svc_action->cb_data; action 527 lib/fencing/st_actions.c set_result_from_svc_action(action, svc_action); action 529 lib/fencing/st_actions.c log_action(action, action->pid); action 531 lib/fencing/st_actions.c if (!pcmk__result_ok(&(action->result)) action 532 lib/fencing/st_actions.c && update_remaining_timeout(action)) { action 534 lib/fencing/st_actions.c int rc = internal_stonith_action_execute(action); action 540 lib/fencing/st_actions.c if (action->done_cb) { action 541 lib/fencing/st_actions.c action->done_cb(action->pid, &(action->result), action->userdata); action 544 lib/fencing/st_actions.c action->svc_action = NULL; // don't remove our caller action 545 lib/fencing/st_actions.c stonith__destroy_action(action); action 551 lib/fencing/st_actions.c stonith_action_t *action = (stonith_action_t *) svc_action->cb_data; action 553 lib/fencing/st_actions.c action->pid = svc_action->pid; action 554 lib/fencing/st_actions.c action->svc_action = svc_action; action 556 lib/fencing/st_actions.c if (action->fork_cb) { action 557 lib/fencing/st_actions.c (action->fork_cb) (svc_action->pid, action->userdata); action 560 lib/fencing/st_actions.c pcmk__set_result(&(action->result), PCMK_OCF_UNKNOWN, PCMK_EXEC_PENDING, action 564 lib/fencing/st_actions.c action->pid, action->action); action 577 lib/fencing/st_actions.c stonith_action_to_svc(stonith_action_t *action) action 581 lib/fencing/st_actions.c char *path = crm_strdup_printf(PCMK__FENCE_BINDIR "/%s", action->agent); action 586 lib/fencing/st_actions.c set_result_from_svc_action(action, svc_action); action 591 lib/fencing/st_actions.c svc_action->timeout = action->remaining_timeout * 1000; action 593 lib/fencing/st_actions.c svc_action->id = crm_strdup_printf("%s_%s_%dof%d", action->agent, action 594 lib/fencing/st_actions.c action->action, action->tries, action 595 lib/fencing/st_actions.c action->max_retries); action 596 lib/fencing/st_actions.c svc_action->agent = pcmk__str_copy(action->agent); action 598 lib/fencing/st_actions.c svc_action->params = action->args; action 599 lib/fencing/st_actions.c svc_action->cb_data = (void *) action; action 610 lib/fencing/st_actions.c internal_stonith_action_execute(stonith_action_t * action) action 616 lib/fencing/st_actions.c CRM_CHECK(action != NULL, return -EINVAL); action 618 lib/fencing/st_actions.c if ((action->action == NULL) || (action->args == NULL) action 619 lib/fencing/st_actions.c || (action->agent == NULL)) { action 620 lib/fencing/st_actions.c pcmk__set_result(&(action->result), PCMK_OCF_UNKNOWN_ERROR, action 625 lib/fencing/st_actions.c if (action->tries++ == 0) { action 627 lib/fencing/st_actions.c action->initial_start_time = time(NULL); action 632 lib/fencing/st_actions.c action->tries, action->action, action->agent, action 633 lib/fencing/st_actions.c action->remaining_timeout); action 637 lib/fencing/st_actions.c svc_action = stonith_action_to_svc(action); action 645 lib/fencing/st_actions.c pcmk__reset_result(&(action->result)); action 650 lib/fencing/st_actions.c if (action->async) { action 661 lib/fencing/st_actions.c set_result_from_svc_action(action, svc_action); action 679 lib/fencing/st_actions.c stonith__execute_async(stonith_action_t * action, void *userdata, action 685 lib/fencing/st_actions.c if (!action) { action 689 lib/fencing/st_actions.c action->userdata = userdata; action 690 lib/fencing/st_actions.c action->done_cb = done; action 691 lib/fencing/st_actions.c action->fork_cb = fork_cb; action 692 lib/fencing/st_actions.c action->async = true; action 694 lib/fencing/st_actions.c return internal_stonith_action_execute(action); action 706 lib/fencing/st_actions.c stonith__execute(stonith_action_t *action) action 710 lib/fencing/st_actions.c CRM_CHECK(action != NULL, return -EINVAL); action 714 lib/fencing/st_actions.c rc = internal_stonith_action_execute(action); action 715 lib/fencing/st_actions.c } while ((rc != pcmk_ok) && update_remaining_timeout(action)); action 612 lib/fencing/st_client.c const char *action, const char *target, int timeout_sec, action 621 lib/fencing/st_client.c crm_xml_add(data, PCMK__XA_ST_DEVICE_ACTION, action); action 675 lib/fencing/st_client.c const char *action, int timeout, int tolerance, int delay) action 682 lib/fencing/st_client.c crm_xml_add(data, PCMK__XA_ST_DEVICE_ACTION, action); action 694 lib/fencing/st_client.c stonith_api_fence(stonith_t * stonith, int call_options, const char *node, const char *action, action 697 lib/fencing/st_client.c return stonith_api_fence_with_delay(stonith, call_options, node, action, action 744 lib/fencing/st_client.c kvp->action = crm_element_value_copy(op, PCMK__XA_ST_DEVICE_ACTION); action 786 lib/fencing/st_client.c free(head->action); action 1444 lib/fencing/st_client.c event->action = crm_element_value_copy(data, action 1480 lib/fencing/st_client.c free(event->action); action 2057 lib/fencing/st_client.c const char *action = off? PCMK_ACTION_OFF : PCMK_ACTION_REBOOT; action 2062 lib/fencing/st_client.c action, nodeid, uname); action 2069 lib/fencing/st_client.c action, nodeid, uname, pcmk_strerror(rc), rc); action 2079 lib/fencing/st_client.c rc = st->cmds->fence(st, opts, name, action, timeout, 0); action 2084 lib/fencing/st_client.c action, nodeid, uname, pcmk_strerror(rc), rc); action 2086 lib/fencing/st_client.c api_log(LOG_NOTICE, "Node %u/%s kicked: %s", nodeid, uname, action); action 2359 lib/fencing/st_client.c pcmk__str_eq(event->action, prev_hp->action, pcmk__str_none) && action 2571 lib/fencing/st_client.c stonith_action_t *action = NULL; action 2574 lib/fencing/st_client.c action = stonith__action_create(agent, PCMK_ACTION_METADATA, action 2578 lib/fencing/st_client.c rc = stonith__execute_async(action, user_data, callback, NULL); action 2580 lib/fencing/st_client.c callback(0, stonith__action_result(action), user_data); action 2581 lib/fencing/st_client.c stonith__destroy_action(action); action 2753 lib/fencing/st_client.c const char *action = pcmk__s(event->action, event->operation); action 2758 lib/fencing/st_client.c if (action == NULL) { action 2759 lib/fencing/st_client.c action = "(unknown)"; action 2796 lib/fencing/st_client.c action, target, executioner, origin, origin_node, action 2906 lib/fencing/st_client.c const char *stonith_action_str(const char *action); action 2909 lib/fencing/st_client.c stonith_action_str(const char *action) action 2911 lib/fencing/st_client.c if (action == NULL) { action 2913 lib/fencing/st_client.c } else if (strcmp(action, PCMK_ACTION_ON) == 0) { action 2915 lib/fencing/st_client.c } else if (strcmp(action, PCMK_ACTION_OFF) == 0) { action 2918 lib/fencing/st_client.c return action; action 62 lib/fencing/st_output.c if (pcmk__str_eq(history->action, PCMK_ACTION_ON, pcmk__str_none)) { action 65 lib/fencing/st_output.c if (pcmk__str_eq(history->action, PCMK_ACTION_OFF, pcmk__str_none)) { action 68 lib/fencing/st_output.c return pcmk__s(history->action, "fencing"); action 481 lib/fencing/st_output.c PCMK_XA_ACTION, event->action, action 130 lib/fencing/st_rhcs.c stonith_action_t *action = stonith__action_create(agent, action 134 lib/fencing/st_rhcs.c int rc = stonith__execute(action); action 135 lib/fencing/st_rhcs.c pcmk__action_result_t *result = stonith__action_result(action); action 142 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 150 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 158 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 164 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 169 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 276 lib/fencing/st_rhcs.c stonith_action_t *action = NULL; action 303 lib/fencing/st_rhcs.c action = stonith__action_create(agent, PCMK_ACTION_VALIDATE_ALL, target, action 306 lib/fencing/st_rhcs.c rc = stonith__execute(action); action 307 lib/fencing/st_rhcs.c result = stonith__action_result(action); action 322 lib/fencing/st_rhcs.c stonith__destroy_action(action); action 1946 lib/lrmd/lrmd_client.c free(op_info->action); action 2006 lib/lrmd/lrmd_client.c op_info->action = crm_element_value_copy(op_xml, action 2095 lib/lrmd/lrmd_client.c svc_action_t *action = NULL; action 2114 lib/lrmd/lrmd_client.c action = services__create_resource_action(type, standard, provider, type, action 2120 lib/lrmd/lrmd_client.c if (action == NULL) { action 2123 lib/lrmd/lrmd_client.c if (action->rc != PCMK_OCF_UNKNOWN) { action 2124 lib/lrmd/lrmd_client.c services_action_free(action); action 2128 lib/lrmd/lrmd_client.c if (!services_action_sync(action)) { action 2131 lib/lrmd/lrmd_client.c services_action_free(action); action 2135 lib/lrmd/lrmd_client.c if (!action->stdout_data) { action 2138 lib/lrmd/lrmd_client.c services_action_free(action); action 2142 lib/lrmd/lrmd_client.c *output = strdup(action->stdout_data); action 2143 lib/lrmd/lrmd_client.c services_action_free(action); action 2149 lib/lrmd/lrmd_client.c lrmd_api_exec(lrmd_t *lrmd, const char *rsc_id, const char *action, action 2162 lib/lrmd/lrmd_client.c crm_xml_add(data, PCMK__XA_LRMD_RSC_ACTION, action); action 2207 lib/lrmd/lrmd_client.c lrmd_api_cancel(lrmd_t *lrmd, const char *rsc_id, const char *action, action 2214 lib/lrmd/lrmd_client.c crm_xml_add(data, PCMK__XA_LRMD_RSC_ACTION, action); action 2506 lib/lrmd/lrmd_client.c metadata_complete(svc_action_t *action) action 2508 lib/lrmd/lrmd_client.c struct metadata_cb *metadata_cb = (struct metadata_cb *) action->cb_data; action 2511 lib/lrmd/lrmd_client.c services__copy_result(action, &result); action 2512 lib/lrmd/lrmd_client.c pcmk__set_result_output(&result, action->stdout_data, action->stderr_data); action 2544 lib/lrmd/lrmd_client.c svc_action_t *action = NULL; action 2565 lib/lrmd/lrmd_client.c action = services__create_resource_action(pcmk__s(rsc->id, rsc->type), action 2571 lib/lrmd/lrmd_client.c if (action == NULL) { action 2578 lib/lrmd/lrmd_client.c if (action->rc != PCMK_OCF_UNKNOWN) { action 2579 lib/lrmd/lrmd_client.c services__copy_result(action, &result); action 2582 lib/lrmd/lrmd_client.c services_action_free(action); action 2586 lib/lrmd/lrmd_client.c action->cb_data = calloc(1, sizeof(struct metadata_cb)); action 2587 lib/lrmd/lrmd_client.c if (action->cb_data == NULL) { action 2588 lib/lrmd/lrmd_client.c services_action_free(action); action 2596 lib/lrmd/lrmd_client.c metadata_cb = (struct metadata_cb *) action->cb_data; action 2599 lib/lrmd/lrmd_client.c if (!services_action_async(action, metadata_complete)) { action 2600 lib/lrmd/lrmd_client.c services_action_free(action); action 68 lib/pacemaker/libpacemaker_private.h #define pcmk__set_updated_flags(au_flags, action, flags_to_set) do { \ action 71 lib/pacemaker/libpacemaker_private.h (action)->uuid, au_flags, \ action 75 lib/pacemaker/libpacemaker_private.h #define pcmk__clear_updated_flags(au_flags, action, flags_to_clear) do { \ action 78 lib/pacemaker/libpacemaker_private.h (action)->uuid, au_flags, \ action 274 lib/pacemaker/libpacemaker_private.h uint32_t (*action_flags)(pcmk_action_t *action, const pcmk_node_t *node); action 365 lib/pacemaker/libpacemaker_private.h void pcmk__update_action_for_orderings(pcmk_action_t *action, action 375 lib/pacemaker/libpacemaker_private.h void pcmk__log_action(const char *pre_text, const pcmk_action_t *action, action 387 lib/pacemaker/libpacemaker_private.h bool pcmk__action_locks_rsc_to_node(const pcmk_action_t *action); action 390 lib/pacemaker/libpacemaker_private.h void pcmk__deduplicate_action_inputs(pcmk_action_t *action); action 418 lib/pacemaker/libpacemaker_private.h bool pcmk__action_is_recurring(const pcmk_action_t *action); action 425 lib/pacemaker/libpacemaker_private.h const pcmk_action_t *action, action 443 lib/pacemaker/libpacemaker_private.h pcmk_action_t *action, action 588 lib/pacemaker/libpacemaker_private.h void pcmk__block_colocation_dependents(pcmk_action_t *action); action 700 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__connection_host_for_action(const pcmk_action_t *action); action 707 lib/pacemaker/libpacemaker_private.h const pcmk_action_t *action); action 724 lib/pacemaker/libpacemaker_private.h uint32_t pcmk__primitive_action_flags(pcmk_action_t *action, action 800 lib/pacemaker/libpacemaker_private.h uint32_t pcmk__group_action_flags(pcmk_action_t *action, action 861 lib/pacemaker/libpacemaker_private.h uint32_t pcmk__clone_action_flags(pcmk_action_t *action, action 914 lib/pacemaker/libpacemaker_private.h uint32_t pcmk__bundle_action_flags(pcmk_action_t *action, action 961 lib/pacemaker/libpacemaker_private.h uint32_t pcmk__collective_action_flags(pcmk_action_t *action, action 32 lib/pacemaker/pcmk_fence.c const char *action; action 107 lib/pacemaker/pcmk_fence.c && pcmk__str_eq(hp->action, np->action, pcmk__str_none) action 133 lib/pacemaker/pcmk_fence.c && pcmk__str_eq(async_fence_data.action, e->action, pcmk__str_none)) { action 173 lib/pacemaker/pcmk_fence.c async_fence_data.action, action 195 lib/pacemaker/pcmk_fence.c pcmk__request_fencing(stonith_t *st, const char *target, const char *action, action 205 lib/pacemaker/pcmk_fence.c async_fence_data.action = action; action 231 lib/pacemaker/pcmk_fence.c pcmk_request_fencing(xmlNodePtr *xml, const char *target, const char *action, action 244 lib/pacemaker/pcmk_fence.c rc = pcmk__request_fencing(st, target, action, name, timeout, tolerance, action 35 lib/pacemaker/pcmk_graph_consumer.c pcmk__graph_action_t *action = user_data; action 37 lib/pacemaker/pcmk_graph_consumer.c if (action->timer != 0) { action 38 lib/pacemaker/pcmk_graph_consumer.c crm_warn("Cancelling timer for graph action %d", action->id); action 39 lib/pacemaker/pcmk_graph_consumer.c g_source_remove(action->timer); action 41 lib/pacemaker/pcmk_graph_consumer.c if (action->params != NULL) { action 42 lib/pacemaker/pcmk_graph_consumer.c g_hash_table_destroy(action->params); action 44 lib/pacemaker/pcmk_graph_consumer.c pcmk__xml_free(action->xml); action 45 lib/pacemaker/pcmk_graph_consumer.c free(action); action 146 lib/pacemaker/pcmk_graph_consumer.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) lpc->data; action 148 lib/pacemaker/pcmk_graph_consumer.c if (action->id == action_id) { action 151 lib/pacemaker/pcmk_graph_consumer.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 154 lib/pacemaker/pcmk_graph_consumer.c !pcmk_is_set(action->flags, pcmk__graph_action_confirmed)) { action 176 lib/pacemaker/pcmk_graph_consumer.c pcmk__update_graph(pcmk__graph_t *graph, const pcmk__graph_action_t *action) action 186 lib/pacemaker/pcmk_graph_consumer.c update_synapse_confirmed(synapse, action->id); action 188 lib/pacemaker/pcmk_graph_consumer.c } else if (!pcmk_is_set(action->flags, pcmk__graph_action_failed) action 190 lib/pacemaker/pcmk_graph_consumer.c update_synapse_ready(synapse, action->id); action 291 lib/pacemaker/pcmk_graph_consumer.c initiate_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 293 lib/pacemaker/pcmk_graph_consumer.c const char *id = pcmk__xe_id(action->xml); action 296 lib/pacemaker/pcmk_graph_consumer.c CRM_CHECK(!pcmk_is_set(action->flags, pcmk__graph_action_executed), action 299 lib/pacemaker/pcmk_graph_consumer.c pcmk__set_graph_action_flags(action, pcmk__graph_action_executed); action 300 lib/pacemaker/pcmk_graph_consumer.c switch (action->type) { action 302 lib/pacemaker/pcmk_graph_consumer.c crm_trace("Executing pseudo-action %d (%s)", action->id, id); action 303 lib/pacemaker/pcmk_graph_consumer.c return graph_fns->pseudo(graph, action); action 306 lib/pacemaker/pcmk_graph_consumer.c crm_trace("Executing resource action %d (%s)", action->id, id); action 307 lib/pacemaker/pcmk_graph_consumer.c return graph_fns->rsc(graph, action); action 310 lib/pacemaker/pcmk_graph_consumer.c if (pcmk__str_eq(crm_element_value(action->xml, PCMK_XA_OPERATION), action 313 lib/pacemaker/pcmk_graph_consumer.c action->id, id); action 314 lib/pacemaker/pcmk_graph_consumer.c return graph_fns->fence(graph, action); action 316 lib/pacemaker/pcmk_graph_consumer.c crm_trace("Executing cluster action %d (%s)", action->id, id); action 317 lib/pacemaker/pcmk_graph_consumer.c return graph_fns->cluster(graph, action); action 322 lib/pacemaker/pcmk_graph_consumer.c action->xml->name, id); action 341 lib/pacemaker/pcmk_graph_consumer.c pcmk__graph_action_t *action = (pcmk__graph_action_t *) lpc->data; action 342 lib/pacemaker/pcmk_graph_consumer.c int rc = initiate_action(graph, action); action 347 lib/pacemaker/pcmk_graph_consumer.c action->xml->name, action->id, synapse->id, action 350 lib/pacemaker/pcmk_graph_consumer.c pcmk__set_graph_action_flags(action, action 371 lib/pacemaker/pcmk_graph_consumer.c pseudo_action_dummy(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 386 lib/pacemaker/pcmk_graph_consumer.c if (action->id == fail) { action 387 lib/pacemaker/pcmk_graph_consumer.c crm_err("Dummy event handler: pretending action %d failed", action->id); action 388 lib/pacemaker/pcmk_graph_consumer.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 391 lib/pacemaker/pcmk_graph_consumer.c crm_trace("Dummy event handler: action %d initiated", action->id); action 393 lib/pacemaker/pcmk_graph_consumer.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 394 lib/pacemaker/pcmk_graph_consumer.c pcmk__update_graph(graph, action); action 539 lib/pacemaker/pcmk_graph_consumer.c pcmk__graph_action_t *action = NULL; action 565 lib/pacemaker/pcmk_graph_consumer.c action = calloc(1, sizeof(pcmk__graph_action_t)); action 566 lib/pacemaker/pcmk_graph_consumer.c if (action == NULL) { action 572 lib/pacemaker/pcmk_graph_consumer.c pcmk__scan_min_int(value, &(action->id), -1); action 573 lib/pacemaker/pcmk_graph_consumer.c action->type = pcmk__rsc_graph_action; action 574 lib/pacemaker/pcmk_graph_consumer.c action->xml = pcmk__xml_copy(NULL, xml_action); action 575 lib/pacemaker/pcmk_graph_consumer.c action->synapse = parent; action 576 lib/pacemaker/pcmk_graph_consumer.c action->type = action_type; action 577 lib/pacemaker/pcmk_graph_consumer.c action->params = xml2list(action->xml); action 579 lib/pacemaker/pcmk_graph_consumer.c value = crm_meta_value(action->params, PCMK_META_TIMEOUT); action 580 lib/pacemaker/pcmk_graph_consumer.c pcmk__scan_min_int(value, &(action->timeout), 0); action 585 lib/pacemaker/pcmk_graph_consumer.c value = crm_meta_value(action->params, PCMK_META_START_DELAY); action 590 lib/pacemaker/pcmk_graph_consumer.c action->timeout += start_delay; action 593 lib/pacemaker/pcmk_graph_consumer.c if (pcmk__guint_from_hash(action->params, CRM_META "_" PCMK_META_INTERVAL, action 594 lib/pacemaker/pcmk_graph_consumer.c 0, &(action->interval_ms)) != pcmk_rc_ok) { action 595 lib/pacemaker/pcmk_graph_consumer.c action->interval_ms = 0; action 598 lib/pacemaker/pcmk_graph_consumer.c crm_trace("Action %d has timer set to %dms", action->id, action->timeout); action 600 lib/pacemaker/pcmk_graph_consumer.c return action; action 644 lib/pacemaker/pcmk_graph_consumer.c for (xmlNode *action = pcmk__xe_first_child(action_set, NULL, NULL, action 646 lib/pacemaker/pcmk_graph_consumer.c action != NULL; action = pcmk__xe_next(action, NULL)) { action 649 lib/pacemaker/pcmk_graph_consumer.c action); action 824 lib/pacemaker/pcmk_graph_consumer.c const pcmk__graph_action_t *action, action 833 lib/pacemaker/pcmk_graph_consumer.c CRM_CHECK(action != NULL, return NULL); action 834 lib/pacemaker/pcmk_graph_consumer.c CRM_CHECK(action->type == pcmk__rsc_graph_action, return NULL); action 836 lib/pacemaker/pcmk_graph_consumer.c action_resource = pcmk__xe_first_child(action->xml, PCMK_XE_PRIMITIVE, NULL, action 838 lib/pacemaker/pcmk_graph_consumer.c CRM_CHECK(action_resource != NULL, crm_log_xml_warn(action->xml, "invalid"); action 842 lib/pacemaker/pcmk_graph_consumer.c crm_element_value(action->xml, PCMK_XA_OPERATION), action 843 lib/pacemaker/pcmk_graph_consumer.c action->interval_ms); action 849 lib/pacemaker/pcmk_graph_consumer.c g_hash_table_iter_init(&iter, action->params); action 78 lib/pacemaker/pcmk_graph_logging.c const pcmk__graph_action_t *action = action_iter->data; action 79 lib/pacemaker/pcmk_graph_logging.c if (action->id == id) { action 80 lib/pacemaker/pcmk_graph_logging.c return action; action 162 lib/pacemaker/pcmk_graph_logging.c pcmk__graph_action_t *action, const char *pending_inputs) action 164 lib/pacemaker/pcmk_graph_logging.c const char *key = crm_element_value(action->xml, PCMK__XA_OPERATION_KEY); action 165 lib/pacemaker/pcmk_graph_logging.c const char *host = crm_element_value(action->xml, PCMK__META_ON_NODE); action 168 lib/pacemaker/pcmk_graph_logging.c actiontype2text(action->type), key); action 172 lib/pacemaker/pcmk_graph_logging.c action->id, desc, (host? " on " : ""), (host? host : ""), action 207 lib/pacemaker/pcmk_graph_logging.c pcmk__log_graph_action(int log_level, pcmk__graph_action_t *action) action 209 lib/pacemaker/pcmk_graph_logging.c log_synapse(log_level, NULL, action->synapse); action 122 lib/pacemaker/pcmk_graph_producer.c pcmk_action_t *action = NULL; action 125 lib/pacemaker/pcmk_graph_producer.c action = get_pseudo_op(PCMK_ACTION_MAINTENANCE_NODES, scheduler); action 126 lib/pacemaker/pcmk_graph_producer.c pcmk__set_action_flags(action, pcmk__action_always_in_graph); action 142 lib/pacemaker/pcmk_graph_producer.c add_downed_nodes(xmlNode *xml, const pcmk_action_t *action) action 144 lib/pacemaker/pcmk_graph_producer.c CRM_CHECK((xml != NULL) && (action != NULL) && (action->node != NULL), action 147 lib/pacemaker/pcmk_graph_producer.c if (pcmk__str_eq(action->task, PCMK_ACTION_DO_SHUTDOWN, pcmk__str_none)) { action 151 lib/pacemaker/pcmk_graph_producer.c add_node_to_xml_by_id(action->node->priv->id, downed); action 153 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk__str_eq(action->task, PCMK_ACTION_STONITH, action 157 lib/pacemaker/pcmk_graph_producer.c const char *fence = g_hash_table_lookup(action->meta, action 162 lib/pacemaker/pcmk_graph_producer.c add_node_to_xml_by_id(action->node->priv->id, downed); action 163 lib/pacemaker/pcmk_graph_producer.c pe_foreach_guest_node(action->node->priv->scheduler, action 164 lib/pacemaker/pcmk_graph_producer.c action->node, add_node_to_xml, downed); action 167 lib/pacemaker/pcmk_graph_producer.c } else if ((action->rsc != NULL) action 168 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(action->rsc->flags, action 170 lib/pacemaker/pcmk_graph_producer.c && pcmk__str_eq(action->task, PCMK_ACTION_STOP, action 180 lib/pacemaker/pcmk_graph_producer.c for (iter = action->actions_before; iter != NULL; iter = iter->next) { action 181 lib/pacemaker/pcmk_graph_producer.c input = ((pcmk__related_action_t *) iter->data)->action; action 183 lib/pacemaker/pcmk_graph_producer.c && pcmk__str_eq(action->rsc->id, input->rsc->id, pcmk__str_none) action 192 lib/pacemaker/pcmk_graph_producer.c add_node_to_xml_by_id(action->rsc->id, downed); action 207 lib/pacemaker/pcmk_graph_producer.c clone_op_key(const pcmk_action_t *action, guint interval_ms) action 209 lib/pacemaker/pcmk_graph_producer.c if (pcmk__str_eq(action->task, PCMK_ACTION_NOTIFY, pcmk__str_none)) { action 210 lib/pacemaker/pcmk_graph_producer.c const char *n_type = g_hash_table_lookup(action->meta, "notify_type"); action 211 lib/pacemaker/pcmk_graph_producer.c const char *n_task = g_hash_table_lookup(action->meta, action 214 lib/pacemaker/pcmk_graph_producer.c return pcmk__notify_key(action->rsc->priv->history_id, n_type, action 217 lib/pacemaker/pcmk_graph_producer.c return pcmk__op_key(action->rsc->priv->history_id, action 218 lib/pacemaker/pcmk_graph_producer.c pcmk__s(action->cancel_task, action->task), action 230 lib/pacemaker/pcmk_graph_producer.c add_node_details(const pcmk_action_t *action, xmlNode *xml) action 232 lib/pacemaker/pcmk_graph_producer.c pcmk_node_t *router_node = pcmk__connection_host_for_action(action); action 234 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(xml, PCMK__META_ON_NODE, action->node->priv->name); action 235 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(xml, PCMK__META_ON_NODE_UUID, action->node->priv->id); action 249 lib/pacemaker/pcmk_graph_producer.c add_resource_details(const pcmk_action_t *action, xmlNode *action_xml) action 262 lib/pacemaker/pcmk_graph_producer.c if (pcmk__action_locks_rsc_to_node(action)) { action 264 lib/pacemaker/pcmk_graph_producer.c (long long) action->rsc->priv->lock_time); action 270 lib/pacemaker/pcmk_graph_producer.c (const char *) action->rsc->priv->xml->name); action 271 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_removed) action 272 lib/pacemaker/pcmk_graph_producer.c && (action->rsc->priv->history_id != NULL)) { action 282 lib/pacemaker/pcmk_graph_producer.c action->rsc->id, action->rsc->priv->history_id); action 283 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK_XA_ID, action->rsc->priv->history_id); action 284 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK__XA_LONG_ID, action->rsc->id); action 286 lib/pacemaker/pcmk_graph_producer.c } else if (!pcmk_is_set(action->rsc->flags, pcmk__rsc_unique)) { action 287 lib/pacemaker/pcmk_graph_producer.c const char *xml_id = pcmk__xe_id(action->rsc->priv->xml); action 290 lib/pacemaker/pcmk_graph_producer.c xml_id, action->rsc->id, action->rsc->priv->history_id); action 307 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc->priv->history_id != NULL) action 308 lib/pacemaker/pcmk_graph_producer.c && !pcmk__str_eq(xml_id, action->rsc->priv->history_id, action 311 lib/pacemaker/pcmk_graph_producer.c action->rsc->priv->history_id); action 313 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK__XA_LONG_ID, action->rsc->id); action 317 lib/pacemaker/pcmk_graph_producer.c pcmk__assert(action->rsc->priv->history_id == NULL); action 318 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK_XA_ID, action->rsc->id); action 323 lib/pacemaker/pcmk_graph_producer.c g_hash_table_lookup(action->rsc->priv->meta, action 336 lib/pacemaker/pcmk_graph_producer.c add_action_attributes(pcmk_action_t *action, xmlNode *action_xml) action 339 lib/pacemaker/pcmk_graph_producer.c pcmk_resource_t *rsc = action->rsc; action 348 lib/pacemaker/pcmk_graph_producer.c g_hash_table_foreach(action->extra, hash2field, args_xml); action 350 lib/pacemaker/pcmk_graph_producer.c if ((rsc != NULL) && (action->node != NULL)) { action 352 lib/pacemaker/pcmk_graph_producer.c GHashTable *params = pe_rsc_params(rsc, action->node, action 366 lib/pacemaker/pcmk_graph_producer.c g_hash_table_foreach(action->meta, hash2metafield, args_xml); action 375 lib/pacemaker/pcmk_graph_producer.c pcmk__add_guest_meta_to_xml(args_xml, action); action 391 lib/pacemaker/pcmk_graph_producer.c create_graph_action(xmlNode *parent, pcmk_action_t *action, bool skip_details, action 398 lib/pacemaker/pcmk_graph_producer.c if ((action == NULL) || (scheduler == NULL)) { action 404 lib/pacemaker/pcmk_graph_producer.c if (pcmk__str_eq(action->task, PCMK_ACTION_STONITH, pcmk__str_none)) { action 406 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 412 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk__str_any_of(action->task, action 417 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk__str_eq(action->task, PCMK_ACTION_LRM_DELETE, action 423 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 424 lib/pacemaker/pcmk_graph_producer.c if (pcmk__str_eq(action->task, PCMK_ACTION_MAINTENANCE_NODES, action 435 lib/pacemaker/pcmk_graph_producer.c crm_xml_add_int(action_xml, PCMK_XA_ID, action->id); action 436 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(action_xml, PCMK_XA_OPERATION, action->task); action 438 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) && (action->rsc->priv->history_id != NULL)) { action 442 lib/pacemaker/pcmk_graph_producer.c if (pcmk__guint_from_hash(action->meta, PCMK_META_INTERVAL, 0, action 446 lib/pacemaker/pcmk_graph_producer.c clone_key = clone_op_key(action, interval_ms); action 449 lib/pacemaker/pcmk_graph_producer.c action->uuid); action 452 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(action_xml, PCMK__XA_OPERATION_KEY, action->uuid); action 455 lib/pacemaker/pcmk_graph_producer.c if (needs_node_info && (action->node != NULL)) { action 456 lib/pacemaker/pcmk_graph_producer.c add_node_details(action, action_xml); action 457 lib/pacemaker/pcmk_graph_producer.c pcmk__insert_dup(action->meta, PCMK__META_ON_NODE, action 458 lib/pacemaker/pcmk_graph_producer.c action->node->priv->name); action 459 lib/pacemaker/pcmk_graph_producer.c pcmk__insert_dup(action->meta, PCMK__META_ON_NODE_UUID, action 460 lib/pacemaker/pcmk_graph_producer.c action->node->priv->id); action 467 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) action 468 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 471 lib/pacemaker/pcmk_graph_producer.c add_resource_details(action, action_xml); action 475 lib/pacemaker/pcmk_graph_producer.c add_action_attributes(action, action_xml); action 478 lib/pacemaker/pcmk_graph_producer.c if (needs_node_info && (action->node != NULL)) { action 479 lib/pacemaker/pcmk_graph_producer.c add_downed_nodes(action_xml, action); action 496 lib/pacemaker/pcmk_graph_producer.c should_add_action_to_graph(pcmk_action_t *action) action 498 lib/pacemaker/pcmk_graph_producer.c if (!pcmk_is_set(action->flags, pcmk__action_runnable)) { action 500 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id); action 504 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->flags, pcmk__action_optional) action 505 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->flags, pcmk__action_always_in_graph)) { action 507 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id); action 514 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) action 515 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed) action 516 lib/pacemaker/pcmk_graph_producer.c && !pcmk__str_eq(action->task, PCMK_ACTION_MONITOR, pcmk__str_none)) { action 525 lib/pacemaker/pcmk_graph_producer.c interval_ms_s = g_hash_table_lookup(action->meta, PCMK_META_INTERVAL); action 528 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action->rsc->id); action 536 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->flags, pcmk__action_pseudo) action 537 lib/pacemaker/pcmk_graph_producer.c || pcmk__strcase_any_of(action->task, PCMK_ACTION_STONITH, action 542 lib/pacemaker/pcmk_graph_producer.c if (action->node == NULL) { action 543 lib/pacemaker/pcmk_graph_producer.c pcmk__sched_err(action->scheduler, action 546 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id); action 547 lib/pacemaker/pcmk_graph_producer.c pcmk__log_action("Unassigned", action, false); action 551 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->flags, pcmk__action_on_dc)) { action 554 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, pcmk__node_name(action->node)); action 556 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk__is_guest_or_bundle_node(action->node) action 557 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->node->priv->flags, action 561 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, pcmk__node_name(action->node)); action 563 lib/pacemaker/pcmk_graph_producer.c } else if (!action->node->details->online) { action 564 lib/pacemaker/pcmk_graph_producer.c pcmk__sched_err(action->scheduler, action 567 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id); action 568 lib/pacemaker/pcmk_graph_producer.c pcmk__log_action("Offline node", action, false); action 571 lib/pacemaker/pcmk_graph_producer.c } else if (action->node->details->unclean) { action 572 lib/pacemaker/pcmk_graph_producer.c pcmk__sched_err(action->scheduler, action 575 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id); action 576 lib/pacemaker/pcmk_graph_producer.c pcmk__log_action("Unclean node", action, false); action 611 lib/pacemaker/pcmk_graph_producer.c should_add_input_to_graph(const pcmk_action_t *action, action 621 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 622 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 625 lib/pacemaker/pcmk_graph_producer.c } else if (!pcmk_is_set(input->action->flags, pcmk__action_runnable) action 629 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 630 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 633 lib/pacemaker/pcmk_graph_producer.c } else if (!pcmk_is_set(input->action->flags, pcmk__action_runnable) action 637 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 638 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 642 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(input->action->flags, pcmk__action_runnable)) { action 645 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 646 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 650 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(input->action->flags, pcmk__action_migratable)) { action 653 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 654 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 658 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(input->action->flags, pcmk__action_migratable) action 659 lib/pacemaker/pcmk_graph_producer.c && pcmk__ends_with(input->action->uuid, "_stop_0")) { action 662 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 663 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 667 lib/pacemaker/pcmk_graph_producer.c pcmk_node_t *input_node = input->action->node; action 669 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) action 670 lib/pacemaker/pcmk_graph_producer.c && pcmk__str_eq(action->task, PCMK_ACTION_MIGRATE_TO, action 673 lib/pacemaker/pcmk_graph_producer.c pcmk_node_t *assigned = action->rsc->priv->assigned_node; action 682 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 683 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id, action 690 lib/pacemaker/pcmk_graph_producer.c } else if (!pcmk__same_node(input_node, action->node)) { action 693 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 694 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id, action 695 lib/pacemaker/pcmk_graph_producer.c (action->node? action->node->priv->name : "<none>"), action 700 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk_is_set(input->action->flags, pcmk__action_optional)) { action 703 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 704 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 710 lib/pacemaker/pcmk_graph_producer.c if (input->action->node && action->node action 711 lib/pacemaker/pcmk_graph_producer.c && !pcmk__same_node(input->action->node, action->node)) { action 714 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 715 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id, action 716 lib/pacemaker/pcmk_graph_producer.c pcmk__node_name(action->node), action 717 lib/pacemaker/pcmk_graph_producer.c pcmk__node_name(input->action->node)); action 721 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk_is_set(input->action->flags, pcmk__action_optional)) { action 723 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 724 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 729 lib/pacemaker/pcmk_graph_producer.c } else if (input->action->rsc action 730 lib/pacemaker/pcmk_graph_producer.c && input->action->rsc != action->rsc action 731 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(input->action->rsc->flags, pcmk__rsc_failed) action 732 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(input->action->rsc->flags, pcmk__rsc_managed) action 733 lib/pacemaker/pcmk_graph_producer.c && pcmk__ends_with(input->action->uuid, "_stop_0") action 734 lib/pacemaker/pcmk_graph_producer.c && pcmk__is_clone(action->rsc)) { action 737 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, action->uuid); action 740 lib/pacemaker/pcmk_graph_producer.c } else if (pcmk_is_set(input->action->flags, pcmk__action_optional) action 741 lib/pacemaker/pcmk_graph_producer.c && !pcmk_any_flags_set(input->action->flags, action 744 lib/pacemaker/pcmk_graph_producer.c && !should_add_action_to_graph(input->action)) { action 747 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action 748 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id); action 753 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action_type_str(input->action->flags), action 754 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, input->action->id, action 755 lib/pacemaker/pcmk_graph_producer.c action_node_str(input->action), action 756 lib/pacemaker/pcmk_graph_producer.c action_runnable_str(input->action->flags), action 757 lib/pacemaker/pcmk_graph_producer.c action_optional_str(input->action->flags), input->flags); action 775 lib/pacemaker/pcmk_graph_producer.c const pcmk_action_t *action, pcmk__related_action_t *input) action 779 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(input->action->flags, pcmk__action_detect_loop)) { action 781 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, action 782 lib/pacemaker/pcmk_graph_producer.c input->action->node? input->action->node->priv->name : "", action 783 lib/pacemaker/pcmk_graph_producer.c action->uuid, action 784 lib/pacemaker/pcmk_graph_producer.c action->node? action->node->priv->name : "", action 790 lib/pacemaker/pcmk_graph_producer.c if (!should_add_input_to_graph(action, input)) { action 794 lib/pacemaker/pcmk_graph_producer.c if (input->action == init_action) { action 796 lib/pacemaker/pcmk_graph_producer.c action->uuid, action 797 lib/pacemaker/pcmk_graph_producer.c action->node? action->node->priv->name : "", action 803 lib/pacemaker/pcmk_graph_producer.c pcmk__set_action_flags(input->action, pcmk__action_detect_loop); action 807 lib/pacemaker/pcmk_graph_producer.c action->uuid, action 808 lib/pacemaker/pcmk_graph_producer.c action->node? action->node->priv->name : "", action 809 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, action 810 lib/pacemaker/pcmk_graph_producer.c input->action->node? input->action->node->priv->name : "", action 816 lib/pacemaker/pcmk_graph_producer.c for (GList *iter = input->action->actions_before; action 819 lib/pacemaker/pcmk_graph_producer.c if (pcmk__graph_has_loop(init_action, input->action, action 827 lib/pacemaker/pcmk_graph_producer.c pcmk__clear_action_flags(input->action, pcmk__action_detect_loop); action 831 lib/pacemaker/pcmk_graph_producer.c input->action->uuid, action 832 lib/pacemaker/pcmk_graph_producer.c input->action->node? input->action->node->priv->name : "", action 833 lib/pacemaker/pcmk_graph_producer.c action->uuid, action 834 lib/pacemaker/pcmk_graph_producer.c action->node? action->node->priv->name : "", action 850 lib/pacemaker/pcmk_graph_producer.c create_graph_synapse(const pcmk_action_t *action, pcmk_scheduler_t *scheduler) action 857 lib/pacemaker/pcmk_graph_producer.c if (action->rsc != NULL) { action 858 lib/pacemaker/pcmk_graph_producer.c synapse_priority = action->rsc->priv->priority; action 860 lib/pacemaker/pcmk_graph_producer.c if (action->priority > synapse_priority) { action 861 lib/pacemaker/pcmk_graph_producer.c synapse_priority = action->priority; action 888 lib/pacemaker/pcmk_graph_producer.c pcmk_action_t *action = (pcmk_action_t *) data; action 899 lib/pacemaker/pcmk_graph_producer.c if (!pcmk_is_set(action->flags, pcmk__action_inputs_deduplicated)) { action 900 lib/pacemaker/pcmk_graph_producer.c pcmk__deduplicate_action_inputs(action); action 901 lib/pacemaker/pcmk_graph_producer.c pcmk__set_action_flags(action, pcmk__action_inputs_deduplicated); action 904 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->flags, pcmk__action_added_to_graph) action 905 lib/pacemaker/pcmk_graph_producer.c || !should_add_action_to_graph(action)) { action 908 lib/pacemaker/pcmk_graph_producer.c pcmk__set_action_flags(action, pcmk__action_added_to_graph); action 911 lib/pacemaker/pcmk_graph_producer.c action->id, action->uuid, action 912 lib/pacemaker/pcmk_graph_producer.c ((action->node == NULL)? "" : " on "), action 913 lib/pacemaker/pcmk_graph_producer.c ((action->node == NULL)? "" : action->node->priv->name)); action 915 lib/pacemaker/pcmk_graph_producer.c syn = create_graph_synapse(action, scheduler); action 919 lib/pacemaker/pcmk_graph_producer.c create_graph_action(set, action, false, scheduler); action 921 lib/pacemaker/pcmk_graph_producer.c for (GList *lpc = action->actions_before; lpc != NULL; lpc = lpc->next) { action 924 lib/pacemaker/pcmk_graph_producer.c if (should_add_input_to_graph(action, input)) { action 928 lib/pacemaker/pcmk_graph_producer.c create_graph_action(input_xml, input->action, true, scheduler); action 1076 lib/pacemaker/pcmk_graph_producer.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 1078 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) action 1079 lib/pacemaker/pcmk_graph_producer.c && (action->node != NULL) action 1080 lib/pacemaker/pcmk_graph_producer.c && action->node->details->shutdown action 1081 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_maintenance) action 1082 lib/pacemaker/pcmk_graph_producer.c && !pcmk_any_flags_set(action->flags, action 1084 lib/pacemaker/pcmk_graph_producer.c && pcmk__str_eq(action->task, PCMK_ACTION_STOP, pcmk__str_none)) { action 1091 lib/pacemaker/pcmk_graph_producer.c const bool managed = pcmk_is_set(action->rsc->flags, action 1093 lib/pacemaker/pcmk_graph_producer.c const bool failed = pcmk_is_set(action->rsc->flags, action 1097 lib/pacemaker/pcmk_graph_producer.c action->node->details->unclean? "fence" : "shut down", action 1098 lib/pacemaker/pcmk_graph_producer.c pcmk__node_name(action->node), action->rsc->id, action 1100 lib/pacemaker/pcmk_graph_producer.c (failed? " failed" : ""), action->uuid); action 1104 lib/pacemaker/pcmk_graph_producer.c add_action_to_graph((gpointer) action, (gpointer) scheduler); action 114 lib/pacemaker/pcmk_output.c pcmk_action_t *action = va_arg(args, pcmk_action_t *); action 127 lib/pacemaker/pcmk_output.c pcmk__assert((action != NULL) action 131 lib/pacemaker/pcmk_output.c source = action; action 216 lib/pacemaker/pcmk_output.c && !pcmk_is_set(action->flags, pcmk__action_runnable)) { action 222 lib/pacemaker/pcmk_output.c } else if (!pcmk_is_set(action->flags, pcmk__action_runnable)) { action 246 lib/pacemaker/pcmk_output.c pcmk_action_t *action = va_arg(args, pcmk_action_t *); action 256 lib/pacemaker/pcmk_output.c pcmk__assert((action != NULL) action 260 lib/pacemaker/pcmk_output.c source = action; action 360 lib/pacemaker/pcmk_output.c && !pcmk_is_set(action->flags, pcmk__action_runnable)) { action 369 lib/pacemaker/pcmk_output.c } else if (!pcmk_is_set(action->flags, pcmk__action_runnable)) { action 1628 lib/pacemaker/pcmk_output.c const char *action = va_arg(args, const char *); action 1635 lib/pacemaker/pcmk_output.c if (pcmk__str_eq(action, "Online", pcmk__str_none)) { action 1638 lib/pacemaker/pcmk_output.c } else if (pcmk__str_eq(action, "Offline", pcmk__str_none)) { action 1641 lib/pacemaker/pcmk_output.c } else if (pcmk__str_eq(action, "Failing", pcmk__str_none)) { action 1653 lib/pacemaker/pcmk_output.c const char *action = va_arg(args, const char *); action 1661 lib/pacemaker/pcmk_output.c PCMK_XA_ACTION, action, action 1671 lib/pacemaker/pcmk_output.c const char *action = va_arg(args, const char *); action 1678 lib/pacemaker/pcmk_output.c if (pcmk__str_eq(action, "Standby", pcmk__str_none)) { action 1681 lib/pacemaker/pcmk_output.c out->list_item(out, NULL, "%s ticket %s", action, ticket); action 1691 lib/pacemaker/pcmk_output.c const char *action = va_arg(args, const char *); action 1699 lib/pacemaker/pcmk_output.c PCMK_XA_ACTION, action, action 35 lib/pacemaker/pcmk_sched_actions.c action_flags_for_ordering(pcmk_action_t *action, const pcmk_node_t *node) action 41 lib/pacemaker/pcmk_sched_actions.c if (action->rsc == NULL) { action 42 lib/pacemaker/pcmk_sched_actions.c return action->flags; action 49 lib/pacemaker/pcmk_sched_actions.c flags = action->rsc->priv->cmds->action_flags(action, NULL); action 50 lib/pacemaker/pcmk_sched_actions.c if ((node == NULL) || !pcmk__is_clone(action->rsc)) { action 60 lib/pacemaker/pcmk_sched_actions.c flags = action->rsc->priv->cmds->action_flags(action, node); action 71 lib/pacemaker/pcmk_sched_actions.c pcmk__set_raw_action_flags(flags, action->rsc->id, action 182 lib/pacemaker/pcmk_sched_actions.c action_for_ordering(pcmk_action_t *action) action 184 lib/pacemaker/pcmk_sched_actions.c pcmk_action_t *result = action; action 185 lib/pacemaker/pcmk_sched_actions.c pcmk_resource_t *rsc = action->rsc; action 192 lib/pacemaker/pcmk_sched_actions.c && (action->uuid != NULL)) { action 193 lib/pacemaker/pcmk_sched_actions.c char *uuid = action_uuid_for_ordering(action->uuid, rsc); action 198 lib/pacemaker/pcmk_sched_actions.c "remapped action", action->uuid, uuid, rsc->id); action 199 lib/pacemaker/pcmk_sched_actions.c result = action; action 550 lib/pacemaker/pcmk_sched_actions.c pcmk_action_t *first = other->action; action 587 lib/pacemaker/pcmk_sched_actions.c other->action->uuid, pcmk__node_name(first_node), action 602 lib/pacemaker/pcmk_sched_actions.c pcmk__set_action_flags(other->action, pcmk__action_optional); action 612 lib/pacemaker/pcmk_sched_actions.c if (first != other->action) { action 614 lib/pacemaker/pcmk_sched_actions.c then->uuid, first->uuid, other->action->uuid); action 622 lib/pacemaker/pcmk_sched_actions.c if (first == other->action) { action 647 lib/pacemaker/pcmk_sched_actions.c other->action->uuid, then->uuid, first->uuid, action 660 lib/pacemaker/pcmk_sched_actions.c pcmk__update_action_for_orderings(other->action, scheduler); action 685 lib/pacemaker/pcmk_sched_actions.c pcmk__update_action_for_orderings(other->action, scheduler); action 691 lib/pacemaker/pcmk_sched_actions.c is_primitive_action(const pcmk_action_t *action) action 693 lib/pacemaker/pcmk_sched_actions.c return (action != NULL) && pcmk__is_primitive(action->rsc); action 704 lib/pacemaker/pcmk_sched_actions.c #define clear_action_flag_because(action, flag, reason) do { \ action 705 lib/pacemaker/pcmk_sched_actions.c if (pcmk_is_set((action)->flags, (flag))) { \ action 706 lib/pacemaker/pcmk_sched_actions.c pcmk__clear_action_flags(action, flag); \ action 707 lib/pacemaker/pcmk_sched_actions.c if ((action)->rsc != (reason)->rsc) { \ action 709 lib/pacemaker/pcmk_sched_actions.c pe_action_set_reason((action), reason_text, false); \ action 977 lib/pacemaker/pcmk_sched_actions.c pcmk__log_action(const char *pre_text, const pcmk_action_t *action, action 984 lib/pacemaker/pcmk_sched_actions.c CRM_CHECK(action != NULL, return); action 986 lib/pacemaker/pcmk_sched_actions.c if (!pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 987 lib/pacemaker/pcmk_sched_actions.c if (action->node != NULL) { action 988 lib/pacemaker/pcmk_sched_actions.c node_uname = action->node->priv->name; action 989 lib/pacemaker/pcmk_sched_actions.c node_uuid = action->node->priv->id; action 995 lib/pacemaker/pcmk_sched_actions.c switch (pcmk__parse_action(action->task)) { action 998 lib/pacemaker/pcmk_sched_actions.c if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 1000 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk_is_set(action->flags, pcmk__action_optional)) { action 1002 lib/pacemaker/pcmk_sched_actions.c } else if (!pcmk_is_set(action->flags, pcmk__action_runnable)) { action 1010 lib/pacemaker/pcmk_sched_actions.c desc, action->id, action->uuid, action 1016 lib/pacemaker/pcmk_sched_actions.c if (pcmk_is_set(action->flags, pcmk__action_optional)) { action 1018 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 1020 lib/pacemaker/pcmk_sched_actions.c } else if (!pcmk_is_set(action->flags, pcmk__action_runnable)) { action 1028 lib/pacemaker/pcmk_sched_actions.c desc, action->id, action->uuid, action 1029 lib/pacemaker/pcmk_sched_actions.c (action->rsc? action->rsc->id : "<none>"), action 1041 lib/pacemaker/pcmk_sched_actions.c for (iter = action->actions_before; iter != NULL; iter = iter->next) { action 1043 lib/pacemaker/pcmk_sched_actions.c pcmk__log_action("\t\t", other->action, false); action 1046 lib/pacemaker/pcmk_sched_actions.c for (iter = action->actions_after; iter != NULL; iter = iter->next) { action 1048 lib/pacemaker/pcmk_sched_actions.c pcmk__log_action("\t\t", other->action, false); action 1054 lib/pacemaker/pcmk_sched_actions.c g_list_length(action->actions_before), action 1055 lib/pacemaker/pcmk_sched_actions.c g_list_length(action->actions_after)); action 1323 lib/pacemaker/pcmk_sched_actions.c pcmk__action_locks_rsc_to_node(const pcmk_action_t *action) action 1326 lib/pacemaker/pcmk_sched_actions.c if ((action == NULL) || (action->rsc == NULL) action 1327 lib/pacemaker/pcmk_sched_actions.c || !pcmk__same_node(action->node, action->rsc->priv->lock_node)) { action 1334 lib/pacemaker/pcmk_sched_actions.c if (action->node->details->shutdown && (action->task != NULL) action 1335 lib/pacemaker/pcmk_sched_actions.c && (strcmp(action->task, PCMK_ACTION_STOP) != 0)) { action 1355 lib/pacemaker/pcmk_sched_actions.c if (action_wrapper1->action->id < action_wrapper2->action->id) { action 1358 lib/pacemaker/pcmk_sched_actions.c if (action_wrapper1->action->id > action_wrapper2->action->id) { action 1371 lib/pacemaker/pcmk_sched_actions.c pcmk__deduplicate_action_inputs(pcmk_action_t *action) action 1377 lib/pacemaker/pcmk_sched_actions.c action->actions_before = g_list_sort(action->actions_before, action 1379 lib/pacemaker/pcmk_sched_actions.c for (item = action->actions_before; item != NULL; item = next) { action 1384 lib/pacemaker/pcmk_sched_actions.c && (input->action->id == last_input->action->id)) { action 1386 lib/pacemaker/pcmk_sched_actions.c input->action->uuid, input->action->id, action 1387 lib/pacemaker/pcmk_sched_actions.c action->uuid, action->id); action 1399 lib/pacemaker/pcmk_sched_actions.c action->actions_before = g_list_delete_link(action->actions_before, action 1425 lib/pacemaker/pcmk_sched_actions.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 1427 lib/pacemaker/pcmk_sched_actions.c if (action->rsc != NULL) { action 1430 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk_is_set(action->flags, pcmk__action_optional)) { action 1434 lib/pacemaker/pcmk_sched_actions.c if (pcmk__str_eq(action->task, PCMK_ACTION_DO_SHUTDOWN, action 1438 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk__str_eq(action->task, PCMK_ACTION_STONITH, action 1440 lib/pacemaker/pcmk_sched_actions.c const char *op = g_hash_table_lookup(action->meta, action 1449 lib/pacemaker/pcmk_sched_actions.c if (pcmk__is_guest_or_bundle_node(action->node)) { action 1450 lib/pacemaker/pcmk_sched_actions.c const pcmk_resource_t *remote = action->node->priv->remote; action 1453 lib/pacemaker/pcmk_sched_actions.c pcmk__node_name(action->node), action 1455 lib/pacemaker/pcmk_sched_actions.c } else if (action->node != NULL) { action 1456 lib/pacemaker/pcmk_sched_actions.c node_name = crm_strdup_printf("%s", pcmk__node_name(action->node)); action 1459 lib/pacemaker/pcmk_sched_actions.c out->message(out, "node-action", task, node_name, action->reason); action 197 lib/pacemaker/pcmk_sched_bundle.c pcmk_action_t *action = NULL; action 215 lib/pacemaker/pcmk_sched_bundle.c action = pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_PROMOTED, action 217 lib/pacemaker/pcmk_sched_bundle.c action->priority = PCMK_SCORE_INFINITY; action 220 lib/pacemaker/pcmk_sched_bundle.c action = pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_DEMOTED, action 222 lib/pacemaker/pcmk_sched_bundle.c action->priority = PCMK_SCORE_INFINITY; action 708 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_action_flags(pcmk_action_t *action, const pcmk_node_t *node) action 714 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert((action != NULL) && pcmk__is_bundle(action->rsc)); action 716 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(action->rsc); action 721 lib/pacemaker/pcmk_sched_bundle.c switch (get_complex_task(bundled_resource, action->task)) { action 729 lib/pacemaker/pcmk_sched_bundle.c return pcmk__collective_action_flags(action, children, node); action 735 lib/pacemaker/pcmk_sched_bundle.c containers = pe__bundle_containers(action->rsc); action 736 lib/pacemaker/pcmk_sched_bundle.c flags = pcmk__collective_action_flags(action, containers, node); action 415 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_action_flags(pcmk_action_t *action, const pcmk_node_t *node) action 417 lib/pacemaker/pcmk_sched_clone.c pcmk__assert((action != NULL) && pcmk__is_clone(action->rsc)); action 419 lib/pacemaker/pcmk_sched_clone.c return pcmk__collective_action_flags(action, action->rsc->priv->children, action 1109 lib/pacemaker/pcmk_sched_colocation.c pcmk_action_t *action = iter->data; action 1111 lib/pacemaker/pcmk_sched_colocation.c if (pcmk_is_set(action->flags, pcmk__action_runnable) action 1112 lib/pacemaker/pcmk_sched_colocation.c && pcmk__str_eq(action->task, task, pcmk__str_none)) { action 1114 lib/pacemaker/pcmk_sched_colocation.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 1115 lib/pacemaker/pcmk_sched_colocation.c pe_action_set_reason(action, reason_text, false); action 1116 lib/pacemaker/pcmk_sched_colocation.c pcmk__block_colocation_dependents(action); action 1117 lib/pacemaker/pcmk_sched_colocation.c pcmk__update_action_for_orderings(action, rsc->priv->scheduler); action 1139 lib/pacemaker/pcmk_sched_colocation.c pcmk__block_colocation_dependents(pcmk_action_t *action) action 1146 lib/pacemaker/pcmk_sched_colocation.c if (pcmk_is_set(action->flags, pcmk__action_runnable)) { action 1150 lib/pacemaker/pcmk_sched_colocation.c is_start = pcmk__str_eq(action->task, PCMK_ACTION_START, pcmk__str_none); action 1152 lib/pacemaker/pcmk_sched_colocation.c && !pcmk__str_eq(action->task, PCMK_ACTION_PROMOTE, pcmk__str_none)) { action 1156 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert(action->rsc != NULL); // Start and promote are resource actions action 1162 lib/pacemaker/pcmk_sched_colocation.c rsc = uber_parent(action->rsc); action 1173 lib/pacemaker/pcmk_sched_colocation.c action->task, NULL); action 1178 lib/pacemaker/pcmk_sched_colocation.c rsc->id, child->id, action->task); action 1184 lib/pacemaker/pcmk_sched_colocation.c rsc->id, action->rsc->id, action->task); action 1208 lib/pacemaker/pcmk_sched_colocation.c action->rsc); action 1211 lib/pacemaker/pcmk_sched_colocation.c action->rsc); action 65 lib/pacemaker/pcmk_sched_fencing.c pcmk_action_t *action = iter->data; action 67 lib/pacemaker/pcmk_sched_fencing.c switch (action->needs) { action 73 lib/pacemaker/pcmk_sched_fencing.c order_actions(stonith_op, action, pcmk__ar_ordered); action 77 lib/pacemaker/pcmk_sched_fencing.c if (pcmk__str_eq(action->task, PCMK_ACTION_START, action 93 lib/pacemaker/pcmk_sched_fencing.c action->uuid, pcmk__node_name(target)); action 94 lib/pacemaker/pcmk_sched_fencing.c order_actions(stonith_op, action, action 145 lib/pacemaker/pcmk_sched_fencing.c pcmk_action_t *action = iter->data; action 148 lib/pacemaker/pcmk_sched_fencing.c pcmk__set_action_flags(action, action 165 lib/pacemaker/pcmk_sched_fencing.c order_actions(stonith_op, action, pcmk__ar_guest_allowed); action 176 lib/pacemaker/pcmk_sched_fencing.c action->uuid, (order_implicit? "after" : "because"), action 181 lib/pacemaker/pcmk_sched_fencing.c pe__order_notifs_after_fencing(action, rsc, stonith_op); action 217 lib/pacemaker/pcmk_sched_fencing.c pcmk_action_t *action = iter->data; action 219 lib/pacemaker/pcmk_sched_fencing.c if (!(action->node->details->online) || action->node->details->unclean action 229 lib/pacemaker/pcmk_sched_fencing.c action->uuid, pcmk__node_name(target)); action 235 lib/pacemaker/pcmk_sched_fencing.c pcmk__set_action_flags(action, action 242 lib/pacemaker/pcmk_sched_fencing.c order_actions(stonith_op, action, action 313 lib/pacemaker/pcmk_sched_fencing.c pcmk_action_t *action, action 335 lib/pacemaker/pcmk_sched_fencing.c order_actions(unfence, action, order); action 340 lib/pacemaker/pcmk_sched_fencing.c rsc->id, action->task); action 106 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(pcmk_resource_t *group, const char *action) action 108 lib/pacemaker/pcmk_sched_group.c pcmk_action_t *op = custom_action(group, pcmk__op_key(group->id, action, 0), action 109 lib/pacemaker/pcmk_sched_group.c action, NULL, TRUE, action 550 lib/pacemaker/pcmk_sched_group.c pcmk__group_action_flags(pcmk_action_t *action, const pcmk_node_t *node) action 557 lib/pacemaker/pcmk_sched_group.c pcmk__assert(action != NULL); action 560 lib/pacemaker/pcmk_sched_group.c for (GList *iter = action->rsc->priv->children; action 566 lib/pacemaker/pcmk_sched_group.c enum pcmk__action_type task = get_complex_task(member, action->task); action 581 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, "%s is mandatory because %s is", action 582 lib/pacemaker/pcmk_sched_group.c action->uuid, member_action->uuid); action 585 lib/pacemaker/pcmk_sched_group.c pcmk__clear_action_flags(action, pcmk__action_optional); action 589 lib/pacemaker/pcmk_sched_group.c if (!pcmk__str_eq(task_s, action->task, pcmk__str_none) action 593 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, "%s is unrunnable because %s is", action 594 lib/pacemaker/pcmk_sched_group.c action->uuid, member_action->uuid); action 597 lib/pacemaker/pcmk_sched_group.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 605 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, action 607 lib/pacemaker/pcmk_sched_group.c action->uuid, member->id, task_s); action 934 lib/pacemaker/pcmk_sched_instances.c const pcmk_action_t *action = (const pcmk_action_t *) iter->data; action 935 lib/pacemaker/pcmk_sched_instances.c const bool optional = pcmk_is_set(action->flags, pcmk__action_optional); action 937 lib/pacemaker/pcmk_sched_instances.c if (pcmk__str_eq(PCMK_ACTION_START, action->task, pcmk__str_none)) { action 939 lib/pacemaker/pcmk_sched_instances.c && pcmk_is_set(action->flags, pcmk__action_runnable)) { action 942 lib/pacemaker/pcmk_sched_instances.c action->uuid); action 946 lib/pacemaker/pcmk_sched_instances.c action->uuid, instance->id, action 950 lib/pacemaker/pcmk_sched_instances.c } else if (pcmk__str_eq(PCMK_ACTION_STOP, action->task, action 957 lib/pacemaker/pcmk_sched_instances.c && pcmk_any_flags_set(action->flags, pcmk__action_pseudo action 960 lib/pacemaker/pcmk_sched_instances.c action->uuid); action 964 lib/pacemaker/pcmk_sched_instances.c action->uuid, instance->id, action 1284 lib/pacemaker/pcmk_sched_instances.c find_instance_action(const pcmk_action_t *action, const pcmk_resource_t *instance, action 1306 lib/pacemaker/pcmk_sched_instances.c if ((for_first && !pcmk__str_any_of(action->task, PCMK_ACTION_STOP, action 1309 lib/pacemaker/pcmk_sched_instances.c || (!for_first && pcmk__str_any_of(action->task, PCMK_ACTION_PROMOTE, action 1355 lib/pacemaker/pcmk_sched_instances.c orig_action_name(const pcmk_action_t *action) action 1358 lib/pacemaker/pcmk_sched_instances.c const pcmk_resource_t *instance = action->rsc->priv->children->data; action 1361 lib/pacemaker/pcmk_sched_instances.c const char *action_name = action->task; action 1364 lib/pacemaker/pcmk_sched_instances.c if (pcmk__strcase_any_of(action->task, PCMK_ACTION_NOTIFY, action 1367 lib/pacemaker/pcmk_sched_instances.c CRM_CHECK(parse_op_key(action->uuid, NULL, &action_type, NULL), action 1568 lib/pacemaker/pcmk_sched_instances.c pcmk__update_action_for_orderings(after->action, scheduler); action 1632 lib/pacemaker/pcmk_sched_instances.c #define pe__clear_action_summary_flags(flags, action, flag) do { \ action 1634 lib/pacemaker/pcmk_sched_instances.c "Action summary", action->rsc->id, \ action 1649 lib/pacemaker/pcmk_sched_instances.c pcmk__collective_action_flags(pcmk_action_t *action, const GList *instances, action 1653 lib/pacemaker/pcmk_sched_instances.c const char *action_name = orig_action_name(action); action 1674 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, "%s has no %s action on %s", action 1679 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, "%s has %s for %s on %s", action 1690 lib/pacemaker/pcmk_sched_instances.c action->uuid, instance_action->uuid); action 1691 lib/pacemaker/pcmk_sched_instances.c pe__clear_action_summary_flags(flags, action, action 1693 lib/pacemaker/pcmk_sched_instances.c pcmk__clear_action_flags(action, pcmk__action_optional); action 1703 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, action 1705 lib/pacemaker/pcmk_sched_instances.c action->uuid, action_name); action 1706 lib/pacemaker/pcmk_sched_instances.c pe__clear_action_summary_flags(flags, action, pcmk__action_runnable); action 1708 lib/pacemaker/pcmk_sched_instances.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 28 lib/pacemaker/pcmk_sched_migration.c add_migration_meta(pcmk_action_t *action, const pcmk_node_t *source, action 31 lib/pacemaker/pcmk_sched_migration.c pcmk__insert_meta(action, PCMK__META_MIGRATE_SOURCE, action 34 lib/pacemaker/pcmk_sched_migration.c pcmk__insert_meta(action, PCMK__META_MIGRATE_TARGET, action 239 lib/pacemaker/pcmk_sched_migration.c task_from_action_or_key(const pcmk_action_t *action, const char *key) action 243 lib/pacemaker/pcmk_sched_migration.c if (action != NULL) { action 244 lib/pacemaker/pcmk_sched_migration.c res = pcmk__str_copy(action->task); action 43 lib/pacemaker/pcmk_sched_ordering.c invert_action(const char *action) action 45 lib/pacemaker/pcmk_sched_ordering.c if (pcmk__str_eq(action, PCMK_ACTION_START, pcmk__str_none)) { action 48 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_STOP, pcmk__str_none)) { action 51 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_PROMOTE, pcmk__str_none)) { action 54 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_DEMOTE, pcmk__str_none)) { action 57 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_PROMOTED, pcmk__str_none)) { action 60 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_DEMOTED, pcmk__str_none)) { action 63 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_RUNNING, pcmk__str_none)) { action 66 lib/pacemaker/pcmk_sched_ordering.c } else if (pcmk__str_eq(action, PCMK_ACTION_STOPPED, pcmk__str_none)) { action 70 lib/pacemaker/pcmk_sched_ordering.c action); action 571 lib/pacemaker/pcmk_sched_ordering.c const char *action = crm_element_value(set, PCMK_XA_ACTION); action 575 lib/pacemaker/pcmk_sched_ordering.c if (action == NULL) { action 576 lib/pacemaker/pcmk_sched_ordering.c action = PCMK_ACTION_START; action 589 lib/pacemaker/pcmk_sched_ordering.c flags = ordering_flags_for_kind(local_kind, action, symmetry); action 611 lib/pacemaker/pcmk_sched_ordering.c key = pcmk__op_key(resource->id, action, 0); action 618 lib/pacemaker/pcmk_sched_ordering.c char *then_key = pcmk__op_key(then_rsc->id, action, 0); action 626 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(last, action, resource, action, action 639 lib/pacemaker/pcmk_sched_ordering.c action = invert_action(action); action 641 lib/pacemaker/pcmk_sched_ordering.c flags = ordering_flags_for_kind(local_kind, action, action 651 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(resource, action, last, action, action 1067 lib/pacemaker/pcmk_sched_ordering.c ordering_is_invalid(pcmk_action_t *action, pcmk__related_action_t *input) action 1073 lib/pacemaker/pcmk_sched_ordering.c && (input->action->rsc != NULL) action 1074 lib/pacemaker/pcmk_sched_ordering.c && pcmk__rsc_corresponds_to_guest(action->rsc, input->action->node)) { action 1077 lib/pacemaker/pcmk_sched_ordering.c input->action->rsc->id, action->rsc->id); action 1089 lib/pacemaker/pcmk_sched_ordering.c && (action->rsc != NULL) action 1090 lib/pacemaker/pcmk_sched_ordering.c && pcmk__str_eq(action->task, PCMK_ACTION_MIGRATE_TO, pcmk__str_none) action 1091 lib/pacemaker/pcmk_sched_ordering.c && pcmk__graph_has_loop(action, action, input)) { action 1104 lib/pacemaker/pcmk_sched_ordering.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 1107 lib/pacemaker/pcmk_sched_ordering.c for (GList *input_iter = action->actions_before; action 1111 lib/pacemaker/pcmk_sched_ordering.c if (ordering_is_invalid(action, input)) { action 1131 lib/pacemaker/pcmk_sched_ordering.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 1134 lib/pacemaker/pcmk_sched_ordering.c if (!pcmk__same_node(action->node, node) action 1135 lib/pacemaker/pcmk_sched_ordering.c || !pcmk__str_eq(action->task, PCMK_ACTION_STOP, pcmk__str_none)) { action 1141 lib/pacemaker/pcmk_sched_ordering.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_maintenance)) { action 1142 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, action 1145 lib/pacemaker/pcmk_sched_ordering.c action->uuid, pcmk__node_name(node)); action 1149 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, action 1152 lib/pacemaker/pcmk_sched_ordering.c action->uuid, pcmk__node_name(node)); action 1162 lib/pacemaker/pcmk_sched_ordering.c if (!pcmk_any_flags_set(action->rsc->flags, action 1164 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, action 1167 lib/pacemaker/pcmk_sched_ordering.c action->uuid, pcmk__node_name(node)); action 1171 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, "Ordering %s before shutdown of %s", action 1172 lib/pacemaker/pcmk_sched_ordering.c action->uuid, pcmk__node_name(node)); action 1173 lib/pacemaker/pcmk_sched_ordering.c pcmk__clear_action_flags(action, pcmk__action_optional); action 1174 lib/pacemaker/pcmk_sched_ordering.c pcmk__new_ordering(action->rsc, NULL, action, NULL, action 1234 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_action_flags(pcmk_action_t *action, const pcmk_node_t *node) action 1236 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(action != NULL); action 1237 lib/pacemaker/pcmk_sched_primitive.c return (uint32_t) action->flags; action 499 lib/pacemaker/pcmk_sched_probes.c if ((after->action->rsc->priv->variant <= pcmk__rsc_variant_group) action 503 lib/pacemaker/pcmk_sched_probes.c || (pe__const_top_resource(probe->rsc, false) != after->action->rsc) action 504 lib/pacemaker/pcmk_sched_probes.c || !pcmk__str_eq(after->action->task, PCMK_ACTION_START, action 512 lib/pacemaker/pcmk_sched_probes.c after->action->uuid, pcmk__node_name(after->action->node)); action 514 lib/pacemaker/pcmk_sched_probes.c for (GList *then_iter = after->action->actions_after; then_iter != NULL; action 519 lib/pacemaker/pcmk_sched_probes.c if ((then->action->rsc->priv->active_nodes != NULL) action 520 lib/pacemaker/pcmk_sched_probes.c || (pe__const_top_resource(then->action->rsc, false) action 521 lib/pacemaker/pcmk_sched_probes.c != after->action->rsc) action 522 lib/pacemaker/pcmk_sched_probes.c || !pcmk__str_eq(then->action->task, PCMK_ACTION_START, action 530 lib/pacemaker/pcmk_sched_probes.c then->action->uuid, pcmk__node_name(then->action->node), action 536 lib/pacemaker/pcmk_sched_probes.c order_actions(probe, then->action, flags); action 649 lib/pacemaker/pcmk_sched_probes.c || (after_wrapper->action->rsc == NULL)) { action 652 lib/pacemaker/pcmk_sched_probes.c chained_rsc = after_wrapper->action->rsc; action 673 lib/pacemaker/pcmk_sched_probes.c after_wrapper->action->uuid, action 674 lib/pacemaker/pcmk_sched_probes.c pcmk__node_name(after_wrapper->action->node), action 677 lib/pacemaker/pcmk_sched_probes.c add_restart_orderings_for_probe(probe, after_wrapper->action); action 692 lib/pacemaker/pcmk_sched_probes.c pcmk_action_t *action = iter->data; action 694 lib/pacemaker/pcmk_sched_probes.c pcmk__clear_action_flags(action, pcmk__action_detect_loop); action 731 lib/pacemaker/pcmk_sched_probes.c add_restart_orderings_for_probe(probe, then->action); action 807 lib/pacemaker/pcmk_sched_probes.c pcmk_action_t *first = before->action; action 818 lib/pacemaker/pcmk_sched_probes.c first->uuid, before->action->uuid, start->uuid); action 820 lib/pacemaker/pcmk_sched_probes.c pcmk__assert(before->action->rsc != NULL); action 821 lib/pacemaker/pcmk_sched_probes.c first_rsc = before->action->rsc; action 98 lib/pacemaker/pcmk_sched_promotable.c const pcmk_action_t *action = (const pcmk_action_t *) iter->data; action 103 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk_is_set(action->flags, pcmk__action_optional)) { action 106 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk__str_eq(PCMK_ACTION_DEMOTE, action->task, action 110 lib/pacemaker/pcmk_sched_promotable.c } else if (pcmk__str_eq(PCMK_ACTION_PROMOTE, action->task, action 438 lib/pacemaker/pcmk_sched_recurring.c pcmk_action_t *action) action 443 lib/pacemaker/pcmk_sched_recurring.c order_actions((pcmk_action_t *) iter->data, action, action 459 lib/pacemaker/pcmk_sched_recurring.c pcmk_action_t *action) action 467 lib/pacemaker/pcmk_sched_recurring.c && !pcmk_is_set(action->flags, pcmk__action_optional) action 470 lib/pacemaker/pcmk_sched_recurring.c action->uuid, pcmk__node_name(node)); action 471 lib/pacemaker/pcmk_sched_recurring.c pcmk__set_action_flags(action, pcmk__action_optional); action 476 lib/pacemaker/pcmk_sched_recurring.c action->uuid, pcmk__node_name(node)); action 477 lib/pacemaker/pcmk_sched_recurring.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 482 lib/pacemaker/pcmk_sched_recurring.c NULL, NULL, action, action 746 lib/pacemaker/pcmk_sched_recurring.c pcmk__action_is_recurring(const pcmk_action_t *action) action 750 lib/pacemaker/pcmk_sched_recurring.c if (pcmk__guint_from_hash(action->meta, PCMK_META_INTERVAL, 0, action 170 lib/pacemaker/pcmk_sched_remote.c apply_remote_ordering(pcmk_action_t *action) action 173 lib/pacemaker/pcmk_sched_remote.c enum pcmk__action_type task = pcmk__parse_action(action->task); action 174 lib/pacemaker/pcmk_sched_remote.c enum remote_connection_state state = get_remote_node_state(action->node); action 178 lib/pacemaker/pcmk_sched_remote.c if (action->rsc == NULL) { action 182 lib/pacemaker/pcmk_sched_remote.c pcmk__assert(pcmk__is_pacemaker_remote_node(action->node)); action 184 lib/pacemaker/pcmk_sched_remote.c remote_rsc = action->node->priv->remote; action 188 lib/pacemaker/pcmk_sched_remote.c action->task, action->uuid, action 192 lib/pacemaker/pcmk_sched_remote.c if (pcmk__strcase_any_of(action->task, PCMK_ACTION_MIGRATE_TO, action 212 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, order_opts); action 217 lib/pacemaker/pcmk_sched_remote.c order_action_then_stop(action, remote_rsc, action 227 lib/pacemaker/pcmk_sched_remote.c pe_fence_node(remote_rsc->priv->scheduler, action->node, action 237 lib/pacemaker/pcmk_sched_remote.c order_action_then_stop(action, remote_rsc, action 244 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, pcmk__ar_none); action 256 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, pcmk__ar_none); action 262 lib/pacemaker/pcmk_sched_remote.c if (pcmk__action_is_recurring(action)) { action 267 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, action 279 lib/pacemaker/pcmk_sched_remote.c pe_fence_node(remote_rsc->priv->scheduler, action->node, action 289 lib/pacemaker/pcmk_sched_remote.c order_action_then_stop(action, remote_rsc, action 293 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, pcmk__ar_none); action 301 lib/pacemaker/pcmk_sched_remote.c apply_launcher_ordering(pcmk_action_t *action) action 305 lib/pacemaker/pcmk_sched_remote.c enum pcmk__action_type task = pcmk__parse_action(action->task); action 307 lib/pacemaker/pcmk_sched_remote.c pcmk__assert(action->rsc != NULL); action 308 lib/pacemaker/pcmk_sched_remote.c pcmk__assert(pcmk__is_pacemaker_remote_node(action->node)); action 310 lib/pacemaker/pcmk_sched_remote.c remote_rsc = action->node->priv->remote; action 317 lib/pacemaker/pcmk_sched_remote.c pe_fence_node(action->rsc->priv->scheduler, action->node, action 322 lib/pacemaker/pcmk_sched_remote.c action->task, action->uuid, action 328 lib/pacemaker/pcmk_sched_remote.c if (pcmk__strcase_any_of(action->task, PCMK_ACTION_MIGRATE_TO, action 340 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(launcher, action, action 344 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, pcmk__ar_none); action 365 lib/pacemaker/pcmk_sched_remote.c order_action_then_stop(action, remote_rsc, pcmk__ar_none); action 371 lib/pacemaker/pcmk_sched_remote.c if (pcmk__action_is_recurring(action)) { action 377 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, action 381 lib/pacemaker/pcmk_sched_remote.c order_start_then_action(remote_rsc, action, pcmk__ar_none); action 404 lib/pacemaker/pcmk_sched_remote.c pcmk_action_t *action = iter->data; action 408 lib/pacemaker/pcmk_sched_remote.c if (action->rsc == NULL) { action 416 lib/pacemaker/pcmk_sched_remote.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_is_remote_connection) action 417 lib/pacemaker/pcmk_sched_remote.c && pcmk__str_eq(action->task, PCMK_ACTION_CLEAR_FAILCOUNT, action 420 lib/pacemaker/pcmk_sched_remote.c pcmk__new_ordering(action->rsc, NULL, action, action->rsc, action 421 lib/pacemaker/pcmk_sched_remote.c pcmk__op_key(action->rsc->id, PCMK_ACTION_START, action 429 lib/pacemaker/pcmk_sched_remote.c if (action->node == NULL) { action 433 lib/pacemaker/pcmk_sched_remote.c if (!pcmk__is_pacemaker_remote_node(action->node)) { action 443 lib/pacemaker/pcmk_sched_remote.c if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 447 lib/pacemaker/pcmk_sched_remote.c remote = action->node->priv->remote; action 458 lib/pacemaker/pcmk_sched_remote.c if (pcmk__str_eq(action->task, PCMK_ACTION_START, pcmk__str_none)) { action 459 lib/pacemaker/pcmk_sched_remote.c for (GList *item = action->rsc->priv->actions; item != NULL; action 463 lib/pacemaker/pcmk_sched_remote.c if (!pcmk__same_node(rsc_action->node, action->node) action 467 lib/pacemaker/pcmk_sched_remote.c action->rsc, NULL, rsc_action, action 483 lib/pacemaker/pcmk_sched_remote.c crm_trace("Container ordering for %s", action->uuid); action 484 lib/pacemaker/pcmk_sched_remote.c apply_launcher_ordering(action); action 487 lib/pacemaker/pcmk_sched_remote.c crm_trace("Remote ordering for %s", action->uuid); action 488 lib/pacemaker/pcmk_sched_remote.c apply_remote_ordering(action); action 542 lib/pacemaker/pcmk_sched_remote.c pcmk__connection_host_for_action(const pcmk_action_t *action) action 547 lib/pacemaker/pcmk_sched_remote.c const char *task = action->task; action 551 lib/pacemaker/pcmk_sched_remote.c || !pcmk__is_pacemaker_remote_node(action->node)) { action 555 lib/pacemaker/pcmk_sched_remote.c remote = action->node->priv->remote; action 568 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), action 577 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), action 586 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), action 600 lib/pacemaker/pcmk_sched_remote.c task = g_hash_table_lookup(action->meta, "notify_operation"); action 621 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), action 633 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), action 682 lib/pacemaker/pcmk_sched_remote.c pcmk__add_guest_meta_to_xml(xmlNode *args_xml, const pcmk_action_t *action) action 684 lib/pacemaker/pcmk_sched_remote.c const pcmk_node_t *guest = action->node; action 694 lib/pacemaker/pcmk_sched_remote.c task = pcmk__parse_action(action->task); action 696 lib/pacemaker/pcmk_sched_remote.c task = pcmk__parse_action(g_hash_table_lookup(action->meta, action 724 lib/pacemaker/pcmk_sched_remote.c g_hash_table_lookup(action->rsc->priv->meta, action 506 lib/pacemaker/pcmk_scheduler.c add_nondc_fencing(GList *list, pcmk_action_t *action, action 516 lib/pacemaker/pcmk_scheduler.c order_actions((pcmk_action_t *) list->data, action, pcmk__ar_ordered); action 518 lib/pacemaker/pcmk_scheduler.c return g_list_prepend(list, action); action 725 lib/pacemaker/pcmk_scheduler.c const pcmk_action_t *action = (const pcmk_action_t *) iter->data; action 727 lib/pacemaker/pcmk_scheduler.c if (!pcmk_any_flags_set(action->flags, flags)) { action 728 lib/pacemaker/pcmk_scheduler.c pcmk__log_action("\t", action, true); action 45 lib/pacemaker/pcmk_simulate.c create_action_name(const pcmk_action_t *action, bool verbose) action 51 lib/pacemaker/pcmk_simulate.c const char *task = action->task; action 53 lib/pacemaker/pcmk_simulate.c if (action->node != NULL) { action 54 lib/pacemaker/pcmk_simulate.c action_host = action->node->priv->name; action 55 lib/pacemaker/pcmk_simulate.c } else if (!pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 59 lib/pacemaker/pcmk_simulate.c if (pcmk__str_eq(action->task, PCMK_ACTION_CANCEL, pcmk__str_none)) { action 61 lib/pacemaker/pcmk_simulate.c task = action->cancel_task; action 64 lib/pacemaker/pcmk_simulate.c if (action->rsc != NULL) { action 65 lib/pacemaker/pcmk_simulate.c history_id = action->rsc->priv->history_id; action 72 lib/pacemaker/pcmk_simulate.c if (pcmk__guint_from_hash(action->meta, PCMK_META_INTERVAL, 0, action 77 lib/pacemaker/pcmk_simulate.c if (pcmk__strcase_any_of(action->task, PCMK_ACTION_NOTIFY, action 79 lib/pacemaker/pcmk_simulate.c const char *n_type = g_hash_table_lookup(action->meta, action 81 lib/pacemaker/pcmk_simulate.c const char *n_task = g_hash_table_lookup(action->meta, action 98 lib/pacemaker/pcmk_simulate.c } else if (pcmk__str_eq(action->task, PCMK_ACTION_STONITH, action 100 lib/pacemaker/pcmk_simulate.c const char *op = g_hash_table_lookup(action->meta, action 104 lib/pacemaker/pcmk_simulate.c prefix, action->task, op, action_host); action 106 lib/pacemaker/pcmk_simulate.c } else if (action->rsc && action_host) { action 108 lib/pacemaker/pcmk_simulate.c prefix, action->uuid, action_host); action 112 lib/pacemaker/pcmk_simulate.c prefix, action->task, action_host); action 115 lib/pacemaker/pcmk_simulate.c action_name = crm_strdup_printf("%s", action->uuid); action 119 lib/pacemaker/pcmk_simulate.c char *with_id = crm_strdup_printf("%s (%d)", action_name, action->id); action 238 lib/pacemaker/pcmk_simulate.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 242 lib/pacemaker/pcmk_simulate.c char *action_name = create_action_name(action, verbose); action 244 lib/pacemaker/pcmk_simulate.c if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 248 lib/pacemaker/pcmk_simulate.c if (pcmk_is_set(action->flags, pcmk__action_added_to_graph)) { action 252 lib/pacemaker/pcmk_simulate.c } else if ((action->rsc != NULL) action 253 lib/pacemaker/pcmk_simulate.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed)) { action 260 lib/pacemaker/pcmk_simulate.c } else if (pcmk_is_set(action->flags, pcmk__action_optional)) { action 268 lib/pacemaker/pcmk_simulate.c CRM_LOG_ASSERT(!pcmk_is_set(action->flags, pcmk__action_runnable)); action 271 lib/pacemaker/pcmk_simulate.c pcmk__set_action_flags(action, pcmk__action_added_to_graph); action 279 lib/pacemaker/pcmk_simulate.c pcmk_action_t *action = (pcmk_action_t *) iter->data; action 281 lib/pacemaker/pcmk_simulate.c for (GList *before_iter = action->actions_before; action 296 lib/pacemaker/pcmk_simulate.c } else if (pcmk_is_set(before->action->flags, action 298 lib/pacemaker/pcmk_simulate.c && pcmk_is_set(action->flags, pcmk__action_added_to_graph) action 304 lib/pacemaker/pcmk_simulate.c before_name = create_action_name(before->action, verbose); action 305 lib/pacemaker/pcmk_simulate.c after_name = create_action_name(action, verbose); action 533 lib/pacemaker/pcmk_simulate.c simulate_pseudo_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 535 lib/pacemaker/pcmk_simulate.c const char *node = crm_element_value(action->xml, PCMK__META_ON_NODE); action 536 lib/pacemaker/pcmk_simulate.c const char *task = crm_element_value(action->xml, PCMK__XA_OPERATION_KEY); action 538 lib/pacemaker/pcmk_simulate.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 541 lib/pacemaker/pcmk_simulate.c pcmk__update_graph(graph, action); action 555 lib/pacemaker/pcmk_simulate.c simulate_resource_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 566 lib/pacemaker/pcmk_simulate.c const char *operation = crm_element_value(action->xml, PCMK_XA_OPERATION); action 567 lib/pacemaker/pcmk_simulate.c const char *target_rc_s = crm_meta_value(action->params, action 572 lib/pacemaker/pcmk_simulate.c xmlNode *action_rsc = pcmk__xe_first_child(action->xml, PCMK_XE_PRIMITIVE, action 575 lib/pacemaker/pcmk_simulate.c char *node = crm_element_value_copy(action->xml, PCMK__META_ON_NODE); action 577 lib/pacemaker/pcmk_simulate.c const char *router_node = crm_element_value(action->xml, action 587 lib/pacemaker/pcmk_simulate.c crm_log_xml_err(action->xml, "Bad"); action 599 lib/pacemaker/pcmk_simulate.c crm_log_xml_err(action->xml, "No ID"); action 631 lib/pacemaker/pcmk_simulate.c uuid = crm_element_value_copy(action->xml, PCMK__META_ON_NODE_UUID); action 643 lib/pacemaker/pcmk_simulate.c action->id, resource); action 650 lib/pacemaker/pcmk_simulate.c op = pcmk__event_from_graph_action(cib_resource, action, PCMK_EXEC_DONE, action 696 lib/pacemaker/pcmk_simulate.c action->id, op->rc); action 697 lib/pacemaker/pcmk_simulate.c pcmk__set_graph_action_flags(action, pcmk__graph_action_failed); action 723 lib/pacemaker/pcmk_simulate.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 724 lib/pacemaker/pcmk_simulate.c pcmk__update_graph(graph, action); action 738 lib/pacemaker/pcmk_simulate.c simulate_cluster_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 740 lib/pacemaker/pcmk_simulate.c const char *node = crm_element_value(action->xml, PCMK__META_ON_NODE); action 741 lib/pacemaker/pcmk_simulate.c const char *task = crm_element_value(action->xml, PCMK_XA_OPERATION); action 742 lib/pacemaker/pcmk_simulate.c xmlNode *rsc = pcmk__xe_first_child(action->xml, PCMK_XE_PRIMITIVE, NULL, action 745 lib/pacemaker/pcmk_simulate.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 747 lib/pacemaker/pcmk_simulate.c pcmk__update_graph(graph, action); action 761 lib/pacemaker/pcmk_simulate.c simulate_fencing_action(pcmk__graph_t *graph, pcmk__graph_action_t *action) action 763 lib/pacemaker/pcmk_simulate.c const char *op = crm_meta_value(action->params, PCMK__META_STONITH_ACTION); action 764 lib/pacemaker/pcmk_simulate.c char *target = crm_element_value_copy(action->xml, PCMK__META_ON_NODE); action 802 lib/pacemaker/pcmk_simulate.c pcmk__set_graph_action_flags(action, pcmk__graph_action_confirmed); action 803 lib/pacemaker/pcmk_simulate.c pcmk__update_graph(graph, action); action 1108 lib/pengine/clone.c pcmk_action_t *action = NULL; action 1115 lib/pengine/clone.c action = pe__new_rsc_pseudo_action(clone, PCMK_ACTION_PROMOTE, action 1127 lib/pengine/clone.c action, action 1132 lib/pengine/clone.c action = pe__new_rsc_pseudo_action(clone, PCMK_ACTION_DEMOTE, action 1144 lib/pengine/clone.c action, action 22 lib/pengine/pe_actions.c static void unpack_operation(pcmk_action_t *action, const xmlNode *xml_obj, action 26 lib/pengine/pe_actions.c add_singleton(pcmk_scheduler_t *scheduler, pcmk_action_t *action) action 31 lib/pengine/pe_actions.c g_hash_table_insert(scheduler->priv->singletons, action->uuid, action); action 69 lib/pengine/pe_actions.c pcmk_action_t *action = NULL; action 76 lib/pengine/pe_actions.c action = matches->data; action 78 lib/pengine/pe_actions.c return action; action 177 lib/pengine/pe_actions.c pcmk_action_t *action = pcmk__assert_alloc(1, sizeof(pcmk_action_t)); action 179 lib/pengine/pe_actions.c action->rsc = rsc; action 180 lib/pengine/pe_actions.c action->task = pcmk__str_copy(task); action 181 lib/pengine/pe_actions.c action->uuid = key; action 182 lib/pengine/pe_actions.c action->scheduler = scheduler; action 185 lib/pengine/pe_actions.c action->node = pe__copy_node(node); action 190 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_on_dc); action 193 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_runnable); action 195 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_optional); action 197 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_optional); action 201 lib/pengine/pe_actions.c action->meta = pcmk__strkey_table(free, free); action 206 lib/pengine/pe_actions.c action->op_entry = pcmk__find_action_config(rsc, task, interval_ms, action 212 lib/pengine/pe_actions.c if ((action->op_entry == NULL) && (strstr(key, "_notify_") != NULL)) { action 213 lib/pengine/pe_actions.c action->op_entry = find_exact_action_config(rsc, PCMK_ACTION_NOTIFY, action 217 lib/pengine/pe_actions.c unpack_operation(action, action->op_entry, interval_ms); action 225 lib/pengine/pe_actions.c action->id = scheduler->priv->next_action_id++; action 227 lib/pengine/pe_actions.c scheduler->priv->actions = g_list_prepend(scheduler->priv->actions, action); action 229 lib/pengine/pe_actions.c add_singleton(scheduler, action); action 231 lib/pengine/pe_actions.c rsc->priv->actions = g_list_prepend(rsc->priv->actions, action); action 233 lib/pengine/pe_actions.c return action; action 271 lib/pengine/pe_actions.c update_action_optional(pcmk_action_t *action, gboolean optional) action 274 lib/pengine/pe_actions.c if ((action->rsc != NULL) && (action->node != NULL) action 275 lib/pengine/pe_actions.c && !pcmk_is_set(action->flags, pcmk__action_pseudo) action 276 lib/pengine/pe_actions.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed) action 277 lib/pengine/pe_actions.c && (g_hash_table_lookup(action->meta, PCMK_META_INTERVAL) == NULL)) { action 278 lib/pengine/pe_actions.c pcmk__rsc_debug(action->rsc, action 280 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node), action 281 lib/pengine/pe_actions.c action->rsc->id); action 282 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_optional); action 287 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_optional); action 327 lib/pengine/pe_actions.c update_resource_action_runnable(pcmk_action_t *action, action 330 lib/pengine/pe_actions.c pcmk_resource_t *rsc = action->rsc; action 332 lib/pengine/pe_actions.c if (pcmk_is_set(action->flags, pcmk__action_pseudo)) { action 336 lib/pengine/pe_actions.c if (action->node == NULL) { action 337 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "%s is unrunnable (unallocated)", action->uuid); action 338 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 340 lib/pengine/pe_actions.c } else if (!pcmk_is_set(action->flags, pcmk__action_on_dc) action 341 lib/pengine/pe_actions.c && !(action->node->details->online) action 342 lib/pengine/pe_actions.c && (!pcmk__is_guest_or_bundle_node(action->node) action 343 lib/pengine/pe_actions.c || pcmk_is_set(action->node->priv->flags, action 345 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 347 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node)); action 349 lib/pengine/pe_actions.c && pcmk__str_eq(action->task, PCMK_ACTION_STOP, pcmk__str_casei) action 350 lib/pengine/pe_actions.c && !(action->node->details->unclean)) { action 351 lib/pengine/pe_actions.c pe_fence_node(scheduler, action->node, "stop is unrunnable", false); action 354 lib/pengine/pe_actions.c } else if (!pcmk_is_set(action->flags, pcmk__action_on_dc) action 355 lib/pengine/pe_actions.c && action->node->details->pending) { action 356 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 359 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node)); action 361 lib/pengine/pe_actions.c } else if (action->needs == pcmk__requires_nothing) { action 362 lib/pengine/pe_actions.c pe_action_set_reason(action, NULL, TRUE); action 363 lib/pengine/pe_actions.c if (pcmk__is_guest_or_bundle_node(action->node) action 364 lib/pengine/pe_actions.c && !pe_can_fence(scheduler, action->node)) { action 373 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node)); action 374 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 378 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node)); action 379 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_runnable); action 386 lib/pengine/pe_actions.c action->uuid, pcmk__node_name(action->node)); action 387 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 388 lib/pengine/pe_actions.c pe_action_set_reason(action, "no quorum", true); action 395 lib/pengine/pe_actions.c action->uuid, action 396 lib/pengine/pe_actions.c pcmk__node_name(action->node)); action 397 lib/pengine/pe_actions.c pcmk__clear_action_flags(action, pcmk__action_runnable); action 398 lib/pengine/pe_actions.c pe_action_set_reason(action, "quorum freeze", true); action 404 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_runnable); action 1051 lib/pengine/pe_actions.c unpack_operation(pcmk_action_t *action, const xmlNode *xml_obj, action 1056 lib/pengine/pe_actions.c action->meta = pcmk__unpack_action_meta(action->rsc, action->node, action 1057 lib/pengine/pe_actions.c action->task, interval_ms, xml_obj); action 1058 lib/pengine/pe_actions.c action->needs = pcmk__action_requires(action->rsc, action->task); action 1060 lib/pengine/pe_actions.c value = g_hash_table_lookup(action->meta, PCMK_META_ON_FAIL); action 1061 lib/pengine/pe_actions.c action->on_fail = pcmk__parse_on_fail(action->rsc, action->task, action 1064 lib/pengine/pe_actions.c action->fail_role = pcmk__role_after_failure(action->rsc, action->task, action 1065 lib/pengine/pe_actions.c action->on_fail, action->meta); action 1089 lib/pengine/pe_actions.c pcmk_action_t *action = NULL; action 1093 lib/pengine/pe_actions.c action = find_existing_action(key, rsc, on_node, scheduler); action 1094 lib/pengine/pe_actions.c if (action == NULL) { action 1095 lib/pengine/pe_actions.c action = new_action(key, task, rsc, on_node, optional, scheduler); action 1100 lib/pengine/pe_actions.c update_action_optional(action, optional); action 1108 lib/pengine/pe_actions.c if ((action->node != NULL) && (action->op_entry != NULL) action 1109 lib/pengine/pe_actions.c && !pcmk_is_set(action->flags, pcmk__action_attrs_evaluated)) { action 1111 lib/pengine/pe_actions.c GHashTable *attrs = action->node->priv->attrs; action 1113 lib/pengine/pe_actions.c if (action->extra != NULL) { action 1114 lib/pengine/pe_actions.c g_hash_table_destroy(action->extra); action 1116 lib/pengine/pe_actions.c action->extra = pcmk__unpack_action_rsc_params(action->op_entry, action 1118 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_attrs_evaluated); action 1121 lib/pengine/pe_actions.c update_resource_action_runnable(action, scheduler); action 1124 lib/pengine/pe_actions.c if (action->extra == NULL) { action 1125 lib/pengine/pe_actions.c action->extra = pcmk__strkey_table(free, free); action 1128 lib/pengine/pe_actions.c return action; action 1392 lib/pengine/pe_actions.c pcmk_action_t *action = (pcmk_action_t *) gIter->data; action 1394 lib/pengine/pe_actions.c if (uuid != NULL && !pcmk__str_eq(uuid, action->uuid, pcmk__str_casei)) { action 1397 lib/pengine/pe_actions.c } else if (task != NULL && !pcmk__str_eq(task, action->task, pcmk__str_casei)) { action 1401 lib/pengine/pe_actions.c return action; action 1403 lib/pengine/pe_actions.c } else if (action->node == NULL) { action 1406 lib/pengine/pe_actions.c } else if (pcmk__same_node(on_node, action->node)) { action 1407 lib/pengine/pe_actions.c return action; action 1423 lib/pengine/pe_actions.c pcmk_action_t *action = (pcmk_action_t *) gIter->data; action 1425 lib/pengine/pe_actions.c if (!pcmk__str_eq(key, action->uuid, pcmk__str_casei)) { action 1430 lib/pengine/pe_actions.c result = g_list_prepend(result, action); action 1432 lib/pengine/pe_actions.c } else if (action->node == NULL) { action 1436 lib/pengine/pe_actions.c action->node = pe__copy_node(on_node); action 1437 lib/pengine/pe_actions.c result = g_list_prepend(result, action); action 1439 lib/pengine/pe_actions.c } else if (pcmk__same_node(on_node, action->node)) { action 1441 lib/pengine/pe_actions.c result = g_list_prepend(result, action); action 1460 lib/pengine/pe_actions.c pcmk_action_t *action = (pcmk_action_t *) gIter->data; action 1462 lib/pengine/pe_actions.c if ((action->node != NULL) action 1463 lib/pengine/pe_actions.c && pcmk__str_eq(key, action->uuid, pcmk__str_casei) action 1464 lib/pengine/pe_actions.c && pcmk__same_node(on_node, action->node)) { action 1467 lib/pengine/pe_actions.c result = g_list_prepend(result, action); action 1513 lib/pengine/pe_actions.c pe__action2reason(const pcmk_action_t *action, enum pcmk__action_flags flag) action 1533 lib/pengine/pe_actions.c (action->rsc == NULL)? "" : " ", action 1534 lib/pengine/pe_actions.c (action->rsc == NULL)? "" : action->rsc->id, action 1535 lib/pengine/pe_actions.c action->task); action 1538 lib/pengine/pe_actions.c void pe_action_set_reason(pcmk_action_t *action, const char *reason, action 1541 lib/pengine/pe_actions.c if (action->reason != NULL && overwrite) { action 1542 lib/pengine/pe_actions.c pcmk__rsc_trace(action->rsc, "Changing %s reason from '%s' to '%s'", action 1543 lib/pengine/pe_actions.c action->uuid, action->reason, action 1545 lib/pengine/pe_actions.c } else if (action->reason == NULL) { action 1546 lib/pengine/pe_actions.c pcmk__rsc_trace(action->rsc, "Set %s reason to '%s'", action 1547 lib/pengine/pe_actions.c action->uuid, pcmk__s(reason, "(none)")); action 1553 lib/pengine/pe_actions.c pcmk__str_update(&action->reason, reason); action 1723 lib/pengine/pe_actions.c pcmk_action_t *action = NULL; action 1727 lib/pengine/pe_actions.c action = custom_action(rsc, pcmk__op_key(rsc->id, task, 0), task, NULL, action 1729 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_pseudo); action 1731 lib/pengine/pe_actions.c pcmk__set_action_flags(action, pcmk__action_runnable); action 1733 lib/pengine/pe_actions.c return action; action 1746 lib/pengine/pe_actions.c pe__add_action_expected_result(pcmk_action_t *action, int expected_result) action 1748 lib/pengine/pe_actions.c pcmk__assert((action != NULL) && (action->meta != NULL)); action 1750 lib/pengine/pe_actions.c g_hash_table_insert(action->meta, pcmk__str_copy(PCMK__META_OP_TARGET_RC), action 268 lib/pengine/pe_notif.c pcmk_action_t *action) action 273 lib/pengine/pe_notif.c pcmk__insert_meta(action, nvpair->name, nvpair->value); action 289 lib/pengine/pe_notif.c new_notify_pseudo_action(pcmk_resource_t *rsc, const pcmk_action_t *action, action 295 lib/pengine/pe_notif.c pcmk__notify_key(rsc->id, notif_type, action->task), action 297 lib/pengine/pe_notif.c pcmk_is_set(action->flags, pcmk__action_optional), action 301 lib/pengine/pe_notif.c pcmk__insert_meta(notify, "notify_key_operation", action->task); action 441 lib/pengine/pe_notif.c pcmk_action_t *action, pcmk_action_t *complete) action 451 lib/pengine/pe_notif.c n_data->action = task; action 453 lib/pengine/pe_notif.c if (action != NULL) { // Need "pre-" pseudo-actions action 456 lib/pengine/pe_notif.c n_data->pre = new_notify_pseudo_action(rsc, action, PCMK_ACTION_NOTIFY, action 460 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre, "notify_operation", n_data->action); action 463 lib/pengine/pe_notif.c n_data->pre_done = new_notify_pseudo_action(rsc, action, action 468 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->pre_done, "notify_operation", n_data->action); action 472 lib/pengine/pe_notif.c order_actions(n_data->pre_done, action, pcmk__ar_ordered); action 487 lib/pengine/pe_notif.c pcmk__insert_meta(n_data->post, "notify_operation", n_data->action); action 501 lib/pengine/pe_notif.c "notify_operation", n_data->action); action 517 lib/pengine/pe_notif.c if ((action != NULL) && (complete != NULL)) { action 695 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_STOP, pcmk__str_none)) { action 702 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_START, pcmk__str_none)) { action 711 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_DEMOTE, pcmk__str_none)) { action 720 lib/pengine/pe_notif.c && pcmk__str_eq(n_data->action, PCMK_ACTION_PROMOTE, pcmk__str_none)) { action 797 lib/pengine/pe_notif.c find_remote_start(pcmk_action_t *action) action 799 lib/pengine/pe_notif.c if ((action != NULL) && (action->node != NULL)) { action 800 lib/pengine/pe_notif.c pcmk_resource_t *remote_rsc = action->node->priv->remote; action 824 lib/pengine/pe_notif.c enum pcmk__action_type task = pcmk__parse_action(n_data->action); action 857 lib/pengine/pe_notif.c rsc->id, n_data->action); action 865 lib/pengine/pe_notif.c rsc->id, n_data->action); action 873 lib/pengine/pe_notif.c rsc->id, n_data->action); action 884 lib/pengine/pe_notif.c rsc->id, n_data->action); action 35 lib/pengine/pe_status_private.h const char *action; action 67 lib/pengine/pe_status_private.h pcmk_action_t *action, action 4073 lib/pengine/unpack.c order_after_remote_fencing(pcmk_action_t *action, pcmk_resource_t *remote_conn, action 4082 lib/pengine/unpack.c order_actions(fence, action, pcmk__ar_first_implies_then); action 508 lib/pengine/utils.c if ((after->action == then) action 515 lib/pengine/utils.c wrapper->action = then; action 522 lib/pengine/utils.c wrapper->action = first; action 180 lib/services/services.c const char *agent, const char *action) action 206 lib/services/services.c if (pcmk__str_empty(action)) { action 218 lib/services/services.c const char *agent, const char *action) action 236 lib/services/services.c && pcmk__str_eq(action, PCMK_ACTION_MONITOR, pcmk__str_casei)) { action 237 lib/services/services.c action = PCMK_ACTION_STATUS; action 239 lib/services/services.c op->action = strdup(action); action 240 lib/services/services.c if (op->action == NULL) { action 257 lib/services/services.c const char *action, guint interval_ms, int timeout, action 287 lib/services/services.c action)) { action 294 lib/services/services.c op->id = pcmk__op_key(name, action, interval_ms); action 297 lib/services/services.c action) != pcmk_rc_ok) { action 299 lib/services/services.c action, name, strerror(ENOMEM)); action 322 lib/services/services.c action, name, strerror(rc)); action 331 lib/services/services.c const char *action, guint interval_ms, int timeout, action 335 lib/services/services.c provider, agent, action, interval_ms, timeout, action 410 lib/services/services.c svc_action_t *action = services_action_create_generic(exec, NULL); action 412 lib/services/services.c action->id = pcmk__str_copy(id); action 413 lib/services/services.c action->standard = pcmk__str_copy(PCMK_RESOURCE_CLASS_ALERT); action 414 lib/services/services.c action->timeout = timeout; action 415 lib/services/services.c action->params = params; action 416 lib/services/services.c action->sequence = sequence; action 417 lib/services/services.c action->cb_data = cb_data; action 418 lib/services/services.c return action; action 456 lib/services/services.c services_alert_async(svc_action_t *action, void (*cb)(svc_action_t *op)) action 458 lib/services/services.c action->synchronous = false; action 459 lib/services/services.c action->opaque->callback = cb; action 460 lib/services/services.c return services__execute_file(action) == pcmk_rc_ok; action 500 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); action 541 lib/services/services.c services_result2ocf(const char *standard, const char *action, int exit_status) action 555 lib/services/services.c return services__lsb2ocf(action, exit_status); action 606 lib/services/services.c free(op->action); action 650 lib/services/services.c services_action_cancel(const char *name, const char *action, guint interval_ms) action 653 lib/services/services.c char *id = pcmk__op_key(name, action, interval_ms); action 718 lib/services/services.c services_action_kick(const char *name, const char *action, guint interval_ms) action 721 lib/services/services.c char *id = pcmk__op_key(name, action, interval_ms); action 1007 lib/services/services.c if (pcmk__str_eq(op->action, PCMK_ACTION_META_DATA, pcmk__str_casei)) { action 1020 lib/services/services.c op->rsc, op->action, op->interval_ms, op->opaque->exec, op->rc); action 1218 lib/services/services.c services__set_result(svc_action_t *action, int agent_status, action 1221 lib/services/services.c if (action == NULL) { action 1225 lib/services/services.c action->rc = agent_status; action 1226 lib/services/services.c action->status = exec_status; action 1228 lib/services/services.c if (!pcmk__str_eq(action->opaque->exit_reason, reason, action 1230 lib/services/services.c free(action->opaque->exit_reason); action 1231 lib/services/services.c action->opaque->exit_reason = (reason == NULL)? NULL : strdup(reason); action 1243 lib/services/services.c services__copy_result(const svc_action_t *action, pcmk__action_result_t *result) action 1245 lib/services/services.c pcmk__set_result(result, action->rc, action->status, action 1246 lib/services/services.c action->opaque->exit_reason); action 1261 lib/services/services.c services__format_result(svc_action_t *action, int agent_status, action 1269 lib/services/services.c if (action == NULL) { action 1273 lib/services/services.c action->rc = agent_status; action 1274 lib/services/services.c action->status = exec_status; action 1282 lib/services/services.c free(action->opaque->exit_reason); action 1283 lib/services/services.c action->opaque->exit_reason = reason; action 1295 lib/services/services.c services__set_cancelled(svc_action_t *action) action 1297 lib/services/services.c if (action != NULL) { action 1298 lib/services/services.c action->status = PCMK_EXEC_CANCELLED; action 1299 lib/services/services.c free(action->opaque->exit_reason); action 1300 lib/services/services.c action->opaque->exit_reason = NULL; action 1313 lib/services/services.c services__action_kind(const svc_action_t *action) action 1315 lib/services/services.c if ((action == NULL) || (action->standard == NULL)) { action 1317 lib/services/services.c } else if (pcmk__str_eq(action->standard, PCMK_RESOURCE_CLASS_STONITH, action 1320 lib/services/services.c } else if (pcmk__str_eq(action->standard, PCMK_RESOURCE_CLASS_ALERT, action 1337 lib/services/services.c services__exit_reason(const svc_action_t *action) action 1339 lib/services/services.c return action->opaque->exit_reason; action 1353 lib/services/services.c services__grab_stdout(svc_action_t *action) action 1355 lib/services/services.c char *output = action->stdout_data; action 1357 lib/services/services.c action->stdout_data = NULL; action 1372 lib/services/services.c services__grab_stderr(svc_action_t *action) action 1374 lib/services/services.c char *output = action->stderr_data; action 1376 lib/services/services.c action->stderr_data = NULL; action 770 lib/services/services_linux.c && pcmk__str_eq(op->action, PCMK_ACTION_STATUS, pcmk__str_casei)) { action 801 lib/services/services_linux.c && pcmk__str_eq(op->action, PCMK_ACTION_STATUS, pcmk__str_casei)) { action 832 lib/services/services_linux.c && pcmk__str_eq(op->action, PCMK_ACTION_STATUS, pcmk__str_casei)) { action 864 lib/services/services_linux.c && pcmk__str_eq(op->action, PCMK_ACTION_STATUS, pcmk__str_casei)) { action 986 lib/services/services_linux.c if (pcmk__str_eq(op->action, PCMK_ACTION_STOP, pcmk__str_casei)) { action 272 lib/services/services_lsb.c op->opaque->args[1] = strdup(op->action); action 289 lib/services/services_lsb.c services__lsb2ocf(const char *action, int exit_status) action 292 lib/services/services_lsb.c if (!pcmk__str_any_of(action, PCMK_ACTION_STATUS, PCMK_ACTION_MONITOR, action 28 lib/services/services_lsb.h enum ocf_exitcode services__lsb2ocf(const char *action, int exit_status); action 149 lib/services/services_ocf.c op->opaque->args[1] = strdup(op->action); action 59 lib/services/services_private.h const char *services__action_kind(const svc_action_t *action); action 96 lib/services/services_private.h void services__set_cancelled(svc_action_t *action); action 362 lib/services/systemd.c if (pcmk__str_eq(op->action, PCMK_ACTION_STOP, pcmk__str_casei)) { action 381 lib/services/systemd.c } else if (pcmk__str_any_of(op->action, PCMK_ACTION_MONITOR, action 389 lib/services/systemd.c op->action, op->agent, action 442 lib/services/systemd.c if (!pcmk__str_any_of(op->action, PCMK_ACTION_MONITOR, action 536 lib/services/systemd.c || pcmk__str_eq(op->action, PCMK_ACTION_META_DATA, action 807 lib/services/systemd.c bool start_stop = pcmk__strcase_any_of(op->action, PCMK_ACTION_START, action 826 lib/services/systemd.c op->action, pcmk__s(op->rsc, "unknown resource")); action 850 lib/services/systemd.c op->action, pcmk__s(op->rsc, "unknown resource"), path); action 886 lib/services/systemd.c svc_action_t *action = user_data; action 898 lib/services/systemd.c if ((action == NULL) action 916 lib/services/systemd.c if (!pcmk__str_eq(bus_path, action->opaque->job_path, pcmk__str_none)) { action 921 lib/services/systemd.c action_name = pcmk__s(action->action, "(unknown)"); action 927 lib/services/systemd.c services__set_result(action, PCMK_OCF_OK, PCMK_EXEC_DONE, NULL); action 930 lib/services/systemd.c services__format_result(action, PCMK_OCF_UNKNOWN_ERROR, PCMK_EXEC_TIMEOUT, action 935 lib/services/systemd.c services__format_result(action, PCMK_OCF_UNKNOWN_ERROR, PCMK_EXEC_ERROR, action 945 lib/services/systemd.c dbus_connection_remove_filter(systemd_proxy, job_removed_filter, action); action 956 lib/services/systemd.c finalize_async_action_dbus(void *action) action 958 lib/services/systemd.c services__finalize_async_op((svc_action_t *) action); action 992 lib/services/systemd.c && pcmk__strcase_any_of(op->action, PCMK_ACTION_START, PCMK_ACTION_STOP, action 1243 lib/services/systemd.c if (pcmk__str_any_of(op->action, PCMK_ACTION_MONITOR, PCMK_ACTION_STATUS, action 1267 lib/services/systemd.c } else if (pcmk__str_eq(op->action, PCMK_ACTION_START, pcmk__str_none)) { action 1283 lib/services/systemd.c } else if (pcmk__str_eq(op->action, PCMK_ACTION_STOP, pcmk__str_none)) { action 1287 lib/services/systemd.c } else if (pcmk__str_eq(op->action, "restart", pcmk__str_none)) { action 1295 lib/services/systemd.c pcmk__s(op->action, "(unspecified)")); action 1313 lib/services/systemd.c pcmk__str_eq(op->action, action 1354 lib/services/systemd.c op->action, op->agent, op->rsc); action 1357 lib/services/systemd.c "did not complete in time", op->action, op->agent); action 1390 lib/services/systemd.c if (pcmk__str_empty(op->action) || pcmk__str_empty(op->agent)) { action 1403 lib/services/systemd.c (op->synchronous? "" : "a"), op->action, op->agent, action 1406 lib/services/systemd.c if (pcmk__str_eq(op->action, PCMK_ACTION_META_DATA, pcmk__str_casei)) { action 241 tools/crm_resource_print.c const char *action = va_arg(args, const char *); action 254 tools/crm_resource_print.c action, action 268 tools/crm_resource_print.c action, action 286 tools/crm_resource_print.c const char *action G_GNUC_UNUSED = va_arg(args, const char *); action 378 tools/crm_resource_print.c const char *action = va_arg(args, const char *); action 401 tools/crm_resource_print.c out->message(out, "agent-status", status, action, rsc_name, class, provider, action 406 tools/crm_resource_print.c && pcmk__str_eq(action, PCMK_ACTION_VALIDATE_ALL, pcmk__str_casei)) { action 439 tools/crm_resource_print.c const char *action = va_arg(args, const char *); action 450 tools/crm_resource_print.c PCMK_XA_ACTION, action, action 476 tools/crm_resource_print.c out->message(out, "agent-status", status, action, rsc_name, class, provider, action 2018 tools/crm_resource_runtime.c action_is_pending(const pcmk_action_t *action) action 2020 tools/crm_resource_runtime.c if (pcmk_any_flags_set(action->flags, action 2022 tools/crm_resource_runtime.c || !pcmk_is_set(action->flags, pcmk__action_runnable) action 2023 tools/crm_resource_runtime.c || pcmk__str_eq(PCMK_ACTION_NOTIFY, action->task, pcmk__str_casei)) { action 2040 tools/crm_resource_runtime.c for (const GList *action = actions; action != NULL; action = action->next) { action 2041 tools/crm_resource_runtime.c const pcmk_action_t *a = (const pcmk_action_t *) action->data; action 2054 tools/crm_resource_runtime.c GList *action; action 2057 tools/crm_resource_runtime.c for (action = actions; action != NULL; action = action->next) { action 2058 tools/crm_resource_runtime.c pcmk_action_t *a = (pcmk_action_t *) action->data; action 2184 tools/crm_resource_runtime.c const char *action = NULL; action 2187 tools/crm_resource_runtime.c action = PCMK_ACTION_VALIDATE_ALL; action 2190 tools/crm_resource_runtime.c action = PCMK_ACTION_MONITOR; action 2194 tools/crm_resource_runtime.c action = rsc_action+6; action 2196 tools/crm_resource_runtime.c action = rsc_action; action 2199 tools/crm_resource_runtime.c return action; action 2278 tools/crm_resource_runtime.c const char *action = get_action(rsc_action); action 2292 tools/crm_resource_runtime.c rsc_class, rsc_prov, rsc_type, action, action 2297 tools/crm_resource_runtime.c action, rsc_class, (rsc_prov? ":" : ""), action 2324 tools/crm_resource_runtime.c enum ocf_exitcode ocf_code = services_result2ocf(class, action, op->rc); action 2347 tools/crm_resource_runtime.c get_action_timeout(pcmk_resource_t *rsc, const char *action) action 2350 tools/crm_resource_runtime.c xmlNode *op = pcmk__find_action_config(rsc, action, 0, true); action 2351 tools/crm_resource_runtime.c GHashTable *meta = pcmk__unpack_action_meta(rsc, NULL, action, 0, op); action 43 tools/stonith_admin.c char action = 0; action 441 tools/stonith_admin.c action = 'K'; action 446 tools/stonith_admin.c action = 'I'; action 450 tools/stonith_admin.c action = 'L'; action 455 tools/stonith_admin.c action = 'R'; action 460 tools/stonith_admin.c action = 'Q'; action 465 tools/stonith_admin.c action = 'D'; action 470 tools/stonith_admin.c action = 's'; action 475 tools/stonith_admin.c action = 'L'; action 482 tools/stonith_admin.c action = 'M'; action 487 tools/stonith_admin.c action = 'B'; action 494 tools/stonith_admin.c action = 'F'; action 501 tools/stonith_admin.c action = 'U'; action 507 tools/stonith_admin.c action = 'C'; action 513 tools/stonith_admin.c action = 'h'; action 518 tools/stonith_admin.c action = 'H'; action 523 tools/stonith_admin.c action = 'r'; action 528 tools/stonith_admin.c action = 'd'; action 538 tools/stonith_admin.c if (action == 0) { action 571 tools/stonith_admin.c switch (action) {