history 97 daemons/controld/controld_execd.c history_remove_recurring_op(rsc_history_t *history, const lrmd_event_data_t *op) history 101 daemons/controld/controld_execd.c for (iter = history->recurring_op_list; iter != NULL; iter = iter->next) { history 108 daemons/controld/controld_execd.c history->recurring_op_list = g_list_delete_link(history->recurring_op_list, iter); history 123 daemons/controld/controld_execd.c history_free_recurring_ops(rsc_history_t *history) history 127 daemons/controld/controld_execd.c for (iter = history->recurring_op_list; iter != NULL; iter = iter->next) { history 130 daemons/controld/controld_execd.c g_list_free(history->recurring_op_list); history 131 daemons/controld/controld_execd.c history->recurring_op_list = NULL; history 143 daemons/controld/controld_execd.c rsc_history_t *history = (rsc_history_t*)data; history 145 daemons/controld/controld_execd.c if (history->stop_params) { history 146 daemons/controld/controld_execd.c g_hash_table_destroy(history->stop_params); history 150 daemons/controld/controld_execd.c free(history->rsc.type); history 151 daemons/controld/controld_execd.c free(history->rsc.standard); history 152 daemons/controld/controld_execd.c free(history->rsc.provider); history 154 daemons/controld/controld_execd.c lrmd_free_event(history->failed); history 155 daemons/controld/controld_execd.c lrmd_free_event(history->last); history 156 daemons/controld/controld_execd.c free(history->id); history 157 daemons/controld/controld_execd.c history_free_recurring_ops(history); history 158 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 41 daemons/fenced/fenced_history.c stonith_send_broadcast_history(xmlNode *history, history 55 daemons/fenced/fenced_history.c if (history) { history 56 daemons/fenced/fenced_history.c add_node_copy(data, history); history 222 daemons/fenced/fenced_history.c stonith_xml_history_to_list(const xmlNode *history) history 231 daemons/fenced/fenced_history.c for (xml_op = pcmk__xml_first_child(history); xml_op != NULL; history 303 daemons/fenced/fenced_history.c xmlNode *history = NULL; history 312 daemons/fenced/fenced_history.c history = create_xml_node(NULL, F_STONITH_HISTORY_LIST); history 364 daemons/fenced/fenced_history.c entry = create_xml_node(history, STONITH_OP_EXEC); history 425 daemons/fenced/fenced_history.c free_xml(history); history 428 daemons/fenced/fenced_history.c return history; history 505 daemons/fenced/fenced_history.c xmlNode *history = get_xpath_object("//" F_STONITH_HISTORY_LIST, history 517 daemons/fenced/fenced_history.c if (!history || !pcmk__xe_attr_is_true(history, F_STONITH_DIFFERENTIAL)) { history 520 daemons/fenced/fenced_history.c if (history != NULL) { history 521 daemons/fenced/fenced_history.c received_history = stonith_xml_history_to_list(history); history 97 include/crm/fencing/internal.h stonith_history_t *stonith__sort_history(stonith_history_t *history); history 183 include/crm/fencing/internal.h stonith_history_t *stonith__first_matching_event(stonith_history_t *history, history 186 include/crm/fencing/internal.h bool stonith__event_state_pending(stonith_history_t *history, void *user_data); history 187 include/crm/fencing/internal.h bool stonith__event_state_eq(stonith_history_t *history, void *user_data); history 188 include/crm/fencing/internal.h bool stonith__event_state_neq(stonith_history_t *history, void *user_data); history 385 include/crm/stonith-ng.h int (*history)(stonith_t *stonith, int call_options, const char *node, history 386 include/crm/stonith-ng.h stonith_history_t **history, int timeout); history 572 include/crm/stonith-ng.h void stonith_history_free(stonith_history_t *history); history 697 lib/fencing/st_client.c stonith_history_t ** history, int timeout) history 704 lib/fencing/st_client.c *history = NULL; history 744 lib/fencing/st_client.c *history = kvp; history 755 lib/fencing/st_client.c void stonith_history_free(stonith_history_t *history) history 759 lib/fencing/st_client.c for (hp = history; hp; hp_old = hp, hp = hp->next, free(hp_old)) { history 1860 lib/fencing/st_client.c new_stonith->cmds->history = stonith_api_history; history 2007 lib/fencing/st_client.c stonith_history_t *history = NULL, *hp = NULL; history 2029 lib/fencing/st_client.c rc = st->cmds->history(st, opts, name, &history, 120); history 2032 lib/fencing/st_client.c for (hp = history; hp; hp = hp->next) { history 2048 lib/fencing/st_client.c stonith_history_free(history); history 2289 lib/fencing/st_client.c stonith__sort_history(stonith_history_t *history) history 2293 lib/fencing/st_client.c for (hp = history; hp; ) { history 2356 lib/fencing/st_client.c stonith__first_matching_event(stonith_history_t *history, history 2360 lib/fencing/st_client.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 2370 lib/fencing/st_client.c stonith__event_state_pending(stonith_history_t *history, void *user_data) history 2372 lib/fencing/st_client.c return history->state != st_failed && history->state != st_done; history 2376 lib/fencing/st_client.c stonith__event_state_eq(stonith_history_t *history, void *user_data) history 2378 lib/fencing/st_client.c return history->state == GPOINTER_TO_INT(user_data); history 2382 lib/fencing/st_client.c stonith__event_state_neq(stonith_history_t *history, void *user_data) history 2384 lib/fencing/st_client.c return history->state != GPOINTER_TO_INT(user_data); history 63 lib/fencing/st_output.c state_str(const stonith_history_t *history) history 65 lib/fencing/st_output.c switch (history->state) { history 90 lib/fencing/st_output.c stonith__history_description(const stonith_history_t *history, history 97 lib/fencing/st_output.c if ((history->state == st_failed) || (history->state == st_done)) { history 98 lib/fencing/st_output.c completed_time_s = timespec_string(history->completed, history 99 lib/fencing/st_output.c history->completed_nsec, true); history 103 lib/fencing/st_output.c stonith_action_str(history->action), " of ", history->target, history 108 lib/fencing/st_output.c if (((history->state == st_failed) || (history->state == st_done)) history 109 lib/fencing/st_output.c && (history->delegate != NULL)) { history 111 lib/fencing/st_output.c pcmk__g_strcat(str, " by ", history->delegate, NULL); history 113 lib/fencing/st_output.c pcmk__g_strcat(str, " for ", history->client, "@", history->origin, history 120 lib/fencing/st_output.c pcmk__add_word(&str, 0, state_str(history)); history 123 lib/fencing/st_output.c if ((history->state == st_failed) && (history->exit_reason != NULL)) { history 124 lib/fencing/st_output.c pcmk__g_strcat(str, " (", history->exit_reason, ")", NULL); history 132 lib/fencing/st_output.c if (((history->state == st_failed) || (history->state == st_done)) history 133 lib/fencing/st_output.c && (history->delegate != NULL)) { history 135 lib/fencing/st_output.c pcmk__g_strcat(str, "delegate=", history->delegate, ", ", NULL); history 140 lib/fencing/st_output.c "client=", history->client, ", origin=", history->origin, history 147 lib/fencing/st_output.c } else if (history->state == st_failed) { history 159 lib/fencing/st_output.c if ((history->state == st_failed) && (later_succeeded != NULL)) { history 174 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 182 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 194 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 207 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 215 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 225 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 240 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 248 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 256 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 270 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 279 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 288 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 364 lib/fencing/st_output.c stonith_history_t *history = va_arg(args, stonith_history_t *); history 372 lib/fencing/st_output.c for (stonith_history_t *hp = history; hp; hp = hp->next) { history 385 lib/fencing/st_output.c false, stonith__later_succeeded(hp, history), show_opts); history 78 lib/pacemaker/pcmk_fence.c reduce_fence_history(stonith_history_t *history) history 82 lib/pacemaker/pcmk_fence.c if (!history) { history 83 lib/pacemaker/pcmk_fence.c return history; history 86 lib/pacemaker/pcmk_fence.c new = history; history 235 lib/pacemaker/pcmk_fence.c stonith_history_t *history = NULL, *hp, *latest = NULL; history 254 lib/pacemaker/pcmk_fence.c rc = st->cmds->history(st, opts, history 256 lib/pacemaker/pcmk_fence.c &history, timeout/1000); history 260 lib/pacemaker/pcmk_fence.c stonith_history_free(history); history 266 lib/pacemaker/pcmk_fence.c history = stonith__sort_history(history); history 267 lib/pacemaker/pcmk_fence.c for (hp = history; hp; hp = hp->next) { history 277 lib/pacemaker/pcmk_fence.c stonith__later_succeeded(hp, history), history 295 lib/pacemaker/pcmk_fence.c stonith_history_free(history); history 612 lib/pacemaker/pcmk_fence.c rc = st->cmds->history(st, st_opt_sync_call, NULL, stonith_history, 120); history 35 lib/pacemaker/pcmk_resource.c xmlNode *history = NULL; history 44 lib/pacemaker/pcmk_resource.c history = get_xpath_object(xpath, data_set->input, LOG_NEVER); history 48 lib/pacemaker/pcmk_resource.c for (xmlNode *lrm_rsc_op = first_named_child(history, XML_LRM_TAG_RSC_OP); history 1910 lib/pacemaker/pcmk_sched_actions.c xmlNode *history = NULL; history 1913 lib/pacemaker/pcmk_sched_actions.c history = get_xpath_object(xpath, data_set->input, LOG_NEVER); history 1916 lib/pacemaker/pcmk_sched_actions.c process_node_history(node, history); history 2910 lib/pengine/unpack.c unpack_migrate_to_success(struct action_history *history) history 2954 lib/pengine/unpack.c if (get_migration_node_names(history->xml, history->node, NULL, &source, history 2960 lib/pengine/unpack.c source_newer_op = non_monitor_after(history->rsc->id, source, history->xml, history 2961 lib/pengine/unpack.c true, history->rsc->cluster); history 2964 lib/pengine/unpack.c migrate_from = find_lrm_op(history->rsc->id, CRMD_ACTION_MIGRATED, target, history 2965 lib/pengine/unpack.c source, -1, history->rsc->cluster); history 2982 lib/pengine/unpack.c target_newer_state = newer_state_after_migrate(history->rsc->id, target, history 2983 lib/pengine/unpack.c history->xml, migrate_from, history 2984 lib/pengine/unpack.c history->rsc->cluster); history 2994 lib/pengine/unpack.c add_dangling_migration(history->rsc, history->node); history 3001 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STARTED; history 3003 lib/pengine/unpack.c target_node = pe_find_node(history->rsc->cluster->nodes, target); history 3009 lib/pengine/unpack.c native_add_running(history->rsc, target_node, history->rsc->cluster, history 3013 lib/pengine/unpack.c pe__set_resource_flags(history->rsc, pe_rsc_failed|pe_rsc_stop); history 3014 lib/pengine/unpack.c pe__clear_resource_flags(history->rsc, pe_rsc_allow_migrate); history 3026 lib/pengine/unpack.c && unknown_on_node(history->rsc, target)) { history 3031 lib/pengine/unpack.c pe_node_t *source_node = pe_find_node(history->rsc->cluster->nodes, history 3034 lib/pengine/unpack.c native_add_running(history->rsc, target_node, history->rsc->cluster, history 3043 lib/pengine/unpack.c history->rsc->partial_migration_target = target_node; history 3044 lib/pengine/unpack.c history->rsc->partial_migration_source = source_node; history 3049 lib/pengine/unpack.c pe__set_resource_flags(history->rsc, pe_rsc_failed|pe_rsc_stop); history 3050 lib/pengine/unpack.c pe__clear_resource_flags(history->rsc, pe_rsc_allow_migrate); history 3061 lib/pengine/unpack.c unpack_migrate_to_failure(struct action_history *history) history 3068 lib/pengine/unpack.c if (get_migration_node_names(history->xml, history->node, NULL, &source, history 3076 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STARTED; history 3079 lib/pengine/unpack.c target_migrate_from = find_lrm_op(history->rsc->id, CRMD_ACTION_MIGRATED, history 3081 lib/pengine/unpack.c history->rsc->cluster); history 3088 lib/pengine/unpack.c !unknown_on_node(history->rsc, target) history 3092 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, target, history->xml, history 3094 lib/pengine/unpack.c history->rsc->cluster)) { history 3099 lib/pengine/unpack.c pe_node_t *target_node = pe_find_node(history->rsc->cluster->nodes, history 3103 lib/pengine/unpack.c native_add_running(history->rsc, target_node, history->rsc->cluster, history 3107 lib/pengine/unpack.c } else if (!non_monitor_after(history->rsc->id, source, history->xml, true, history 3108 lib/pengine/unpack.c history->rsc->cluster)) { history 3115 lib/pengine/unpack.c history->rsc->dangling_migrations = history 3116 lib/pengine/unpack.c g_list_prepend(history->rsc->dangling_migrations, history 3117 lib/pengine/unpack.c (gpointer) history->node); history 3128 lib/pengine/unpack.c unpack_migrate_from_failure(struct action_history *history) history 3135 lib/pengine/unpack.c if (get_migration_node_names(history->xml, NULL, history->node, &source, history 3143 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STARTED; history 3146 lib/pengine/unpack.c source_migrate_to = find_lrm_op(history->rsc->id, CRMD_ACTION_MIGRATE, history 3148 lib/pengine/unpack.c history->rsc->cluster); history 3155 lib/pengine/unpack.c !unknown_on_node(history->rsc, source) history 3159 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, source, history 3160 lib/pengine/unpack.c source_migrate_to, history->xml, history 3161 lib/pengine/unpack.c history->rsc->cluster)) { history 3165 lib/pengine/unpack.c pe_node_t *source_node = pe_find_node(history->rsc->cluster->nodes, history 3169 lib/pengine/unpack.c native_add_running(history->rsc, source_node, history->rsc->cluster, history 3182 lib/pengine/unpack.c record_failed_op(struct action_history *history) history 3184 lib/pengine/unpack.c if (!(history->node->details->online)) { history 3188 lib/pengine/unpack.c for (const xmlNode *xIter = history->rsc->cluster->failed->children; history 3194 lib/pengine/unpack.c if (pcmk__str_eq(history->key, key, pcmk__str_none) history 3195 lib/pengine/unpack.c && pcmk__str_eq(uname, history->node->details->uname, history 3198 lib/pengine/unpack.c history->key, pe__node_name(history->node)); history 3204 lib/pengine/unpack.c history->key, pe__node_name(history->node)); history 3205 lib/pengine/unpack.c crm_xml_add(history->xml, XML_ATTR_UNAME, history->node->details->uname); history 3206 lib/pengine/unpack.c crm_xml_add(history->xml, XML_LRM_ATTR_RSCID, history->rsc->id); history 3207 lib/pengine/unpack.c add_node_copy(history->rsc->cluster->failed, history->xml); history 3368 lib/pengine/unpack.c unpack_rsc_op_failure(struct action_history *history, xmlNode **last_failure, history 3375 lib/pengine/unpack.c *last_failure = history->xml; history 3377 lib/pengine/unpack.c is_probe = pcmk_xe_is_probe(history->xml); history 3378 lib/pengine/unpack.c last_change_s = last_change_str(history->xml); history 3380 lib/pengine/unpack.c if (!pcmk_is_set(history->rsc->cluster->flags, pe_flag_symmetric_cluster) history 3381 lib/pengine/unpack.c && (history->exit_status == PCMK_OCF_NOT_INSTALLED)) { history 3384 lib/pengine/unpack.c services_ocf_exitcode_str(history->exit_status), history 3385 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3386 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3387 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, history 3388 lib/pengine/unpack.c pe__node_name(history->node), last_change_s, history 3389 lib/pengine/unpack.c history->exit_status, history->id); history 3393 lib/pengine/unpack.c services_ocf_exitcode_str(history->exit_status), history 3394 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3395 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3396 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, history 3397 lib/pengine/unpack.c pe__node_name(history->node), last_change_s, history 3398 lib/pengine/unpack.c history->exit_status, history->id); history 3400 lib/pengine/unpack.c if (is_probe && (history->exit_status != PCMK_OCF_OK) history 3401 lib/pengine/unpack.c && (history->exit_status != PCMK_OCF_NOT_RUNNING) history 3402 lib/pengine/unpack.c && (history->exit_status != PCMK_OCF_RUNNING_PROMOTED)) { history 3409 lib/pengine/unpack.c history->rsc->id, pe__node_name(history->node)); history 3412 lib/pengine/unpack.c record_failed_op(history); history 3417 lib/pengine/unpack.c action = custom_action(history->rsc, strdup(history->key), history->task, history 3418 lib/pengine/unpack.c NULL, TRUE, FALSE, history->rsc->cluster); history 3420 lib/pengine/unpack.c pe_rsc_trace(history->rsc, "on-fail %s -> %s for %s (%s)", history 3422 lib/pengine/unpack.c action->uuid, history->key); history 3426 lib/pengine/unpack.c if (strcmp(history->task, CRMD_ACTION_STOP) == 0) { history 3427 lib/pengine/unpack.c resource_location(history->rsc, history->node, -INFINITY, history 3428 lib/pengine/unpack.c "__stop_fail__", history->rsc->cluster); history 3430 lib/pengine/unpack.c } else if (strcmp(history->task, CRMD_ACTION_MIGRATE) == 0) { history 3431 lib/pengine/unpack.c unpack_migrate_to_failure(history); history 3433 lib/pengine/unpack.c } else if (strcmp(history->task, CRMD_ACTION_MIGRATED) == 0) { history 3434 lib/pengine/unpack.c unpack_migrate_from_failure(history); history 3436 lib/pengine/unpack.c } else if (strcmp(history->task, CRMD_ACTION_PROMOTE) == 0) { history 3437 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 3439 lib/pengine/unpack.c } else if (strcmp(history->task, CRMD_ACTION_DEMOTE) == 0) { history 3441 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 3442 lib/pengine/unpack.c pe__set_next_role(history->rsc, RSC_ROLE_STOPPED, history 3445 lib/pengine/unpack.c } else if (history->exit_status == PCMK_OCF_NOT_RUNNING) { history 3446 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STOPPED; history 3454 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_UNPROMOTED; history 3458 lib/pengine/unpack.c if (is_probe && (history->exit_status == PCMK_OCF_NOT_INSTALLED)) { history 3460 lib/pengine/unpack.c pe_rsc_trace(history->rsc, "Leaving %s stopped", history->rsc->id); history 3461 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STOPPED; history 3463 lib/pengine/unpack.c } else if (history->rsc->role < RSC_ROLE_STARTED) { history 3464 lib/pengine/unpack.c pe_rsc_trace(history->rsc, "Setting %s active", history->rsc->id); history 3465 lib/pengine/unpack.c set_active(history->rsc); history 3468 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 3470 lib/pengine/unpack.c history->rsc->id, role2text(history->rsc->role), history 3471 lib/pengine/unpack.c pcmk__btoa(history->node->details->unclean), history 3475 lib/pengine/unpack.c && (history->rsc->next_role < action->fail_role)) { history 3476 lib/pengine/unpack.c pe__set_next_role(history->rsc, action->fail_role, "failure"); history 3480 lib/pengine/unpack.c ban_from_all_nodes(history->rsc); history 3496 lib/pengine/unpack.c block_if_unrecoverable(struct action_history *history) history 3500 lib/pengine/unpack.c if (strcmp(history->task, CRMD_ACTION_STOP) != 0) { history 3503 lib/pengine/unpack.c if (pe_can_fence(history->node->details->data_set, history->node)) { history 3507 lib/pengine/unpack.c last_change_s = last_change_str(history->xml); history 3511 lib/pengine/unpack.c history->rsc->id, history->task, pe__node_name(history->node), history 3512 lib/pengine/unpack.c services_ocf_exitcode_str(history->exit_status), history 3513 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3514 lib/pengine/unpack.c pcmk__s(history->exit_reason, ""), history 3515 lib/pengine/unpack.c last_change_s, history->exit_status, history->id); history 3519 lib/pengine/unpack.c pe__clear_resource_flags(history->rsc, pe_rsc_managed); history 3520 lib/pengine/unpack.c pe__set_resource_flags(history->rsc, pe_rsc_block); history 3533 lib/pengine/unpack.c remap_because(struct action_history *history, const char **why, int value, history 3536 lib/pengine/unpack.c if (history->execution_status != value) { history 3537 lib/pengine/unpack.c history->execution_status = value; history 3565 lib/pengine/unpack.c remap_operation(struct action_history *history, history 3569 lib/pengine/unpack.c int orig_exit_status = history->exit_status; history 3570 lib/pengine/unpack.c int orig_exec_status = history->execution_status; history 3572 lib/pengine/unpack.c const char *task = history->task; history 3575 lib/pengine/unpack.c history->exit_status = pcmk__effective_rc(history->exit_status); history 3576 lib/pengine/unpack.c if (history->exit_status != orig_exit_status) { history 3578 lib/pengine/unpack.c if (!expired && (!history->node->details->shutdown history 3579 lib/pengine/unpack.c || history->node->details->online)) { history 3580 lib/pengine/unpack.c record_failed_op(history); history 3584 lib/pengine/unpack.c if (!pe_rsc_is_bundled(history->rsc) history 3585 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml) history 3586 lib/pengine/unpack.c && ((history->execution_status != PCMK_EXEC_DONE) history 3587 lib/pengine/unpack.c || (history->exit_status != PCMK_OCF_NOT_RUNNING))) { history 3588 lib/pengine/unpack.c history->execution_status = PCMK_EXEC_DONE; history 3589 lib/pengine/unpack.c history->exit_status = PCMK_OCF_NOT_RUNNING; history 3598 lib/pengine/unpack.c switch (history->execution_status) { history 3606 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, history 3614 lib/pengine/unpack.c is_probe = pcmk_xe_is_probe(history->xml); history 3619 lib/pengine/unpack.c if (history->expected_exit_status < 0) { history 3628 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, history 3632 lib/pengine/unpack.c history->key, pe__node_name(history->node)); history 3634 lib/pengine/unpack.c } else if (history->exit_status == history->expected_exit_status) { history 3635 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "expected result"); history 3638 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, "unexpected result"); history 3639 lib/pengine/unpack.c pe_rsc_debug(history->rsc, history 3641 lib/pengine/unpack.c history->key, pe__node_name(history->node), history 3642 lib/pengine/unpack.c history->expected_exit_status, history 3643 lib/pengine/unpack.c services_ocf_exitcode_str(history->expected_exit_status), history 3644 lib/pengine/unpack.c history->exit_status, history 3645 lib/pengine/unpack.c services_ocf_exitcode_str(history->exit_status), history 3646 lib/pengine/unpack.c (pcmk__str_empty(history->exit_reason)? "" : ": "), history 3647 lib/pengine/unpack.c pcmk__s(history->exit_reason, "")); history 3650 lib/pengine/unpack.c switch (history->exit_status) { history 3653 lib/pengine/unpack.c && (history->expected_exit_status == PCMK_OCF_NOT_RUNNING)) { history 3654 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 3656 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "probe"); history 3657 lib/pengine/unpack.c pe_rsc_info(history->rsc, "Probe found %s active on %s at %s", history 3658 lib/pengine/unpack.c history->rsc->id, pe__node_name(history->node), history 3666 lib/pengine/unpack.c || (history->expected_exit_status == history->exit_status) history 3667 lib/pengine/unpack.c || !pcmk_is_set(history->rsc->flags, pe_rsc_managed)) { history 3673 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "exit status"); history 3674 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STOPPED; history 3676 lib/pengine/unpack.c pe__set_next_role(history->rsc, RSC_ROLE_UNKNOWN, history 3683 lib/pengine/unpack.c && (history->exit_status != history->expected_exit_status)) { history 3684 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 3686 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_DONE, "probe"); history 3687 lib/pengine/unpack.c pe_rsc_info(history->rsc, history 3689 lib/pengine/unpack.c history->rsc->id, pe__node_name(history->node), history 3694 lib/pengine/unpack.c || (history->exit_status == history->expected_exit_status)) { history 3695 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 3701 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 3703 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, "exit status"); history 3707 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_FATAL, "exit status"); history 3713 lib/pengine/unpack.c crm_element_value_ms(history->xml, XML_LRM_ATTR_INTERVAL_MS, history 3718 lib/pengine/unpack.c block_if_unrecoverable(history); history 3720 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, history 3723 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_NOT_SUPPORTED, history 3733 lib/pengine/unpack.c block_if_unrecoverable(history); history 3735 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR_HARD, "exit status"); history 3739 lib/pengine/unpack.c if (history->execution_status == PCMK_EXEC_DONE) { history 3740 lib/pengine/unpack.c char *last_change_s = last_change_str(history->xml); history 3744 lib/pengine/unpack.c history->exit_status, task, history->rsc->id, history 3745 lib/pengine/unpack.c pe__node_name(history->node), last_change_s); history 3746 lib/pengine/unpack.c remap_because(history, &why, PCMK_EXEC_ERROR, history 3755 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 3758 lib/pengine/unpack.c history->key, pcmk_exec_status_str(orig_exec_status), history 3760 lib/pengine/unpack.c pcmk_exec_status_str(history->execution_status), history 3761 lib/pengine/unpack.c crm_exit_str(history->exit_status), why); history 3877 lib/pengine/unpack.c check_operation_expiry(struct action_history *history) history 3880 lib/pengine/unpack.c bool is_last_failure = pcmk__ends_with(history->id, "_last_failure_0"); history 3885 lib/pengine/unpack.c if (history->execution_status == PCMK_EXEC_NOT_INSTALLED) { history 3886 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 3889 lib/pengine/unpack.c history->id, pe__node_name(history->node)); history 3893 lib/pengine/unpack.c if ((history->rsc->failure_timeout > 0) history 3894 lib/pengine/unpack.c && (crm_element_value_epoch(history->xml, XML_RSC_OP_LAST_CHANGE, history 3899 lib/pengine/unpack.c time_t now = get_effective_time(history->rsc->cluster); history 3903 lib/pengine/unpack.c if ((now >= (last_run + history->rsc->failure_timeout)) history 3904 lib/pengine/unpack.c && !should_ignore_failure_timeout(history->rsc, history->task, history 3905 lib/pengine/unpack.c history->interval_ms, history 3911 lib/pengine/unpack.c unexpired_fail_count = pe_get_failcount(history->node, history->rsc, history 3913 lib/pengine/unpack.c history->xml); history 3918 lib/pengine/unpack.c history->id, (long long) last_run, (expired? "" : "not "), history 3920 lib/pengine/unpack.c history->rsc->failure_timeout, (long long) last_failure); history 3921 lib/pengine/unpack.c last_failure += history->rsc->failure_timeout + 1; history 3923 lib/pengine/unpack.c pe__update_recheck_time(last_failure, history->rsc->cluster); history 3928 lib/pengine/unpack.c if (pe_get_failcount(history->node, history->rsc, NULL, pe_fc_default, history 3929 lib/pengine/unpack.c history->xml)) { history 3943 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 3946 lib/pengine/unpack.c history->id, pe__node_name(history->node)); history 3951 lib/pengine/unpack.c && (history->rsc->remote_reconnect_ms != 0)) { history 3960 lib/pengine/unpack.c && should_clear_for_param_change(history->xml, history->task, history 3961 lib/pengine/unpack.c history->rsc, history->node)) { history 3967 lib/pengine/unpack.c pe_action_t *clear_op = pe__clear_failcount(history->rsc, history->node, history 3969 lib/pengine/unpack.c history->rsc->cluster); history 3971 lib/pengine/unpack.c if (pcmk_is_set(history->rsc->cluster->flags, pe_flag_stonith_enabled) history 3972 lib/pengine/unpack.c && (history->rsc->remote_reconnect_ms != 0)) { history 3983 lib/pengine/unpack.c history->task, history->rsc->id); history 3984 lib/pengine/unpack.c order_after_remote_fencing(clear_op, history->rsc, history 3985 lib/pengine/unpack.c history->rsc->cluster); history 3989 lib/pengine/unpack.c if (expired && (history->interval_ms == 0) history 3990 lib/pengine/unpack.c && pcmk__str_eq(history->task, CRMD_ACTION_STATUS, pcmk__str_none)) { history 3991 lib/pengine/unpack.c switch (history->exit_status) { history 3998 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 4001 lib/pengine/unpack.c history->id, pe__node_name(history->node)); history 4032 lib/pengine/unpack.c get_action_on_fail(struct action_history *history) history 4035 lib/pengine/unpack.c pe_action_t *action = custom_action(history->rsc, strdup(history->key), history 4036 lib/pengine/unpack.c history->task, NULL, TRUE, FALSE, history 4037 lib/pengine/unpack.c history->rsc->cluster); history 4054 lib/pengine/unpack.c update_resource_state(struct action_history *history, int exit_status, history 4061 lib/pengine/unpack.c || (!pe_rsc_is_bundled(history->rsc) history 4062 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml))) { history 4063 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STOPPED; history 4068 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_STATUS, history 4071 lib/pengine/unpack.c && pcmk__str_eq(history->key, pe__xe_history_key(last_failure), history 4075 lib/pengine/unpack.c if (history->rsc->role < RSC_ROLE_STARTED) { history 4076 lib/pengine/unpack.c set_active(history->rsc); history 4079 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_START, pcmk__str_none)) { history 4080 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STARTED; history 4083 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_STOP, pcmk__str_none)) { history 4084 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STOPPED; history 4087 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_PROMOTE, history 4089 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 4092 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_DEMOTE, history 4098 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_UNPROMOTED; history 4100 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_MIGRATED, history 4102 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_STARTED; history 4105 lib/pengine/unpack.c } else if (pcmk__str_eq(history->task, CRMD_ACTION_MIGRATE, history 4107 lib/pengine/unpack.c unpack_migrate_to_success(history); history 4109 lib/pengine/unpack.c } else if (history->rsc->role < RSC_ROLE_STARTED) { history 4110 lib/pengine/unpack.c pe_rsc_trace(history->rsc, "%s active on %s", history 4111 lib/pengine/unpack.c history->rsc->id, pe__node_name(history->node)); history 4112 lib/pengine/unpack.c set_active(history->rsc); history 4124 lib/pengine/unpack.c pe_rsc_trace(history->rsc, history 4126 lib/pengine/unpack.c history->rsc->id, fail2text(*on_fail), history->task); history 4135 lib/pengine/unpack.c pe__set_next_role(history->rsc, RSC_ROLE_UNKNOWN, history 4140 lib/pengine/unpack.c if (history->rsc->remote_reconnect_ms == 0) { history 4148 lib/pengine/unpack.c pe__set_next_role(history->rsc, RSC_ROLE_UNKNOWN, history 4164 lib/pengine/unpack.c can_affect_state(struct action_history *history) history 4173 lib/pengine/unpack.c return pcmk__str_any_of(history->task, CRMD_ACTION_STATUS, history 4179 lib/pengine/unpack.c return !pcmk__str_any_of(history->task, CRMD_ACTION_NOTIFY, history 4193 lib/pengine/unpack.c unpack_action_result(struct action_history *history) history 4195 lib/pengine/unpack.c if ((crm_element_value_int(history->xml, XML_LRM_ATTR_OPSTATUS, history 4196 lib/pengine/unpack.c &(history->execution_status)) < 0) history 4197 lib/pengine/unpack.c || (history->execution_status < PCMK_EXEC_PENDING) history 4198 lib/pengine/unpack.c || (history->execution_status > PCMK_EXEC_MAX) history 4199 lib/pengine/unpack.c || (history->execution_status == PCMK_EXEC_CANCELLED)) { history 4202 lib/pengine/unpack.c history->id, history->rsc->id, pe__node_name(history->node), history 4203 lib/pengine/unpack.c pcmk__s(crm_element_value(history->xml, XML_LRM_ATTR_OPSTATUS), history 4207 lib/pengine/unpack.c if ((crm_element_value_int(history->xml, XML_LRM_ATTR_RC, history 4208 lib/pengine/unpack.c &(history->exit_status)) < 0) history 4209 lib/pengine/unpack.c || (history->exit_status < 0) || (history->exit_status > CRM_EX_MAX)) { history 4217 lib/pengine/unpack.c history->id, history->rsc->id, pe__node_name(history->node), history 4218 lib/pengine/unpack.c pcmk__s(crm_element_value(history->xml, XML_LRM_ATTR_RC), history 4222 lib/pengine/unpack.c history->exit_status = CRM_EX_ERROR; history 4225 lib/pengine/unpack.c history->exit_reason = crm_element_value(history->xml, history 4241 lib/pengine/unpack.c process_expired_result(struct action_history *history, int orig_exit_status) history 4243 lib/pengine/unpack.c if (!pe_rsc_is_bundled(history->rsc) history 4244 lib/pengine/unpack.c && pcmk_xe_mask_probe_failure(history->xml) history 4245 lib/pengine/unpack.c && (orig_exit_status != history->expected_exit_status)) { history 4247 lib/pengine/unpack.c if (history->rsc->role <= RSC_ROLE_STOPPED) { history 4248 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_UNKNOWN; history 4252 lib/pengine/unpack.c history->id, history->rsc->id, history 4253 lib/pengine/unpack.c pe__node_name(history->node)); history 4257 lib/pengine/unpack.c if (history->exit_status == history->expected_exit_status) { history 4261 lib/pengine/unpack.c if (history->interval_ms == 0) { history 4264 lib/pengine/unpack.c history->id, history->task, history->rsc->id, history 4265 lib/pengine/unpack.c pe__node_name(history->node)); history 4269 lib/pengine/unpack.c if (history->node->details->online && !history->node->details->unclean) { history 4282 lib/pengine/unpack.c pcmk__readable_interval(history->interval_ms), history->task, history 4283 lib/pengine/unpack.c history->rsc->id, pe__node_name(history->node)); history 4284 lib/pengine/unpack.c crm_xml_add(history->xml, XML_LRM_ATTR_RESTART_DIGEST, history 4302 lib/pengine/unpack.c mask_probe_failure(struct action_history *history, int orig_exit_status, history 4306 lib/pengine/unpack.c pe_resource_t *ban_rsc = history->rsc; history 4308 lib/pengine/unpack.c if (!pcmk_is_set(history->rsc->flags, pe_rsc_unique)) { history 4309 lib/pengine/unpack.c ban_rsc = uber_parent(history->rsc); history 4313 lib/pengine/unpack.c services_ocf_exitcode_str(orig_exit_status), history->rsc->id, history 4314 lib/pengine/unpack.c pe__node_name(history->node)); history 4315 lib/pengine/unpack.c update_resource_state(history, history->expected_exit_status, last_failure, history 4317 lib/pengine/unpack.c crm_xml_add(history->xml, XML_ATTR_UNAME, history->node->details->uname); history 4319 lib/pengine/unpack.c record_failed_op(history); history 4320 lib/pengine/unpack.c resource_location(ban_rsc, history->node, -INFINITY, "masked-probe-failure", history 4321 lib/pengine/unpack.c history->rsc->cluster); history 4336 lib/pengine/unpack.c failure_is_newer(const struct action_history *history, history 4347 lib/pengine/unpack.c if (!pcmk__str_eq(history->task, history 4355 lib/pengine/unpack.c || (history->interval_ms != failure_interval_ms)) { history 4359 lib/pengine/unpack.c if ((pcmk__scan_ll(crm_element_value(history->xml, XML_RSC_OP_LAST_CHANGE), history 4379 lib/pengine/unpack.c process_pending_action(struct action_history *history, history 4391 lib/pengine/unpack.c if (failure_is_newer(history, last_failure)) { history 4395 lib/pengine/unpack.c if (strcmp(history->task, CRMD_ACTION_START) == 0) { history 4396 lib/pengine/unpack.c pe__set_resource_flags(history->rsc, pe_rsc_start_pending); history 4397 lib/pengine/unpack.c set_active(history->rsc); history 4399 lib/pengine/unpack.c } else if (strcmp(history->task, CRMD_ACTION_PROMOTE) == 0) { history 4400 lib/pengine/unpack.c history->rsc->role = RSC_ROLE_PROMOTED; history 4402 lib/pengine/unpack.c } else if ((strcmp(history->task, CRMD_ACTION_MIGRATE) == 0) history 4403 lib/pengine/unpack.c && history->node->details->unclean) { history 4410 lib/pengine/unpack.c migrate_target = crm_element_value(history->xml, history 4412 lib/pengine/unpack.c target = pe_find_node(history->rsc->cluster->nodes, migrate_target); history 4414 lib/pengine/unpack.c stop_action(history->rsc, target, FALSE); history 4418 lib/pengine/unpack.c if (history->rsc->pending_task != NULL) { history 4425 lib/pengine/unpack.c if (pcmk_is_probe(history->task, history->interval_ms)) { history 4432 lib/pengine/unpack.c history->rsc->pending_task = strdup("probe"); history 4433 lib/pengine/unpack.c history->rsc->pending_node = history->node; history 4436 lib/pengine/unpack.c history->rsc->pending_task = strdup(history->task); history 4437 lib/pengine/unpack.c history->rsc->pending_node = history->node; history 4450 lib/pengine/unpack.c struct action_history history = { history 4459 lib/pengine/unpack.c history.id = ID(xml_op); history 4460 lib/pengine/unpack.c if (history.id == NULL) { history 4467 lib/pengine/unpack.c history.task = crm_element_value(xml_op, XML_LRM_ATTR_TASK); history 4468 lib/pengine/unpack.c if (history.task == NULL) { history 4470 lib/pengine/unpack.c XML_LRM_ATTR_TASK, history.id, rsc->id, pe__node_name(node)); history 4474 lib/pengine/unpack.c &(history.interval_ms)); history 4475 lib/pengine/unpack.c if (!can_affect_state(&history)) { history 4479 lib/pengine/unpack.c history.id, rsc->id, pe__node_name(node), history.task); history 4483 lib/pengine/unpack.c if (unpack_action_result(&history) != pcmk_rc_ok) { history 4487 lib/pengine/unpack.c history.expected_exit_status = pe__target_rc_from_xml(xml_op); history 4488 lib/pengine/unpack.c history.key = pe__xe_history_key(xml_op); history 4489 lib/pengine/unpack.c crm_element_value_int(xml_op, XML_LRM_ATTR_CALLID, &(history.call_id)); history 4492 lib/pengine/unpack.c history.id, history.task, history.call_id, pe__node_name(node), history 4493 lib/pengine/unpack.c pcmk_exec_status_str(history.execution_status), history 4494 lib/pengine/unpack.c crm_exit_str(history.exit_status)); history 4503 lib/pengine/unpack.c expired = check_operation_expiry(&history); history 4504 lib/pengine/unpack.c old_rc = history.exit_status; history 4506 lib/pengine/unpack.c remap_operation(&history, on_fail, expired); history 4508 lib/pengine/unpack.c if (expired && (process_expired_result(&history, old_rc) == pcmk_rc_ok)) { history 4513 lib/pengine/unpack.c mask_probe_failure(&history, old_rc, *last_failure, on_fail); history 4521 lib/pengine/unpack.c switch (history.execution_status) { history 4523 lib/pengine/unpack.c process_pending_action(&history, *last_failure); history 4527 lib/pengine/unpack.c update_resource_state(&history, history.exit_status, *last_failure, history 4532 lib/pengine/unpack.c failure_strategy = get_action_on_fail(&history); history 4537 lib/pengine/unpack.c history.task, rsc->id, pe__node_name(node), history 4538 lib/pengine/unpack.c history.execution_status, history.exit_status, history 4539 lib/pengine/unpack.c history.id); history 4545 lib/pengine/unpack.c unpack_rsc_op_failure(&history, last_failure, on_fail); history 4574 lib/pengine/unpack.c failure_strategy = get_action_on_fail(&history); history 4577 lib/pengine/unpack.c && (strcmp(history.task, CRMD_ACTION_STOP) == 0))) { history 4583 lib/pengine/unpack.c history.task, services_ocf_exitcode_str(history.exit_status), history 4584 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4585 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), rsc->id, pe__node_name(node), history 4586 lib/pengine/unpack.c last_change_s, history.id); history 4589 lib/pengine/unpack.c update_resource_state(&history, history.expected_exit_status, history 4594 lib/pengine/unpack.c record_failed_op(&history); history 4602 lib/pengine/unpack.c unpack_rsc_op_failure(&history, last_failure, on_fail); history 4604 lib/pengine/unpack.c if (history.execution_status == PCMK_EXEC_ERROR_HARD) { history 4607 lib/pengine/unpack.c if (history.exit_status == PCMK_OCF_NOT_INSTALLED) { history 4614 lib/pengine/unpack.c services_ocf_exitcode_str(history.exit_status), history 4615 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4616 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), history.id); history 4620 lib/pengine/unpack.c } else if (history.execution_status == PCMK_EXEC_ERROR_FATAL) { history 4623 lib/pengine/unpack.c parent->id, services_ocf_exitcode_str(history.exit_status), history 4624 lib/pengine/unpack.c (pcmk__str_empty(history.exit_reason)? "" : ": "), history 4625 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), history.id); history 4633 lib/pengine/unpack.c rsc->id, pe__node_name(node), history.id, history 61 tools/stonith_admin.c char *history; history 129 tools/stonith_admin.c { "history", 'H', 0, G_OPTION_ARG_STRING, &options.history, history 493 tools/stonith_admin.c if (options.history != NULL) { history 495 tools/stonith_admin.c target = options.history;