history 91 daemons/controld/controld_execd.c history_remove_recurring_op(rsc_history_t *history, const lrmd_event_data_t *op) history 95 daemons/controld/controld_execd.c for (iter = history->recurring_op_list; iter != NULL; iter = iter->next) { history 102 daemons/controld/controld_execd.c history->recurring_op_list = g_list_delete_link(history->recurring_op_list, iter); history 117 daemons/controld/controld_execd.c history_free_recurring_ops(rsc_history_t *history) history 121 daemons/controld/controld_execd.c for (iter = history->recurring_op_list; iter != NULL; iter = iter->next) { history 124 daemons/controld/controld_execd.c g_list_free(history->recurring_op_list); history 125 daemons/controld/controld_execd.c history->recurring_op_list = NULL; history 137 daemons/controld/controld_execd.c rsc_history_t *history = (rsc_history_t*)data; history 139 daemons/controld/controld_execd.c if (history->stop_params) { history 140 daemons/controld/controld_execd.c g_hash_table_destroy(history->stop_params); history 144 daemons/controld/controld_execd.c free(history->rsc.type); history 145 daemons/controld/controld_execd.c free(history->rsc.standard); history 146 daemons/controld/controld_execd.c free(history->rsc.provider); history 148 daemons/controld/controld_execd.c lrmd_free_event(history->failed); history 149 daemons/controld/controld_execd.c lrmd_free_event(history->last); history 150 daemons/controld/controld_execd.c free(history->id); history 151 daemons/controld/controld_execd.c history_free_recurring_ops(history); history 152 daemons/controld/controld_execd.c free(history); history 763 daemons/controld/controld_fencing.c stonith_history_t *history = NULL; history 766 daemons/controld/controld_fencing.c stonith_api->cmds->history(stonith_api, history 768 daemons/controld/controld_fencing.c NULL, &history, 5); history 769 daemons/controld/controld_fencing.c stonith__history_free(history); history 42 daemons/fenced/fenced_history.c stonith_send_broadcast_history(xmlNode *history, history 55 daemons/fenced/fenced_history.c pcmk__xml_copy(call_data, history); history 237 daemons/fenced/fenced_history.c stonith_xml_history_to_list(const xmlNode *history) history 246 daemons/fenced/fenced_history.c for (xml_op = pcmk__xe_first_child(history, NULL, NULL, NULL); history 321 daemons/fenced/fenced_history.c xmlNode *history = NULL; history 330 daemons/fenced/fenced_history.c history = pcmk__xe_create(NULL, PCMK__XE_ST_HISTORY); history 382 daemons/fenced/fenced_history.c entry = pcmk__xe_create(history, STONITH_OP_EXEC); history 445 daemons/fenced/fenced_history.c pcmk__xml_free(history); history 448 daemons/fenced/fenced_history.c return history; history 532 daemons/fenced/fenced_history.c xmlNode *history = pcmk__xpath_find_one(msg->doc, history 545 daemons/fenced/fenced_history.c if (!history history 546 daemons/fenced/fenced_history.c || !pcmk__xe_attr_is_true(history, PCMK__XA_ST_DIFFERENTIAL)) { history 550 daemons/fenced/fenced_history.c if (history != NULL) { history 551 daemons/fenced/fenced_history.c received_history = stonith_xml_history_to_list(history); history 101 include/crm/fencing/internal.h stonith_history_t *stonith__sort_history(stonith_history_t *history); history 132 include/crm/fencing/internal.h stonith_history_t *stonith__first_matching_event(stonith_history_t *history, history 135 include/crm/fencing/internal.h bool stonith__event_state_pending(stonith_history_t *history, void *user_data); history 136 include/crm/fencing/internal.h bool stonith__event_state_eq(stonith_history_t *history, void *user_data); history 137 include/crm/fencing/internal.h bool stonith__event_state_neq(stonith_history_t *history, void *user_data); history 482 include/crm/stonith-ng.h int (*history)(stonith_t *stonith, int call_options, const char *node, history 483 include/crm/stonith-ng.h stonith_history_t **history, int timeout); history 711 lib/fencing/st_client.c stonith_history_t ** history, int timeout) history 718 lib/fencing/st_client.c *history = NULL; history 758 lib/fencing/st_client.c *history = kvp; history 1908 lib/fencing/st_client.c new_stonith->cmds->history = stonith_api_history; history 2100 lib/fencing/st_client.c stonith_history_t *history = NULL, *hp = NULL; history 2122 lib/fencing/st_client.c rc = st->cmds->history(st, opts, name, &history, 120); history 2125 lib/fencing/st_client.c for (hp = history; hp; hp = hp->next) { history 2141 lib/fencing/st_client.c stonith__history_free(history); history 2387 lib/fencing/st_client.c stonith__sort_history(stonith_history_t *history) history 2391 lib/fencing/st_client.c for (hp = history; hp; ) { history 2462 lib/fencing/st_client.c stonith__first_matching_event(stonith_history_t *history, history 2466 lib/fencing/st_client.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 2476 lib/fencing/st_client.c stonith__event_state_pending(stonith_history_t *history, void *user_data) history 2478 lib/fencing/st_client.c return history->state != st_failed && history->state != st_done; history 2482 lib/fencing/st_client.c stonith__event_state_eq(stonith_history_t *history, void *user_data) history 2484 lib/fencing/st_client.c return history->state == GPOINTER_TO_INT(user_data); history 2488 lib/fencing/st_client.c stonith__event_state_neq(stonith_history_t *history, void *user_data) history 2490 lib/fencing/st_client.c return history->state != GPOINTER_TO_INT(user_data); history 60 lib/fencing/st_output.c history_action_text(const stonith_history_t *history) history 62 lib/fencing/st_output.c if (pcmk__str_eq(history->action, PCMK_ACTION_ON, pcmk__str_none)) { history 65 lib/fencing/st_output.c if (pcmk__str_eq(history->action, PCMK_ACTION_OFF, pcmk__str_none)) { history 68 lib/fencing/st_output.c return pcmk__s(history->action, "fencing"); history 82 lib/fencing/st_output.c state_str(const stonith_history_t *history) history 84 lib/fencing/st_output.c switch (history->state) { history 109 lib/fencing/st_output.c stonith__history_description(const stonith_history_t *history, history 116 lib/fencing/st_output.c if ((history->state == st_failed) || (history->state == st_done)) { history 117 lib/fencing/st_output.c completed_time_s = timespec_string(history->completed, history 118 lib/fencing/st_output.c history->completed_nsec, true); history 121 lib/fencing/st_output.c pcmk__g_strcat(str, history_action_text(history), " of ", history->target, history 126 lib/fencing/st_output.c if (((history->state == st_failed) || (history->state == st_done)) history 127 lib/fencing/st_output.c && (history->delegate != NULL)) { history 129 lib/fencing/st_output.c pcmk__g_strcat(str, " by ", history->delegate, NULL); history 131 lib/fencing/st_output.c pcmk__g_strcat(str, " for ", history->client, "@", history->origin, history 138 lib/fencing/st_output.c pcmk__add_word(&str, 0, state_str(history)); history 141 lib/fencing/st_output.c if ((history->state == st_failed) && (history->exit_reason != NULL)) { history 142 lib/fencing/st_output.c pcmk__g_strcat(str, " (", history->exit_reason, ")", NULL); history 150 lib/fencing/st_output.c if (((history->state == st_failed) || (history->state == st_done)) history 151 lib/fencing/st_output.c && (history->delegate != NULL)) { history 153 lib/fencing/st_output.c pcmk__g_strcat(str, PCMK_XA_DELEGATE "=", history->delegate, ", ", history 159 lib/fencing/st_output.c PCMK_XA_CLIENT "=", history->client, ", " history 160 lib/fencing/st_output.c PCMK_XA_ORIGIN "=", history->origin, NULL); history 166 lib/fencing/st_output.c } else if (history->state == st_failed) { history 178 lib/fencing/st_output.c if ((history->state == st_failed) && (later_succeeded != NULL)) { history 193 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 201 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 213 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 226 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 234 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 244 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 259 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 267 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 275 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 289 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 298 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 307 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 383 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 391 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 404 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 86 lib/pacemaker/pcmk_fence.c reduce_fence_history(stonith_history_t *history) history 90 lib/pacemaker/pcmk_fence.c if (!history) { history 91 lib/pacemaker/pcmk_fence.c return history; history 94 lib/pacemaker/pcmk_fence.c new = history; history 258 lib/pacemaker/pcmk_fence.c stonith_history_t *history = NULL; history 286 lib/pacemaker/pcmk_fence.c rc = st->cmds->history(st, opts, target, &history, pcmk__timeout_ms2s(timeout)); history 290 lib/pacemaker/pcmk_fence.c stonith__history_free(history); history 296 lib/pacemaker/pcmk_fence.c history = stonith__sort_history(history); history 297 lib/pacemaker/pcmk_fence.c for (stonith_history_t *hp = history; hp != NULL; hp = hp->next) { history 307 lib/pacemaker/pcmk_fence.c stonith__later_succeeded(hp, history), history 325 lib/pacemaker/pcmk_fence.c stonith__history_free(history); history 661 lib/pacemaker/pcmk_fence.c rc = st->cmds->history(st, st_opt_sync_call, NULL, stonith_history, history 36 lib/pacemaker/pcmk_resource.c xmlNode *history = NULL; history 45 lib/pacemaker/pcmk_resource.c history = pcmk__xpath_find_one(rsc->priv->scheduler->input->doc, xpath, history 50 lib/pacemaker/pcmk_resource.c for (xmlNode *lrm_rsc_op = pcmk__xe_first_child(history, history 1949 lib/pacemaker/pcmk_sched_actions.c xmlNode *history = NULL; history 1952 lib/pacemaker/pcmk_sched_actions.c history = pcmk__xpath_find_one(scheduler->input->doc, xpath, history 1956 lib/pacemaker/pcmk_sched_actions.c process_node_history(node, history); history 3234 lib/pengine/unpack.c unpack_migrate_to_success(struct action_history *history) history 3276 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 3279 lib/pengine/unpack.c if (get_migration_node_names(history->xml, history->node, NULL, &source, history 3285 lib/pengine/unpack.c source_newer_op = non_monitor_after(history->rsc->id, source, history->xml, history 3289 lib/pengine/unpack.c migrate_from = find_lrm_op(history->rsc->id, PCMK_ACTION_MIGRATE_FROM, history 3306 lib/pengine/unpack.c target_newer_state = newer_state_after_migrate(history->rsc->id, target, history 3307 lib/pengine/unpack.c history->xml, migrate_from, history 3318 lib/pengine/unpack.c add_dangling_migration(history->rsc, history->node); history 3325 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; history 3333 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, TRUE); history 3336 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, history 3338 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_migratable); history 3350 lib/pengine/unpack.c && unknown_on_node(history->rsc, target)) { history 3357 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, FALSE); history 3365 lib/pengine/unpack.c history->rsc->priv->partial_migration_target = target_node; history 3366 lib/pengine/unpack.c history->rsc->priv->partial_migration_source = source_node; history 3371 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, history 3373 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_migratable); history 3384 lib/pengine/unpack.c unpack_migrate_to_failure(struct action_history *history) history 3389 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 3392 lib/pengine/unpack.c if (get_migration_node_names(history->xml, history->node, NULL, &source, history 3400 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; history 3403 lib/pengine/unpack.c target_migrate_from = find_lrm_op(history->rsc->id, history 3412 lib/pengine/unpack.c !unknown_on_node(history->rsc, target) history 3416 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, target, history->xml, history 3425 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, FALSE); history 3428 lib/pengine/unpack.c } else if (!non_monitor_after(history->rsc->id, source, history->xml, history 3436 lib/pengine/unpack.c history->rsc->priv->dangling_migration_sources = history 3437 lib/pengine/unpack.c g_list_prepend(history->rsc->priv->dangling_migration_sources, history 3438 lib/pengine/unpack.c (gpointer) history->node); history 3449 lib/pengine/unpack.c unpack_migrate_from_failure(struct action_history *history) history 3454 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 3457 lib/pengine/unpack.c if (get_migration_node_names(history->xml, NULL, history->node, &source, history 3465 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; history 3468 lib/pengine/unpack.c source_migrate_to = find_lrm_op(history->rsc->id, PCMK_ACTION_MIGRATE_TO, history 3476 lib/pengine/unpack.c !unknown_on_node(history->rsc, source) history 3480 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, source, history 3481 lib/pengine/unpack.c source_migrate_to, history->xml, history 3489 lib/pengine/unpack.c native_add_running(history->rsc, source_node, scheduler, TRUE); history 3501 lib/pengine/unpack.c record_failed_op(struct action_history *history) history 3503 lib/pengine/unpack.c const pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 3505 lib/pengine/unpack.c if (!(history->node->details->online)) { history 3515 lib/pengine/unpack.c if (pcmk__str_eq(history->key, key, pcmk__str_none) history 3516 lib/pengine/unpack.c && pcmk__str_eq(uname, history->node->priv->name, history 3519 lib/pengine/unpack.c history->key, pcmk__node_name(history->node)); history 3525 lib/pengine/unpack.c history->key, pcmk__node_name(history->node)); history 3526 lib/pengine/unpack.c crm_xml_add(history->xml, PCMK_XA_UNAME, history->node->priv->name); history 3527 lib/pengine/unpack.c crm_xml_add(history->xml, PCMK__XA_RSC_ID, history->rsc->id); history 3528 lib/pengine/unpack.c pcmk__xml_copy(scheduler->priv->failed, history->xml); history 3598 lib/pengine/unpack.c unpack_failure_handling(struct action_history *history, history 3602 lib/pengine/unpack.c xmlNode *config = pcmk__find_action_config(history->rsc, history->task, history 3603 lib/pengine/unpack.c history->interval_ms, true); history 3605 lib/pengine/unpack.c GHashTable *meta = pcmk__unpack_action_meta(history->rsc, history->node, history 3606 lib/pengine/unpack.c history->task, history 3607 lib/pengine/unpack.c history->interval_ms, config); history 3611 lib/pengine/unpack.c *on_fail = pcmk__parse_on_fail(history->rsc, history->task, history 3612 lib/pengine/unpack.c history->interval_ms, on_fail_str); history 3613 lib/pengine/unpack.c *fail_role = pcmk__role_after_failure(history->rsc, history->task, *on_fail, history 3629 lib/pengine/unpack.c unpack_rsc_op_failure(struct action_history *history, history 3636 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 3638 lib/pengine/unpack.c *last_failure = history->xml; history 3640 lib/pengine/unpack.c is_probe = pcmk_xe_is_probe(history->xml); history 3641 lib/pengine/unpack.c last_change_s = last_change_str(history->xml); history 3644 lib/pengine/unpack.c && (history->exit_status == PCMK_OCF_NOT_INSTALLED)) { history 3647 lib/pengine/unpack.c crm_exit_str(history->exit_status), history 3648 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3649 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3650 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, history 3651 lib/pengine/unpack.c pcmk__node_name(history->node), last_change_s, history 3652 lib/pengine/unpack.c history->exit_status, history->id); history 3657 lib/pengine/unpack.c crm_exit_str(history->exit_status), history 3658 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3659 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3660 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, history 3661 lib/pengine/unpack.c pcmk__node_name(history->node), last_change_s, history 3662 lib/pengine/unpack.c history->exit_status, history->id); history 3664 lib/pengine/unpack.c if (is_probe && (history->exit_status != PCMK_OCF_OK) history 3665 lib/pengine/unpack.c && (history->exit_status != PCMK_OCF_NOT_RUNNING) history 3666 lib/pengine/unpack.c && (history->exit_status != PCMK_OCF_RUNNING_PROMOTED)) { history 3674 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); history 3677 lib/pengine/unpack.c record_failed_op(history); history 3683 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "on-fail %s -> %s for %s", history 3685 lib/pengine/unpack.c pcmk__on_fail_text(config_on_fail), history->key); history 3689 lib/pengine/unpack.c if (strcmp(history->task, PCMK_ACTION_STOP) == 0) { history 3690 lib/pengine/unpack.c resource_location(history->rsc, history->node, -PCMK_SCORE_INFINITY, history 3693 lib/pengine/unpack.c } else if (strcmp(history->task, PCMK_ACTION_MIGRATE_TO) == 0) { history 3694 lib/pengine/unpack.c unpack_migrate_to_failure(history); history 3696 lib/pengine/unpack.c } else if (strcmp(history->task, PCMK_ACTION_MIGRATE_FROM) == 0) { history 3697 lib/pengine/unpack.c unpack_migrate_from_failure(history); history 3699 lib/pengine/unpack.c } else if (strcmp(history->task, PCMK_ACTION_PROMOTE) == 0) { history 3700 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 3702 lib/pengine/unpack.c } else if (strcmp(history->task, PCMK_ACTION_DEMOTE) == 0) { history 3704 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 3705 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_stopped, history 3708 lib/pengine/unpack.c } else if (history->exit_status == PCMK_OCF_NOT_RUNNING) { history 3709 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; history 3717 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unpromoted; history 3721 lib/pengine/unpack.c if (is_probe && (history->exit_status == PCMK_OCF_NOT_INSTALLED)) { history 3723 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "Leaving %s stopped", history->rsc->id); history 3724 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; history 3726 lib/pengine/unpack.c } else if (history->rsc->priv->orig_role < pcmk_role_started) { history 3727 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "Setting %s active", history->rsc->id); history 3728 lib/pengine/unpack.c set_active(history->rsc); history 3731 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 3733 lib/pengine/unpack.c history->rsc->id, history 3734 lib/pengine/unpack.c pcmk_role_text(history->rsc->priv->orig_role), history 3735 lib/pengine/unpack.c pcmk__btoa(history->node->details->unclean), history 3740 lib/pengine/unpack.c && (history->rsc->priv->next_role < fail_role)) { history 3741 lib/pengine/unpack.c pe__set_next_role(history->rsc, fail_role, "failure"); history 3745 lib/pengine/unpack.c ban_from_all_nodes(history->rsc); history 3759 lib/pengine/unpack.c block_if_unrecoverable(struct action_history *history) history 3763 lib/pengine/unpack.c if (strcmp(history->task, PCMK_ACTION_STOP) != 0) { history 3766 lib/pengine/unpack.c if (pe_can_fence(history->node->priv->scheduler, history->node)) { history 3770 lib/pengine/unpack.c last_change_s = last_change_str(history->xml); history 3771 lib/pengine/unpack.c pcmk__sched_err(history->node->priv->scheduler, history 3775 lib/pengine/unpack.c history->rsc->id, history->task, history 3776 lib/pengine/unpack.c pcmk__node_name(history->node), history 3777 lib/pengine/unpack.c crm_exit_str(history->exit_status), history 3778 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3779 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3780 lib/pengine/unpack.c last_change_s, history->exit_status, history->id); history 3784 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_managed); history 3785 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, pcmk__rsc_blocked); history 3798 lib/pengine/unpack.c remap_because(struct action_history *history, const char **why, int value, history 3801 lib/pengine/unpack.c if (history->execution_status != value) { history 3802 lib/pengine/unpack.c history->execution_status = value; history 3830 lib/pengine/unpack.c remap_operation(struct action_history *history, history 3839 lib/pengine/unpack.c int orig_exit_status = history->exit_status; history 3840 lib/pengine/unpack.c int orig_exec_status = history->execution_status; history 3842 lib/pengine/unpack.c const char *task = history->task; history 3845 lib/pengine/unpack.c history->exit_status = pcmk__effective_rc(history->exit_status); history 3846 lib/pengine/unpack.c if (history->exit_status != orig_exit_status) { history 3848 lib/pengine/unpack.c if (!expired && (!history->node->details->shutdown history 3849 lib/pengine/unpack.c || history->node->details->online)) { history 3850 lib/pengine/unpack.c record_failed_op(history); history 3854 lib/pengine/unpack.c if (!pcmk__is_bundled(history->rsc) history 3855 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml) history 3856 lib/pengine/unpack.c && ((history->execution_status != PCMK_EXEC_DONE) history 3857 lib/pengine/unpack.c || (history->exit_status != PCMK_OCF_NOT_RUNNING))) { history 3858 lib/pengine/unpack.c history->execution_status = PCMK_EXEC_DONE; history 3859 lib/pengine/unpack.c history->exit_status = PCMK_OCF_NOT_RUNNING; history 3868 lib/pengine/unpack.c switch (history->execution_status) { history 3876 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, history 3884 lib/pengine/unpack.c is_probe = pcmk_xe_is_probe(history->xml); history 3889 lib/pengine/unpack.c if (history->expected_exit_status < 0) { history 3898 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, history 3902 lib/pengine/unpack.c history->key, pcmk__node_name(history->node)); history 3904 lib/pengine/unpack.c } else if (history->exit_status == history->expected_exit_status) { history 3905 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "expected result"); history 3908 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, "unexpected result"); history 3909 lib/pengine/unpack.c pcmk__rsc_debug(history->rsc, history 3911 lib/pengine/unpack.c history->key, pcmk__node_name(history->node), history 3912 lib/pengine/unpack.c history->expected_exit_status, history 3913 lib/pengine/unpack.c crm_exit_str(history->expected_exit_status), history 3914 lib/pengine/unpack.c history->exit_status, history 3915 lib/pengine/unpack.c crm_exit_str(history->exit_status), history 3916 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3917 lib/pengine/unpack.c pcmk__s(history->exit_reason, "")); history 3920 lib/pengine/unpack.c switch (history->exit_status) { history 3923 lib/pengine/unpack.c && (history->expected_exit_status == PCMK_OCF_NOT_RUNNING)) { history 3924 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 3926 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "probe"); history 3927 lib/pengine/unpack.c pcmk__rsc_info(history->rsc, history 3929 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node), history 3937 lib/pengine/unpack.c || (history->expected_exit_status == history->exit_status) history 3938 lib/pengine/unpack.c || !pcmk_is_set(history->rsc->flags, pcmk__rsc_managed)) { history 3944 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "exit status"); history 3945 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; history 3947 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, history 3954 lib/pengine/unpack.c && (history->exit_status != history->expected_exit_status)) { history 3955 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 3957 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "probe"); history 3958 lib/pengine/unpack.c pcmk__rsc_info(history->rsc, history 3960 lib/pengine/unpack.c history->rsc->id, history 3961 lib/pengine/unpack.c pcmk__node_name(history->node), last_change_s); history 3965 lib/pengine/unpack.c || (history->exit_status == history->expected_exit_status)) { history 3966 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 3972 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 3974 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, "exit status"); history 3978 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_FATAL, "exit status"); history 3984 lib/pengine/unpack.c crm_element_value_ms(history->xml, PCMK_META_INTERVAL, history 3989 lib/pengine/unpack.c block_if_unrecoverable(history); history 3991 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, history 3994 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_NOT_SUPPORTED, history 4004 lib/pengine/unpack.c block_if_unrecoverable(history); history 4006 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, "exit status"); history 4010 lib/pengine/unpack.c if (history->execution_status == PCMK_EXEC_DONE) { history 4011 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 4015 lib/pengine/unpack.c history->exit_status, task, history->rsc->id, history 4016 lib/pengine/unpack.c pcmk__node_name(history->node), last_change_s); history 4017 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, history 4026 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 4029 lib/pengine/unpack.c history->key, pcmk_exec_status_str(orig_exec_status), history 4031 lib/pengine/unpack.c pcmk_exec_status_str(history->execution_status), history 4032 lib/pengine/unpack.c crm_exit_str(history->exit_status), why); history 4150 lib/pengine/unpack.c check_operation_expiry(struct action_history *history) history 4153 lib/pengine/unpack.c bool is_last_failure = pcmk__ends_with(history->id, "_last_failure_0"); history 4158 lib/pengine/unpack.c pcmk__timeout_ms2s(history->rsc->priv->failure_expiration_ms); history 4159 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; history 4161 lib/pengine/unpack.c if (history->execution_status == PCMK_EXEC_NOT_INSTALLED) { history 4162 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 4165 lib/pengine/unpack.c history->id, pcmk__node_name(history->node)); history 4170 lib/pengine/unpack.c && (crm_element_value_epoch(history->xml, PCMK_XA_LAST_RC_CHANGE, history 4182 lib/pengine/unpack.c && !should_ignore_failure_timeout(history->rsc, history->task, history 4183 lib/pengine/unpack.c history->interval_ms, history 4189 lib/pengine/unpack.c unexpired_fail_count = pe_get_failcount(history->node, history->rsc, history 4192 lib/pengine/unpack.c history->xml); history 4197 lib/pengine/unpack.c history->id, (long long) last_run, (expired? "" : "not "), history 4209 lib/pengine/unpack.c if (pe_get_failcount(history->node, history->rsc, NULL, history 4210 lib/pengine/unpack.c pcmk__fc_default, history->xml)) { history 4224 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 4227 lib/pengine/unpack.c history->id, pcmk__node_name(history->node)); history 4232 lib/pengine/unpack.c && (history->rsc->priv->remote_reconnect_ms > 0U)) { history 4241 lib/pengine/unpack.c && should_clear_for_param_change(history->xml, history->task, history 4242 lib/pengine/unpack.c history->rsc, history->node)) { history 4250 lib/pengine/unpack.c clear_op = pe__clear_failcount(history->rsc, history->node, history 4254 lib/pengine/unpack.c && (history->rsc->priv->remote_reconnect_ms > 0)) { history 4265 lib/pengine/unpack.c history->task, history->rsc->id); history 4266 lib/pengine/unpack.c order_after_remote_fencing(clear_op, history->rsc, scheduler); history 4270 lib/pengine/unpack.c if (expired && (history->interval_ms == 0) history 4271 lib/pengine/unpack.c && pcmk__str_eq(history->task, PCMK_ACTION_MONITOR, pcmk__str_none)) { history 4272 lib/pengine/unpack.c switch (history->exit_status) { history 4279 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 4282 lib/pengine/unpack.c history->id, pcmk__node_name(history->node)); history 4314 lib/pengine/unpack.c update_resource_state(struct action_history *history, int exit_status, history 4321 lib/pengine/unpack.c || (!pcmk__is_bundled(history->rsc) history 4322 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml))) { history 4323 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; history 4328 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_MONITOR, history 4331 lib/pengine/unpack.c && pcmk__str_eq(history->key, pcmk__xe_history_key(last_failure), history 4335 lib/pengine/unpack.c if (history->rsc->priv->orig_role < pcmk_role_started) { history 4336 lib/pengine/unpack.c set_active(history->rsc); history 4339 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_START, pcmk__str_none)) { history 4340 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; history 4343 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_STOP, pcmk__str_none)) { history 4344 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; history 4347 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_PROMOTE, history 4349 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 4352 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_DEMOTE, history 4360 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unpromoted; history 4362 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_MIGRATE_FROM, history 4364 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; history 4367 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, PCMK_ACTION_MIGRATE_TO, history 4369 lib/pengine/unpack.c unpack_migrate_to_success(history); history 4371 lib/pengine/unpack.c } else if (history->rsc->priv->orig_role < pcmk_role_started) { history 4372 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "%s active on %s", history 4373 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); history 4374 lib/pengine/unpack.c set_active(history->rsc); history 4386 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, history 4388 lib/pengine/unpack.c history->rsc->id, pcmk__on_fail_text(*on_fail), history 4389 lib/pengine/unpack.c history->task); history 4398 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, history 4403 lib/pengine/unpack.c if (history->rsc->priv->remote_reconnect_ms == 0U) { history 4411 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, history 4427 lib/pengine/unpack.c can_affect_state(struct action_history *history) history 4429 lib/pengine/unpack.c return pcmk__str_any_of(history->task, PCMK_ACTION_MONITOR, history 4445 lib/pengine/unpack.c unpack_action_result(struct action_history *history) history 4447 lib/pengine/unpack.c if ((crm_element_value_int(history->xml, PCMK__XA_OP_STATUS, history 4448 lib/pengine/unpack.c &(history->execution_status)) < 0) history 4449 lib/pengine/unpack.c || (history->execution_status < PCMK_EXEC_PENDING) history 4450 lib/pengine/unpack.c || (history->execution_status > PCMK_EXEC_MAX) history 4451 lib/pengine/unpack.c || (history->execution_status == PCMK_EXEC_CANCELLED)) { history 4454 lib/pengine/unpack.c history->id, history->rsc->id, history 4455 lib/pengine/unpack.c pcmk__node_name(history->node), history 4456 lib/pengine/unpack.c pcmk__s(crm_element_value(history->xml, history 4461 lib/pengine/unpack.c if ((crm_element_value_int(history->xml, PCMK__XA_RC_CODE, history 4462 lib/pengine/unpack.c &(history->exit_status)) < 0) history 4463 lib/pengine/unpack.c || (history->exit_status < 0) || (history->exit_status > CRM_EX_MAX)) { history 4466 lib/pengine/unpack.c history->id, history->rsc->id, history 4467 lib/pengine/unpack.c pcmk__node_name(history->node), history 4468 lib/pengine/unpack.c pcmk__s(crm_element_value(history->xml, history 4473 lib/pengine/unpack.c history->exit_reason = crm_element_value(history->xml, PCMK_XA_EXIT_REASON); history 4488 lib/pengine/unpack.c process_expired_result(struct action_history *history, int orig_exit_status) history 4490 lib/pengine/unpack.c if (!pcmk__is_bundled(history->rsc) history 4491 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml) history 4492 lib/pengine/unpack.c && (orig_exit_status != history->expected_exit_status)) { history 4494 lib/pengine/unpack.c if (history->rsc->priv->orig_role <= pcmk_role_stopped) { history 4495 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unknown; history 4499 lib/pengine/unpack.c history->id, history->rsc->id, history 4500 lib/pengine/unpack.c pcmk__node_name(history->node)); history 4504 lib/pengine/unpack.c if (history->exit_status == history->expected_exit_status) { history 4508 lib/pengine/unpack.c if (history->interval_ms == 0) { history 4511 lib/pengine/unpack.c history->id, history->task, history->rsc->id, history 4512 lib/pengine/unpack.c pcmk__node_name(history->node)); history 4516 lib/pengine/unpack.c if (history->node->details->online && !history->node->details->unclean) { history 4529 lib/pengine/unpack.c pcmk__readable_interval(history->interval_ms), history->task, history 4530 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); history 4531 lib/pengine/unpack.c crm_xml_add(history->xml, PCMK__XA_OP_RESTART_DIGEST, history 4549 lib/pengine/unpack.c mask_probe_failure(struct action_history *history, int orig_exit_status, history 4553 lib/pengine/unpack.c pcmk_resource_t *ban_rsc = history->rsc; history 4555 lib/pengine/unpack.c if (!pcmk_is_set(history->rsc->flags, pcmk__rsc_unique)) { history 4556 lib/pengine/unpack.c ban_rsc = uber_parent(history->rsc); history 4560 lib/pengine/unpack.c crm_exit_str(orig_exit_status), history->rsc->id, history 4561 lib/pengine/unpack.c pcmk__node_name(history->node)); history 4562 lib/pengine/unpack.c update_resource_state(history, history->expected_exit_status, last_failure, history 4564 lib/pengine/unpack.c crm_xml_add(history->xml, PCMK_XA_UNAME, history->node->priv->name); history 4566 lib/pengine/unpack.c record_failed_op(history); history 4567 lib/pengine/unpack.c resource_location(ban_rsc, history->node, -PCMK_SCORE_INFINITY, history 4584 lib/pengine/unpack.c failure_is_newer(const struct action_history *history, history 4595 lib/pengine/unpack.c if (!pcmk__str_eq(history->task, history 4603 lib/pengine/unpack.c || (history->interval_ms != failure_interval_ms)) { history 4607 lib/pengine/unpack.c if ((pcmk__scan_ll(crm_element_value(history->xml, PCMK_XA_LAST_RC_CHANGE), history 4627 lib/pengine/unpack.c process_pending_action(struct action_history *history, history 4639 lib/pengine/unpack.c if (failure_is_newer(history, last_failure)) { history 4643 lib/pengine/unpack.c if (strcmp(history->task, PCMK_ACTION_START) == 0) { history 4644 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, pcmk__rsc_start_pending); history 4645 lib/pengine/unpack.c set_active(history->rsc); history 4647 lib/pengine/unpack.c } else if (strcmp(history->task, PCMK_ACTION_PROMOTE) == 0) { history 4648 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; history 4650 lib/pengine/unpack.c } else if ((strcmp(history->task, PCMK_ACTION_MIGRATE_TO) == 0) history 4651 lib/pengine/unpack.c && history->node->details->unclean) { history 4658 lib/pengine/unpack.c migrate_target = crm_element_value(history->xml, history 4660 lib/pengine/unpack.c target = pcmk_find_node(history->rsc->priv->scheduler, history 4663 lib/pengine/unpack.c stop_action(history->rsc, target, FALSE); history 4667 lib/pengine/unpack.c if (history->rsc->priv->pending_action != NULL) { history 4674 lib/pengine/unpack.c if (pcmk_is_probe(history->task, history->interval_ms)) { history 4681 lib/pengine/unpack.c history->rsc->private->pending_action = strdup("probe"); history 4682 lib/pengine/unpack.c history->rsc->private->pending_node = history->node; history 4685 lib/pengine/unpack.c history->rsc->priv->pending_action = strdup(history->task); history 4686 lib/pengine/unpack.c history->rsc->priv->pending_node = history->node; history 4700 lib/pengine/unpack.c struct action_history history = { history 4709 lib/pengine/unpack.c history.id = pcmk__xe_id(xml_op); history 4710 lib/pengine/unpack.c if (history.id == NULL) { history 4717 lib/pengine/unpack.c history.task = crm_element_value(xml_op, PCMK_XA_OPERATION); history 4718 lib/pengine/unpack.c if (history.task == NULL) { history 4721 lib/pengine/unpack.c history.id, rsc->id, pcmk__node_name(node)); history 4724 lib/pengine/unpack.c crm_element_value_ms(xml_op, PCMK_META_INTERVAL, &(history.interval_ms)); history 4725 lib/pengine/unpack.c if (!can_affect_state(&history)) { history 4729 lib/pengine/unpack.c history.id, rsc->id, pcmk__node_name(node), history 4730 lib/pengine/unpack.c history.task); history 4734 lib/pengine/unpack.c if (unpack_action_result(&history) != pcmk_rc_ok) { history 4738 lib/pengine/unpack.c history.expected_exit_status = pe__target_rc_from_xml(xml_op); history 4739 lib/pengine/unpack.c history.key = pcmk__xe_history_key(xml_op); history 4740 lib/pengine/unpack.c crm_element_value_int(xml_op, PCMK__XA_CALL_ID, &(history.call_id)); history 4743 lib/pengine/unpack.c history.id, history.task, history.call_id, history 4745 lib/pengine/unpack.c pcmk_exec_status_str(history.execution_status), history 4746 lib/pengine/unpack.c crm_exit_str(history.exit_status)); history 4755 lib/pengine/unpack.c expired = check_operation_expiry(&history); history 4756 lib/pengine/unpack.c old_rc = history.exit_status; history 4758 lib/pengine/unpack.c remap_operation(&history, on_fail, expired); history 4760 lib/pengine/unpack.c if (expired && (process_expired_result(&history, old_rc) == pcmk_rc_ok)) { history 4765 lib/pengine/unpack.c mask_probe_failure(&history, old_rc, *last_failure, on_fail); history 4773 lib/pengine/unpack.c switch (history.execution_status) { history 4775 lib/pengine/unpack.c process_pending_action(&history, *last_failure); history 4779 lib/pengine/unpack.c update_resource_state(&history, history.exit_status, *last_failure, history 4784 lib/pengine/unpack.c unpack_failure_handling(&history, &failure_strategy, &fail_role); history 4789 lib/pengine/unpack.c history.task, rsc->id, pcmk__node_name(node), history 4790 lib/pengine/unpack.c history.execution_status, history.exit_status, history 4791 lib/pengine/unpack.c history.id); history 4799 lib/pengine/unpack.c unpack_rsc_op_failure(&history, failure_strategy, fail_role, history 4830 lib/pengine/unpack.c unpack_failure_handling(&history, &failure_strategy, &fail_role); history 4833 lib/pengine/unpack.c && (strcmp(history.task, PCMK_ACTION_STOP) == 0))) { history 4839 lib/pengine/unpack.c history.task, crm_exit_str(history.exit_status), history 4840 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4841 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), rsc->id, history 4842 lib/pengine/unpack.c pcmk__node_name(node), last_change_s, history.id); history 4845 lib/pengine/unpack.c update_resource_state(&history, history.expected_exit_status, history 4850 lib/pengine/unpack.c record_failed_op(&history); history 4858 lib/pengine/unpack.c unpack_rsc_op_failure(&history, failure_strategy, fail_role, history 4861 lib/pengine/unpack.c if (history.execution_status == PCMK_EXEC_ERROR_HARD) { history 4864 lib/pengine/unpack.c if (history.exit_status == PCMK_OCF_NOT_INSTALLED) { history 4871 lib/pengine/unpack.c crm_exit_str(history.exit_status), history 4872 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4873 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), history.id); history 4877 lib/pengine/unpack.c } else if (history.execution_status == PCMK_EXEC_ERROR_FATAL) { history 4881 lib/pengine/unpack.c parent->id, crm_exit_str(history.exit_status), history 4882 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4883 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), history.id); history 4891 lib/pengine/unpack.c rsc->id, pcmk__node_name(node), history.id, history 62 tools/stonith_admin.c char *history; history 130 tools/stonith_admin.c { "history", 'H', 0, G_OPTION_ARG_STRING, &options.history, history 517 tools/stonith_admin.c if (options.history != NULL) { history 519 tools/stonith_admin.c target = options.history;