rsc 456 daemons/attrd/attrd_corosync.c const char *rsc = crm_element_value(xml, PCMK__XA_ATTR_RESOURCE); rsc 472 daemons/attrd/attrd_corosync.c if (attrd_failure_regex(®ex, rsc, op, interval_ms) != pcmk_ok) { rsc 474 daemons/attrd/attrd_corosync.c pcmk__s(rsc, "all resources")); rsc 487 daemons/attrd/attrd_corosync.c attr, pcmk__s(rsc, "all resources")); rsc 92 daemons/attrd/attrd_ipc.c const char *rsc, *op, *interval_spec; rsc 103 daemons/attrd/attrd_ipc.c rsc = crm_element_value(xml, PCMK__XA_ATTR_RESOURCE); rsc 112 daemons/attrd/attrd_ipc.c if (rsc) { rsc 116 daemons/attrd/attrd_ipc.c pattern = crm_strdup_printf(ATTRD_RE_CLEAR_ONE, rsc); rsc 123 daemons/attrd/attrd_ipc.c rsc, op, interval_ms); rsc 203 daemons/attrd/attrd_utils.c attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, rsc 211 daemons/attrd/attrd_utils.c if (rsc == NULL) { rsc 214 daemons/attrd/attrd_utils.c pattern = crm_strdup_printf(ATTRD_RE_CLEAR_ONE, rsc); rsc 216 daemons/attrd/attrd_utils.c pattern = crm_strdup_printf(ATTRD_RE_CLEAR_OP, rsc, op, interval_ms); rsc 89 daemons/attrd/pacemaker-attrd.h int attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, rsc 130 daemons/controld/controld_attrd.c update_attrd_clear_failures(const char *host, const char *rsc, const char *op, rsc 144 daemons/controld/controld_attrd.c rc = pcmk__attrd_api_clear_failures(attrd_api, host, rsc, op, rsc 155 daemons/controld/controld_attrd.c pcmk__s(rsc, "all resources"), node_type(is_remote_node), host, rsc 648 daemons/controld/controld_cib.c const lrmd_rsc_info_t *rsc, rsc 674 daemons/controld/controld_cib.c if ((rsc == NULL) || (op->params == NULL) rsc 675 daemons/controld/controld_cib.c || !crm_op_needs_metadata(rsc->standard, op->op_type)) { rsc 678 daemons/controld/controld_cib.c op->op_type, op->rsc_id, op->params, rsc); rsc 695 daemons/controld/controld_cib.c metadata = controld_get_rsc_metadata(lrm_state, rsc, rsc 703 daemons/controld/controld_cib.c rsc->standard, rsc->provider, rsc->type); rsc 721 daemons/controld/controld_cib.c controld_record_pending_op(const char *node_name, const lrmd_rsc_info_t *rsc, rsc 726 daemons/controld/controld_cib.c CRM_CHECK((node_name != NULL) && (rsc != NULL) && (op != NULL), rsc 742 daemons/controld/controld_cib.c rsc->id, op->op_type); rsc 755 daemons/controld/controld_cib.c controld_update_resource_history(node_name, rsc, op, 0); rsc 870 daemons/controld/controld_cib.c const lrmd_rsc_info_t *rsc, rsc 881 daemons/controld/controld_cib.c if (rsc == NULL) { rsc 883 daemons/controld/controld_cib.c controld_ack_event_directly(NULL, NULL, rsc, op, op->rsc_id); rsc 912 daemons/controld/controld_cib.c crm_xml_add(xml, PCMK_XA_CLASS, rsc->standard); rsc 913 daemons/controld/controld_cib.c crm_xml_add(xml, PCMK_XA_PROVIDER, rsc->provider); rsc 914 daemons/controld/controld_cib.c crm_xml_add(xml, PCMK_XA_TYPE, rsc->type); rsc 935 daemons/controld/controld_cib.c controld_add_resource_history_xml(xml, rsc, op, node_name); rsc 78 daemons/controld/controld_cib.h const lrmd_rsc_info_t *rsc, rsc 82 daemons/controld/controld_cib.h #define controld_add_resource_history_xml(parent, rsc, op, node_name) \ rsc 83 daemons/controld/controld_cib.h controld_add_resource_history_xml_as(__func__, (parent), (rsc), \ rsc 87 daemons/controld/controld_cib.h const lrmd_rsc_info_t *rsc, rsc 91 daemons/controld/controld_cib.h const lrmd_rsc_info_t *rsc, rsc 31 daemons/controld/controld_execd.c const char *rsc; rsc 43 daemons/controld/controld_execd.c static void do_lrm_rsc_op(lrm_state_t *lrm_state, lrmd_rsc_info_t *rsc, rsc 60 daemons/controld/controld_execd.c make_stop_id(const char *rsc, int call_id) rsc 62 daemons/controld/controld_execd.c return crm_strdup_printf("%s:%d", rsc, call_id); rsc 144 daemons/controld/controld_execd.c free(history->rsc.type); rsc 145 daemons/controld/controld_execd.c free(history->rsc.standard); rsc 146 daemons/controld/controld_execd.c free(history->rsc.provider); rsc 156 daemons/controld/controld_execd.c update_history_cache(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op) rsc 175 daemons/controld/controld_execd.c if (entry == NULL && rsc) { rsc 180 daemons/controld/controld_execd.c entry->rsc.id = entry->id; rsc 181 daemons/controld/controld_execd.c entry->rsc.type = pcmk__str_copy(rsc->type); rsc 182 daemons/controld/controld_execd.c entry->rsc.standard = pcmk__str_copy(rsc->standard); rsc 183 daemons/controld/controld_execd.c entry->rsc.provider = pcmk__str_copy(rsc->provider); rsc 264 daemons/controld/controld_execd.c const char *rsc_id, const lrmd_rsc_info_t *rsc, rsc 270 daemons/controld/controld_execd.c controld_ack_event_directly(ack_host, ack_sys, rsc, op, rsc_id); rsc 545 daemons/controld/controld_execd.c crm_xml_add(xml_rsc, PCMK_XA_TYPE, entry->rsc.type); rsc 546 daemons/controld/controld_execd.c crm_xml_add(xml_rsc, PCMK_XA_CLASS, entry->rsc.standard); rsc 547 daemons/controld/controld_execd.c crm_xml_add(xml_rsc, PCMK_XA_PROVIDER, entry->rsc.provider); rsc 559 daemons/controld/controld_execd.c controld_add_resource_history_xml(xml_rsc, &(entry->rsc), entry->failed, rsc 561 daemons/controld/controld_execd.c controld_add_resource_history_xml(xml_rsc, &(entry->rsc), entry->last, rsc 564 daemons/controld/controld_execd.c controld_add_resource_history_xml(xml_rsc, &(entry->rsc), gIter->data, rsc 687 daemons/controld/controld_execd.c if (pcmk__str_eq(event->rsc, op->rsc, pcmk__str_none)) { rsc 688 daemons/controld/controld_execd.c notify_deleted(event->lrm_state, op->input, event->rsc, event->rc); rsc 697 daemons/controld/controld_execd.c const char *rsc = user_data; rsc 700 daemons/controld/controld_execd.c if (pcmk__str_eq(rsc, pending->rsc_id, pcmk__str_none)) { rsc 702 daemons/controld/controld_execd.c pending->op_key, pending->call_id, rsc); rsc 740 daemons/controld/controld_execd.c event.rsc = rsc_id; rsc 853 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc; rsc 866 daemons/controld/controld_execd.c remove = !cancel_op(data->lrm_state, data->rsc->id, key, op->call_id, data->remove); rsc 872 daemons/controld/controld_execd.c cancel_op_key(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *key, gboolean remove) rsc 877 daemons/controld/controld_execd.c CRM_CHECK(rsc != NULL, return FALSE); rsc 881 daemons/controld/controld_execd.c data.rsc = rsc; rsc 967 daemons/controld/controld_execd.c delete_resource(lrm_state_t *lrm_state, const char *id, lrmd_rsc_info_t *rsc, rsc 976 daemons/controld/controld_execd.c if (rsc && unregister) { rsc 989 daemons/controld/controld_execd.c op->rsc = pcmk__str_copy(rsc->id); rsc 1072 daemons/controld/controld_execd.c delete_resource(lrm_state, entry->id, &entry->rsc, &gIter, from_sys, rsc 1165 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc = NULL; rsc 1197 daemons/controld/controld_execd.c if (get_lrm_resource(lrm_state, xml_rsc, TRUE, &rsc) == pcmk_ok) { rsc 1198 daemons/controld/controld_execd.c crm_info("Failing resource %s...", rsc->id); rsc 1203 daemons/controld/controld_execd.c lrmd_free_rsc_info(rsc); rsc 1239 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc, const char *from_host, const char *from_sys) rsc 1265 daemons/controld/controld_execd.c op_key = pcmk__op_key(rsc->id, op_task, interval_ms); rsc 1276 daemons/controld/controld_execd.c in_progress = cancel_op_key(lrm_state, rsc, op_key, TRUE); rsc 1280 daemons/controld/controld_execd.c in_progress = cancel_op(lrm_state, rsc->id, NULL, call, TRUE); rsc 1284 daemons/controld/controld_execd.c if (!in_progress || is_remote_lrmd_ra(NULL, NULL, rsc->id)) { rsc 1285 daemons/controld/controld_execd.c char *op_id = make_stop_id(rsc->id, call); rsc 1287 daemons/controld/controld_execd.c if (is_remote_lrmd_ra(NULL, NULL, rsc->id) == FALSE) { rsc 1290 daemons/controld/controld_execd.c controld_delete_action_history_by_key(rsc->id, lrm_state->node_name, rsc 1292 daemons/controld/controld_execd.c send_task_ok_ack(lrm_state, input, rsc->id, rsc, op_task, rsc 1308 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc, const char *from_sys, const char *from_host, rsc 1312 daemons/controld/controld_execd.c int cib_rc = controld_delete_resource_history(rsc->id, lrm_state->node_name, rsc 1319 daemons/controld/controld_execd.c op = construct_op(lrm_state, input->xml, rsc->id, PCMK_ACTION_DELETE); rsc 1325 daemons/controld/controld_execd.c controld_ack_event_directly(from_host, from_sys, NULL, op, rsc->id); rsc 1330 daemons/controld/controld_execd.c if (crm_rsc_delete && is_remote_lrmd_ra(NULL, NULL, rsc->id)) { rsc 1334 daemons/controld/controld_execd.c delete_resource(lrm_state, rsc->id, rsc, NULL, from_sys, rsc 1340 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc; // Copy of resource information rsc 1345 daemons/controld/controld_execd.c new_metadata_cb_data(lrmd_rsc_info_t *rsc, xmlNode *input_xml) rsc 1351 daemons/controld/controld_execd.c data->rsc = lrmd_copy_rsc_info(rsc); rsc 1358 daemons/controld/controld_execd.c lrmd_free_rsc_info(data->rsc); rsc 1381 daemons/controld/controld_execd.c md = controld_cache_metadata(lrm_state->metadata_cache, data->rsc, rsc 1385 daemons/controld/controld_execd.c do_lrm_rsc_op(lrm_state, data->rsc, data->input_xml, md); rsc 1462 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc = NULL; rsc 1472 daemons/controld/controld_execd.c rc = get_lrm_resource(lrm_state, xml_rsc, create_rsc, &rsc); rsc 1514 daemons/controld/controld_execd.c if (!do_lrm_cancel(input, lrm_state, rsc, from_host, from_sys)) { rsc 1520 daemons/controld/controld_execd.c do_lrm_delete(input, lrm_state, rsc, from_sys, from_host, rsc 1535 daemons/controld/controld_execd.c md = controld_get_rsc_metadata(lrm_state, rsc, rsc 1539 daemons/controld/controld_execd.c if ((md == NULL) && crm_op_needs_metadata(rsc->standard, rsc 1554 daemons/controld/controld_execd.c data = new_metadata_cb_data(rsc, input->xml); rsc 1556 daemons/controld/controld_execd.c rsc->id, rsc->standard, rsc 1557 daemons/controld/controld_execd.c ((rsc->provider == NULL)? "" : ":"), rsc 1558 daemons/controld/controld_execd.c ((rsc->provider == NULL)? "" : rsc->provider), rsc 1559 daemons/controld/controld_execd.c rsc->type); rsc 1560 daemons/controld/controld_execd.c (void) lrmd__metadata_async(rsc, metadata_complete, rsc 1563 daemons/controld/controld_execd.c do_lrm_rsc_op(lrm_state, rsc, input->xml, md); rsc 1567 daemons/controld/controld_execd.c lrmd_free_rsc_info(rsc); rsc 1715 daemons/controld/controld_execd.c const lrmd_rsc_info_t *rsc, lrmd_event_data_t *op, rsc 1743 daemons/controld/controld_execd.c controld_add_resource_history_xml(iter, rsc, op, rsc 1791 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc; rsc 1803 daemons/controld/controld_execd.c && pcmk__str_eq(op->rsc_id, event->rsc->id, pcmk__str_none)) { rsc 1806 daemons/controld/controld_execd.c remove = !cancel_op(event->lrm_state, event->rsc->id, key, op->call_id, FALSE); rsc 1890 daemons/controld/controld_execd.c do_lrm_rsc_op(lrm_state_t *lrm_state, lrmd_rsc_info_t *rsc, xmlNode *msg, rsc 1902 daemons/controld/controld_execd.c CRM_CHECK((rsc != NULL) && (msg != NULL), return); rsc 1916 daemons/controld/controld_execd.c operation, rsc->id, pcmk__s(transition, "")); rsc 1938 daemons/controld/controld_execd.c op = construct_op(lrm_state, msg, rsc->id, operation); rsc 1941 daemons/controld/controld_execd.c if (should_cancel_recurring(rsc->id, operation, op->interval_ms)) { rsc 1945 daemons/controld/controld_execd.c data.rsc = rsc; rsc 1954 daemons/controld/controld_execd.c rsc->id, operation, op->interval_ms); rsc 1962 daemons/controld/controld_execd.c pcmk__readable_action(op->op_type, op->interval_ms), rsc->id, rsc 1968 daemons/controld/controld_execd.c controld_ack_event_directly(NULL, NULL, rsc, op, rsc->id); rsc 1976 daemons/controld/controld_execd.c pcmk__readable_action(op->op_type, op->interval_ms), rsc->id, rsc 1979 daemons/controld/controld_execd.c controld_record_pending_op(lrm_state->node_name, rsc, op); rsc 1981 daemons/controld/controld_execd.c op_id = pcmk__op_key(rsc->id, op->op_type, op->interval_ms); rsc 1985 daemons/controld/controld_execd.c cancel_op_key(lrm_state, rsc, op_id, FALSE); rsc 1988 daemons/controld/controld_execd.c rc = controld_execute_resource_agent(lrm_state, rsc->id, op->op_type, rsc 1996 daemons/controld/controld_execd.c char *call_id_s = make_stop_id(rsc->id, call_id); rsc 2006 daemons/controld/controld_execd.c pending->rsc_id = pcmk__str_copy(rsc->id); rsc 2022 daemons/controld/controld_execd.c controld_ack_event_directly(NULL, NULL, rsc, op, rsc->id); rsc 2030 daemons/controld/controld_execd.c QB_XS " rc=%d", operation, rsc->id, pcmk_rc_str(rc), rc); rsc 2039 daemons/controld/controld_execd.c operation, rsc->id, lrm_state->node_name, pcmk_rc_str(rc), rc); rsc 2186 daemons/controld/controld_execd.c lrmd_rsc_info_t *rsc = NULL; rsc 2213 daemons/controld/controld_execd.c rsc = lrm_state_get_rsc_info(lrm_state, op->rsc_id, 0); rsc 2215 daemons/controld/controld_execd.c if ((rsc == NULL) && action_xml) { rsc 2227 daemons/controld/controld_execd.c rsc = lrmd_new_rsc_info(op->rsc_id, standard, provider, type); rsc 2271 daemons/controld/controld_execd.c if (node_name && rsc) { rsc 2275 daemons/controld/controld_execd.c controld_update_resource_history(node_name, rsc, op, lock_time); rsc 2379 daemons/controld/controld_execd.c } else if (rsc && (op->rc == PCMK_OCF_OK)) { rsc 2382 daemons/controld/controld_execd.c controld_cache_metadata(lrm_state->metadata_cache, rsc, metadata); rsc 2399 daemons/controld/controld_execd.c if (lrm_state && rsc) { rsc 2400 daemons/controld/controld_execd.c update_history_cache(lrm_state, rsc, op); rsc 2403 daemons/controld/controld_execd.c lrmd_free_rsc_info(rsc); rsc 40 daemons/controld/controld_execd_state.c free(op->rsc); rsc 695 daemons/controld/controld_execd_state.c lrmd_rsc_info_t *rsc = NULL; rsc 704 daemons/controld/controld_execd_state.c rsc = g_hash_table_lookup(lrm_state->rsc_info_cache, rsc_id); rsc 705 daemons/controld/controld_execd_state.c if (rsc == NULL) { rsc 707 daemons/controld/controld_execd_state.c rsc = ((lrmd_t *) lrm_state->conn)->cmds->get_rsc_info(lrm_state->conn, rsc_id, options); rsc 708 daemons/controld/controld_execd_state.c if (rsc == NULL) { rsc 712 daemons/controld/controld_execd_state.c g_hash_table_insert(lrm_state->rsc_info_cache, rsc->id, rsc); rsc 715 daemons/controld/controld_execd_state.c return lrmd_copy_rsc_info(rsc); rsc 23 daemons/controld/controld_lrm.h lrmd_rsc_info_t rsc; rsc 83 daemons/controld/controld_lrm.h char *rsc; rsc 170 daemons/controld/controld_lrm.h const lrmd_rsc_info_t *rsc, rsc 639 daemons/controld/controld_messages.c const char *rsc = NULL; rsc 657 daemons/controld/controld_messages.c rsc = pcmk__xe_id(xml_rsc); rsc 669 daemons/controld/controld_messages.c if ((rsc == NULL) || (uname == NULL)) { rsc 680 daemons/controld/controld_messages.c pcmk__readable_interval(interval_ms), rsc, uname); rsc 685 daemons/controld/controld_messages.c update_attrd_clear_failures(uname, rsc, op, interval_spec, is_remote_node); rsc 688 daemons/controld/controld_messages.c controld_cib_delete_last_failure(rsc, uname, op, interval_ms); rsc 690 daemons/controld/controld_messages.c lrm_clear_last_failure(rsc, uname, op, interval_ms); rsc 116 daemons/controld/controld_metadata.c controld_cache_metadata(GHashTable *mdc, const lrmd_rsc_info_t *rsc, rsc 127 daemons/controld/controld_metadata.c CRM_CHECK(mdc && rsc && metadata_str, return NULL); rsc 129 daemons/controld/controld_metadata.c key = crm_generate_ra_key(rsc->standard, rsc->provider, rsc->type); rsc 143 daemons/controld/controld_metadata.c if (strcmp(rsc->standard, PCMK_RESOURCE_CLASS_OCF) == 0) { rsc 190 daemons/controld/controld_metadata.c PCMK_XA_NAME, rsc->standard, rsc->provider, rsc->type); rsc 227 daemons/controld/controld_metadata.c rsc->id, rsc->standard, ((rsc->provider == NULL)? "" : ":"), rsc 228 daemons/controld/controld_metadata.c pcmk__s(rsc->provider, ""), rsc->type, reason); rsc 247 daemons/controld/controld_metadata.c controld_get_rsc_metadata(lrm_state_t *lrm_state, const lrmd_rsc_info_t *rsc, rsc 255 daemons/controld/controld_metadata.c CRM_CHECK((lrm_state != NULL) && (rsc != NULL), return NULL); rsc 258 daemons/controld/controld_metadata.c key = crm_generate_ra_key(rsc->standard, rsc->provider, rsc->type); rsc 265 daemons/controld/controld_metadata.c rsc->id, rsc->standard, rsc 266 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : ":"), rsc 267 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : rsc->provider), rsc 268 daemons/controld/controld_metadata.c rsc->type); rsc 292 daemons/controld/controld_metadata.c rsc->id, rsc->standard, rsc 293 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : ":"), rsc 294 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : rsc->provider), rsc 295 daemons/controld/controld_metadata.c rsc->type); rsc 296 daemons/controld/controld_metadata.c rc = lrm_state_get_metadata(lrm_state, rsc->standard, rsc->provider, rsc 297 daemons/controld/controld_metadata.c rsc->type, &metadata_str, 0); rsc 300 daemons/controld/controld_metadata.c rsc->id, rsc->standard, rsc 301 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : ":"), rsc 302 daemons/controld/controld_metadata.c ((rsc->provider == NULL)? "" : rsc->provider), rsc 303 daemons/controld/controld_metadata.c rsc->type, pcmk_strerror(rc)); rsc 307 daemons/controld/controld_metadata.c metadata = controld_cache_metadata(lrm_state->metadata_cache, rsc, rsc 75 daemons/controld/controld_metadata.h const lrmd_rsc_info_t *rsc, rsc 78 daemons/controld/controld_metadata.h const lrmd_rsc_info_t *rsc, rsc 257 daemons/controld/controld_te_actions.c xmlNode *rsc = NULL; rsc 295 daemons/controld/controld_te_actions.c rsc = pcmk__xe_create(state, PCMK__XE_LRM); rsc 296 daemons/controld/controld_te_actions.c crm_xml_add(rsc, PCMK_XA_ID, target_uuid); rsc 298 daemons/controld/controld_te_actions.c rsc = pcmk__xe_create(rsc, PCMK__XE_LRM_RESOURCES); rsc 299 daemons/controld/controld_te_actions.c rsc = pcmk__xe_create(rsc, PCMK__XE_LRM_RESOURCE); rsc 300 daemons/controld/controld_te_actions.c crm_xml_add(rsc, PCMK_XA_ID, rsc_id); rsc 303 daemons/controld/controld_te_actions.c crm_copy_xml_element(action_rsc, rsc, PCMK_XA_TYPE); rsc 304 daemons/controld/controld_te_actions.c crm_copy_xml_element(action_rsc, rsc, PCMK_XA_CLASS); rsc 305 daemons/controld/controld_te_actions.c crm_copy_xml_element(action_rsc, rsc, PCMK_XA_PROVIDER); rsc 307 daemons/controld/controld_te_actions.c pcmk__create_history_xml(rsc, op, CRM_FEATURE_SET, target_rc, target, rsc 51 daemons/controld/controld_te_callbacks.c xmlNode *rsc = NULL; rsc 85 daemons/controld/controld_te_callbacks.c for (rsc = pcmk__xe_first_child(xml, NULL, NULL, NULL); rsc != NULL; rsc 86 daemons/controld/controld_te_callbacks.c rsc = pcmk__xe_next(rsc, NULL)) { rsc 87 daemons/controld/controld_te_callbacks.c crm_trace("Processing %s", pcmk__xe_id(rsc)); rsc 88 daemons/controld/controld_te_callbacks.c process_lrm_resource_diff(rsc, node); rsc 73 daemons/controld/controld_utils.h void update_attrd_clear_failures(const char *host, const char *rsc, rsc 448 daemons/execd/cts-exec-helper.c pcmk_resource_t *rsc = NULL; rsc 481 daemons/execd/cts-exec-helper.c rsc = pe_find_resource_with_flags(scheduler->priv->resources, rsc 485 daemons/execd/cts-exec-helper.c if (rsc == NULL) { rsc 492 daemons/execd/cts-exec-helper.c params = pe_rsc_params(rsc, NULL, scheduler); rsc 503 daemons/execd/cts-exec-helper.c get_meta_attributes(meta, rsc, NULL, scheduler); rsc 101 daemons/execd/execd_commands.c static void cmd_finalize(lrmd_cmd_t * cmd, lrmd_rsc_t * rsc); rsc 103 daemons/execd/execd_commands.c static void cancel_all_recurring(lrmd_rsc_t * rsc, const char *client_id); rsc 272 daemons/execd/execd_commands.c normalize_action_name(lrmd_rsc_t * rsc, const char *action) rsc 275 daemons/execd/execd_commands.c pcmk_is_set(pcmk_get_ra_caps(rsc->class), pcmk_ra_cap_status)) { rsc 286 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 288 daemons/execd/execd_commands.c rsc = pcmk__assert_alloc(1, sizeof(lrmd_rsc_t)); rsc 290 daemons/execd/execd_commands.c crm_element_value_int(msg, PCMK__XA_LRMD_CALLOPT, &rsc->call_opts); rsc 292 daemons/execd/execd_commands.c rsc->rsc_id = crm_element_value_copy(rsc_xml, PCMK__XA_LRMD_RSC_ID); rsc 293 daemons/execd/execd_commands.c rsc->class = crm_element_value_copy(rsc_xml, PCMK__XA_LRMD_CLASS); rsc 294 daemons/execd/execd_commands.c rsc->provider = crm_element_value_copy(rsc_xml, PCMK__XA_LRMD_PROVIDER); rsc 295 daemons/execd/execd_commands.c rsc->type = crm_element_value_copy(rsc_xml, PCMK__XA_LRMD_TYPE); rsc 296 daemons/execd/execd_commands.c rsc->work = mainloop_add_trigger(G_PRIORITY_HIGH, execute_resource_action, rsc 297 daemons/execd/execd_commands.c rsc); rsc 300 daemons/execd/execd_commands.c pcmk__set_result(&rsc->fence_probe_result, CRM_EX_ERROR, rsc 302 daemons/execd/execd_commands.c return rsc; rsc 384 daemons/execd/execd_commands.c lrmd_rsc_t *rsc; rsc 392 daemons/execd/execd_commands.c rsc = g_hash_table_lookup(rsc_list, cmd->rsc_id); rsc 394 daemons/execd/execd_commands.c pcmk__assert(rsc != NULL); rsc 397 daemons/execd/execd_commands.c rsc->recurring_ops = g_list_remove(rsc->recurring_ops, cmd); rsc 398 daemons/execd/execd_commands.c rsc->pending_ops = g_list_append(rsc->pending_ops, cmd); rsc 402 daemons/execd/execd_commands.c mainloop_set_trigger(rsc->work); rsc 423 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 426 daemons/execd/execd_commands.c rsc = cmd->rsc_id ? g_hash_table_lookup(rsc_list, cmd->rsc_id) : NULL; rsc 428 daemons/execd/execd_commands.c if (rsc) { rsc 429 daemons/execd/execd_commands.c mainloop_set_trigger(rsc->work); rsc 456 daemons/execd/execd_commands.c merge_recurring_duplicate(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 466 daemons/execd/execd_commands.c dup = find_duplicate_action(rsc->pending_ops, cmd); rsc 469 daemons/execd/execd_commands.c dup = find_duplicate_action(rsc->recurring_ops, cmd); rsc 478 daemons/execd/execd_commands.c if (pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, rsc 489 daemons/execd/execd_commands.c rsc->rsc_id, normalize_action_name(rsc, dup->action), rsc 506 daemons/execd/execd_commands.c if (pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, rsc 511 daemons/execd/execd_commands.c services_action_kick(rsc->rsc_id, rsc 512 daemons/execd/execd_commands.c normalize_action_name(rsc, dup->action), rsc 520 daemons/execd/execd_commands.c schedule_lrmd_cmd(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 523 daemons/execd/execd_commands.c CRM_CHECK(rsc != NULL, return); rsc 525 daemons/execd/execd_commands.c crm_trace("Scheduling %s on %s", cmd->action, rsc->rsc_id); rsc 527 daemons/execd/execd_commands.c if (merge_recurring_duplicate(rsc, cmd)) { rsc 536 daemons/execd/execd_commands.c cancel_all_recurring(rsc, NULL); rsc 539 daemons/execd/execd_commands.c rsc->pending_ops = g_list_append(rsc->pending_ops, cmd); rsc 543 daemons/execd/execd_commands.c mainloop_set_trigger(rsc->work); rsc 741 daemons/execd/execd_commands.c cmd_finalize(lrmd_cmd_t * cmd, lrmd_rsc_t * rsc) rsc 744 daemons/execd/execd_commands.c rsc ? rsc->active : NULL, cmd); rsc 746 daemons/execd/execd_commands.c if (rsc && (rsc->active == cmd)) { rsc 747 daemons/execd/execd_commands.c rsc->active = NULL; rsc 748 daemons/execd/execd_commands.c mainloop_set_trigger(rsc->work); rsc 751 daemons/execd/execd_commands.c if (!rsc) { rsc 763 daemons/execd/execd_commands.c if (rsc) { rsc 764 daemons/execd/execd_commands.c rsc->recurring_ops = g_list_remove(rsc->recurring_ops, cmd); rsc 765 daemons/execd/execd_commands.c rsc->pending_ops = g_list_remove(rsc->pending_ops, cmd); rsc 769 daemons/execd/execd_commands.c if (rsc) { rsc 770 daemons/execd/execd_commands.c rsc->pending_ops = g_list_remove(rsc->pending_ops, cmd); rsc 812 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 816 daemons/execd/execd_commands.c while (g_hash_table_iter_next(&iter, (gpointer *) & key, (gpointer *) & rsc)) { rsc 817 daemons/execd/execd_commands.c if (pcmk_all_flags_set(rsc->call_opts, lrmd_opt_drop_recurring)) { rsc 820 daemons/execd/execd_commands.c cancel_all_recurring(rsc, client_id); rsc 828 daemons/execd/execd_commands.c lrmd_rsc_t *rsc; rsc 859 daemons/execd/execd_commands.c rsc = cmd->rsc_id ? g_hash_table_lookup(rsc_list, cmd->rsc_id) : NULL; rsc 862 daemons/execd/execd_commands.c if (rsc != NULL) { rsc 863 daemons/execd/execd_commands.c rclass = rsc->class; rsc 867 daemons/execd/execd_commands.c rclass = resources_find_service_class(rsc->type); rsc 992 daemons/execd/execd_commands.c if (rsc) { rsc 993 daemons/execd/execd_commands.c rsc->active = NULL; rsc 995 daemons/execd/execd_commands.c schedule_lrmd_cmd(rsc, cmd); rsc 1016 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1034 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = g_hash_table_lookup(rsc_list, cmd->rsc_id); rsc 1088 daemons/execd/execd_commands.c if ((rsc != NULL) && pcmk__result_ok(&(cmd->result))) { rsc 1091 daemons/execd/execd_commands.c pcmk__set_result(&rsc->fence_probe_result, CRM_EX_OK, rsc 1096 daemons/execd/execd_commands.c pcmk__set_result(&rsc->fence_probe_result, CRM_EX_ERROR, rsc 1110 daemons/execd/execd_commands.c if (rsc && (cmd->interval_ms > 0) rsc 1115 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1136 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 1142 daemons/execd/execd_commands.c while (g_hash_table_iter_next(&iter, NULL, (gpointer *) &rsc)) { rsc 1143 daemons/execd/execd_commands.c if (!pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, rsc 1155 daemons/execd/execd_commands.c if (rsc->fence_probe_result.execution_status == PCMK_EXEC_DONE) { rsc 1156 daemons/execd/execd_commands.c pcmk__set_result(&rsc->fence_probe_result, CRM_EX_ERROR, rsc 1163 daemons/execd/execd_commands.c for (GList *op = rsc->recurring_ops; op != NULL; op = op->next) { rsc 1175 daemons/execd/execd_commands.c if (rsc->active != NULL) { rsc 1176 daemons/execd/execd_commands.c rsc->pending_ops = g_list_prepend(rsc->pending_ops, rsc->active); rsc 1178 daemons/execd/execd_commands.c while (rsc->pending_ops != NULL) { rsc 1180 daemons/execd/execd_commands.c stonith_action_complete((lrmd_cmd_t *) rsc->pending_ops->data, rsc 1201 daemons/execd/execd_commands.c execd_stonith_start(stonith_t *stonith_api, const lrmd_rsc_t *rsc, rsc 1226 daemons/execd/execd_commands.c cmd->rsc_id, rsc->provider, rsc 1227 daemons/execd/execd_commands.c rsc->type, device_params); rsc 1246 daemons/execd/execd_commands.c execd_stonith_stop(stonith_t *stonith_api, const lrmd_rsc_t *rsc) rsc 1252 daemons/execd/execd_commands.c rsc->rsc_id); rsc 1266 daemons/execd/execd_commands.c execd_stonith_monitor(stonith_t *stonith_api, lrmd_rsc_t *rsc, lrmd_cmd_t *cmd) rsc 1275 daemons/execd/execd_commands.c rsc->active = cmd; rsc 1284 daemons/execd/execd_commands.c execute_stonith_action(lrmd_rsc_t *rsc, lrmd_cmd_t *cmd) rsc 1296 daemons/execd/execd_commands.c stonith_action_complete(cmd, rsc->fence_probe_result.exit_status, rsc 1297 daemons/execd/execd_commands.c rsc->fence_probe_result.execution_status, rsc 1298 daemons/execd/execd_commands.c rsc->fence_probe_result.exit_reason); rsc 1310 daemons/execd/execd_commands.c rc = execd_stonith_start(stonith_api, rsc, cmd); rsc 1316 daemons/execd/execd_commands.c rc = execd_stonith_stop(stonith_api, rsc); rsc 1330 daemons/execd/execd_commands.c rc = execd_stonith_monitor(stonith_api, rsc, cmd); rsc 1346 daemons/execd/execd_commands.c execute_nonstonith_action(lrmd_rsc_t *rsc, lrmd_cmd_t *cmd) rsc 1351 daemons/execd/execd_commands.c pcmk__assert((rsc != NULL) && (cmd != NULL)); rsc 1354 daemons/execd/execd_commands.c rsc->rsc_id, cmd->action, rsc->class, rsc->provider, rsc->type); rsc 1358 daemons/execd/execd_commands.c action = services__create_resource_action(rsc->rsc_id, rsc->class, rsc->provider, rsc 1359 daemons/execd/execd_commands.c rsc->type, rsc 1360 daemons/execd/execd_commands.c normalize_action_name(rsc, cmd->action), rsc 1367 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1374 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1405 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = (lrmd_rsc_t *) user_data; rsc 1408 daemons/execd/execd_commands.c CRM_CHECK(rsc != NULL, return FALSE); rsc 1410 daemons/execd/execd_commands.c if (rsc->active) { rsc 1411 daemons/execd/execd_commands.c crm_trace("%s is still active", rsc->rsc_id); rsc 1415 daemons/execd/execd_commands.c if (rsc->pending_ops) { rsc 1416 daemons/execd/execd_commands.c GList *first = rsc->pending_ops; rsc 1425 daemons/execd/execd_commands.c rsc->pending_ops = g_list_remove_link(rsc->pending_ops, first); rsc 1435 daemons/execd/execd_commands.c crm_trace("Nothing further to do for %s", rsc->rsc_id); rsc 1439 daemons/execd/execd_commands.c rsc->active = cmd; /* only one op at a time for a rsc */ rsc 1441 daemons/execd/execd_commands.c rsc->recurring_ops = g_list_append(rsc->recurring_ops, cmd); rsc 1446 daemons/execd/execd_commands.c if (pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, pcmk__str_casei)) { rsc 1447 daemons/execd/execd_commands.c execute_stonith_action(rsc, cmd); rsc 1449 daemons/execd/execd_commands.c execute_nonstonith_action(rsc, cmd); rsc 1459 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = data; rsc 1460 daemons/execd/execd_commands.c int is_stonith = pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, rsc 1463 daemons/execd/execd_commands.c gIter = rsc->pending_ops; rsc 1475 daemons/execd/execd_commands.c g_list_free(rsc->pending_ops); rsc 1477 daemons/execd/execd_commands.c gIter = rsc->recurring_ops; rsc 1488 daemons/execd/execd_commands.c if (rsc->active != cmd) { rsc 1496 daemons/execd/execd_commands.c services_action_cancel(rsc->rsc_id, rsc 1497 daemons/execd/execd_commands.c normalize_action_name(rsc, cmd->action), rsc 1504 daemons/execd/execd_commands.c g_list_free(rsc->recurring_ops); rsc 1506 daemons/execd/execd_commands.c free(rsc->rsc_id); rsc 1507 daemons/execd/execd_commands.c free(rsc->class); rsc 1508 daemons/execd/execd_commands.c free(rsc->provider); rsc 1509 daemons/execd/execd_commands.c free(rsc->type); rsc 1510 daemons/execd/execd_commands.c mainloop_destroy_trigger(rsc->work); rsc 1512 daemons/execd/execd_commands.c free(rsc); rsc 1582 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = build_rsc_from_xml(request); rsc 1583 daemons/execd/execd_commands.c lrmd_rsc_t *dup = g_hash_table_lookup(rsc_list, rsc->rsc_id); rsc 1586 daemons/execd/execd_commands.c pcmk__str_eq(rsc->class, dup->class, pcmk__str_casei) && rsc 1587 daemons/execd/execd_commands.c pcmk__str_eq(rsc->provider, dup->provider, pcmk__str_casei) && pcmk__str_eq(rsc->type, dup->type, pcmk__str_casei)) { rsc 1589 daemons/execd/execd_commands.c crm_notice("Ignoring duplicate registration of '%s'", rsc->rsc_id); rsc 1590 daemons/execd/execd_commands.c free_rsc(rsc); rsc 1594 daemons/execd/execd_commands.c g_hash_table_replace(rsc_list, rsc->rsc_id, rsc); rsc 1595 daemons/execd/execd_commands.c crm_info("Cached agent information for '%s'", rsc->rsc_id); rsc 1608 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 1613 daemons/execd/execd_commands.c rsc = g_hash_table_lookup(rsc_list, rsc_id); rsc 1614 daemons/execd/execd_commands.c if (rsc == NULL) { rsc 1621 daemons/execd/execd_commands.c if (rsc) { rsc 1622 daemons/execd/execd_commands.c crm_xml_add(reply, PCMK__XA_LRMD_RSC_ID, rsc->rsc_id); rsc 1623 daemons/execd/execd_commands.c crm_xml_add(reply, PCMK__XA_LRMD_CLASS, rsc->class); rsc 1624 daemons/execd/execd_commands.c crm_xml_add(reply, PCMK__XA_LRMD_PROVIDER, rsc->provider); rsc 1625 daemons/execd/execd_commands.c crm_xml_add(reply, PCMK__XA_LRMD_TYPE, rsc->type); rsc 1635 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 1645 daemons/execd/execd_commands.c rsc = g_hash_table_lookup(rsc_list, rsc_id); rsc 1646 daemons/execd/execd_commands.c if (rsc == NULL) { rsc 1652 daemons/execd/execd_commands.c if (rsc->active) { rsc 1655 daemons/execd/execd_commands.c rsc->active, rsc_id); rsc 1667 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 1678 daemons/execd/execd_commands.c if (!(rsc = g_hash_table_lookup(rsc_list, rsc_id))) { rsc 1689 daemons/execd/execd_commands.c schedule_lrmd_cmd(rsc, cmd); rsc 1698 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = g_hash_table_lookup(rsc_list, rsc_id); rsc 1711 daemons/execd/execd_commands.c if (!rsc) { rsc 1715 daemons/execd/execd_commands.c for (gIter = rsc->pending_ops; gIter != NULL; gIter = gIter->next) { rsc 1720 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1725 daemons/execd/execd_commands.c if (pcmk__str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH, pcmk__str_casei)) { rsc 1728 daemons/execd/execd_commands.c for (gIter = rsc->recurring_ops; gIter != NULL; gIter = gIter->next) { rsc 1733 daemons/execd/execd_commands.c if (rsc->active != cmd) { rsc 1734 daemons/execd/execd_commands.c cmd_finalize(cmd, rsc); rsc 1740 daemons/execd/execd_commands.c normalize_action_name(rsc, action), rsc 1753 daemons/execd/execd_commands.c cancel_all_recurring(lrmd_rsc_t * rsc, const char *client_id) rsc 1764 daemons/execd/execd_commands.c if (rsc->recurring_ops) { rsc 1765 daemons/execd/execd_commands.c cmd_list = g_list_concat(cmd_list, g_list_copy(rsc->recurring_ops)); rsc 1767 daemons/execd/execd_commands.c if (rsc->pending_ops) { rsc 1768 daemons/execd/execd_commands.c cmd_list = g_list_concat(cmd_list, g_list_copy(rsc->pending_ops)); rsc 1785 daemons/execd/execd_commands.c cancel_op(rsc->rsc_id, cmd->action, cmd->interval_ms); rsc 1811 daemons/execd/execd_commands.c add_recurring_op_xml(xmlNode *reply, lrmd_rsc_t *rsc) rsc 1815 daemons/execd/execd_commands.c crm_xml_add(rsc_xml, PCMK__XA_LRMD_RSC_ID, rsc->rsc_id); rsc 1816 daemons/execd/execd_commands.c for (GList *item = rsc->recurring_ops; item != NULL; item = item->next) { rsc 1832 daemons/execd/execd_commands.c lrmd_rsc_t *rsc = NULL; rsc 1847 daemons/execd/execd_commands.c rsc = g_hash_table_lookup(rsc_list, rsc_id); rsc 1848 daemons/execd/execd_commands.c if (rsc == NULL) { rsc 1864 daemons/execd/execd_commands.c (gpointer *) &rsc)) { rsc 1865 daemons/execd/execd_commands.c add_recurring_op_xml(reply, rsc); rsc 1867 daemons/execd/execd_commands.c } else if (rsc) { rsc 1868 daemons/execd/execd_commands.c add_recurring_op_xml(reply, rsc); rsc 113 daemons/fenced/fenced_scheduler.c local_node_allowed_for(const pcmk_resource_t *rsc) rsc 115 daemons/fenced/fenced_scheduler.c if ((rsc != NULL) && (scheduler->priv->local_node_name != NULL)) { rsc 119 daemons/fenced/fenced_scheduler.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 141 daemons/fenced/fenced_scheduler.c pcmk_resource_t *rsc = data; rsc 142 daemons/fenced/fenced_scheduler.c const char *rsc_id = pcmk__s(rsc->priv->history_id, rsc->id); rsc 154 daemons/fenced/fenced_scheduler.c if (rsc->priv->children != NULL) { rsc 156 daemons/fenced/fenced_scheduler.c for (GList *iter = rsc->priv->children; rsc 160 daemons/fenced/fenced_scheduler.c if (pcmk__is_clone(rsc)) { rsc 167 daemons/fenced/fenced_scheduler.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 171 daemons/fenced/fenced_scheduler.c if (pe__resource_is_disabled(rsc)) { rsc 172 daemons/fenced/fenced_scheduler.c crm_info("Ignoring fencing device %s because it is disabled", rsc->id); rsc 177 daemons/fenced/fenced_scheduler.c pcmk__str_eq(rsc->id, STONITH_WATCHDOG_ID, pcmk__str_none)) { rsc 179 daemons/fenced/fenced_scheduler.c "because watchdog fencing is disabled", rsc->id); rsc 184 daemons/fenced/fenced_scheduler.c node = local_node_allowed_for(rsc); rsc 187 daemons/fenced/fenced_scheduler.c "because local node is not allowed to run it", rsc->id); rsc 193 daemons/fenced/fenced_scheduler.c rsc->id, pcmk_readable_score(node->assign->score)); rsc 198 daemons/fenced/fenced_scheduler.c if (pcmk__is_group(rsc->priv->parent)) { rsc 199 daemons/fenced/fenced_scheduler.c pcmk_node_t *group_node = local_node_allowed_for(rsc->priv->parent); rsc 204 daemons/fenced/fenced_scheduler.c rsc->id, pcmk_readable_score(group_node->assign->score)); rsc 209 daemons/fenced/fenced_scheduler.c crm_debug("Reloading configuration of fencing device %s", rsc->id); rsc 211 daemons/fenced/fenced_scheduler.c agent = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 213 daemons/fenced/fenced_scheduler.c get_meta_attributes(rsc->priv->meta, rsc, NULL, scheduler); rsc 214 daemons/fenced/fenced_scheduler.c rsc_provides = g_hash_table_lookup(rsc->priv->meta, rsc 217 daemons/fenced/fenced_scheduler.c g_hash_table_iter_init(&hash_iter, pe_rsc_params(rsc, node, scheduler)); rsc 205 include/crm/common/actions_internal.h pcmk_resource_t *rsc; // Resource to apply action to, if any rsc 47 include/crm/common/bundles_internal.h pcmk__is_bundle(const pcmk_resource_t *rsc) rsc 49 include/crm/common/bundles_internal.h return (rsc != NULL) && (rsc->priv->variant == pcmk__rsc_variant_bundle); rsc 61 include/crm/common/bundles_internal.h pcmk__is_bundled(const pcmk_resource_t *rsc) rsc 63 include/crm/common/bundles_internal.h if (rsc == NULL) { rsc 66 include/crm/common/bundles_internal.h while (rsc->priv->parent != NULL) { rsc 67 include/crm/common/bundles_internal.h rsc = rsc->priv->parent; rsc 69 include/crm/common/bundles_internal.h return rsc->priv->variant == pcmk__rsc_variant_bundle; rsc 47 include/crm/common/clone_internal.h pcmk__is_clone(const pcmk_resource_t *rsc) rsc 49 include/crm/common/clone_internal.h return (rsc != NULL) && (rsc->priv->variant == pcmk__rsc_variant_clone); rsc 61 include/crm/common/clone_internal.h pcmk__is_unique_clone(const pcmk_resource_t *rsc) rsc 63 include/crm/common/clone_internal.h return pcmk__is_clone(rsc) && pcmk_is_set(rsc->flags, pcmk__rsc_unique); rsc 75 include/crm/common/clone_internal.h pcmk__is_anonymous_clone(const pcmk_resource_t *rsc) rsc 77 include/crm/common/clone_internal.h return pcmk__is_clone(rsc) && !pcmk_is_set(rsc->flags, pcmk__rsc_unique); rsc 39 include/crm/common/group_internal.h pcmk__is_group(const pcmk_resource_t *rsc) rsc 41 include/crm/common/group_internal.h return (rsc != NULL) && (rsc->priv->variant == pcmk__rsc_variant_group); rsc 26 include/crm/common/location_internal.h pcmk_resource_t *rsc; // Resource with location preference rsc 31 include/crm/common/primitive_internal.h pcmk__is_primitive(const pcmk_resource_t *rsc) rsc 33 include/crm/common/primitive_internal.h if (rsc == NULL) { rsc 36 include/crm/common/primitive_internal.h return rsc->priv->variant == pcmk__rsc_variant_primitive; rsc 73 include/crm/common/resources.h const char *pcmk_resource_id(const pcmk_resource_t *rsc); rsc 74 include/crm/common/resources.h bool pcmk_resource_is_managed(const pcmk_resource_t *rsc); rsc 190 include/crm/common/resources_internal.h bool (*unpack)(pcmk_resource_t *rsc); rsc 203 include/crm/common/resources_internal.h pcmk_resource_t *(*find_rsc)(pcmk_resource_t *rsc, const char *search, rsc 215 include/crm/common/resources_internal.h bool (*active)(const pcmk_resource_t *rsc, bool all); rsc 227 include/crm/common/resources_internal.h enum rsc_role_e (*state)(const pcmk_resource_t *rsc, bool current); rsc 240 include/crm/common/resources_internal.h pcmk_node_t *(*location)(const pcmk_resource_t *rsc, GList **list, rsc 249 include/crm/common/resources_internal.h void (*free)(pcmk_resource_t *rsc); rsc 260 include/crm/common/resources_internal.h void (*count)(pcmk_resource_t *rsc); rsc 273 include/crm/common/resources_internal.h bool (*is_filtered)(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 289 include/crm/common/resources_internal.h pcmk_node_t *(*active_node)(const pcmk_resource_t *rsc, rsc 301 include/crm/common/resources_internal.h unsigned int (*max_per_node)(const pcmk_resource_t *rsc); rsc 431 include/crm/common/resources_internal.h const char *pcmk__multiply_active_text(const pcmk_resource_t *rsc); rsc 442 include/crm/common/resources_internal.h pcmk__current_node(const pcmk_resource_t *rsc) rsc 444 include/crm/common/resources_internal.h if (rsc == NULL) { rsc 447 include/crm/common/resources_internal.h return rsc->priv->fns->active_node(rsc, NULL, NULL); rsc 215 include/crm/common/scheduler_internal.h #define pcmk__rsc_info(rsc, fmt, args...) \ rsc 216 include/crm/common/scheduler_internal.h crm_log_tag(LOG_INFO, ((rsc) == NULL)? "<NULL>" : (rsc)->id, (fmt), ##args) rsc 225 include/crm/common/scheduler_internal.h #define pcmk__rsc_debug(rsc, fmt, args...) \ rsc 226 include/crm/common/scheduler_internal.h crm_log_tag(LOG_DEBUG, ((rsc) == NULL)? "<NULL>" : (rsc)->id, (fmt), ##args) rsc 235 include/crm/common/scheduler_internal.h #define pcmk__rsc_trace(rsc, fmt, args...) \ rsc 236 include/crm/common/scheduler_internal.h crm_log_tag(LOG_TRACE, ((rsc) == NULL)? "<NULL>" : (rsc)->id, (fmt), ##args) rsc 295 include/crm/common/scheduler_internal.h void pcmk__add_param_check(const xmlNode *rsc_op, pcmk_resource_t *rsc, rsc 43 include/crm/lrmd_internal.h int lrmd__metadata_async(const lrmd_rsc_info_t *rsc, rsc 21 include/crm/pengine/complex.h GHashTable *pe_rsc_params(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 23 include/crm/pengine/complex.h void get_meta_attributes(GHashTable * meta_hash, pcmk_resource_t *rsc, rsc 25 include/crm/pengine/complex.h void get_rsc_attributes(GHashTable *meta_hash, const pcmk_resource_t *rsc, rsc 28 include/crm/pengine/complex.h gboolean is_parent(pcmk_resource_t *child, pcmk_resource_t *rsc); rsc 29 include/crm/pengine/complex.h pcmk_resource_t *uber_parent(pcmk_resource_t *rsc); rsc 28 include/crm/pengine/internal.h const char *pe__resource_description(const pcmk_resource_t *rsc, rsc 38 include/crm/pengine/internal.h const pcmk_resource_t *pe__const_top_resource(const pcmk_resource_t *rsc, rsc 53 include/crm/pengine/internal.h pcmk_action_t *pe__new_rsc_pseudo_action(pcmk_resource_t *rsc, const char *task, rsc 61 include/crm/pengine/internal.h pcmk_node_t *native_location(const pcmk_resource_t *rsc, GList **list, rsc 63 include/crm/pengine/internal.h void native_add_running(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 66 include/crm/pengine/internal.h bool native_unpack(pcmk_resource_t *rsc); rsc 67 include/crm/pengine/internal.h bool group_unpack(pcmk_resource_t *rsc); rsc 68 include/crm/pengine/internal.h bool clone_unpack(pcmk_resource_t *rsc); rsc 69 include/crm/pengine/internal.h bool pe__unpack_bundle(pcmk_resource_t *rsc); rsc 71 include/crm/pengine/internal.h pcmk_resource_t *native_find_rsc(pcmk_resource_t *rsc, const char *id, rsc 74 include/crm/pengine/internal.h bool native_active(const pcmk_resource_t *rsc, bool all); rsc 75 include/crm/pengine/internal.h bool group_active(const pcmk_resource_t *rsc, bool all); rsc 76 include/crm/pengine/internal.h bool clone_active(const pcmk_resource_t *rsc, bool all); rsc 77 include/crm/pengine/internal.h bool pe__bundle_active(const pcmk_resource_t *rsc, bool all); rsc 79 include/crm/pengine/internal.h gchar *pcmk__native_output_string(const pcmk_resource_t *rsc, const char *name, rsc 90 include/crm/pengine/internal.h pcmk_resource_t *rsc, rsc 109 include/crm/pengine/internal.h void native_free(pcmk_resource_t *rsc); rsc 110 include/crm/pengine/internal.h void group_free(pcmk_resource_t *rsc); rsc 111 include/crm/pengine/internal.h void clone_free(pcmk_resource_t *rsc); rsc 112 include/crm/pengine/internal.h void pe__free_bundle(pcmk_resource_t *rsc); rsc 114 include/crm/pengine/internal.h enum rsc_role_e native_resource_state(const pcmk_resource_t *rsc, bool current); rsc 115 include/crm/pengine/internal.h enum rsc_role_e group_resource_state(const pcmk_resource_t *rsc, bool current); rsc 116 include/crm/pengine/internal.h enum rsc_role_e clone_resource_state(const pcmk_resource_t *rsc, bool current); rsc 117 include/crm/pengine/internal.h enum rsc_role_e pe__bundle_resource_state(const pcmk_resource_t *rsc, rsc 120 include/crm/pengine/internal.h void pe__count_common(pcmk_resource_t *rsc); rsc 121 include/crm/pengine/internal.h void pe__count_bundle(pcmk_resource_t *rsc); rsc 123 include/crm/pengine/internal.h void common_free(pcmk_resource_t *rsc); rsc 129 include/crm/pengine/internal.h int pe_get_failcount(const pcmk_node_t *node, pcmk_resource_t *rsc, rsc 133 include/crm/pengine/internal.h pcmk_action_t *pe__clear_failcount(pcmk_resource_t *rsc, rsc 139 include/crm/pengine/internal.h bool pe__count_active_node(const pcmk_resource_t *rsc, pcmk_node_t *node, rsc 143 include/crm/pengine/internal.h pcmk_node_t *pe__find_active_requires(const pcmk_resource_t *rsc, rsc 154 include/crm/pengine/internal.h int line, bool to_log, const pcmk_resource_t *rsc, rsc 158 include/crm/pengine/internal.h #define pe__show_node_scores(level, rsc, text, nodes, scheduler) \ rsc 160 include/crm/pengine/internal.h (level), (rsc), (text), (nodes), (scheduler)) rsc 162 include/crm/pengine/internal.h GHashTable *pcmk__unpack_action_meta(pcmk_resource_t *rsc, rsc 169 include/crm/pengine/internal.h xmlNode *pcmk__find_action_config(const pcmk_resource_t *rsc, rsc 173 include/crm/pengine/internal.h enum pcmk__requires pcmk__action_requires(const pcmk_resource_t *rsc, rsc 176 include/crm/pengine/internal.h enum pcmk__on_fail pcmk__parse_on_fail(const pcmk_resource_t *rsc, rsc 180 include/crm/pengine/internal.h enum rsc_role_e pcmk__role_after_failure(const pcmk_resource_t *rsc, rsc 185 include/crm/pengine/internal.h pcmk_action_t *custom_action(pcmk_resource_t *rsc, char *key, const char *task, rsc 189 include/crm/pengine/internal.h #define delete_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_DELETE, 0) rsc 190 include/crm/pengine/internal.h #define stop_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_STOP, 0) rsc 191 include/crm/pengine/internal.h #define reload_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_RELOAD_AGENT, 0) rsc 192 include/crm/pengine/internal.h #define start_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_START, 0) rsc 193 include/crm/pengine/internal.h #define promote_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_PROMOTE, 0) rsc 194 include/crm/pengine/internal.h #define demote_key(rsc) pcmk__op_key((rsc)->id, PCMK_ACTION_DEMOTE, 0) rsc 196 include/crm/pengine/internal.h #define delete_action(rsc, node, optional) \ rsc 197 include/crm/pengine/internal.h custom_action((rsc), delete_key(rsc), PCMK_ACTION_DELETE, \ rsc 198 include/crm/pengine/internal.h (node), (optional), (rsc)->priv->scheduler) rsc 200 include/crm/pengine/internal.h #define stop_action(rsc, node, optional) \ rsc 201 include/crm/pengine/internal.h custom_action((rsc), stop_key(rsc), PCMK_ACTION_STOP, \ rsc 202 include/crm/pengine/internal.h (node), (optional), (rsc)->priv->scheduler) rsc 204 include/crm/pengine/internal.h #define start_action(rsc, node, optional) \ rsc 205 include/crm/pengine/internal.h custom_action((rsc), start_key(rsc), PCMK_ACTION_START, \ rsc 206 include/crm/pengine/internal.h (node), (optional), (rsc)->priv->scheduler) rsc 208 include/crm/pengine/internal.h #define promote_action(rsc, node, optional) \ rsc 209 include/crm/pengine/internal.h custom_action((rsc), promote_key(rsc), PCMK_ACTION_PROMOTE, \ rsc 210 include/crm/pengine/internal.h (node), (optional), (rsc)->priv->scheduler) rsc 212 include/crm/pengine/internal.h #define demote_action(rsc, node, optional) \ rsc 213 include/crm/pengine/internal.h custom_action((rsc), demote_key(rsc), PCMK_ACTION_DEMOTE, \ rsc 214 include/crm/pengine/internal.h (node), (optional), (rsc)->priv->scheduler) rsc 219 include/crm/pengine/internal.h enum pcmk__action_type get_complex_task(const pcmk_resource_t *rsc, rsc 225 include/crm/pengine/internal.h GList *pe__resource_actions(const pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 228 include/crm/pengine/internal.h void resource_location(pcmk_resource_t *rsc, const pcmk_node_t *node, int score, rsc 233 include/crm/pengine/internal.h gboolean get_target_role(const pcmk_resource_t *rsc, enum rsc_role_e *role); rsc 234 include/crm/pengine/internal.h void pe__set_next_role(pcmk_resource_t *rsc, enum rsc_role_e role, rsc 246 include/crm/pengine/internal.h pe_base_name_eq(const pcmk_resource_t *rsc, const char *id) rsc 248 include/crm/pengine/internal.h if (id && rsc && rsc->id) { rsc 250 include/crm/pengine/internal.h size_t base_len = pe_base_name_end(rsc->id) - rsc->id + 1; rsc 252 include/crm/pengine/internal.h return (strlen(id) == base_len) && !strncmp(id, rsc->id, base_len); rsc 260 include/crm/pengine/internal.h bool is_set_recursive(const pcmk_resource_t *rsc, long long flag, bool any); rsc 262 include/crm/pengine/internal.h pcmk__op_digest_t *pe__calculate_digests(pcmk_resource_t *rsc, const char *task, rsc 272 include/crm/pengine/internal.h pcmk__op_digest_t *rsc_action_digest_cmp(pcmk_resource_t *rsc, rsc 280 include/crm/pengine/internal.h void trigger_unfencing(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 290 include/crm/pengine/internal.h void pe__set_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t flags); rsc 291 include/crm/pengine/internal.h void pe__clear_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t flags); rsc 302 include/crm/pengine/internal.h int pe__common_output_text(pcmk__output_t *out, const pcmk_resource_t *rsc, rsc 305 include/crm/pengine/internal.h int pe__common_output_html(pcmk__output_t *out, const pcmk_resource_t *rsc, rsc 311 include/crm/pengine/internal.h int pe__bundle_max(const pcmk_resource_t *rsc); rsc 314 include/crm/pengine/internal.h pcmk_resource_t *pe__bundled_resource(const pcmk_resource_t *rsc); rsc 326 include/crm/pengine/internal.h bool pe__bundle_needs_remote_name(pcmk_resource_t *rsc); rsc 327 include/crm/pengine/internal.h const char *pe__add_bundle_remote_name(pcmk_resource_t *rsc, xmlNode *xml, rsc 329 include/crm/pengine/internal.h bool pe__is_universal_clone(const pcmk_resource_t *rsc, rsc 347 include/crm/pengine/internal.h bool pe__resource_is_disabled(const pcmk_resource_t *rsc); rsc 348 include/crm/pengine/internal.h void pe__clear_resource_history(pcmk_resource_t *rsc, const pcmk_node_t *node); rsc 352 include/crm/pengine/internal.h bool pe__rsc_has_tag(pcmk_scheduler_t *scheduler, const char *rsc, rsc 357 include/crm/pengine/internal.h bool pe__rsc_running_on_only(const pcmk_resource_t *rsc, rsc 359 include/crm/pengine/internal.h bool pe__rsc_running_on_any(pcmk_resource_t *rsc, GList *node_list); rsc 364 include/crm/pengine/internal.h bool pcmk__rsc_filtered_by_node(pcmk_resource_t *rsc, GList *only_node); rsc 366 include/crm/pengine/internal.h bool pe__bundle_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 368 include/crm/pengine/internal.h bool pe__clone_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 370 include/crm/pengine/internal.h bool pe__group_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 372 include/crm/pengine/internal.h bool pe__native_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 375 include/crm/pengine/internal.h xmlNode *pe__failed_probe_for_rsc(const pcmk_resource_t *rsc, const char *name); rsc 377 include/crm/pengine/internal.h const char *pe__clone_child_id(const pcmk_resource_t *rsc); rsc 23 include/crm/pengine/remote_internal.h const pcmk_resource_t *rsc); rsc 30 include/crm/pengine/status.h const char *rsc_printable_id(const pcmk_resource_t *rsc); rsc 41 include/crm/pengine/status.h GList *find_operations(const char *rsc, const char *node, gboolean active_filter, rsc 45 include/crm/pengine/status.h int pe_bundle_replicas(const pcmk_resource_t *rsc); rsc 106 include/crm/services.h char *rsc; rsc 223 include/pacemaker.h int pcmk_resource_digests(xmlNodePtr *xml, pcmk_resource_t *rsc, rsc 25 include/pcmki/pcmki_resource.h int pcmk__resource_digests(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 151 include/pcmki/pcmki_transition.h int (*rsc) (pcmk__graph_t *graph, pcmk__graph_action_t *action); rsc 27 lib/common/resources.c pcmk_resource_t *rsc = user_data; rsc 29 lib/common/resources.c if (rsc != NULL) { rsc 30 lib/common/resources.c rsc->priv->fns->free(rsc); rsc 43 lib/common/resources.c pcmk_resource_id(const pcmk_resource_t *rsc) rsc 45 lib/common/resources.c return (rsc == NULL)? NULL : rsc->id; rsc 57 lib/common/resources.c pcmk_resource_is_managed(const pcmk_resource_t *rsc) rsc 59 lib/common/resources.c return (rsc == NULL)? false : pcmk_is_set(rsc->flags, pcmk__rsc_managed); rsc 70 lib/common/resources.c pcmk__multiply_active_text(const pcmk_resource_t *rsc) rsc 72 lib/common/resources.c switch (rsc->priv->multiply_active_policy) { rsc 345 lib/common/scheduler.c pcmk_resource_t *rsc; // Resource corresponding to history entry rsc 360 lib/common/scheduler.c pcmk__add_param_check(const xmlNode *rsc_history, pcmk_resource_t *rsc, rsc 365 lib/common/scheduler.c CRM_CHECK((rsc_history != NULL) && (rsc != NULL) && (node != NULL), return); rsc 371 lib/common/scheduler.c param_check->rsc = rsc; rsc 375 lib/common/scheduler.c rsc->priv->scheduler->priv->param_check = rsc 376 lib/common/scheduler.c g_list_prepend(rsc->priv->scheduler->priv->param_check, param_check); rsc 398 lib/common/scheduler.c cb(param_check->rsc, param_check->node, param_check->rsc_history, rsc 19 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 23 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("Fencing_monitor_60000", &rsc, &ty, &ms)); rsc 24 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "Fencing"); rsc 27 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 31 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("R_monitor_100000", &rsc, &ty, &ms)); rsc 32 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "R"); rsc 35 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 39 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("R_A_0", &rsc, &ty, &ms)); rsc 40 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "R"); rsc 43 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 50 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 54 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("__monitor_1000", &rsc, &ty, &ms)); rsc 55 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "_"); rsc 58 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 61 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("___migrate_from_0", &rsc, &ty, &ms)); rsc 62 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "__"); rsc 65 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 68 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("____pre_notify_stop_0", &rsc, &ty, &ms)); rsc 69 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "___"); rsc 72 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 79 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 83 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("ClusterIP:0_start_0", &rsc, &ty, &ms)); rsc 84 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "ClusterIP:0"); rsc 87 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 90 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("imagestoreclone:1_post_notify_stop_0", &rsc, &ty, &ms)); rsc 91 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "imagestoreclone:1"); rsc 94 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 101 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 105 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("httpd-bundle-0_monitor_30000", &rsc, &ty, &ms)); rsc 106 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "httpd-bundle-0"); rsc 109 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 112 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("httpd-bundle-ip-192.168.122.132_start_0", &rsc, &ty, &ms)); rsc 113 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "httpd-bundle-ip-192.168.122.132"); rsc 116 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 123 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 127 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("vm_migrate_from_0", &rsc, &ty, &ms)); rsc 128 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "vm"); rsc 131 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 134 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("vm_migrate_to_0", &rsc, &ty, &ms)); rsc 135 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "vm"); rsc 138 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 141 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("vm_idcc_devel_migrate_to_0", &rsc, &ty, &ms)); rsc 142 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "vm_idcc_devel"); rsc 145 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 152 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 156 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("rsc_drbd_7788:1_post_notify_start_0", &rsc, &ty, &ms)); rsc 157 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "rsc_drbd_7788:1"); rsc 160 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 163 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("rabbitmq-bundle-clone_pre_notify_stop_0", &rsc, &ty, &ms)); rsc 164 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "rabbitmq-bundle-clone"); rsc 167 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 170 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("post_notify_start_0", &rsc, &ty, &ms)); rsc 171 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "post_notify"); rsc 174 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 178 lib/common/tests/actions/parse_op_key_test.c &rsc, &ty, &ms)); rsc 179 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "r"); rsc 182 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 201 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 204 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("Fencing_monitor_60000", &rsc, NULL, &ms)); rsc 205 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "Fencing"); rsc 207 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 213 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 216 lib/common/tests/actions/parse_op_key_test.c assert_true(parse_op_key("Fencing_monitor_60000", &rsc, &ty, NULL)); rsc 217 lib/common/tests/actions/parse_op_key_test.c assert_string_equal(rsc, "Fencing"); rsc 219 lib/common/tests/actions/parse_op_key_test.c free(rsc); rsc 226 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 230 lib/common/tests/actions/parse_op_key_test.c assert_false(parse_op_key("", &rsc, &ty, &ms)); rsc 231 lib/common/tests/actions/parse_op_key_test.c assert_null(rsc); rsc 235 lib/common/tests/actions/parse_op_key_test.c assert_false(parse_op_key(NULL, &rsc, &ty, &ms)); rsc 236 lib/common/tests/actions/parse_op_key_test.c assert_null(rsc); rsc 244 lib/common/tests/actions/parse_op_key_test.c char *rsc = NULL; rsc 248 lib/common/tests/actions/parse_op_key_test.c assert_false(parse_op_key("httpd-bundle-0", &rsc, &ty, &ms)); rsc 249 lib/common/tests/actions/parse_op_key_test.c assert_null(rsc); rsc 253 lib/common/tests/actions/parse_op_key_test.c assert_false(parse_op_key("httpd-bundle-0_monitor", &rsc, &ty, &ms)); rsc 254 lib/common/tests/actions/parse_op_key_test.c assert_null(rsc); rsc 258 lib/common/tests/actions/parse_op_key_test.c assert_false(parse_op_key("httpd-bundle-0_30000", &rsc, &ty, &ms)); rsc 259 lib/common/tests/actions/parse_op_key_test.c assert_null(rsc); rsc 37 lib/common/tests/nodes/pcmk_foreach_active_resource_test.c fn(pcmk_resource_t *rsc, void *user_data) rsc 41 lib/common/tests/nodes/pcmk_foreach_active_resource_test.c assert_string_equal(rsc->id, expected_id); rsc 2538 lib/lrmd/lrmd_client.c lrmd__metadata_async(const lrmd_rsc_info_t *rsc, rsc 2550 lib/lrmd/lrmd_client.c if ((rsc == NULL) || (rsc->standard == NULL) || (rsc->type == NULL)) { rsc 2559 lib/lrmd/lrmd_client.c if (strcmp(rsc->standard, PCMK_RESOURCE_CLASS_STONITH) == 0) { rsc 2560 lib/lrmd/lrmd_client.c return stonith__metadata_async(rsc->type, rsc 2565 lib/lrmd/lrmd_client.c action = services__create_resource_action(pcmk__s(rsc->id, rsc->type), rsc 2566 lib/lrmd/lrmd_client.c rsc->standard, rsc->provider, rsc 2567 lib/lrmd/lrmd_client.c rsc->type, rsc 104 lib/pacemaker/libpacemaker_private.h pcmk_node_t *(*assign)(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 113 lib/pacemaker/libpacemaker_private.h void (*create_actions)(pcmk_resource_t *rsc); rsc 124 lib/pacemaker/libpacemaker_private.h bool (*create_probe)(pcmk_resource_t *rsc, pcmk_node_t *node); rsc 132 lib/pacemaker/libpacemaker_private.h void (*internal_constraints)(pcmk_resource_t *rsc); rsc 171 lib/pacemaker/libpacemaker_private.h GList *(*colocated_resources)(const pcmk_resource_t *rsc, rsc 192 lib/pacemaker/libpacemaker_private.h void (*with_this_colocations)(const pcmk_resource_t *rsc, rsc 214 lib/pacemaker/libpacemaker_private.h void (*this_with_colocations)(const pcmk_resource_t *rsc, rsc 260 lib/pacemaker/libpacemaker_private.h void (*apply_location)(pcmk_resource_t *rsc, pcmk__location_t *location); rsc 312 lib/pacemaker/libpacemaker_private.h void (*output_actions)(pcmk_resource_t *rsc); rsc 320 lib/pacemaker/libpacemaker_private.h void (*add_actions_to_graph)(pcmk_resource_t *rsc); rsc 332 lib/pacemaker/libpacemaker_private.h void (*add_graph_meta)(const pcmk_resource_t *rsc, xmlNode *xml); rsc 349 lib/pacemaker/libpacemaker_private.h void (*add_utilization)(const pcmk_resource_t *rsc, rsc 359 lib/pacemaker/libpacemaker_private.h void (*shutdown_lock)(pcmk_resource_t *rsc); rsc 379 lib/pacemaker/libpacemaker_private.h pcmk_action_t *pcmk__new_cancel_action(pcmk_resource_t *rsc, const char *name, rsc 396 lib/pacemaker/libpacemaker_private.h bool pcmk__check_action_config(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 406 lib/pacemaker/libpacemaker_private.h void pcmk__create_recurring_actions(pcmk_resource_t *rsc); rsc 409 lib/pacemaker/libpacemaker_private.h void pcmk__schedule_cancel(pcmk_resource_t *rsc, const char *call_id, rsc 414 lib/pacemaker/libpacemaker_private.h void pcmk__reschedule_recurring(pcmk_resource_t *rsc, const char *task, rsc 429 lib/pacemaker/libpacemaker_private.h void pcmk__add_rsc_actions_to_graph(pcmk_resource_t *rsc); rsc 442 lib/pacemaker/libpacemaker_private.h void pcmk__order_vs_unfence(const pcmk_resource_t *rsc, pcmk_node_t *node, rsc 479 lib/pacemaker/libpacemaker_private.h const char *id, pcmk_resource_t **rsc, rsc 496 lib/pacemaker/libpacemaker_private.h pcmk__location_t *pcmk__new_location(const char *id, pcmk_resource_t *rsc, rsc 504 lib/pacemaker/libpacemaker_private.h void pcmk__apply_location(pcmk_resource_t *rsc, pcmk__location_t *constraint); rsc 518 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 561 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 565 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 569 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 573 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 576 lib/pacemaker/libpacemaker_private.h GList *pcmk__with_this_colocations(const pcmk_resource_t *rsc); rsc 579 lib/pacemaker/libpacemaker_private.h GList *pcmk__this_with_colocations(const pcmk_resource_t *rsc); rsc 592 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 657 lib/pacemaker/libpacemaker_private.h void pcmk__add_promotion_scores(pcmk_resource_t *rsc); rsc 660 lib/pacemaker/libpacemaker_private.h void pcmk__require_promotion_tickets(pcmk_resource_t *rsc); rsc 663 lib/pacemaker/libpacemaker_private.h void pcmk__set_instance_roles(pcmk_resource_t *rsc); rsc 669 lib/pacemaker/libpacemaker_private.h void pcmk__promotable_restart_ordering(pcmk_resource_t *rsc); rsc 696 lib/pacemaker/libpacemaker_private.h bool pcmk__rsc_corresponds_to_guest(const pcmk_resource_t *rsc, rsc 703 lib/pacemaker/libpacemaker_private.h void pcmk__substitute_remote_addr(pcmk_resource_t *rsc, GHashTable *params); rsc 713 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__primitive_assign(pcmk_resource_t *rsc, rsc 718 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_create_actions(pcmk_resource_t *rsc); rsc 721 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_internal_constraints(pcmk_resource_t *rsc); rsc 734 lib/pacemaker/libpacemaker_private.h void pcmk__with_primitive_colocations(const pcmk_resource_t *rsc, rsc 739 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_with_colocations(const pcmk_resource_t *rsc, rsc 744 lib/pacemaker/libpacemaker_private.h void pcmk__schedule_cleanup(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 748 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml); rsc 751 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_add_utilization(const pcmk_resource_t *rsc, rsc 756 lib/pacemaker/libpacemaker_private.h void pcmk__primitive_shutdown_lock(pcmk_resource_t *rsc); rsc 762 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__group_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 766 lib/pacemaker/libpacemaker_private.h void pcmk__group_create_actions(pcmk_resource_t *rsc); rsc 769 lib/pacemaker/libpacemaker_private.h void pcmk__group_internal_constraints(pcmk_resource_t *rsc); rsc 778 lib/pacemaker/libpacemaker_private.h void pcmk__with_group_colocations(const pcmk_resource_t *rsc, rsc 783 lib/pacemaker/libpacemaker_private.h void pcmk__group_with_colocations(const pcmk_resource_t *rsc, rsc 796 lib/pacemaker/libpacemaker_private.h void pcmk__group_apply_location(pcmk_resource_t *rsc, rsc 812 lib/pacemaker/libpacemaker_private.h GList *pcmk__group_colocated_resources(const pcmk_resource_t *rsc, rsc 817 lib/pacemaker/libpacemaker_private.h void pcmk__group_add_utilization(const pcmk_resource_t *rsc, rsc 822 lib/pacemaker/libpacemaker_private.h void pcmk__group_shutdown_lock(pcmk_resource_t *rsc); rsc 828 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__clone_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 832 lib/pacemaker/libpacemaker_private.h void pcmk__clone_create_actions(pcmk_resource_t *rsc); rsc 835 lib/pacemaker/libpacemaker_private.h bool pcmk__clone_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node); rsc 838 lib/pacemaker/libpacemaker_private.h void pcmk__clone_internal_constraints(pcmk_resource_t *rsc); rsc 847 lib/pacemaker/libpacemaker_private.h void pcmk__with_clone_colocations(const pcmk_resource_t *rsc, rsc 852 lib/pacemaker/libpacemaker_private.h void pcmk__clone_with_colocations(const pcmk_resource_t *rsc, rsc 857 lib/pacemaker/libpacemaker_private.h void pcmk__clone_apply_location(pcmk_resource_t *rsc, rsc 865 lib/pacemaker/libpacemaker_private.h void pcmk__clone_add_actions_to_graph(pcmk_resource_t *rsc); rsc 868 lib/pacemaker/libpacemaker_private.h void pcmk__clone_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml); rsc 871 lib/pacemaker/libpacemaker_private.h void pcmk__clone_add_utilization(const pcmk_resource_t *rsc, rsc 876 lib/pacemaker/libpacemaker_private.h void pcmk__clone_shutdown_lock(pcmk_resource_t *rsc); rsc 881 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__bundle_assign(pcmk_resource_t *rsc, rsc 885 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_create_actions(pcmk_resource_t *rsc); rsc 888 lib/pacemaker/libpacemaker_private.h bool pcmk__bundle_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node); rsc 891 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_internal_constraints(pcmk_resource_t *rsc); rsc 900 lib/pacemaker/libpacemaker_private.h void pcmk__with_bundle_colocations(const pcmk_resource_t *rsc, rsc 905 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_with_colocations(const pcmk_resource_t *rsc, rsc 910 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_apply_location(pcmk_resource_t *rsc, rsc 918 lib/pacemaker/libpacemaker_private.h void pcmk__output_bundle_actions(pcmk_resource_t *rsc); rsc 921 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_add_actions_to_graph(pcmk_resource_t *rsc); rsc 924 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_add_utilization(const pcmk_resource_t *rsc, rsc 929 lib/pacemaker/libpacemaker_private.h void pcmk__bundle_shutdown_lock(pcmk_resource_t *rsc); rsc 939 lib/pacemaker/libpacemaker_private.h void pcmk__create_instance_actions(pcmk_resource_t *rsc, GList *instances); rsc 948 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc, rsc 1008 lib/pacemaker/libpacemaker_private.h void pcmk__copy_node_tables(const pcmk_resource_t *rsc, GHashTable **copy); rsc 1011 lib/pacemaker/libpacemaker_private.h void pcmk__restore_node_tables(pcmk_resource_t *rsc, GHashTable *backup); rsc 1020 lib/pacemaker/libpacemaker_private.h pcmk_node_t *pcmk__top_allowed_node(const pcmk_resource_t *rsc, rsc 1030 lib/pacemaker/libpacemaker_private.h bool pcmk__rsc_agent_changed(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 1038 lib/pacemaker/libpacemaker_private.h GList *pcmk__colocated_resources(const pcmk_resource_t *rsc, rsc 1043 lib/pacemaker/libpacemaker_private.h void pcmk__noop_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml); rsc 1046 lib/pacemaker/libpacemaker_private.h void pcmk__output_resource_actions(pcmk_resource_t *rsc); rsc 1049 lib/pacemaker/libpacemaker_private.h bool pcmk__assign_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool force, rsc 1053 lib/pacemaker/libpacemaker_private.h void pcmk__unassign_resource(pcmk_resource_t *rsc); rsc 1056 lib/pacemaker/libpacemaker_private.h bool pcmk__threshold_reached(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 1072 lib/pacemaker/libpacemaker_private.h bool pcmk__probe_rsc_on_node(pcmk_resource_t *rsc, pcmk_node_t *node); rsc 1086 lib/pacemaker/libpacemaker_private.h void pcmk__create_migration_actions(pcmk_resource_t *rsc, rsc 1091 lib/pacemaker/libpacemaker_private.h bool pcmk__rsc_can_migrate(const pcmk_resource_t *rsc, rsc 1105 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 1109 lib/pacemaker/libpacemaker_private.h const pcmk_resource_t *rsc); rsc 1112 lib/pacemaker/libpacemaker_private.h const pcmk_node_t *pcmk__ban_insufficient_capacity(pcmk_resource_t *rsc); rsc 1115 lib/pacemaker/libpacemaker_private.h void pcmk__create_utilization_constraints(pcmk_resource_t *rsc, rsc 216 lib/pacemaker/pcmk_graph_consumer.c pcmk__assert((fns != NULL) && (fns->rsc != NULL) && (fns->cluster != NULL) rsc 307 lib/pacemaker/pcmk_graph_consumer.c return graph_fns->rsc(graph, action); rsc 167 lib/pacemaker/pcmk_graph_producer.c } else if ((action->rsc != NULL) rsc 168 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(action->rsc->flags, rsc 182 lib/pacemaker/pcmk_graph_producer.c if ((input->rsc != NULL) rsc 183 lib/pacemaker/pcmk_graph_producer.c && pcmk__str_eq(action->rsc->id, input->rsc->id, pcmk__str_none) rsc 192 lib/pacemaker/pcmk_graph_producer.c add_node_to_xml_by_id(action->rsc->id, downed); rsc 214 lib/pacemaker/pcmk_graph_producer.c return pcmk__notify_key(action->rsc->priv->history_id, n_type, rsc 217 lib/pacemaker/pcmk_graph_producer.c return pcmk__op_key(action->rsc->priv->history_id, rsc 264 lib/pacemaker/pcmk_graph_producer.c (long long) action->rsc->priv->lock_time); rsc 270 lib/pacemaker/pcmk_graph_producer.c (const char *) action->rsc->priv->xml->name); rsc 271 lib/pacemaker/pcmk_graph_producer.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_removed) rsc 272 lib/pacemaker/pcmk_graph_producer.c && (action->rsc->priv->history_id != NULL)) { rsc 282 lib/pacemaker/pcmk_graph_producer.c action->rsc->id, action->rsc->priv->history_id); rsc 283 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK_XA_ID, action->rsc->priv->history_id); rsc 284 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK__XA_LONG_ID, action->rsc->id); rsc 286 lib/pacemaker/pcmk_graph_producer.c } else if (!pcmk_is_set(action->rsc->flags, pcmk__rsc_unique)) { rsc 287 lib/pacemaker/pcmk_graph_producer.c const char *xml_id = pcmk__xe_id(action->rsc->priv->xml); rsc 290 lib/pacemaker/pcmk_graph_producer.c xml_id, action->rsc->id, action->rsc->priv->history_id); rsc 307 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc->priv->history_id != NULL) rsc 308 lib/pacemaker/pcmk_graph_producer.c && !pcmk__str_eq(xml_id, action->rsc->priv->history_id, rsc 311 lib/pacemaker/pcmk_graph_producer.c action->rsc->priv->history_id); rsc 313 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK__XA_LONG_ID, action->rsc->id); rsc 317 lib/pacemaker/pcmk_graph_producer.c pcmk__assert(action->rsc->priv->history_id == NULL); rsc 318 lib/pacemaker/pcmk_graph_producer.c crm_xml_add(rsc_xml, PCMK_XA_ID, action->rsc->id); rsc 323 lib/pacemaker/pcmk_graph_producer.c g_hash_table_lookup(action->rsc->priv->meta, rsc 339 lib/pacemaker/pcmk_graph_producer.c pcmk_resource_t *rsc = action->rsc; rsc 350 lib/pacemaker/pcmk_graph_producer.c if ((rsc != NULL) && (action->node != NULL)) { rsc 352 lib/pacemaker/pcmk_graph_producer.c GHashTable *params = pe_rsc_params(rsc, action->node, rsc 353 lib/pacemaker/pcmk_graph_producer.c rsc->priv->scheduler); rsc 355 lib/pacemaker/pcmk_graph_producer.c pcmk__substitute_remote_addr(rsc, params); rsc 359 lib/pacemaker/pcmk_graph_producer.c } else if ((rsc != NULL) rsc 360 lib/pacemaker/pcmk_graph_producer.c && (rsc->priv->variant <= pcmk__rsc_variant_primitive)) { rsc 361 lib/pacemaker/pcmk_graph_producer.c GHashTable *params = pe_rsc_params(rsc, NULL, rsc->priv->scheduler); rsc 367 lib/pacemaker/pcmk_graph_producer.c if (rsc != NULL) { rsc 368 lib/pacemaker/pcmk_graph_producer.c pcmk_resource_t *parent = rsc; rsc 438 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) && (action->rsc->priv->history_id != NULL)) { rsc 467 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) rsc 514 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) rsc 515 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed) rsc 528 lib/pacemaker/pcmk_graph_producer.c action->uuid, action->id, action->rsc->id); rsc 669 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) rsc 673 lib/pacemaker/pcmk_graph_producer.c pcmk_node_t *assigned = action->rsc->priv->assigned_node; rsc 729 lib/pacemaker/pcmk_graph_producer.c } else if (input->action->rsc rsc 730 lib/pacemaker/pcmk_graph_producer.c && input->action->rsc != action->rsc rsc 731 lib/pacemaker/pcmk_graph_producer.c && pcmk_is_set(input->action->rsc->flags, pcmk__rsc_failed) rsc 732 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(input->action->rsc->flags, pcmk__rsc_managed) rsc 734 lib/pacemaker/pcmk_graph_producer.c && pcmk__is_clone(action->rsc)) { rsc 857 lib/pacemaker/pcmk_graph_producer.c if (action->rsc != NULL) { rsc 858 lib/pacemaker/pcmk_graph_producer.c synapse_priority = action->rsc->priv->priority; rsc 979 lib/pacemaker/pcmk_graph_producer.c pcmk__add_rsc_actions_to_graph(pcmk_resource_t *rsc) rsc 983 lib/pacemaker/pcmk_graph_producer.c pcmk__assert(rsc != NULL); rsc 985 lib/pacemaker/pcmk_graph_producer.c pcmk__rsc_trace(rsc, "Adding actions for %s to graph", rsc->id); rsc 988 lib/pacemaker/pcmk_graph_producer.c g_list_foreach(rsc->priv->actions, add_action_to_graph, rsc 989 lib/pacemaker/pcmk_graph_producer.c rsc->priv->scheduler); rsc 992 lib/pacemaker/pcmk_graph_producer.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 1065 lib/pacemaker/pcmk_graph_producer.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 1067 lib/pacemaker/pcmk_graph_producer.c pcmk__rsc_trace(rsc, "Processing actions for %s", rsc->id); rsc 1068 lib/pacemaker/pcmk_graph_producer.c rsc->priv->cmds->add_actions_to_graph(rsc); rsc 1078 lib/pacemaker/pcmk_graph_producer.c if ((action->rsc != NULL) rsc 1081 lib/pacemaker/pcmk_graph_producer.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_maintenance) rsc 1091 lib/pacemaker/pcmk_graph_producer.c const bool managed = pcmk_is_set(action->rsc->flags, rsc 1093 lib/pacemaker/pcmk_graph_producer.c const bool failed = pcmk_is_set(action->rsc->flags, rsc 1098 lib/pacemaker/pcmk_graph_producer.c pcmk__node_name(action->node), action->rsc->id, rsc 578 lib/pacemaker/pcmk_injections.c const pcmk_resource_t *rsc = NULL; rsc 595 lib/pacemaker/pcmk_injections.c rsc = pe_find_resource(scheduler->priv->resources, resource); rsc 596 lib/pacemaker/pcmk_injections.c if (rsc == NULL) { rsc 601 lib/pacemaker/pcmk_injections.c rclass = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 602 lib/pacemaker/pcmk_injections.c rtype = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 603 lib/pacemaker/pcmk_injections.c rprovider = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 24 lib/pacemaker/pcmk_output.c colocations_header(pcmk_resource_t *rsc, pcmk__colocation_t *cons, rsc 30 lib/pacemaker/pcmk_output.c rsc->id, pcmk_readable_score(cons->score), rsc 36 lib/pacemaker/pcmk_output.c rsc->id, pcmk_readable_score(cons->score), rsc 43 lib/pacemaker/pcmk_output.c colocations_xml_node(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 68 lib/pacemaker/pcmk_output.c do_locations_list_xml(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 74 lib/pacemaker/pcmk_output.c for (lpc = rsc->priv->location_constraints; rsc 89 lib/pacemaker/pcmk_output.c PCMK_XA_RSC, rsc->id, rsc 111 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 134 lib/pacemaker/pcmk_output.c len = strlen(rsc->id); rsc 139 lib/pacemaker/pcmk_output.c if ((rsc->priv->orig_role > pcmk_role_started) rsc 140 lib/pacemaker/pcmk_output.c || (rsc->priv->next_role > pcmk_role_unpromoted)) { rsc 148 lib/pacemaker/pcmk_output.c if (rsc->priv->orig_role == rsc->priv->next_role) { rsc 155 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 156 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 166 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 176 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 187 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role)); rsc 197 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 198 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 204 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 206 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 228 lib/pacemaker/pcmk_output.c change, rsc_width, rsc->id, detail_width, details, rsc 243 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 263 lib/pacemaker/pcmk_output.c if ((rsc->priv->orig_role > pcmk_role_started) rsc 264 lib/pacemaker/pcmk_output.c || (rsc->priv->next_role > pcmk_role_unpromoted)) { rsc 272 lib/pacemaker/pcmk_output.c if (rsc->priv->orig_role == rsc->priv->next_role) { rsc 279 lib/pacemaker/pcmk_output.c PCMK_XA_RESOURCE, rsc->id, rsc 287 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 289 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 301 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 313 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 327 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 341 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 343 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 351 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 354 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->next_role), rsc 380 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 385 lib/pacemaker/pcmk_output.c if (pcmk_is_set(rsc->flags, pcmk__rsc_detect_loop)) { rsc 393 lib/pacemaker/pcmk_output.c pcmk__set_rsc_flags(rsc, pcmk__rsc_detect_loop); rsc 394 lib/pacemaker/pcmk_output.c for (GList *lpc = rsc->priv->this_with_colocations; rsc 400 lib/pacemaker/pcmk_output.c "Resources %s is colocated with", rsc->id); rsc 431 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 436 lib/pacemaker/pcmk_output.c if (pcmk_is_set(rsc->flags, pcmk__rsc_detect_loop)) { rsc 444 lib/pacemaker/pcmk_output.c pcmk__set_rsc_flags(rsc, pcmk__rsc_detect_loop); rsc 445 lib/pacemaker/pcmk_output.c for (GList *lpc = rsc->priv->this_with_colocations; rsc 469 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 474 lib/pacemaker/pcmk_output.c if (pcmk_is_set(rsc->flags, pcmk__rsc_detect_loop)) { rsc 482 lib/pacemaker/pcmk_output.c pcmk__set_rsc_flags(rsc, pcmk__rsc_detect_loop); rsc 483 lib/pacemaker/pcmk_output.c for (GList *lpc = rsc->priv->with_this_colocations; rsc 489 lib/pacemaker/pcmk_output.c rsc->id); rsc 520 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 525 lib/pacemaker/pcmk_output.c if (pcmk_is_set(rsc->flags, pcmk__rsc_detect_loop)) { rsc 533 lib/pacemaker/pcmk_output.c pcmk__set_rsc_flags(rsc, pcmk__rsc_detect_loop); rsc 534 lib/pacemaker/pcmk_output.c for (GList *lpc = rsc->priv->with_this_colocations; rsc 558 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 563 lib/pacemaker/pcmk_output.c for (lpc = rsc->priv->location_constraints; rsc 576 lib/pacemaker/pcmk_output.c rsc->id); rsc 587 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 588 lib/pacemaker/pcmk_output.c return do_locations_list_xml(out, rsc, true); rsc 596 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 600 lib/pacemaker/pcmk_output.c pcmk__unpack_constraints(rsc->priv->scheduler); rsc 604 lib/pacemaker/pcmk_output.c rsc = uber_parent(rsc); rsc 607 lib/pacemaker/pcmk_output.c out->message(out, "locations-list", rsc); rsc 609 lib/pacemaker/pcmk_output.c pe__clear_resource_flags_on_all(rsc->priv->scheduler, rsc 611 lib/pacemaker/pcmk_output.c out->message(out, "rscs-colocated-with-list", rsc, recursive); rsc 613 lib/pacemaker/pcmk_output.c pe__clear_resource_flags_on_all(rsc->priv->scheduler, rsc 615 lib/pacemaker/pcmk_output.c out->message(out, "rsc-is-colocated-with-list", rsc, recursive); rsc 624 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 628 lib/pacemaker/pcmk_output.c pcmk__unpack_constraints(rsc->priv->scheduler); rsc 632 lib/pacemaker/pcmk_output.c rsc = uber_parent(rsc); rsc 636 lib/pacemaker/pcmk_output.c do_locations_list_xml(out, rsc, false); rsc 638 lib/pacemaker/pcmk_output.c pe__clear_resource_flags_on_all(rsc->priv->scheduler, rsc 640 lib/pacemaker/pcmk_output.c out->message(out, "rscs-colocated-with-list", rsc, recursive); rsc 642 lib/pacemaker/pcmk_output.c pe__clear_resource_flags_on_all(rsc->priv->scheduler, rsc 644 lib/pacemaker/pcmk_output.c out->message(out, "rsc-is-colocated-with-list", rsc, recursive); rsc 984 lib/pacemaker/pcmk_output.c const pcmk_resource_t *rsc = va_arg(args, const pcmk_resource_t *); rsc 1003 lib/pacemaker/pcmk_output.c if ((rsc != NULL) && (rsc->id != NULL)) { rsc 1004 lib/pacemaker/pcmk_output.c rsc_desc = rsc->id; rsc 1052 lib/pacemaker/pcmk_output.c const pcmk_resource_t *rsc = va_arg(args, const pcmk_resource_t *); rsc 1062 lib/pacemaker/pcmk_output.c PCMK_XA_RESOURCE, pcmk__s(rsc->id, ""), rsc 1085 lib/pacemaker/pcmk_output.c __func__, lineno, rsc->id); \ rsc 1099 lib/pacemaker/pcmk_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 1115 lib/pacemaker/pcmk_output.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed) rsc 1117 lib/pacemaker/pcmk_output.c const bool managed = pcmk_is_set(rsc->flags, pcmk__rsc_managed); rsc 1119 lib/pacemaker/pcmk_output.c pcmk__rsc_info(rsc, "Leave %s\t(%s%s)", rsc 1120 lib/pacemaker/pcmk_output.c rsc->id, pcmk_role_text(rsc->priv->orig_role), rsc 1128 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, next, PCMK_ACTION_START, rsc 1141 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, start_node, PCMK_ACTION_STOP, rsc 1146 lib/pacemaker/pcmk_output.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_stop_unexpected)) { rsc 1151 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, NULL, PCMK_ACTION_STOP, rsc 1159 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, next, PCMK_ACTION_PROMOTE, rsc 1166 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, next, PCMK_ACTION_DEMOTE, rsc 1173 lib/pacemaker/pcmk_output.c if (rsc->priv->orig_role == rsc->priv->next_role) { rsc 1178 lib/pacemaker/pcmk_output.c possible_matches = pe__resource_actions(rsc, next, rsc 1187 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Migrate", rsc, current, rsc 1190 lib/pacemaker/pcmk_output.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_reload)) { rsc 1191 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Reload", rsc, current, rsc 1199 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Re-promote", rsc, rsc 1202 lib/pacemaker/pcmk_output.c pcmk__rsc_info(rsc, "Leave %s\t(%s %s)", rsc->id, rsc 1203 lib/pacemaker/pcmk_output.c pcmk_role_text(rsc->priv->orig_role), rsc 1213 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Stop", rsc, current, rsc 1218 lib/pacemaker/pcmk_output.c const bool failed = pcmk_is_set(rsc->flags, pcmk__rsc_failed); rsc 1221 lib/pacemaker/pcmk_output.c (failed? "Recover" : "Move"), rsc, current, next, rsc 1224 lib/pacemaker/pcmk_output.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 1225 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Recover", rsc, current, rsc 1230 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Restart", rsc, current, rsc 1245 lib/pacemaker/pcmk_output.c && ((rsc->priv->next_role == pcmk_role_stopped) rsc 1249 lib/pacemaker/pcmk_output.c key = stop_key(rsc); rsc 1250 lib/pacemaker/pcmk_output.c for (GList *iter = rsc->priv->active_nodes; rsc 1257 lib/pacemaker/pcmk_output.c possible_matches = find_actions(rsc->priv->actions, key, node); rsc 1272 lib/pacemaker/pcmk_output.c if (out->message(out, "rsc-action-item", "Stop", rsc, node, NULL, rsc 1281 lib/pacemaker/pcmk_output.c && pcmk_all_flags_set(rsc->flags, rsc 1285 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Recover", rsc, current, rsc 1290 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Move", rsc, current, next, rsc 1294 lib/pacemaker/pcmk_output.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_reload)) { rsc 1295 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Reload", rsc, current, next, rsc 1300 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Restart", rsc, current, rsc 1304 lib/pacemaker/pcmk_output.c } else if (rsc->priv->orig_role == pcmk_role_promoted) { rsc 1306 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Demote", rsc, current, rsc 1309 lib/pacemaker/pcmk_output.c } else if (rsc->priv->next_role == pcmk_role_promoted) { rsc 1311 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Promote", rsc, current, rsc 1314 lib/pacemaker/pcmk_output.c } else if ((rsc->priv->orig_role == pcmk_role_stopped) rsc 1315 lib/pacemaker/pcmk_output.c && (rsc->priv->next_role > pcmk_role_stopped)) { rsc 1316 lib/pacemaker/pcmk_output.c rc = out->message(out, "rsc-action-item", "Start", rsc, current, next, rsc 1418 lib/pacemaker/pcmk_output.c xmlNodePtr rsc = va_arg(args, xmlNodePtr); rsc 1424 lib/pacemaker/pcmk_output.c if (rsc != NULL) { rsc 1426 lib/pacemaker/pcmk_output.c task, pcmk__xe_id(rsc), node); rsc 1441 lib/pacemaker/pcmk_output.c xmlNodePtr rsc = va_arg(args, xmlNodePtr); rsc 1454 lib/pacemaker/pcmk_output.c if (rsc) { rsc 1455 lib/pacemaker/pcmk_output.c crm_xml_add(xml_node, PCMK_XA_ID, pcmk__xe_id(rsc)); rsc 1749 lib/pacemaker/pcmk_output.c const char *rsc = va_arg(args, const char *); rsc 1760 lib/pacemaker/pcmk_output.c rsc, operation, interval_ms, node); rsc 1763 lib/pacemaker/pcmk_output.c rsc, operation, node); rsc 1774 lib/pacemaker/pcmk_output.c const char *rsc = va_arg(args, const char *); rsc 1786 lib/pacemaker/pcmk_output.c PCMK_XA_RESOURCE, rsc, rsc 2517 lib/pacemaker/pcmk_output.c const char *rsc = crm_element_value(node, PCMK_XA_RSC); rsc 2520 lib/pacemaker/pcmk_output.c PCMK_XA_ID, rsc, NULL); rsc 33 lib/pacemaker/pcmk_resource.c best_op(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 44 lib/pacemaker/pcmk_resource.c xpath = crm_strdup_printf(XPATH_OP_HISTORY, node->priv->name, rsc->id); rsc 45 lib/pacemaker/pcmk_resource.c history = pcmk__xpath_find_one(rsc->priv->scheduler->input->doc, xpath, rsc 198 lib/pacemaker/pcmk_resource.c pcmk__resource_digests(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 207 lib/pacemaker/pcmk_resource.c if ((out == NULL) || (rsc == NULL) || (node == NULL)) { rsc 211 lib/pacemaker/pcmk_resource.c if (!pcmk__is_primitive(rsc)) { rsc 217 lib/pacemaker/pcmk_resource.c xml_op = best_op(rsc, node); rsc 230 lib/pacemaker/pcmk_resource.c digests = pe__calculate_digests(rsc, task, &interval_ms, node, xml_op, rsc 231 lib/pacemaker/pcmk_resource.c overrides, true, rsc->priv->scheduler); rsc 232 lib/pacemaker/pcmk_resource.c rc = out->message(out, "digests", rsc, node, task, interval_ms, digests); rsc 239 lib/pacemaker/pcmk_resource.c pcmk_resource_digests(xmlNodePtr *xml, pcmk_resource_t *rsc, rsc 250 lib/pacemaker/pcmk_resource.c rc = pcmk__resource_digests(out, rsc, node, overrides); rsc 41 lib/pacemaker/pcmk_sched_actions.c if (action->rsc == NULL) { rsc 49 lib/pacemaker/pcmk_sched_actions.c flags = action->rsc->priv->cmds->action_flags(action, NULL); rsc 50 lib/pacemaker/pcmk_sched_actions.c if ((node == NULL) || !pcmk__is_clone(action->rsc)) { rsc 60 lib/pacemaker/pcmk_sched_actions.c flags = action->rsc->priv->cmds->action_flags(action, node); rsc 71 lib/pacemaker/pcmk_sched_actions.c pcmk__set_raw_action_flags(flags, action->rsc->id, rsc 185 lib/pacemaker/pcmk_sched_actions.c pcmk_resource_t *rsc = action->rsc; rsc 187 lib/pacemaker/pcmk_sched_actions.c if (rsc == NULL) { rsc 191 lib/pacemaker/pcmk_sched_actions.c if ((rsc->priv->variant >= pcmk__rsc_variant_group) rsc 193 lib/pacemaker/pcmk_sched_actions.c char *uuid = action_uuid_for_ordering(action->uuid, rsc); rsc 195 lib/pacemaker/pcmk_sched_actions.c result = find_first_action(rsc->priv->actions, uuid, NULL, NULL); rsc 198 lib/pacemaker/pcmk_sched_actions.c "remapped action", action->uuid, uuid, rsc->id); rsc 226 lib/pacemaker/pcmk_sched_actions.c update(pcmk_resource_t *rsc, pcmk_action_t *first, pcmk_action_t *then, rsc 230 lib/pacemaker/pcmk_sched_actions.c return rsc->priv->cmds->update_ordered_actions(first, then, node, flags, rsc 272 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 280 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 281 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, rsc 290 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 297 lib/pacemaker/pcmk_sched_actions.c && (then->rsc != NULL)) { rsc 301 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, restart, rsc 303 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 310 lib/pacemaker/pcmk_sched_actions.c if (first->rsc != NULL) { rsc 311 lib/pacemaker/pcmk_sched_actions.c changed |= update(first->rsc, first, then, node, first_flags, rsc 319 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 326 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 327 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, rsc 332 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 340 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 341 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 359 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "%s then %s: %s after pcmk__ar_min_runnable", rsc 365 lib/pacemaker/pcmk_sched_actions.c && (then->rsc != NULL)) { rsc 368 lib/pacemaker/pcmk_sched_actions.c && (first->rsc != NULL) rsc 369 lib/pacemaker/pcmk_sched_actions.c && (first->rsc->priv->active_nodes != NULL)) { rsc 371 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 376 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 380 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 387 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 388 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 398 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 405 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 406 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 410 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 418 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 419 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 423 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 430 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 431 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 435 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "%s then %s: %s after pcmk__ar_ordered", rsc 441 lib/pacemaker/pcmk_sched_actions.c if (then->rsc != NULL) { rsc 442 lib/pacemaker/pcmk_sched_actions.c changed |= update(then->rsc, first, then, node, first_flags, rsc 446 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "%s then %s: %s after pcmk__ar_asymmetric", rsc 455 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "%s will be in graph because %s is required", rsc 464 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "%s will be in graph because %s is required", rsc 473 lib/pacemaker/pcmk_sched_actions.c && (first->rsc != NULL) rsc 474 lib/pacemaker/pcmk_sched_actions.c && !pcmk_is_set(first->rsc->flags, pcmk__rsc_managed) rsc 475 lib/pacemaker/pcmk_sched_actions.c && pcmk_is_set(first->rsc->flags, pcmk__rsc_blocked) rsc 489 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 528 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "Updating %s %s (%s %s) on %s", rsc 557 lib/pacemaker/pcmk_sched_actions.c if ((first->rsc != NULL) rsc 558 lib/pacemaker/pcmk_sched_actions.c && pcmk__is_group(first->rsc) rsc 561 lib/pacemaker/pcmk_sched_actions.c first_node = first->rsc->priv->fns->location(first->rsc, NULL, rsc 564 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(first->rsc, "Found %s for 'first' %s", rsc 569 lib/pacemaker/pcmk_sched_actions.c if (pcmk__is_group(then->rsc) rsc 572 lib/pacemaker/pcmk_sched_actions.c then_node = then->rsc->priv->fns->location(then->rsc, NULL, target); rsc 574 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "Found %s for 'then' %s", rsc 584 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 595 lib/pacemaker/pcmk_sched_actions.c if ((first->rsc != NULL) rsc 604 lib/pacemaker/pcmk_sched_actions.c pcmk__clear_rsc_flags(first->rsc, pcmk__rsc_reload); rsc 608 lib/pacemaker/pcmk_sched_actions.c if ((first->rsc != NULL) && (then->rsc != NULL) rsc 609 lib/pacemaker/pcmk_sched_actions.c && (first->rsc != then->rsc) && !is_parent(then->rsc, first->rsc)) { rsc 613 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, "Ordering %s after %s instead of %s", rsc 617 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 644 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 693 lib/pacemaker/pcmk_sched_actions.c return (action != NULL) && pcmk__is_primitive(action->rsc); rsc 707 lib/pacemaker/pcmk_sched_actions.c if ((action)->rsc != (reason)->rsc) { \ rsc 731 lib/pacemaker/pcmk_sched_actions.c if ((then->rsc == NULL) rsc 740 lib/pacemaker/pcmk_sched_actions.c then_rsc_role = then->rsc->priv->fns->state(then->rsc, true); rsc 750 lib/pacemaker/pcmk_sched_actions.c && pe__rsc_running_on_only(then->rsc, then->node)) { rsc 795 lib/pacemaker/pcmk_sched_actions.c && pcmk_is_set(then->rsc->flags, pcmk__rsc_managed) rsc 796 lib/pacemaker/pcmk_sched_actions.c && (first->rsc == then->rsc)) { rsc 804 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(first->rsc, "Handling %s -> %s for %s", rsc 886 lib/pacemaker/pcmk_sched_actions.c && (then->rsc != NULL) rsc 887 lib/pacemaker/pcmk_sched_actions.c && (then->rsc->priv->orig_role == pcmk_role_promoted) rsc 944 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(then->rsc, rsc 950 lib/pacemaker/pcmk_sched_actions.c if ((then->rsc != NULL) && (then->rsc->priv->parent != NULL)) { rsc 958 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(first->rsc, rsc 1029 lib/pacemaker/pcmk_sched_actions.c (action->rsc? action->rsc->id : "<none>"), rsc 1326 lib/pacemaker/pcmk_sched_actions.c if ((action == NULL) || (action->rsc == NULL) rsc 1327 lib/pacemaker/pcmk_sched_actions.c || !pcmk__same_node(action->node, action->rsc->priv->lock_node)) { rsc 1427 lib/pacemaker/pcmk_sched_actions.c if (action->rsc != NULL) { rsc 1469 lib/pacemaker/pcmk_sched_actions.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 1471 lib/pacemaker/pcmk_sched_actions.c rsc->priv->cmds->output_actions(rsc); rsc 1544 lib/pacemaker/pcmk_sched_actions.c force_restart(pcmk_resource_t *rsc, const char *task, guint interval_ms, rsc 1547 lib/pacemaker/pcmk_sched_actions.c char *key = pcmk__op_key(rsc->id, task, interval_ms); rsc 1548 lib/pacemaker/pcmk_sched_actions.c pcmk_action_t *required = custom_action(rsc, key, task, NULL, FALSE, rsc 1549 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1552 lib/pacemaker/pcmk_sched_actions.c trigger_unfencing(rsc, node, "Device parameters changed", NULL, rsc 1553 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1566 lib/pacemaker/pcmk_sched_actions.c pcmk_resource_t *rsc = data; rsc 1572 lib/pacemaker/pcmk_sched_actions.c if (rsc->priv->variant > pcmk__rsc_variant_primitive) { rsc 1573 lib/pacemaker/pcmk_sched_actions.c g_list_foreach(rsc->priv->children, schedule_reload, user_data); rsc 1579 lib/pacemaker/pcmk_sched_actions.c || !pcmk_is_set(rsc->flags, pcmk__rsc_managed) rsc 1580 lib/pacemaker/pcmk_sched_actions.c || pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 1581 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, "Skip reload of %s:%s%s %s", rsc 1582 lib/pacemaker/pcmk_sched_actions.c rsc->id, rsc 1583 lib/pacemaker/pcmk_sched_actions.c pcmk_is_set(rsc->flags, pcmk__rsc_managed)? "" : " unmanaged", rsc 1584 lib/pacemaker/pcmk_sched_actions.c pcmk_is_set(rsc->flags, pcmk__rsc_failed)? " failed" : "", rsc 1592 lib/pacemaker/pcmk_sched_actions.c if (pcmk_is_set(rsc->flags, pcmk__rsc_start_pending)) { rsc 1593 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1595 lib/pacemaker/pcmk_sched_actions.c rsc->id); rsc 1596 lib/pacemaker/pcmk_sched_actions.c custom_action(rsc, stop_key(rsc), PCMK_ACTION_STOP, node, FALSE, rsc 1597 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1602 lib/pacemaker/pcmk_sched_actions.c pcmk__set_rsc_flags(rsc, pcmk__rsc_reload); rsc 1603 lib/pacemaker/pcmk_sched_actions.c reload = custom_action(rsc, reload_key(rsc), PCMK_ACTION_RELOAD_AGENT, node, rsc 1604 lib/pacemaker/pcmk_sched_actions.c FALSE, rsc->priv->scheduler); rsc 1608 lib/pacemaker/pcmk_sched_actions.c pcmk__new_ordering(NULL, NULL, reload, rsc, stop_key(rsc), NULL, rsc 1610 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1611 lib/pacemaker/pcmk_sched_actions.c pcmk__new_ordering(NULL, NULL, reload, rsc, demote_key(rsc), NULL, rsc 1613 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1631 lib/pacemaker/pcmk_sched_actions.c pcmk__check_action_config(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 1638 lib/pacemaker/pcmk_sched_actions.c CRM_CHECK((rsc != NULL) && (node != NULL) && (xml_op != NULL), rsc 1648 lib/pacemaker/pcmk_sched_actions.c if (pcmk__find_action_config(rsc, task, interval_ms, false) != NULL) { rsc 1649 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1651 lib/pacemaker/pcmk_sched_actions.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 1653 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk_is_set(rsc->priv->scheduler->flags, rsc 1655 lib/pacemaker/pcmk_sched_actions.c pcmk__schedule_cancel(rsc, rsc 1660 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_debug(rsc, "%s-interval %s for %s on %s is orphaned", rsc 1661 lib/pacemaker/pcmk_sched_actions.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 1668 lib/pacemaker/pcmk_sched_actions.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 1671 lib/pacemaker/pcmk_sched_actions.c digest_data = rsc_action_digest_cmp(rsc, xml_op, node, rsc 1672 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1674 lib/pacemaker/pcmk_sched_actions.c if (only_sanitized_changed(xml_op, digest_data, rsc->priv->scheduler)) { rsc 1675 lib/pacemaker/pcmk_sched_actions.c if (!pcmk__is_daemon && (rsc->priv->scheduler->priv->out != NULL)) { rsc 1676 lib/pacemaker/pcmk_sched_actions.c pcmk__output_t *out = rsc->priv->scheduler->priv->out; rsc 1681 lib/pacemaker/pcmk_sched_actions.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 1691 lib/pacemaker/pcmk_sched_actions.c force_restart(rsc, task, interval_ms, node); rsc 1704 lib/pacemaker/pcmk_sched_actions.c pcmk__reschedule_recurring(rsc, task, interval_ms, node); rsc 1709 lib/pacemaker/pcmk_sched_actions.c trigger_unfencing(rsc, node, rsc 1711 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1713 lib/pacemaker/pcmk_sched_actions.c schedule_reload((gpointer) rsc, (gpointer) node); rsc 1716 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1719 lib/pacemaker/pcmk_sched_actions.c rsc->id); rsc 1722 lib/pacemaker/pcmk_sched_actions.c force_restart(rsc, task, interval_ms, node); rsc 1771 lib/pacemaker/pcmk_sched_actions.c process_rsc_history(const xmlNode *rsc_entry, pcmk_resource_t *rsc, rsc 1779 lib/pacemaker/pcmk_sched_actions.c if (pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 1780 lib/pacemaker/pcmk_sched_actions.c if (pcmk__is_anonymous_clone(pe__const_top_resource(rsc, false))) { rsc 1784 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1787 lib/pacemaker/pcmk_sched_actions.c rsc->id); rsc 1789 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1791 lib/pacemaker/pcmk_sched_actions.c "clean-up for orphaned resource %s", rsc->id); rsc 1792 lib/pacemaker/pcmk_sched_actions.c pcmk__schedule_cleanup(rsc, node, false); rsc 1797 lib/pacemaker/pcmk_sched_actions.c if (pe_find_node_id(rsc->priv->active_nodes, rsc 1799 lib/pacemaker/pcmk_sched_actions.c if (pcmk__rsc_agent_changed(rsc, node, rsc_entry, false)) { rsc 1800 lib/pacemaker/pcmk_sched_actions.c pcmk__schedule_cleanup(rsc, node, false); rsc 1802 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, rsc 1805 lib/pacemaker/pcmk_sched_actions.c rsc->id, pcmk__node_name(node)); rsc 1809 lib/pacemaker/pcmk_sched_actions.c pcmk__rsc_trace(rsc, "Checking for configuration changes for %s on %s", rsc 1810 lib/pacemaker/pcmk_sched_actions.c rsc->id, pcmk__node_name(node)); rsc 1812 lib/pacemaker/pcmk_sched_actions.c if (pcmk__rsc_agent_changed(rsc, node, rsc_entry, true)) { rsc 1813 lib/pacemaker/pcmk_sched_actions.c pcmk__schedule_cleanup(rsc, node, false); rsc 1835 lib/pacemaker/pcmk_sched_actions.c && (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance) rsc 1838 lib/pacemaker/pcmk_sched_actions.c pcmk__schedule_cancel(rsc, rsc 1851 lib/pacemaker/pcmk_sched_actions.c if (pe__bundle_needs_remote_name(rsc)) { rsc 1859 lib/pacemaker/pcmk_sched_actions.c pcmk__add_param_check(rsc_op, rsc, node, pcmk__check_active); rsc 1861 lib/pacemaker/pcmk_sched_actions.c } else if (pcmk__check_action_config(rsc, node, rsc_op) rsc 1862 lib/pacemaker/pcmk_sched_actions.c && (pe_get_failcount(node, rsc, NULL, pcmk__fc_effective, rsc 1864 lib/pacemaker/pcmk_sched_actions.c pe__clear_failcount(rsc, node, "action definition changed", rsc 1865 lib/pacemaker/pcmk_sched_actions.c rsc->priv->scheduler); rsc 1900 lib/pacemaker/pcmk_sched_actions.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 1902 lib/pacemaker/pcmk_sched_actions.c if (pcmk__is_primitive(rsc)) { rsc 1903 lib/pacemaker/pcmk_sched_actions.c process_rsc_history(rsc_entry, rsc, node); rsc 116 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 123 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 125 lib/pacemaker/pcmk_sched_bundle.c pcmk__rsc_trace(rsc, "Assigning bundle %s", rsc->id); rsc 126 lib/pacemaker/pcmk_sched_bundle.c pcmk__set_rsc_flags(rsc, pcmk__rsc_assigning); rsc 128 lib/pacemaker/pcmk_sched_bundle.c pe__show_node_scores(!pcmk_is_set(rsc->priv->scheduler->flags, rsc 130 lib/pacemaker/pcmk_sched_bundle.c rsc, __func__, rsc->priv->allowed_nodes, rsc 131 lib/pacemaker/pcmk_sched_bundle.c rsc->priv->scheduler); rsc 134 lib/pacemaker/pcmk_sched_bundle.c containers = g_list_sort(pe__bundle_containers(rsc), pcmk__cmp_instance); rsc 135 lib/pacemaker/pcmk_sched_bundle.c pcmk__assign_instances(rsc, containers, pe__bundle_max(rsc), rsc 136 lib/pacemaker/pcmk_sched_bundle.c rsc->priv->fns->max_per_node(rsc)); rsc 140 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, assign_replica, (void *) &assign_data); rsc 143 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(rsc); rsc 150 lib/pacemaker/pcmk_sched_bundle.c if (pe__node_is_bundle_instance(rsc, node)) { rsc 160 lib/pacemaker/pcmk_sched_bundle.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_assigning|pcmk__rsc_unassigned); rsc 195 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_create_actions(pcmk_resource_t *rsc) rsc 201 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 203 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, create_replica_actions, NULL); rsc 205 lib/pacemaker/pcmk_sched_bundle.c containers = pe__bundle_containers(rsc); rsc 206 lib/pacemaker/pcmk_sched_bundle.c pcmk__create_instance_actions(rsc, containers); rsc 209 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(rsc); rsc 214 lib/pacemaker/pcmk_sched_bundle.c pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_PROMOTE, true, true); rsc 215 lib/pacemaker/pcmk_sched_bundle.c action = pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_PROMOTED, rsc 219 lib/pacemaker/pcmk_sched_bundle.c pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_DEMOTE, true, true); rsc 220 lib/pacemaker/pcmk_sched_bundle.c action = pe__new_rsc_pseudo_action(rsc, PCMK_ACTION_DEMOTED, rsc 304 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_internal_constraints(pcmk_resource_t *rsc) rsc 308 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 310 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, replica_internal_constraints, rsc); rsc 312 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(rsc); rsc 318 lib/pacemaker/pcmk_sched_bundle.c pcmk__order_resource_actions(rsc, PCMK_ACTION_START, bundled_resource, rsc 324 lib/pacemaker/pcmk_sched_bundle.c rsc, PCMK_ACTION_RUNNING, rsc 328 lib/pacemaker/pcmk_sched_bundle.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOP, bundled_resource, rsc 334 lib/pacemaker/pcmk_sched_bundle.c rsc, PCMK_ACTION_STOPPED, rsc 342 lib/pacemaker/pcmk_sched_bundle.c pcmk__promotable_restart_ordering(rsc); rsc 345 lib/pacemaker/pcmk_sched_bundle.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTE, bundled_resource, rsc 351 lib/pacemaker/pcmk_sched_bundle.c rsc, PCMK_ACTION_DEMOTED, rsc 355 lib/pacemaker/pcmk_sched_bundle.c pcmk__order_resource_actions(rsc, PCMK_ACTION_PROMOTE, rsc 361 lib/pacemaker/pcmk_sched_bundle.c rsc, PCMK_ACTION_PROMOTED, rsc 606 lib/pacemaker/pcmk_sched_bundle.c pcmk__with_bundle_colocations(const pcmk_resource_t *rsc, rsc 611 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc) && (orig_rsc != NULL) && (list != NULL)); rsc 614 lib/pacemaker/pcmk_sched_bundle.c if ((orig_rsc == rsc) rsc 617 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 625 lib/pacemaker/pcmk_sched_bundle.c bundled_rsc = pe__bundled_resource(rsc); rsc 638 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 646 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 653 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_with_colocations(const pcmk_resource_t *rsc, rsc 658 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc) && (orig_rsc != NULL) && (list != NULL)); rsc 661 lib/pacemaker/pcmk_sched_bundle.c if ((orig_rsc == rsc) rsc 664 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 672 lib/pacemaker/pcmk_sched_bundle.c bundled_rsc = pe__bundled_resource(rsc); rsc 685 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 693 lib/pacemaker/pcmk_sched_bundle.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 714 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert((action != NULL) && pcmk__is_bundle(action->rsc)); rsc 716 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(action->rsc); rsc 735 lib/pacemaker/pcmk_sched_bundle.c containers = pe__bundle_containers(action->rsc); rsc 771 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_apply_location(pcmk_resource_t *rsc, pcmk__location_t *location) rsc 775 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert((location != NULL) && pcmk__is_bundle(rsc)); rsc 777 lib/pacemaker/pcmk_sched_bundle.c pcmk__apply_location(rsc, location); rsc 778 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, apply_location_to_replica, location); rsc 780 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(rsc); rsc 867 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_add_actions_to_graph(pcmk_resource_t *rsc) rsc 871 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 873 lib/pacemaker/pcmk_sched_bundle.c bundled_resource = pe__bundled_resource(rsc); rsc 877 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, add_replica_actions_to_graph, rsc); rsc 1007 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node) rsc 1009 lib/pacemaker/pcmk_sched_bundle.c struct probe_data probe_data = { rsc, node, false }; rsc 1011 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 1012 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, create_replica_probes, &probe_data); rsc 1048 lib/pacemaker/pcmk_sched_bundle.c pcmk__output_bundle_actions(pcmk_resource_t *rsc) rsc 1050 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 1051 lib/pacemaker/pcmk_sched_bundle.c pe__foreach_bundle_replica(rsc, output_replica_actions, NULL); rsc 1056 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_add_utilization(const pcmk_resource_t *rsc, rsc 1062 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 1064 lib/pacemaker/pcmk_sched_bundle.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 1072 lib/pacemaker/pcmk_sched_bundle.c container = pe__first_container(rsc); rsc 1081 lib/pacemaker/pcmk_sched_bundle.c pcmk__bundle_shutdown_lock(pcmk_resource_t *rsc) rsc 1083 lib/pacemaker/pcmk_sched_bundle.c pcmk__assert(pcmk__is_bundle(rsc)); rsc 37 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 42 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc)); rsc 44 lib/pacemaker/pcmk_sched_clone.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 49 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_assigning)) { rsc 50 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_debug(rsc, "Breaking assignment loop involving %s", rsc->id); rsc 53 lib/pacemaker/pcmk_sched_clone.c pcmk__set_rsc_flags(rsc, pcmk__rsc_assigning); rsc 56 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 57 lib/pacemaker/pcmk_sched_clone.c pcmk__add_promotion_scores(rsc); rsc 61 lib/pacemaker/pcmk_sched_clone.c colocations = pcmk__this_with_colocations(rsc); rsc 66 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_trace(rsc, "%s: Assigning colocation %s primary %s first", rsc 67 lib/pacemaker/pcmk_sched_clone.c rsc->id, constraint->id, primary->id); rsc 73 lib/pacemaker/pcmk_sched_clone.c colocations = pcmk__with_this_colocations(rsc); rsc 74 lib/pacemaker/pcmk_sched_clone.c g_list_foreach(colocations, pcmk__add_dependent_scores, rsc); rsc 77 lib/pacemaker/pcmk_sched_clone.c pe__show_node_scores(!pcmk_is_set(rsc->priv->scheduler->flags, rsc 79 lib/pacemaker/pcmk_sched_clone.c rsc, __func__, rsc->priv->allowed_nodes, rsc 80 lib/pacemaker/pcmk_sched_clone.c rsc->priv->scheduler); rsc 82 lib/pacemaker/pcmk_sched_clone.c rsc->priv->children = g_list_sort(rsc->priv->children, pcmk__cmp_instance); rsc 83 lib/pacemaker/pcmk_sched_clone.c pcmk__assign_instances(rsc, rsc->priv->children, pe__clone_max(rsc), rsc 84 lib/pacemaker/pcmk_sched_clone.c pe__clone_node_max(rsc)); rsc 86 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 87 lib/pacemaker/pcmk_sched_clone.c pcmk__set_instance_roles(rsc); rsc 90 lib/pacemaker/pcmk_sched_clone.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_unassigned|pcmk__rsc_assigning); rsc 91 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_trace(rsc, "Assigned clone %s", rsc->id); rsc 102 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_create_actions(pcmk_resource_t *rsc) rsc 104 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc)); rsc 106 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_trace(rsc, "Creating actions for clone %s", rsc->id); rsc 107 lib/pacemaker/pcmk_sched_clone.c pcmk__create_instance_actions(rsc, rsc->priv->children); rsc 108 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 109 lib/pacemaker/pcmk_sched_clone.c pcmk__create_promotable_actions(rsc); rsc 120 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_internal_constraints(pcmk_resource_t *rsc) rsc 124 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc)); rsc 126 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_trace(rsc, "Creating internal constraints for clone %s", rsc->id); rsc 129 lib/pacemaker/pcmk_sched_clone.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOPPED, rsc 130 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_START, rsc 132 lib/pacemaker/pcmk_sched_clone.c pcmk__order_resource_actions(rsc, PCMK_ACTION_START, rsc 133 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_RUNNING, rsc 135 lib/pacemaker/pcmk_sched_clone.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOP, rsc 136 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_STOPPED, rsc 140 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 141 lib/pacemaker/pcmk_sched_clone.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTED, rsc 142 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_STOP, rsc 144 lib/pacemaker/pcmk_sched_clone.c pcmk__order_resource_actions(rsc, PCMK_ACTION_RUNNING, rsc 145 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_PROMOTE, rsc 149 lib/pacemaker/pcmk_sched_clone.c ordered = pe__clone_is_ordered(rsc); rsc 155 lib/pacemaker/pcmk_sched_clone.c rsc->priv->children = g_list_sort(rsc->priv->children, rsc 158 lib/pacemaker/pcmk_sched_clone.c for (GList *iter = rsc->priv->children; rsc 166 lib/pacemaker/pcmk_sched_clone.c pcmk__order_starts(rsc, instance, pcmk__ar_unrunnable_first_blocks rsc 169 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_RUNNING, rsc 173 lib/pacemaker/pcmk_sched_clone.c pcmk__order_stops(rsc, instance, pcmk__ar_then_implies_first_graphed); rsc 175 lib/pacemaker/pcmk_sched_clone.c rsc, PCMK_ACTION_STOPPED, rsc 192 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 193 lib/pacemaker/pcmk_sched_clone.c pcmk__order_promotable_instances(rsc); rsc 371 lib/pacemaker/pcmk_sched_clone.c pcmk__with_clone_colocations(const pcmk_resource_t *rsc, rsc 376 lib/pacemaker/pcmk_sched_clone.c CRM_CHECK((rsc != NULL) && (orig_rsc != NULL) && (list != NULL), return); rsc 377 lib/pacemaker/pcmk_sched_clone.c parent = rsc->priv->parent; rsc 379 lib/pacemaker/pcmk_sched_clone.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 389 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_with_colocations(const pcmk_resource_t *rsc, rsc 394 lib/pacemaker/pcmk_sched_clone.c CRM_CHECK((rsc != NULL) && (orig_rsc != NULL) && (list != NULL), return); rsc 395 lib/pacemaker/pcmk_sched_clone.c parent = rsc->priv->parent; rsc 397 lib/pacemaker/pcmk_sched_clone.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 417 lib/pacemaker/pcmk_sched_clone.c pcmk__assert((action != NULL) && pcmk__is_clone(action->rsc)); rsc 419 lib/pacemaker/pcmk_sched_clone.c return pcmk__collective_action_flags(action, action->rsc->priv->children, rsc 431 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_apply_location(pcmk_resource_t *rsc, pcmk__location_t *location) rsc 433 lib/pacemaker/pcmk_sched_clone.c CRM_CHECK((location != NULL) && pcmk__is_clone(rsc), return); rsc 435 lib/pacemaker/pcmk_sched_clone.c pcmk__apply_location(rsc, location); rsc 437 lib/pacemaker/pcmk_sched_clone.c for (GList *iter = rsc->priv->children; rsc 450 lib/pacemaker/pcmk_sched_clone.c pcmk_resource_t *rsc = user_data; rsc 452 lib/pacemaker/pcmk_sched_clone.c rsc->priv->cmds->action_flags((pcmk_action_t *) data, NULL); rsc 462 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_add_actions_to_graph(pcmk_resource_t *rsc) rsc 464 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc)); rsc 466 lib/pacemaker/pcmk_sched_clone.c g_list_foreach(rsc->priv->actions, call_action_flags, rsc); rsc 467 lib/pacemaker/pcmk_sched_clone.c pe__create_clone_notifications(rsc); rsc 469 lib/pacemaker/pcmk_sched_clone.c for (GList *iter = rsc->priv->children; rsc 477 lib/pacemaker/pcmk_sched_clone.c pcmk__add_rsc_actions_to_graph(rsc); rsc 478 lib/pacemaker/pcmk_sched_clone.c pe__free_clone_notification_data(rsc); rsc 492 lib/pacemaker/pcmk_sched_clone.c rsc_probed_on(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 494 lib/pacemaker/pcmk_sched_clone.c if (rsc->priv->children != NULL) { rsc 495 lib/pacemaker/pcmk_sched_clone.c for (GList *child_iter = rsc->priv->children; rsc 507 lib/pacemaker/pcmk_sched_clone.c if (rsc->priv->probed_nodes != NULL) { rsc 511 lib/pacemaker/pcmk_sched_clone.c g_hash_table_iter_init(&iter, rsc->priv->probed_nodes); rsc 592 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_create_probe(pcmk_resource_t *rsc, pcmk_node_t *node) rsc 594 lib/pacemaker/pcmk_sched_clone.c pcmk__assert((node != NULL) && pcmk__is_clone(rsc)); rsc 596 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_exclusive_probes)) { rsc 606 lib/pacemaker/pcmk_sched_clone.c pcmk_node_t *allowed = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 615 lib/pacemaker/pcmk_sched_clone.c pcmk__rsc_trace(rsc, rsc 618 lib/pacemaker/pcmk_sched_clone.c rsc->id, pcmk__node_name(node)); rsc 619 lib/pacemaker/pcmk_sched_clone.c g_hash_table_remove(rsc->priv->allowed_nodes, node->priv->id); rsc 624 lib/pacemaker/pcmk_sched_clone.c rsc->priv->children = g_list_sort(rsc->priv->children, rsc 626 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 627 lib/pacemaker/pcmk_sched_clone.c return pcmk__probe_resource_list(rsc->priv->children, node); rsc 629 lib/pacemaker/pcmk_sched_clone.c return probe_anonymous_clone(rsc, node); rsc 643 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml) rsc 647 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc) && (xml != NULL)); rsc 650 lib/pacemaker/pcmk_sched_clone.c crm_xml_add(xml, name, pcmk__flag_text(rsc->flags, pcmk__rsc_unique)); rsc 654 lib/pacemaker/pcmk_sched_clone.c crm_xml_add(xml, name, pcmk__flag_text(rsc->flags, pcmk__rsc_notify)); rsc 658 lib/pacemaker/pcmk_sched_clone.c crm_xml_add_int(xml, name, pe__clone_max(rsc)); rsc 662 lib/pacemaker/pcmk_sched_clone.c crm_xml_add_int(xml, name, pe__clone_node_max(rsc)); rsc 665 lib/pacemaker/pcmk_sched_clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 666 lib/pacemaker/pcmk_sched_clone.c int promoted_max = pe__clone_promoted_max(rsc); rsc 667 lib/pacemaker/pcmk_sched_clone.c int promoted_node_max = pe__clone_promoted_node_max(rsc); rsc 692 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_add_utilization(const pcmk_resource_t *rsc, rsc 699 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc) && (orig_rsc != NULL) rsc 702 lib/pacemaker/pcmk_sched_clone.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 707 lib/pacemaker/pcmk_sched_clone.c for (GList *iter = rsc->priv->children; rsc 731 lib/pacemaker/pcmk_sched_clone.c if (!existing && (rsc->priv->children != NULL)) { rsc 733 lib/pacemaker/pcmk_sched_clone.c child = (pcmk_resource_t *) rsc->priv->children->data; rsc 742 lib/pacemaker/pcmk_sched_clone.c pcmk__clone_shutdown_lock(pcmk_resource_t *rsc) rsc 744 lib/pacemaker/pcmk_sched_clone.c pcmk__assert(pcmk__is_clone(rsc)); rsc 41 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 50 lib/pacemaker/pcmk_sched_colocation.c if (pcmk__is_bundle_node(node) && pcmk__is_bundled(rsc) rsc 51 lib/pacemaker/pcmk_sched_colocation.c && (pe__const_top_resource(rsc, false) == pe__bundled_resource(rsc))) { rsc 54 lib/pacemaker/pcmk_sched_colocation.c } else if (rsc != NULL) { rsc 55 lib/pacemaker/pcmk_sched_colocation.c target = g_hash_table_lookup(rsc->priv->meta, rsc 208 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 210 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert((list != NULL) && (colocation != NULL) && (rsc != NULL)); rsc 212 lib/pacemaker/pcmk_sched_colocation.c pcmk__rsc_trace(rsc, rsc 217 lib/pacemaker/pcmk_sched_colocation.c pcmk_readable_score(colocation->score), rsc->id); rsc 235 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 237 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert((list != NULL) && (rsc != NULL)); rsc 251 lib/pacemaker/pcmk_sched_colocation.c pcmk__add_this_with(list, addition->data, rsc); rsc 268 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 270 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert((list != NULL) && (colocation != NULL) && (rsc != NULL)); rsc 272 lib/pacemaker/pcmk_sched_colocation.c pcmk__rsc_trace(rsc, rsc 277 lib/pacemaker/pcmk_sched_colocation.c pcmk_readable_score(colocation->score), rsc->id); rsc 295 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 297 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert((list != NULL) && (rsc != NULL)); rsc 311 lib/pacemaker/pcmk_sched_colocation.c pcmk__add_with_this(list, addition->data, rsc); rsc 456 lib/pacemaker/pcmk_sched_colocation.c unpack_influence(const char *coloc_id, const pcmk_resource_t *rsc, rsc 470 lib/pacemaker/pcmk_sched_colocation.c if (pcmk_is_set(rsc->flags, pcmk__rsc_critical)) { rsc 1061 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *rsc) rsc 1063 lib/pacemaker/pcmk_sched_colocation.c if (rsc == NULL) { rsc 1064 lib/pacemaker/pcmk_sched_colocation.c rsc = colocation->primary; rsc 1081 lib/pacemaker/pcmk_sched_colocation.c && !pcmk_is_set(rsc->flags, pcmk__rsc_failed) rsc 1082 lib/pacemaker/pcmk_sched_colocation.c && pcmk__list_of_1(rsc->priv->active_nodes)) { rsc 1090 lib/pacemaker/pcmk_sched_colocation.c || (rsc->priv->active_nodes == NULL); rsc 1102 lib/pacemaker/pcmk_sched_colocation.c mark_action_blocked(pcmk_resource_t *rsc, const char *task, rsc 1108 lib/pacemaker/pcmk_sched_colocation.c for (iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 1117 lib/pacemaker/pcmk_sched_colocation.c pcmk__update_action_for_orderings(action, rsc->priv->scheduler); rsc 1122 lib/pacemaker/pcmk_sched_colocation.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 1143 lib/pacemaker/pcmk_sched_colocation.c pcmk_resource_t *rsc = NULL; rsc 1156 lib/pacemaker/pcmk_sched_colocation.c pcmk__assert(action->rsc != NULL); // Start and promote are resource actions rsc 1162 lib/pacemaker/pcmk_sched_colocation.c rsc = uber_parent(action->rsc); rsc 1163 lib/pacemaker/pcmk_sched_colocation.c if (rsc->priv->parent != NULL) { rsc 1164 lib/pacemaker/pcmk_sched_colocation.c rsc = rsc->priv->parent; // Bundle rsc 1168 lib/pacemaker/pcmk_sched_colocation.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 1178 lib/pacemaker/pcmk_sched_colocation.c rsc->id, child->id, action->task); rsc 1184 lib/pacemaker/pcmk_sched_colocation.c rsc->id, action->rsc->id, action->task); rsc 1187 lib/pacemaker/pcmk_sched_colocation.c colocations = pcmk__with_this_colocations(rsc); rsc 1208 lib/pacemaker/pcmk_sched_colocation.c action->rsc); rsc 1211 lib/pacemaker/pcmk_sched_colocation.c action->rsc); rsc 1236 lib/pacemaker/pcmk_sched_colocation.c get_resource_for_role(const pcmk_resource_t *rsc) rsc 1238 lib/pacemaker/pcmk_sched_colocation.c if (pcmk_is_set(rsc->flags, pcmk__rsc_replica_container)) { rsc 1239 lib/pacemaker/pcmk_sched_colocation.c const pcmk_resource_t *child = pe__get_rsc_in_container(rsc); rsc 1245 lib/pacemaker/pcmk_sched_colocation.c return rsc; rsc 1539 lib/pacemaker/pcmk_sched_colocation.c pcmk_resource_t *rsc, const char *attr, rsc 1548 lib/pacemaker/pcmk_sched_colocation.c if ((colocation != NULL) && (rsc == colocation->dependent) rsc 1550 lib/pacemaker/pcmk_sched_colocation.c && pcmk__is_group(rsc->priv->parent) rsc 1551 lib/pacemaker/pcmk_sched_colocation.c && (rsc != rsc->priv->parent->priv->children->data)) { rsc 1563 lib/pacemaker/pcmk_sched_colocation.c allowed_nodes_orig = rsc->priv->allowed_nodes; rsc 1564 lib/pacemaker/pcmk_sched_colocation.c rsc->priv->allowed_nodes = pcmk__copy_node_table(allowed_nodes_orig); rsc 1565 lib/pacemaker/pcmk_sched_colocation.c for (GList *loc_iter = rsc->priv->scheduler->priv->location_constraints; rsc 1570 lib/pacemaker/pcmk_sched_colocation.c if (location->rsc == rsc->priv->parent) { rsc 1571 lib/pacemaker/pcmk_sched_colocation.c rsc->priv->cmds->apply_location(rsc, location); rsc 1577 lib/pacemaker/pcmk_sched_colocation.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 1582 lib/pacemaker/pcmk_sched_colocation.c && pcmk__str_eq(value, pcmk__colocation_node_attr(node, attr, rsc), rsc 1593 lib/pacemaker/pcmk_sched_colocation.c rsc->id, attr, value); rsc 1597 lib/pacemaker/pcmk_sched_colocation.c best_node, rsc->id, best_score, attr, value); rsc 1602 lib/pacemaker/pcmk_sched_colocation.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 1603 lib/pacemaker/pcmk_sched_colocation.c rsc->priv->allowed_nodes = allowed_nodes_orig; rsc 1617 lib/pacemaker/pcmk_sched_colocation.c allowed_on_one(const pcmk_resource_t *rsc) rsc 1623 lib/pacemaker/pcmk_sched_colocation.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 1626 lib/pacemaker/pcmk_sched_colocation.c pcmk__rsc_trace(rsc, "%s is allowed on multiple nodes", rsc->id); rsc 1630 lib/pacemaker/pcmk_sched_colocation.c pcmk__rsc_trace(rsc, "%s is allowed %s", rsc->id, rsc 2019 lib/pacemaker/pcmk_sched_colocation.c pcmk__with_this_colocations(const pcmk_resource_t *rsc) rsc 2023 lib/pacemaker/pcmk_sched_colocation.c rsc->priv->cmds->with_this_colocations(rsc, rsc, &list); rsc 2038 lib/pacemaker/pcmk_sched_colocation.c pcmk__this_with_colocations(const pcmk_resource_t *rsc) rsc 2042 lib/pacemaker/pcmk_sched_colocation.c rsc->priv->cmds->this_with_colocations(rsc, rsc, &list); rsc 196 lib/pacemaker/pcmk_sched_constraints.c pcmk_resource_t **rsc, pcmk__idref_t **tag) rsc 198 lib/pacemaker/pcmk_sched_constraints.c if (rsc != NULL) { rsc 199 lib/pacemaker/pcmk_sched_constraints.c *rsc = pcmk__find_constraint_resource(scheduler->priv->resources, id); rsc 200 lib/pacemaker/pcmk_sched_constraints.c if (*rsc != NULL) { rsc 255 lib/pacemaker/pcmk_sched_constraints.c pcmk_resource_t *rsc = NULL; rsc 259 lib/pacemaker/pcmk_sched_constraints.c &rsc, &tag)) { rsc 266 lib/pacemaker/pcmk_sched_constraints.c } else if (rsc) { rsc 357 lib/pacemaker/pcmk_sched_constraints.c pcmk_resource_t *rsc = NULL; rsc 376 lib/pacemaker/pcmk_sched_constraints.c if (!pcmk__valid_resource_or_tag(scheduler, id, &rsc, &tag)) { rsc 400 lib/pacemaker/pcmk_sched_constraints.c } else if ((rsc != NULL) && convert_rsc) { rsc 438 lib/pacemaker/pcmk_sched_constraints.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 440 lib/pacemaker/pcmk_sched_constraints.c rsc->priv->cmds->internal_constraints(rsc); rsc 29 lib/pacemaker/pcmk_sched_fencing.c rsc_is_known_on(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 31 lib/pacemaker/pcmk_sched_fencing.c const pcmk_resource_t *parent = rsc->priv->parent; rsc 33 lib/pacemaker/pcmk_sched_fencing.c if (g_hash_table_lookup(rsc->priv->probed_nodes, rsc 37 lib/pacemaker/pcmk_sched_fencing.c } else if (pcmk__is_primitive(rsc) && pcmk__is_anonymous_clone(parent) rsc 57 lib/pacemaker/pcmk_sched_fencing.c order_start_vs_fencing(pcmk_resource_t *rsc, pcmk_action_t *stonith_op) rsc 64 lib/pacemaker/pcmk_sched_fencing.c for (GList *iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 79 lib/pacemaker/pcmk_sched_fencing.c && (g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 81 lib/pacemaker/pcmk_sched_fencing.c && !rsc_is_known_on(rsc, target)) { rsc 92 lib/pacemaker/pcmk_sched_fencing.c pcmk__rsc_debug(rsc, "Ordering %s after %s recovery", rsc 111 lib/pacemaker/pcmk_sched_fencing.c order_stop_vs_fencing(pcmk_resource_t *rsc, pcmk_action_t *stonith_op) rsc 117 lib/pacemaker/pcmk_sched_fencing.c pcmk_resource_t *top = uber_parent(rsc); rsc 125 lib/pacemaker/pcmk_sched_fencing.c action_list = pe__resource_actions(rsc, target, PCMK_ACTION_STOP, FALSE); rsc 133 lib/pacemaker/pcmk_sched_fencing.c if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing) rsc 164 lib/pacemaker/pcmk_sched_fencing.c if (!pcmk__is_bundled(rsc)) { rsc 170 lib/pacemaker/pcmk_sched_fencing.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 172 lib/pacemaker/pcmk_sched_fencing.c rsc->id, (order_implicit? "after" : "because"), rsc 180 lib/pacemaker/pcmk_sched_fencing.c if (pcmk_is_set(rsc->flags, pcmk__rsc_notify)) { rsc 181 lib/pacemaker/pcmk_sched_fencing.c pe__order_notifs_after_fencing(action, rsc, stonith_op); rsc 204 lib/pacemaker/pcmk_sched_fencing.c rsc->id, pcmk__node_name(node)); rsc 205 lib/pacemaker/pcmk_sched_fencing.c pcmk__new_ordering(rsc, stop_key(rsc), NULL, NULL, rsc 207 lib/pacemaker/pcmk_sched_fencing.c pcmk__ar_ordered, rsc->private->scheduler); rsc 214 lib/pacemaker/pcmk_sched_fencing.c action_list = pe__resource_actions(rsc, target, PCMK_ACTION_DEMOTE, FALSE); rsc 220 lib/pacemaker/pcmk_sched_fencing.c || pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 222 lib/pacemaker/pcmk_sched_fencing.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 223 lib/pacemaker/pcmk_sched_fencing.c pcmk__rsc_info(rsc, rsc 226 lib/pacemaker/pcmk_sched_fencing.c rsc->id, pcmk__node_name(target)); rsc 228 lib/pacemaker/pcmk_sched_fencing.c pcmk__rsc_info(rsc, "%s is implicit after %s is fenced", rsc 238 lib/pacemaker/pcmk_sched_fencing.c if (pcmk__is_bundled(rsc)) { rsc 259 lib/pacemaker/pcmk_sched_fencing.c rsc_stonith_ordering(pcmk_resource_t *rsc, pcmk_action_t *stonith_op) rsc 261 lib/pacemaker/pcmk_sched_fencing.c if (rsc->priv->children != NULL) { rsc 263 lib/pacemaker/pcmk_sched_fencing.c for (GList *iter = rsc->priv->children; rsc 271 lib/pacemaker/pcmk_sched_fencing.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 272 lib/pacemaker/pcmk_sched_fencing.c pcmk__rsc_trace(rsc, rsc 274 lib/pacemaker/pcmk_sched_fencing.c "%s", rsc->id); rsc 277 lib/pacemaker/pcmk_sched_fencing.c order_start_vs_fencing(rsc, stonith_op); rsc 278 lib/pacemaker/pcmk_sched_fencing.c order_stop_vs_fencing(rsc, stonith_op); rsc 312 lib/pacemaker/pcmk_sched_fencing.c pcmk__order_vs_unfence(const pcmk_resource_t *rsc, pcmk_node_t *node, rsc 323 lib/pacemaker/pcmk_sched_fencing.c if ((pcmk_is_set(rsc->flags, pcmk__rsc_fence_device) rsc 324 lib/pacemaker/pcmk_sched_fencing.c && pcmk_is_set(rsc->priv->scheduler->flags, rsc 326 lib/pacemaker/pcmk_sched_fencing.c || pcmk_is_set(rsc->flags, pcmk__rsc_needs_unfencing)) { rsc 340 lib/pacemaker/pcmk_sched_fencing.c rsc->id, action->task); rsc 476 lib/pacemaker/pcmk_sched_fencing.c pcmk_resource_t *rsc = (pcmk_resource_t *) user_data; rsc 479 lib/pacemaker/pcmk_sched_fencing.c false, rsc->priv->scheduler); rsc 482 lib/pacemaker/pcmk_sched_fencing.c rsc->id, unfence->uuid); rsc 499 lib/pacemaker/pcmk_sched_fencing.c pcmk__new_ordering(rsc, stop_key(rsc), NULL, rsc 502 lib/pacemaker/pcmk_sched_fencing.c rsc->priv->scheduler); rsc 505 lib/pacemaker/pcmk_sched_fencing.c rsc, start_key(rsc), NULL, rsc 508 lib/pacemaker/pcmk_sched_fencing.c rsc->priv->scheduler); rsc 40 lib/pacemaker/pcmk_sched_group.c pcmk__group_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 46 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc)); rsc 48 lib/pacemaker/pcmk_sched_group.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 49 lib/pacemaker/pcmk_sched_group.c return rsc->priv->assigned_node; // Assignment already done rsc 51 lib/pacemaker/pcmk_sched_group.c if (pcmk_is_set(rsc->flags, pcmk__rsc_assigning)) { rsc 52 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_debug(rsc, "Assignment dependency loop detected involving %s", rsc 53 lib/pacemaker/pcmk_sched_group.c rsc->id); rsc 57 lib/pacemaker/pcmk_sched_group.c if (rsc->priv->children == NULL) { rsc 59 lib/pacemaker/pcmk_sched_group.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_unassigned); rsc 63 lib/pacemaker/pcmk_sched_group.c pcmk__set_rsc_flags(rsc, pcmk__rsc_assigning); rsc 64 lib/pacemaker/pcmk_sched_group.c first_member = (pcmk_resource_t *) rsc->priv->children->data; rsc 65 lib/pacemaker/pcmk_sched_group.c rsc->priv->orig_role = first_member->priv->orig_role; rsc 67 lib/pacemaker/pcmk_sched_group.c pe__show_node_scores(!pcmk_is_set(rsc->priv->scheduler->flags, rsc 69 lib/pacemaker/pcmk_sched_group.c rsc, __func__, rsc->priv->allowed_nodes, rsc 70 lib/pacemaker/pcmk_sched_group.c rsc->priv->scheduler); rsc 72 lib/pacemaker/pcmk_sched_group.c for (GList *iter = rsc->priv->children; rsc 78 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(rsc, "Assigning group %s member %s", rsc 79 lib/pacemaker/pcmk_sched_group.c rsc->id, member->id); rsc 86 lib/pacemaker/pcmk_sched_group.c pe__set_next_role(rsc, first_member->priv->next_role, rsc 88 lib/pacemaker/pcmk_sched_group.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_assigning|pcmk__rsc_unassigned); rsc 90 lib/pacemaker/pcmk_sched_group.c if (!pe__group_flag_is_set(rsc, pcmk__group_colocated)) { rsc 123 lib/pacemaker/pcmk_sched_group.c pcmk__group_create_actions(pcmk_resource_t *rsc) rsc 125 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc)); rsc 127 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(rsc, "Creating actions for group %s", rsc->id); rsc 130 lib/pacemaker/pcmk_sched_group.c for (GList *iter = rsc->priv->children; rsc 139 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_START); rsc 140 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_RUNNING); rsc 141 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_STOP); rsc 142 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_STOPPED); rsc 143 lib/pacemaker/pcmk_sched_group.c if (crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 145 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_DEMOTE); rsc 146 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_DEMOTED); rsc 147 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_PROMOTE); rsc 148 lib/pacemaker/pcmk_sched_group.c create_group_pseudo_op(rsc, PCMK_ACTION_PROMOTED); rsc 323 lib/pacemaker/pcmk_sched_group.c pcmk__group_internal_constraints(pcmk_resource_t *rsc) rsc 328 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc)); rsc 333 lib/pacemaker/pcmk_sched_group.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOP, rsc 334 lib/pacemaker/pcmk_sched_group.c rsc, PCMK_ACTION_STOPPED, rsc 336 lib/pacemaker/pcmk_sched_group.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOPPED, rsc 337 lib/pacemaker/pcmk_sched_group.c rsc, PCMK_ACTION_START, rsc 339 lib/pacemaker/pcmk_sched_group.c pcmk__order_resource_actions(rsc, PCMK_ACTION_START, rsc 340 lib/pacemaker/pcmk_sched_group.c rsc, PCMK_ACTION_RUNNING, rsc 343 lib/pacemaker/pcmk_sched_group.c top = pe__const_top_resource(rsc, false); rsc 345 lib/pacemaker/pcmk_sched_group.c member_data.ordered = pe__group_flag_is_set(rsc, pcmk__group_ordered); rsc 346 lib/pacemaker/pcmk_sched_group.c member_data.colocated = pe__group_flag_is_set(rsc, pcmk__group_colocated); rsc 348 lib/pacemaker/pcmk_sched_group.c g_list_foreach(rsc->priv->children, member_internal_constraints, rsc 560 lib/pacemaker/pcmk_sched_group.c for (GList *iter = action->rsc->priv->children; rsc 581 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, "%s is mandatory because %s is", rsc 593 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, "%s is unrunnable because %s is", rsc 605 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(action->rsc, rsc 647 lib/pacemaker/pcmk_sched_group.c pcmk__assert((first != NULL) && (then != NULL) && (then->rsc != NULL) rsc 655 lib/pacemaker/pcmk_sched_group.c for (GList *iter = then->rsc->priv->children; rsc 683 lib/pacemaker/pcmk_sched_group.c pcmk__group_apply_location(pcmk_resource_t *rsc, pcmk__location_t *location) rsc 688 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc) && (location != NULL)); rsc 700 lib/pacemaker/pcmk_sched_group.c pcmk__apply_location(rsc, location); rsc 703 lib/pacemaker/pcmk_sched_group.c for (GList *iter = rsc->priv->children; rsc 708 lib/pacemaker/pcmk_sched_group.c if (pe__group_flag_is_set(rsc, pcmk__group_colocated) rsc 709 lib/pacemaker/pcmk_sched_group.c && (iter != rsc->priv->children)) { rsc 734 lib/pacemaker/pcmk_sched_group.c pcmk__group_colocated_resources(const pcmk_resource_t *rsc, rsc 738 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc)); rsc 741 lib/pacemaker/pcmk_sched_group.c orig_rsc = rsc; rsc 744 lib/pacemaker/pcmk_sched_group.c if (pe__group_flag_is_set(rsc, pcmk__group_colocated) rsc 745 lib/pacemaker/pcmk_sched_group.c || pcmk__is_clone(rsc->priv->parent)) { rsc 750 lib/pacemaker/pcmk_sched_group.c colocated_rscs = g_list_prepend(colocated_rscs, (gpointer) rsc); rsc 752 lib/pacemaker/pcmk_sched_group.c for (const GList *iter = rsc->priv->children; rsc 762 lib/pacemaker/pcmk_sched_group.c } else if (rsc->priv->children != NULL) { rsc 766 lib/pacemaker/pcmk_sched_group.c colocated_rscs = pcmk__colocated_resources(rsc, orig_rsc, rsc 775 lib/pacemaker/pcmk_sched_group.c pcmk__with_group_colocations(const pcmk_resource_t *rsc, rsc 781 lib/pacemaker/pcmk_sched_group.c pcmk__assert((orig_rsc != NULL) && (list != NULL) && pcmk__is_group(rsc)); rsc 782 lib/pacemaker/pcmk_sched_group.c parent = rsc->priv->parent; rsc 785 lib/pacemaker/pcmk_sched_group.c if (rsc->priv->children == NULL) { rsc 793 lib/pacemaker/pcmk_sched_group.c if ((orig_rsc != rsc) && (orig_rsc != pe__last_group_member(rsc))) { rsc 797 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(rsc, "Adding 'with %s' colocations to list for %s", rsc 798 lib/pacemaker/pcmk_sched_group.c rsc->id, orig_rsc->id); rsc 801 lib/pacemaker/pcmk_sched_group.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 809 lib/pacemaker/pcmk_sched_group.c if (!pe__group_flag_is_set(rsc, pcmk__group_colocated)) { rsc 815 lib/pacemaker/pcmk_sched_group.c for (const GList *iter = rsc->priv->children; rsc 829 lib/pacemaker/pcmk_sched_group.c pcmk__group_with_colocations(const pcmk_resource_t *rsc, rsc 835 lib/pacemaker/pcmk_sched_group.c pcmk__assert((orig_rsc != NULL) && (list != NULL) && pcmk__is_group(rsc)); rsc 836 lib/pacemaker/pcmk_sched_group.c parent = rsc->priv->parent; rsc 839 lib/pacemaker/pcmk_sched_group.c if (rsc->priv->children == NULL) { rsc 846 lib/pacemaker/pcmk_sched_group.c if ((rsc == orig_rsc) || (orig_rsc == rsc->priv->children->data)) { rsc 847 lib/pacemaker/pcmk_sched_group.c pcmk__rsc_trace(rsc, "Adding '%s with' colocations to list for %s", rsc 848 lib/pacemaker/pcmk_sched_group.c rsc->id, orig_rsc->id); rsc 851 lib/pacemaker/pcmk_sched_group.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 859 lib/pacemaker/pcmk_sched_group.c if (!pe__group_flag_is_set(rsc, pcmk__group_colocated)) { rsc 865 lib/pacemaker/pcmk_sched_group.c for (const GList *iter = rsc->priv->children; rsc 882 lib/pacemaker/pcmk_sched_group.c for (const GList *iter = rsc->priv->children; rsc 893 lib/pacemaker/pcmk_sched_group.c rsc->id, orig_rsc->id, member->id); rsc 894 lib/pacemaker/pcmk_sched_group.c for (const GList *cons_iter = rsc->priv->this_with_colocations; rsc 995 lib/pacemaker/pcmk_sched_group.c pcmk__group_add_utilization(const pcmk_resource_t *rsc, rsc 1002 lib/pacemaker/pcmk_sched_group.c && pcmk__is_group(rsc)); rsc 1004 lib/pacemaker/pcmk_sched_group.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 1009 lib/pacemaker/pcmk_sched_group.c orig_rsc->id, rsc->id); rsc 1010 lib/pacemaker/pcmk_sched_group.c if (pe__group_flag_is_set(rsc, pcmk__group_colocated) rsc 1011 lib/pacemaker/pcmk_sched_group.c || pcmk__is_clone(rsc->priv->parent)) { rsc 1014 lib/pacemaker/pcmk_sched_group.c for (GList *iter = rsc->priv->children; rsc 1026 lib/pacemaker/pcmk_sched_group.c } else if (rsc->priv->children != NULL) { rsc 1028 lib/pacemaker/pcmk_sched_group.c member = (pcmk_resource_t *) rsc->priv->children->data; rsc 1040 lib/pacemaker/pcmk_sched_group.c pcmk__group_shutdown_lock(pcmk_resource_t *rsc) rsc 1042 lib/pacemaker/pcmk_sched_group.c pcmk__assert(pcmk__is_group(rsc)); rsc 1044 lib/pacemaker/pcmk_sched_group.c for (GList *iter = rsc->priv->children; rsc 149 lib/pacemaker/pcmk_sched_instances.c apply_parent_colocations(const pcmk_resource_t *rsc, GHashTable **nodes) rsc 151 lib/pacemaker/pcmk_sched_instances.c GList *colocations = pcmk__this_with_colocations(rsc); rsc 158 lib/pacemaker/pcmk_sched_instances.c other->priv->cmds->add_colocated_node_scores(other, rsc, rsc->id, rsc 163 lib/pacemaker/pcmk_sched_instances.c colocations = pcmk__with_this_colocations(rsc); rsc 170 lib/pacemaker/pcmk_sched_instances.c if (!pcmk__colocation_has_influence(colocation, rsc)) { rsc 173 lib/pacemaker/pcmk_sched_instances.c other->priv->cmds->add_colocated_node_scores(other, rsc, rsc->id, rsc 251 lib/pacemaker/pcmk_sched_instances.c did_fail(const pcmk_resource_t *rsc) rsc 253 lib/pacemaker/pcmk_sched_instances.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 257 lib/pacemaker/pcmk_sched_instances.c for (GList *iter = rsc->priv->children; rsc 277 lib/pacemaker/pcmk_sched_instances.c node_is_allowed(const pcmk_resource_t *rsc, pcmk_node_t **node) rsc 280 lib/pacemaker/pcmk_sched_instances.c pcmk_node_t *allowed = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 284 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(rsc, "%s: current location (%s) is unavailable", rsc 285 lib/pacemaker/pcmk_sched_instances.c rsc->id, pcmk__node_name(*node)); rsc 599 lib/pacemaker/pcmk_sched_instances.c assign_instance_early(const pcmk_resource_t *rsc, pcmk_resource_t *instance, rsc 686 lib/pacemaker/pcmk_sched_instances.c rsc->id, pcmk__node_name(chosen), instance->id, rsc 720 lib/pacemaker/pcmk_sched_instances.c reset_allowed_node_counts(pcmk_resource_t *rsc) rsc 726 lib/pacemaker/pcmk_sched_instances.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 1048 lib/pacemaker/pcmk_sched_instances.c get_instance_list(const pcmk_resource_t *rsc) rsc 1050 lib/pacemaker/pcmk_sched_instances.c if (pcmk__is_bundle(rsc)) { rsc 1051 lib/pacemaker/pcmk_sched_instances.c return pe__bundle_containers(rsc); rsc 1053 lib/pacemaker/pcmk_sched_instances.c return rsc->priv->children; rsc 1065 lib/pacemaker/pcmk_sched_instances.c free_instance_list(const pcmk_resource_t *rsc, GList *list) rsc 1067 lib/pacemaker/pcmk_sched_instances.c if (list != rsc->priv->children) { rsc 1150 lib/pacemaker/pcmk_sched_instances.c const pcmk_resource_t *rsc, rsc 1156 lib/pacemaker/pcmk_sched_instances.c instances = get_instance_list(rsc); rsc 1163 lib/pacemaker/pcmk_sched_instances.c display_role(role), rsc->id, instance->id, rsc 1165 lib/pacemaker/pcmk_sched_instances.c free_instance_list(rsc, instances); // Only frees list, not contents rsc 1169 lib/pacemaker/pcmk_sched_instances.c free_instance_list(rsc, instances); rsc 1173 lib/pacemaker/pcmk_sched_instances.c display_role(role), rsc->id, match_rsc->id, rsc 1193 lib/pacemaker/pcmk_sched_instances.c const pcmk_resource_t *rsc, enum rsc_role_e role, rsc 1209 lib/pacemaker/pcmk_sched_instances.c return find_compatible_instance_on_node(match_rsc, rsc, node, role, rsc 1217 lib/pacemaker/pcmk_sched_instances.c instance = find_compatible_instance_on_node(match_rsc, rsc, rsc 1223 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_debug(rsc, "No %s instance found compatible with %s", rsc 1224 lib/pacemaker/pcmk_sched_instances.c rsc->id, match_rsc->id); rsc 1249 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(then->rsc, rsc 1252 lib/pacemaker/pcmk_sched_instances.c first->rsc->id, then_instance->id); rsc 1259 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_info(then->rsc, rsc 1262 lib/pacemaker/pcmk_sched_instances.c then_instance->id, first->rsc->id); rsc 1288 lib/pacemaker/pcmk_sched_instances.c const pcmk_resource_t *rsc = NULL; rsc 1314 lib/pacemaker/pcmk_sched_instances.c rsc = pe__get_rsc_in_container(instance); rsc 1316 lib/pacemaker/pcmk_sched_instances.c if (rsc == NULL) { rsc 1317 lib/pacemaker/pcmk_sched_instances.c rsc = instance; // No containerized resource, use instance itself rsc 1322 lib/pacemaker/pcmk_sched_instances.c matching_action = find_first_action(rsc->priv->actions, NULL, rsc 1358 lib/pacemaker/pcmk_sched_instances.c const pcmk_resource_t *instance = action->rsc->priv->children->data; rsc 1414 lib/pacemaker/pcmk_sched_instances.c instances = get_instance_list(then->rsc); rsc 1424 lib/pacemaker/pcmk_sched_instances.c first->rsc, rsc 1456 lib/pacemaker/pcmk_sched_instances.c filter, type, then->rsc->priv->scheduler); rsc 1458 lib/pacemaker/pcmk_sched_instances.c free_instance_list(then->rsc, instances); rsc 1475 lib/pacemaker/pcmk_sched_instances.c pcmk_resource_t *rsc = NULL; rsc 1477 lib/pacemaker/pcmk_sched_instances.c if ((first->rsc == NULL) || (then->rsc == NULL)) { rsc 1483 lib/pacemaker/pcmk_sched_instances.c if (first->rsc == then->rsc) { rsc 1489 lib/pacemaker/pcmk_sched_instances.c if ((first->rsc->priv->variant < pcmk__rsc_variant_clone) rsc 1490 lib/pacemaker/pcmk_sched_instances.c || (then->rsc->priv->variant < pcmk__rsc_variant_clone)) { rsc 1498 lib/pacemaker/pcmk_sched_instances.c rsc = first->rsc; rsc 1500 lib/pacemaker/pcmk_sched_instances.c rsc = then->rsc; rsc 1503 lib/pacemaker/pcmk_sched_instances.c interleave = crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 1505 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(rsc, "'%s then %s' will %sbe interleaved (based on %s)", rsc 1507 lib/pacemaker/pcmk_sched_instances.c rsc->id); rsc 1606 lib/pacemaker/pcmk_sched_instances.c if (then->rsc == NULL) { rsc 1614 lib/pacemaker/pcmk_sched_instances.c GList *instances = get_instance_list(then->rsc); rsc 1627 lib/pacemaker/pcmk_sched_instances.c free_instance_list(then->rsc, instances); rsc 1634 lib/pacemaker/pcmk_sched_instances.c "Action summary", action->rsc->id, \ rsc 1674 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, "%s has no %s action on %s", rsc 1679 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, "%s has %s for %s on %s", rsc 1703 lib/pacemaker/pcmk_sched_instances.c pcmk__rsc_trace(action->rsc, rsc 149 lib/pacemaker/pcmk_sched_location.c const pcmk_node_t *node, const pcmk_resource_t *rsc, int *score) rsc 155 lib/pacemaker/pcmk_sched_location.c target = g_hash_table_lookup(rsc->priv->meta, rsc 161 lib/pacemaker/pcmk_sched_location.c constraint_id, rsc->id, pcmk__node_name(node), attr_name); rsc 193 lib/pacemaker/pcmk_sched_location.c generate_location_rule(pcmk_resource_t *rsc, xmlNode *rule_xml, rsc 209 lib/pacemaker/pcmk_sched_location.c rule_xml = pcmk__xe_resolve_idref(rule_xml, rsc->priv->scheduler->input); rsc 257 lib/pacemaker/pcmk_sched_location.c location_rule = pcmk__new_location(rule_id, rsc, 0, discovery, NULL); rsc 262 lib/pacemaker/pcmk_sched_location.c for (iter = rsc->priv->scheduler->nodes; rsc 269 lib/pacemaker/pcmk_sched_location.c rule_input->rsc_params = pe_rsc_params(rsc, node, rsc 270 lib/pacemaker/pcmk_sched_location.c rsc->priv->scheduler); rsc 278 lib/pacemaker/pcmk_sched_location.c && (score_from_attr(constraint_id, score_attr, node, rsc, rsc 286 lib/pacemaker/pcmk_sched_location.c pcmk__rsc_trace(rsc, rsc 288 lib/pacemaker/pcmk_sched_location.c constraint_id, rsc->id, pcmk__node_name(node), rsc 304 lib/pacemaker/pcmk_sched_location.c unpack_rsc_location(xmlNode *xml_obj, pcmk_resource_t *rsc, rsc 315 lib/pacemaker/pcmk_sched_location.c if (rsc == NULL) { rsc 328 lib/pacemaker/pcmk_sched_location.c pcmk_node_t *match = pcmk_find_node(rsc->priv->scheduler, node); rsc 359 lib/pacemaker/pcmk_sched_location.c location = pcmk__new_location(id, rsc, score_i, discovery, match); rsc 370 lib/pacemaker/pcmk_sched_location.c .now = rsc->priv->scheduler->priv->now, rsc 371 lib/pacemaker/pcmk_sched_location.c .rsc_meta = rsc->priv->meta, rsc 377 lib/pacemaker/pcmk_sched_location.c generate_location_rule(rsc, rule_xml, discovery, next_change, rsc 386 lib/pacemaker/pcmk_sched_location.c pcmk__update_recheck_time(t, rsc->priv->scheduler, rsc 400 lib/pacemaker/pcmk_sched_location.c pcmk_resource_t *rsc; rsc 402 lib/pacemaker/pcmk_sched_location.c rsc = pcmk__find_constraint_resource(scheduler->priv->resources, value); rsc 403 lib/pacemaker/pcmk_sched_location.c unpack_rsc_location(xml_obj, rsc, NULL, NULL, NULL, 0, NULL); rsc 471 lib/pacemaker/pcmk_sched_location.c pcmk_resource_t *rsc = NULL; rsc 498 lib/pacemaker/pcmk_sched_location.c if (!pcmk__valid_resource_or_tag(scheduler, rsc_id, &rsc, &tag)) { rsc 503 lib/pacemaker/pcmk_sched_location.c } else if (rsc != NULL) { rsc 642 lib/pacemaker/pcmk_sched_location.c pcmk__new_location(const char *id, pcmk_resource_t *rsc, rsc 654 lib/pacemaker/pcmk_sched_location.c if (rsc == NULL) { rsc 661 lib/pacemaker/pcmk_sched_location.c new_con->rsc = rsc; rsc 675 lib/pacemaker/pcmk_sched_location.c pcmk__set_rsc_flags(rsc, pcmk__rsc_exclusive_probes); rsc 689 lib/pacemaker/pcmk_sched_location.c rsc->priv->scheduler->priv->location_constraints = rsc 690 lib/pacemaker/pcmk_sched_location.c g_list_prepend(rsc->priv->scheduler->priv->location_constraints, rsc 692 lib/pacemaker/pcmk_sched_location.c rsc->priv->location_constraints = rsc 693 lib/pacemaker/pcmk_sched_location.c g_list_prepend(rsc->priv->location_constraints, new_con); rsc 711 lib/pacemaker/pcmk_sched_location.c location->rsc->priv->cmds->apply_location(location->rsc, location); rsc 726 lib/pacemaker/pcmk_sched_location.c pcmk__apply_location(pcmk_resource_t *rsc, pcmk__location_t *location) rsc 730 lib/pacemaker/pcmk_sched_location.c pcmk__assert((rsc != NULL) && (location != NULL)); rsc 734 lib/pacemaker/pcmk_sched_location.c if (need_role && (location->role_filter != rsc->priv->next_role)) { rsc 735 lib/pacemaker/pcmk_sched_location.c pcmk__rsc_trace(rsc, rsc 737 lib/pacemaker/pcmk_sched_location.c location->id, rsc->id, rsc 738 lib/pacemaker/pcmk_sched_location.c pcmk_role_text(rsc->priv->next_role), rsc 744 lib/pacemaker/pcmk_sched_location.c pcmk__rsc_trace(rsc, "Not applying %s to %s because no nodes match", rsc 745 lib/pacemaker/pcmk_sched_location.c location->id, rsc->id); rsc 753 lib/pacemaker/pcmk_sched_location.c allowed_node = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 756 lib/pacemaker/pcmk_sched_location.c pcmk__rsc_trace(rsc, "Applying %s%s%s to %s score on %s: %c %s", rsc 760 lib/pacemaker/pcmk_sched_location.c rsc->id, pcmk__node_name(node), rsc 766 lib/pacemaker/pcmk_sched_location.c g_hash_table_insert(rsc->priv->allowed_nodes, rsc 777 lib/pacemaker/pcmk_sched_location.c pcmk__set_rsc_flags(rsc, pcmk__rsc_exclusive_probes); rsc 46 lib/pacemaker/pcmk_sched_migration.c pcmk__create_migration_actions(pcmk_resource_t *rsc, const pcmk_node_t *current) rsc 52 lib/pacemaker/pcmk_sched_migration.c const pcmk_node_t *target_node = rsc->priv->partial_migration_target; rsc 54 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, "Creating actions to %smigrate %s from %s to %s", rsc 56 lib/pacemaker/pcmk_sched_migration.c rsc->id, pcmk__node_name(current), rsc 57 lib/pacemaker/pcmk_sched_migration.c pcmk__node_name(rsc->priv->assigned_node)); rsc 58 lib/pacemaker/pcmk_sched_migration.c start = start_action(rsc, rsc->priv->assigned_node, TRUE); rsc 59 lib/pacemaker/pcmk_sched_migration.c stop = stop_action(rsc, current, TRUE); rsc 62 lib/pacemaker/pcmk_sched_migration.c migrate_to = custom_action(rsc, pcmk__op_key(rsc->id, rsc 65 lib/pacemaker/pcmk_sched_migration.c rsc->priv->scheduler); rsc 67 lib/pacemaker/pcmk_sched_migration.c migrate_from = custom_action(rsc, pcmk__op_key(rsc->id, rsc 70 lib/pacemaker/pcmk_sched_migration.c rsc->priv->assigned_node, TRUE, rsc 71 lib/pacemaker/pcmk_sched_migration.c rsc->priv->scheduler); rsc 85 lib/pacemaker/pcmk_sched_migration.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_MONITOR, 0), rsc 87 lib/pacemaker/pcmk_sched_migration.c rsc, rsc 88 lib/pacemaker/pcmk_sched_migration.c pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_TO, 0), rsc 89 lib/pacemaker/pcmk_sched_migration.c NULL, pcmk__ar_ordered, rsc->priv->scheduler); rsc 90 lib/pacemaker/pcmk_sched_migration.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_TO, 0), rsc 92 lib/pacemaker/pcmk_sched_migration.c rsc, rsc 93 lib/pacemaker/pcmk_sched_migration.c pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_FROM, 0), rsc 96 lib/pacemaker/pcmk_sched_migration.c rsc->priv->scheduler); rsc 102 lib/pacemaker/pcmk_sched_migration.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_MONITOR, 0), rsc 104 lib/pacemaker/pcmk_sched_migration.c rsc, rsc 105 lib/pacemaker/pcmk_sched_migration.c pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_FROM, 0), rsc 106 lib/pacemaker/pcmk_sched_migration.c NULL, pcmk__ar_ordered, rsc->priv->scheduler); rsc 110 lib/pacemaker/pcmk_sched_migration.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_FROM, 0), rsc 112 lib/pacemaker/pcmk_sched_migration.c rsc, pcmk__op_key(rsc->id, PCMK_ACTION_STOP, 0), rsc 115 lib/pacemaker/pcmk_sched_migration.c rsc->priv->scheduler); rsc 116 lib/pacemaker/pcmk_sched_migration.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_FROM, 0), rsc 118 lib/pacemaker/pcmk_sched_migration.c rsc, pcmk__op_key(rsc->id, PCMK_ACTION_START, 0), rsc 123 lib/pacemaker/pcmk_sched_migration.c rsc->priv->scheduler); rsc 126 lib/pacemaker/pcmk_sched_migration.c add_migration_meta(migrate_to, current, rsc->priv->assigned_node); rsc 128 lib/pacemaker/pcmk_sched_migration.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 145 lib/pacemaker/pcmk_sched_migration.c add_migration_meta(migrate_from, current, rsc->priv->assigned_node); rsc 159 lib/pacemaker/pcmk_sched_migration.c pcmk_resource_t *rsc = (pcmk_resource_t *) user_data; rsc 163 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, rsc 165 lib/pacemaker/pcmk_sched_migration.c rsc->id, pcmk__node_name(dangling_source)); rsc 166 lib/pacemaker/pcmk_sched_migration.c stop = stop_action(rsc, dangling_source, FALSE); rsc 180 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_can_migrate(const pcmk_resource_t *rsc, const pcmk_node_t *current) rsc 182 lib/pacemaker/pcmk_sched_migration.c CRM_CHECK(rsc != NULL, return false); rsc 184 lib/pacemaker/pcmk_sched_migration.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_migratable)) { rsc 185 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, rsc 187 lib/pacemaker/pcmk_sched_migration.c "the configuration does not allow it", rsc->id); rsc 191 lib/pacemaker/pcmk_sched_migration.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 192 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, "%s cannot migrate because it is not managed", rsc 193 lib/pacemaker/pcmk_sched_migration.c rsc->id); rsc 197 lib/pacemaker/pcmk_sched_migration.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 198 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, "%s cannot migrate because it is failed", rsc->id); rsc 202 lib/pacemaker/pcmk_sched_migration.c if (pcmk_is_set(rsc->flags, pcmk__rsc_start_pending)) { rsc 203 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, "%s cannot migrate because it has a start pending", rsc 204 lib/pacemaker/pcmk_sched_migration.c rsc->id); rsc 209 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, rsc 212 lib/pacemaker/pcmk_sched_migration.c rsc->id, pcmk__node_name(current)); rsc 216 lib/pacemaker/pcmk_sched_migration.c if ((rsc->priv->assigned_node == NULL) rsc 217 lib/pacemaker/pcmk_sched_migration.c || rsc->priv->assigned_node->details->unclean) { rsc 219 lib/pacemaker/pcmk_sched_migration.c pcmk__rsc_trace(rsc, rsc 222 lib/pacemaker/pcmk_sched_migration.c rsc->id, pcmk__node_name(rsc->priv->assigned_node)); rsc 117 lib/pacemaker/pcmk_sched_nodes.c pcmk__copy_node_tables(const pcmk_resource_t *rsc, GHashTable **copy) rsc 119 lib/pacemaker/pcmk_sched_nodes.c pcmk__assert((rsc != NULL) && (copy != NULL)); rsc 125 lib/pacemaker/pcmk_sched_nodes.c g_hash_table_insert(*copy, rsc->id, rsc 126 lib/pacemaker/pcmk_sched_nodes.c pcmk__copy_node_table(rsc->priv->allowed_nodes)); rsc 128 lib/pacemaker/pcmk_sched_nodes.c for (const GList *iter = rsc->priv->children; rsc 150 lib/pacemaker/pcmk_sched_nodes.c pcmk__restore_node_tables(pcmk_resource_t *rsc, GHashTable *backup) rsc 152 lib/pacemaker/pcmk_sched_nodes.c pcmk__assert((rsc != NULL) && (backup != NULL)); rsc 154 lib/pacemaker/pcmk_sched_nodes.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 157 lib/pacemaker/pcmk_sched_nodes.c rsc->priv->allowed_nodes = rsc 158 lib/pacemaker/pcmk_sched_nodes.c pcmk__copy_node_table(g_hash_table_lookup(backup, rsc->id)); rsc 160 lib/pacemaker/pcmk_sched_nodes.c for (GList *iter = rsc->priv->children; rsc 400 lib/pacemaker/pcmk_sched_nodes.c pcmk_resource_t *rsc = (pcmk_resource_t *) r->data; rsc 408 lib/pacemaker/pcmk_sched_nodes.c constrain = !crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 412 lib/pacemaker/pcmk_sched_nodes.c pcmk__new_location(strategy_str, rsc, health, NULL, node); rsc 414 lib/pacemaker/pcmk_sched_nodes.c pcmk__rsc_trace(rsc, "%s is immune from health ban on %s", rsc 415 lib/pacemaker/pcmk_sched_nodes.c rsc->id, pcmk__node_name(node)); rsc 432 lib/pacemaker/pcmk_sched_nodes.c pcmk__top_allowed_node(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 436 lib/pacemaker/pcmk_sched_nodes.c if ((rsc == NULL) || (node == NULL)) { rsc 440 lib/pacemaker/pcmk_sched_nodes.c if (rsc->priv->parent == NULL) { rsc 441 lib/pacemaker/pcmk_sched_nodes.c allowed_nodes = rsc->priv->allowed_nodes; rsc 443 lib/pacemaker/pcmk_sched_nodes.c allowed_nodes = rsc->priv->parent->priv->allowed_nodes; rsc 241 lib/pacemaker/pcmk_sched_ordering.c pcmk_resource_t *rsc = NULL; rsc 250 lib/pacemaker/pcmk_sched_ordering.c rsc = pcmk__find_constraint_resource(scheduler->priv->resources, rsc_id); rsc 251 lib/pacemaker/pcmk_sched_ordering.c if (rsc == NULL) { rsc 257 lib/pacemaker/pcmk_sched_ordering.c return rsc; rsc 270 lib/pacemaker/pcmk_sched_ordering.c get_minimum_first_instances(const pcmk_resource_t *rsc, const xmlNode *xml) rsc 275 lib/pacemaker/pcmk_sched_ordering.c if (!pcmk__is_clone(rsc)) { rsc 279 lib/pacemaker/pcmk_sched_ordering.c clone_min = g_hash_table_lookup(rsc->priv->meta, PCMK_META_CLONE_MIN); rsc 499 lib/pacemaker/pcmk_sched_ordering.c first_rsc = first_action->rsc; rsc 502 lib/pacemaker/pcmk_sched_ordering.c then_rsc = then_action->rsc; rsc 525 lib/pacemaker/pcmk_sched_ordering.c order->rsc1 = first_action->rsc; rsc 529 lib/pacemaker/pcmk_sched_ordering.c order->rsc2 = then_action->rsc; rsc 1073 lib/pacemaker/pcmk_sched_ordering.c && (input->action->rsc != NULL) rsc 1074 lib/pacemaker/pcmk_sched_ordering.c && pcmk__rsc_corresponds_to_guest(action->rsc, input->action->node)) { rsc 1077 lib/pacemaker/pcmk_sched_ordering.c input->action->rsc->id, action->rsc->id); rsc 1089 lib/pacemaker/pcmk_sched_ordering.c && (action->rsc != NULL) rsc 1141 lib/pacemaker/pcmk_sched_ordering.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_maintenance)) { rsc 1142 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, rsc 1149 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, rsc 1162 lib/pacemaker/pcmk_sched_ordering.c if (!pcmk_any_flags_set(action->rsc->flags, rsc 1164 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, rsc 1171 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(action->rsc, "Ordering %s before shutdown of %s", rsc 1174 lib/pacemaker/pcmk_sched_ordering.c pcmk__new_ordering(action->rsc, NULL, action, NULL, rsc 1192 lib/pacemaker/pcmk_sched_ordering.c find_actions_by_task(const pcmk_resource_t *rsc, const char *original_key) rsc 1195 lib/pacemaker/pcmk_sched_ordering.c GList *list = find_actions(rsc->priv->actions, original_key, NULL); rsc 1205 lib/pacemaker/pcmk_sched_ordering.c key = pcmk__op_key(rsc->id, task, interval_ms); rsc 1206 lib/pacemaker/pcmk_sched_ordering.c list = find_actions(rsc->priv->actions, key, NULL); rsc 1223 lib/pacemaker/pcmk_sched_ordering.c const pcmk_resource_t *rsc, rsc 1229 lib/pacemaker/pcmk_sched_ordering.c CRM_CHECK((rsc != NULL) && (order != NULL), return); rsc 1232 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(rsc, "Applying ordering %d for 'then' resource %s", rsc 1233 lib/pacemaker/pcmk_sched_ordering.c order->id, rsc->id); rsc 1239 lib/pacemaker/pcmk_sched_ordering.c then_actions = find_actions_by_task(rsc, order->task2); rsc 1243 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(rsc, "Ignoring ordering %d: no %s actions found for %s", rsc 1244 lib/pacemaker/pcmk_sched_ordering.c order->id, order->task2, rsc->id); rsc 1248 lib/pacemaker/pcmk_sched_ordering.c if ((first_action != NULL) && (first_action->rsc == rsc) rsc 1251 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_trace(rsc, rsc 1253 lib/pacemaker/pcmk_sched_ordering.c first_action->uuid, order->task2, rsc->id); rsc 1260 lib/pacemaker/pcmk_sched_ordering.c pcmk__rsc_debug(rsc, rsc 1262 lib/pacemaker/pcmk_sched_ordering.c order->id, rsc->id); rsc 1276 lib/pacemaker/pcmk_sched_ordering.c "to order it after", then_action_iter->task, rsc->id, rsc 1352 lib/pacemaker/pcmk_sched_ordering.c then_rsc = order->action2->rsc; rsc 1413 lib/pacemaker/pcmk_sched_ordering.c pcmk_resource_t *rsc = order->rsc1; rsc 1415 lib/pacemaker/pcmk_sched_ordering.c if (rsc != NULL) { rsc 1416 lib/pacemaker/pcmk_sched_ordering.c rsc_order_first(rsc, order); rsc 1420 lib/pacemaker/pcmk_sched_ordering.c rsc = order->rsc2; rsc 1421 lib/pacemaker/pcmk_sched_ordering.c if (rsc != NULL) { rsc 1422 lib/pacemaker/pcmk_sched_ordering.c order_resource_actions_after(order->action1, rsc, order); rsc 1472 lib/pacemaker/pcmk_sched_ordering.c pcmk__promotable_restart_ordering(pcmk_resource_t *rsc) rsc 1475 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOPPED, rsc 1476 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_START, rsc 1478 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOPPED, rsc 1479 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_PROMOTE, rsc 1483 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTED, rsc 1484 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_STOP, rsc 1486 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTED, rsc 1487 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_START, rsc 1489 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTED, rsc 1490 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_PROMOTE, rsc 1494 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_RUNNING, rsc 1495 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_PROMOTE, rsc 1499 lib/pacemaker/pcmk_sched_ordering.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DEMOTE, rsc 1500 lib/pacemaker/pcmk_sched_ordering.c rsc, PCMK_ACTION_DEMOTED, rsc 20 lib/pacemaker/pcmk_sched_primitive.c static void stop_resource(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 22 lib/pacemaker/pcmk_sched_primitive.c static void start_resource(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 24 lib/pacemaker/pcmk_sched_primitive.c static void demote_resource(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 26 lib/pacemaker/pcmk_sched_primitive.c static void promote_resource(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 28 lib/pacemaker/pcmk_sched_primitive.c static void assert_role_error(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 83 lib/pacemaker/pcmk_sched_primitive.c typedef void (*rsc_transition_fn)(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 134 lib/pacemaker/pcmk_sched_primitive.c sorted_allowed_nodes(const pcmk_resource_t *rsc) rsc 136 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->allowed_nodes != NULL) { rsc 137 lib/pacemaker/pcmk_sched_primitive.c GList *nodes = g_hash_table_get_values(rsc->priv->allowed_nodes); rsc 140 lib/pacemaker/pcmk_sched_primitive.c return pcmk__sort_nodes(nodes, pcmk__current_node(rsc)); rsc 166 lib/pacemaker/pcmk_sched_primitive.c assign_best_node(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 172 lib/pacemaker/pcmk_sched_primitive.c const pcmk_node_t *most_free_node = pcmk__ban_insufficient_capacity(rsc); rsc 178 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 180 lib/pacemaker/pcmk_sched_primitive.c return rsc->priv->assigned_node != NULL; rsc 184 lib/pacemaker/pcmk_sched_primitive.c nodes = sorted_allowed_nodes(rsc); rsc 191 lib/pacemaker/pcmk_sched_primitive.c chosen = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 195 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Preferred node %s for %s was unknown", rsc 196 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(prefer), rsc->id); rsc 205 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Preferred node %s for %s was unsuitable", rsc 206 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(chosen), rsc->id); rsc 210 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Preferred node %s for %s was unavailable", rsc 211 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(chosen), rsc->id); rsc 215 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 218 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(chosen), rsc->id, rsc 230 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk__is_unique_clone(rsc->priv->parent) rsc 242 lib/pacemaker/pcmk_sched_primitive.c pcmk_node_t *running = pcmk__current_node(rsc); rsc 248 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 250 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(running)); rsc 277 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(chosen), rsc->id, rsc 284 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Chose %s for %s from %d candidates", rsc 285 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(chosen), rsc->id, g_list_length(nodes)); rsc 288 lib/pacemaker/pcmk_sched_primitive.c pcmk__assign_resource(rsc, chosen, false, stop_if_fail); rsc 290 lib/pacemaker/pcmk_sched_primitive.c return rsc->priv->assigned_node != NULL; rsc 301 lib/pacemaker/pcmk_sched_primitive.c apply_this_with(pcmk__colocation_t *colocation, pcmk_resource_t *rsc) rsc 310 lib/pacemaker/pcmk_sched_primitive.c archive = pcmk__copy_node_table(rsc->priv->allowed_nodes); rsc 314 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 317 lib/pacemaker/pcmk_sched_primitive.c rsc->id, colocation->id, other->id, rsc 324 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->cmds->apply_coloc_score(rsc, other, colocation, true); rsc 326 lib/pacemaker/pcmk_sched_primitive.c && !pcmk__any_node_available(rsc->priv->allowed_nodes)) { rsc 327 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, rsc 330 lib/pacemaker/pcmk_sched_primitive.c rsc->id, other->id); rsc 331 lib/pacemaker/pcmk_sched_primitive.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 332 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->allowed_nodes = archive; rsc 394 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_assign(pcmk_resource_t *rsc, const pcmk_node_t *prefer, rsc 404 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 405 lib/pacemaker/pcmk_sched_primitive.c scheduler = rsc->priv->scheduler; rsc 406 lib/pacemaker/pcmk_sched_primitive.c parent = rsc->priv->parent; rsc 410 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_debug(rsc, "%s: Assigning parent %s first", rsc 411 lib/pacemaker/pcmk_sched_primitive.c rsc->id, parent->id); rsc 415 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 419 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->assigned_node != NULL) { rsc 420 lib/pacemaker/pcmk_sched_primitive.c node_name = pcmk__node_name(rsc->priv->assigned_node); rsc 422 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_debug(rsc, "%s: pre-assigned to %s", rsc->id, node_name); rsc 423 lib/pacemaker/pcmk_sched_primitive.c return rsc->priv->assigned_node; rsc 427 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_assigning)) { rsc 428 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_debug(rsc, "Breaking assignment loop involving %s", rsc->id); rsc 431 lib/pacemaker/pcmk_sched_primitive.c pcmk__set_rsc_flags(rsc, pcmk__rsc_assigning); rsc 433 lib/pacemaker/pcmk_sched_primitive.c pe__show_node_scores(true, rsc, "Pre-assignment", rsc 434 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->allowed_nodes, scheduler); rsc 436 lib/pacemaker/pcmk_sched_primitive.c this_with_colocations = pcmk__this_with_colocations(rsc); rsc 437 lib/pacemaker/pcmk_sched_primitive.c with_this_colocations = pcmk__with_this_colocations(rsc); rsc 445 lib/pacemaker/pcmk_sched_primitive.c apply_this_with(colocation, rsc); rsc 453 lib/pacemaker/pcmk_sched_primitive.c pcmk__add_dependent_scores(colocation, rsc); rsc 457 lib/pacemaker/pcmk_sched_primitive.c pe__show_node_scores(true, rsc, "Mandatory-colocations", rsc 458 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->allowed_nodes, scheduler); rsc 466 lib/pacemaker/pcmk_sched_primitive.c apply_this_with(colocation, rsc); rsc 474 lib/pacemaker/pcmk_sched_primitive.c pcmk__add_dependent_scores(colocation, rsc); rsc 481 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->next_role == pcmk_role_stopped) { rsc 482 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 484 lib/pacemaker/pcmk_sched_primitive.c rsc->id); rsc 485 lib/pacemaker/pcmk_sched_primitive.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 488 lib/pacemaker/pcmk_sched_primitive.c } else if ((rsc->priv->next_role > rsc->priv->orig_role) rsc 493 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk_role_text(rsc->priv->orig_role), rsc 494 lib/pacemaker/pcmk_sched_primitive.c pcmk_role_text(rsc->priv->next_role)); rsc 495 lib/pacemaker/pcmk_sched_primitive.c pe__set_next_role(rsc, rsc->priv->orig_role, rsc 501 lib/pacemaker/pcmk_sched_primitive.c rsc, __func__, rsc->priv->allowed_nodes, scheduler); rsc 506 lib/pacemaker/pcmk_sched_primitive.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 509 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 514 lib/pacemaker/pcmk_sched_primitive.c pe__set_next_role(rsc, rsc->priv->orig_role, "unmanaged"); rsc 515 lib/pacemaker/pcmk_sched_primitive.c assign_to = pcmk__current_node(rsc); rsc 518 lib/pacemaker/pcmk_sched_primitive.c } else if (rsc->priv->orig_role == pcmk_role_promoted) { rsc 520 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 525 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, "Unmanaged resource %s assigned to %s: %s", rsc->id, rsc 528 lib/pacemaker/pcmk_sched_primitive.c pcmk__assign_resource(rsc, assign_to, true, stop_if_fail); rsc 533 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_debug(rsc, rsc 535 lib/pacemaker/pcmk_sched_primitive.c rsc->id); rsc 537 lib/pacemaker/pcmk_sched_primitive.c pcmk__assign_resource(rsc, NULL, true, stop_if_fail); rsc 539 lib/pacemaker/pcmk_sched_primitive.c } else if (!assign_best_node(rsc, prefer, stop_if_fail)) { rsc 541 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 542 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, "Resource %s cannot run anywhere", rsc->id); rsc 543 lib/pacemaker/pcmk_sched_primitive.c } else if ((rsc->priv->active_nodes != NULL) && stop_if_fail) { rsc 544 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, "Stopping removed resource %s", rsc->id); rsc 548 lib/pacemaker/pcmk_sched_primitive.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_assigning); rsc 550 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 551 lib/pacemaker/pcmk_sched_primitive.c remote_connection_assigned(rsc); rsc 554 lib/pacemaker/pcmk_sched_primitive.c return rsc->priv->assigned_node; rsc 569 lib/pacemaker/pcmk_sched_primitive.c schedule_restart_actions(pcmk_resource_t *rsc, pcmk_node_t *current, rsc 572 lib/pacemaker/pcmk_sched_primitive.c enum rsc_role_e role = rsc->priv->orig_role; rsc 576 lib/pacemaker/pcmk_sched_primitive.c pcmk__set_rsc_flags(rsc, pcmk__rsc_restarting); rsc 581 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Creating %s action to take %s down from %s to %s", rsc 582 lib/pacemaker/pcmk_sched_primitive.c (need_stop? "required" : "optional"), rsc->id, rsc 588 lib/pacemaker/pcmk_sched_primitive.c fn(rsc, current, !need_stop); rsc 593 lib/pacemaker/pcmk_sched_primitive.c while ((rsc->priv->orig_role <= rsc->priv->next_role) rsc 594 lib/pacemaker/pcmk_sched_primitive.c && (role != rsc->priv->orig_role) rsc 595 lib/pacemaker/pcmk_sched_primitive.c && !pcmk_is_set(rsc->flags, pcmk__rsc_blocked)) { rsc 598 lib/pacemaker/pcmk_sched_primitive.c next_role = rsc_state_matrix[role][rsc->priv->orig_role]; rsc 602 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Creating %s action to take %s up from %s to %s", rsc 603 lib/pacemaker/pcmk_sched_primitive.c (required? "required" : "optional"), rsc->id, rsc 609 lib/pacemaker/pcmk_sched_primitive.c fn(rsc, rsc->priv->assigned_node, !required); rsc 613 lib/pacemaker/pcmk_sched_primitive.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_restarting); rsc 625 lib/pacemaker/pcmk_sched_primitive.c set_default_next_role(pcmk_resource_t *rsc) rsc 627 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->next_role != pcmk_role_unknown) { rsc 631 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->assigned_node == NULL) { rsc 632 lib/pacemaker/pcmk_sched_primitive.c pe__set_next_role(rsc, pcmk_role_stopped, "assignment"); rsc 634 lib/pacemaker/pcmk_sched_primitive.c pe__set_next_role(rsc, pcmk_role_started, "assignment"); rsc 646 lib/pacemaker/pcmk_sched_primitive.c create_pending_start(pcmk_resource_t *rsc) rsc 650 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 652 lib/pacemaker/pcmk_sched_primitive.c rsc->id); rsc 653 lib/pacemaker/pcmk_sched_primitive.c start = start_action(rsc, rsc->priv->assigned_node, TRUE); rsc 664 lib/pacemaker/pcmk_sched_primitive.c schedule_role_transition_actions(pcmk_resource_t *rsc) rsc 666 lib/pacemaker/pcmk_sched_primitive.c enum rsc_role_e role = rsc->priv->orig_role; rsc 668 lib/pacemaker/pcmk_sched_primitive.c while (role != rsc->priv->next_role) { rsc 670 lib/pacemaker/pcmk_sched_primitive.c rsc_state_matrix[role][rsc->priv->next_role]; rsc 673 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 676 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk_role_text(role), rsc 678 lib/pacemaker/pcmk_sched_primitive.c pcmk_role_text(rsc->priv->next_role)); rsc 683 lib/pacemaker/pcmk_sched_primitive.c fn(rsc, rsc->priv->assigned_node, false); rsc 695 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_create_actions(pcmk_resource_t *rsc) rsc 709 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 711 lib/pacemaker/pcmk_sched_primitive.c next_role_source = set_default_next_role(rsc); rsc 712 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 715 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk_role_text(rsc->priv->orig_role), rsc 716 lib/pacemaker/pcmk_sched_primitive.c pcmk_role_text(rsc->priv->next_role), next_role_source, rsc 717 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(rsc->priv->assigned_node)); rsc 719 lib/pacemaker/pcmk_sched_primitive.c current = rsc->priv->fns->active_node(rsc, &num_all_active, rsc 722 lib/pacemaker/pcmk_sched_primitive.c g_list_foreach(rsc->priv->dangling_migration_sources, rsc 723 lib/pacemaker/pcmk_sched_primitive.c pcmk__abort_dangling_migration, rsc); rsc 725 lib/pacemaker/pcmk_sched_primitive.c if ((current != NULL) && (rsc->priv->assigned_node != NULL) rsc 726 lib/pacemaker/pcmk_sched_primitive.c && !pcmk__same_node(current, rsc->priv->assigned_node) rsc 727 lib/pacemaker/pcmk_sched_primitive.c && (rsc->priv->next_role >= pcmk_role_started)) { rsc 729 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Moving %s from %s to %s", rsc 730 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current), rsc 731 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(rsc->priv->assigned_node)); rsc 733 lib/pacemaker/pcmk_sched_primitive.c allow_migrate = pcmk__rsc_can_migrate(rsc, current); rsc 740 lib/pacemaker/pcmk_sched_primitive.c migration_target = rsc->priv->partial_migration_target; rsc 741 lib/pacemaker/pcmk_sched_primitive.c if ((rsc->priv->partial_migration_source != NULL) rsc 743 lib/pacemaker/pcmk_sched_primitive.c && pcmk__same_node(current, rsc->priv->partial_migration_source) rsc 744 lib/pacemaker/pcmk_sched_primitive.c && pcmk__same_node(rsc->priv->assigned_node, migration_target)) { rsc 748 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 750 lib/pacemaker/pcmk_sched_primitive.c rsc->id, rsc 751 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(rsc->priv->partial_migration_source), rsc 754 lib/pacemaker/pcmk_sched_primitive.c } else if ((rsc->priv->partial_migration_source != NULL) rsc 762 lib/pacemaker/pcmk_sched_primitive.c rsc->id, rsc 763 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(rsc->priv->partial_migration_source), rsc 769 lib/pacemaker/pcmk_sched_primitive.c rsc->id, rsc 770 lib/pacemaker/pcmk_sched_primitive.c pcmk__node_name(rsc->priv->partial_migration_source), rsc 774 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->partial_migration_source = NULL; rsc 775 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->partial_migration_target = NULL; rsc 778 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing)) { rsc 792 lib/pacemaker/pcmk_sched_primitive.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 795 lib/pacemaker/pcmk_sched_primitive.c pcmk__sched_err(rsc->priv->scheduler, rsc 797 lib/pacemaker/pcmk_sched_primitive.c pcmk__s(class, "Untyped"), rsc->id, num_all_active, rsc 798 lib/pacemaker/pcmk_sched_primitive.c pcmk__multiply_active_text(rsc)); rsc 803 lib/pacemaker/pcmk_sched_primitive.c switch (rsc->priv->multiply_active_policy) { rsc 809 lib/pacemaker/pcmk_sched_primitive.c pcmk__set_rsc_flags(rsc, pcmk__rsc_stop_unexpected); rsc 816 lib/pacemaker/pcmk_sched_primitive.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_stop_unexpected); rsc 819 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_start_pending)) { rsc 820 lib/pacemaker/pcmk_sched_primitive.c create_pending_start(rsc); rsc 826 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 827 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_stop_if_failed)) { rsc 829 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Recovering %s", rsc->id); rsc 831 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Recovering %s by demotion", rsc->id); rsc 832 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->next_role == pcmk_role_promoted) { rsc 837 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_blocked)) { rsc 838 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Blocking further actions on %s", rsc->id); rsc 841 lib/pacemaker/pcmk_sched_primitive.c } else if ((rsc->priv->orig_role > pcmk_role_started) rsc 843 lib/pacemaker/pcmk_sched_primitive.c && (rsc->priv->assigned_node != NULL)) { rsc 846 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Creating start action for promoted resource %s", rsc 847 lib/pacemaker/pcmk_sched_primitive.c rsc->id); rsc 848 lib/pacemaker/pcmk_sched_primitive.c start = start_action(rsc, rsc->priv->assigned_node, TRUE); rsc 851 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "%s restart is required for recovery", rsc->id); rsc 857 lib/pacemaker/pcmk_sched_primitive.c schedule_restart_actions(rsc, current, need_stop, need_promote); rsc 860 lib/pacemaker/pcmk_sched_primitive.c schedule_role_transition_actions(rsc); rsc 862 lib/pacemaker/pcmk_sched_primitive.c pcmk__create_recurring_actions(rsc); rsc 865 lib/pacemaker/pcmk_sched_primitive.c pcmk__create_migration_actions(rsc, current); rsc 876 lib/pacemaker/pcmk_sched_primitive.c rsc_avoids_remote_nodes(const pcmk_resource_t *rsc) rsc 881 lib/pacemaker/pcmk_sched_primitive.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 903 lib/pacemaker/pcmk_sched_primitive.c allowed_nodes_as_list(const pcmk_resource_t *rsc) rsc 907 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->allowed_nodes != NULL) { rsc 908 lib/pacemaker/pcmk_sched_primitive.c allowed_nodes = g_hash_table_get_values(rsc->priv->allowed_nodes); rsc 925 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_internal_constraints(pcmk_resource_t *rsc) rsc 932 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 933 lib/pacemaker/pcmk_sched_primitive.c scheduler = rsc->priv->scheduler; rsc 935 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 936 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 938 lib/pacemaker/pcmk_sched_primitive.c "%s", rsc->id); rsc 943 lib/pacemaker/pcmk_sched_primitive.c check_unfencing = !pcmk_is_set(rsc->flags, pcmk__rsc_fence_device) rsc 946 lib/pacemaker/pcmk_sched_primitive.c && pcmk_is_set(rsc->flags, pcmk__rsc_needs_unfencing); rsc 949 lib/pacemaker/pcmk_sched_primitive.c check_utilization = (g_hash_table_size(rsc->priv->utilization) > 0) rsc 954 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_STOP, 0), NULL, rsc 955 lib/pacemaker/pcmk_sched_primitive.c rsc, pcmk__op_key(rsc->id, PCMK_ACTION_START, 0), NULL, rsc 961 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 963 lib/pacemaker/pcmk_sched_primitive.c || (rsc->priv->orig_role > pcmk_role_unpromoted)) { rsc 965 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_DEMOTE, 0), rsc 967 lib/pacemaker/pcmk_sched_primitive.c rsc, pcmk__op_key(rsc->id, PCMK_ACTION_STOP, 0), rsc 971 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_START, 0), rsc 973 lib/pacemaker/pcmk_sched_primitive.c rsc, pcmk__op_key(rsc->id, PCMK_ACTION_PROMOTE, 0), rsc 979 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_LRM_DELETE, 0), rsc 980 lib/pacemaker/pcmk_sched_primitive.c NULL, rsc, rsc 981 lib/pacemaker/pcmk_sched_primitive.c pcmk__op_key(rsc->id, PCMK_ACTION_MONITOR, 0), rsc 988 lib/pacemaker/pcmk_sched_primitive.c || (rsc->priv->launcher != NULL)) { rsc 990 lib/pacemaker/pcmk_sched_primitive.c allowed_nodes = allowed_nodes_as_list(rsc); rsc 994 lib/pacemaker/pcmk_sched_primitive.c g_list_foreach(allowed_nodes, pcmk__order_restart_vs_unfence, rsc); rsc 998 lib/pacemaker/pcmk_sched_primitive.c pcmk__create_utilization_constraints(rsc, allowed_nodes); rsc 1001 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->launcher != NULL) { rsc 1004 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 1010 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_remote_nesting_allowed)) { rsc 1011 lib/pacemaker/pcmk_sched_primitive.c rsc_avoids_remote_nodes(rsc->priv->launcher); rsc 1020 lib/pacemaker/pcmk_sched_primitive.c pcmk__order_resource_actions(rsc->priv->launcher, rsc 1022 lib/pacemaker/pcmk_sched_primitive.c rsc, PCMK_ACTION_STOP, rsc 1032 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_is_set(rsc->priv->launcher->flags, rsc 1034 lib/pacemaker/pcmk_sched_primitive.c remote_rsc = rsc->priv->launcher; rsc 1038 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->launcher); rsc 1061 lib/pacemaker/pcmk_sched_primitive.c rsc->id, rsc->priv->launcher->id); rsc 1063 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc->priv->launcher, rsc 1064 lib/pacemaker/pcmk_sched_primitive.c pcmk__op_key(rsc->priv->launcher->id, rsc 1066 lib/pacemaker/pcmk_sched_primitive.c NULL, rsc, rsc 1067 lib/pacemaker/pcmk_sched_primitive.c pcmk__op_key(rsc->id, PCMK_ACTION_START, 0), rsc 1072 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_ordering(rsc, rsc 1073 lib/pacemaker/pcmk_sched_primitive.c pcmk__op_key(rsc->id, PCMK_ACTION_STOP, 0), rsc 1075 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->launcher, rsc 1076 lib/pacemaker/pcmk_sched_primitive.c pcmk__op_key(rsc->priv->launcher->id, rsc 1080 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_remote_nesting_allowed) rsc 1086 lib/pacemaker/pcmk_sched_primitive.c pcmk__new_colocation("#resource-with-container", NULL, score, rsc, rsc 1087 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->launcher, NULL, NULL, rsc 1092 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection) rsc 1093 lib/pacemaker/pcmk_sched_primitive.c || pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 1097 lib/pacemaker/pcmk_sched_primitive.c rsc_avoids_remote_nodes(rsc); rsc 1160 lib/pacemaker/pcmk_sched_primitive.c pcmk__with_primitive_colocations(const pcmk_resource_t *rsc, rsc 1165 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc) && (list != NULL)); rsc 1166 lib/pacemaker/pcmk_sched_primitive.c parent = rsc->priv->parent; rsc 1168 lib/pacemaker/pcmk_sched_primitive.c if (rsc == orig_rsc) { rsc 1172 lib/pacemaker/pcmk_sched_primitive.c pcmk__add_with_this_list(list, rsc->priv->with_this_colocations, rsc 1179 lib/pacemaker/pcmk_sched_primitive.c for (GList *iter = rsc->priv->with_this_colocations; rsc 1194 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_with_colocations(const pcmk_resource_t *rsc, rsc 1199 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc) && (list != NULL)); rsc 1200 lib/pacemaker/pcmk_sched_primitive.c parent = rsc->priv->parent; rsc 1202 lib/pacemaker/pcmk_sched_primitive.c if (rsc == orig_rsc) { rsc 1206 lib/pacemaker/pcmk_sched_primitive.c pcmk__add_this_with_list(list, rsc->priv->this_with_colocations, rsc 1213 lib/pacemaker/pcmk_sched_primitive.c for (GList *iter = rsc->priv->this_with_colocations; rsc 1255 lib/pacemaker/pcmk_sched_primitive.c is_expected_node(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 1257 lib/pacemaker/pcmk_sched_primitive.c return pcmk_all_flags_set(rsc->flags, rsc 1259 lib/pacemaker/pcmk_sched_primitive.c && (rsc->priv->next_role > pcmk_role_stopped) rsc 1260 lib/pacemaker/pcmk_sched_primitive.c && pcmk__same_node(rsc->priv->assigned_node, node); rsc 1272 lib/pacemaker/pcmk_sched_primitive.c stop_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool optional) rsc 1274 lib/pacemaker/pcmk_sched_primitive.c for (GList *iter = rsc->priv->active_nodes; rsc 1280 lib/pacemaker/pcmk_sched_primitive.c if (is_expected_node(rsc, current)) { rsc 1285 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1288 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1292 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->partial_migration_target != NULL) { rsc 1294 lib/pacemaker/pcmk_sched_primitive.c if (pcmk__same_node(current, rsc->priv->partial_migration_target) rsc 1295 lib/pacemaker/pcmk_sched_primitive.c && pcmk__same_node(current, rsc->priv->assigned_node)) { rsc 1296 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1299 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1302 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1305 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1310 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Scheduling stop of %s on %s", rsc 1311 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1312 lib/pacemaker/pcmk_sched_primitive.c stop = stop_action(rsc, current, optional); rsc 1314 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->assigned_node == NULL) { rsc 1316 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk_all_flags_set(rsc->flags, pcmk__rsc_restarting rsc 1325 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 1329 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_unfencing)) { rsc 1332 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->scheduler); rsc 1336 lib/pacemaker/pcmk_sched_primitive.c pcmk__sched_err(rsc->priv->scheduler, rsc 1338 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1353 lib/pacemaker/pcmk_sched_primitive.c start_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool optional) rsc 1359 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Scheduling %s start of %s on %s (score %d)", rsc 1360 lib/pacemaker/pcmk_sched_primitive.c (optional? "optional" : "required"), rsc->id, rsc 1362 lib/pacemaker/pcmk_sched_primitive.c start = start_action(rsc, node, TRUE); rsc 1364 lib/pacemaker/pcmk_sched_primitive.c pcmk__order_vs_unfence(rsc, node, start, pcmk__ar_first_implies_then); rsc 1370 lib/pacemaker/pcmk_sched_primitive.c if (is_expected_node(rsc, node)) { rsc 1374 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1377 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1391 lib/pacemaker/pcmk_sched_primitive.c promote_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool optional) rsc 1400 lib/pacemaker/pcmk_sched_primitive.c action_list = pe__resource_actions(rsc, node, PCMK_ACTION_START, true); rsc 1411 lib/pacemaker/pcmk_sched_primitive.c pcmk_action_t *promote = promote_action(rsc, node, optional); rsc 1413 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Scheduling %s promotion of %s on %s", rsc 1414 lib/pacemaker/pcmk_sched_primitive.c (optional? "optional" : "required"), rsc->id, rsc 1417 lib/pacemaker/pcmk_sched_primitive.c if (is_expected_node(rsc, node)) { rsc 1421 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1424 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1428 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Not promoting %s on %s: start unrunnable", rsc 1429 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1430 lib/pacemaker/pcmk_sched_primitive.c action_list = pe__resource_actions(rsc, node, PCMK_ACTION_PROMOTE, rsc 1450 lib/pacemaker/pcmk_sched_primitive.c demote_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool optional) rsc 1457 lib/pacemaker/pcmk_sched_primitive.c for (GList *iter = rsc->priv->active_nodes; rsc 1462 lib/pacemaker/pcmk_sched_primitive.c if (is_expected_node(rsc, current)) { rsc 1463 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, rsc 1466 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(current)); rsc 1468 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Scheduling %s demotion of %s on %s", rsc 1469 lib/pacemaker/pcmk_sched_primitive.c (optional? "optional" : "required"), rsc->id, rsc 1471 lib/pacemaker/pcmk_sched_primitive.c demote_action(rsc, current, optional); rsc 1477 lib/pacemaker/pcmk_sched_primitive.c assert_role_error(pcmk_resource_t *rsc, pcmk_node_t *node, bool optional) rsc 1491 lib/pacemaker/pcmk_sched_primitive.c pcmk__schedule_cleanup(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 1501 lib/pacemaker/pcmk_sched_primitive.c CRM_CHECK((rsc != NULL) && (node != NULL), return); rsc 1503 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 1504 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Skipping clean-up of %s on %s: resource failed", rsc 1505 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1510 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_trace(rsc, "Skipping clean-up of %s on %s: node unavailable", rsc 1511 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1516 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1517 lib/pacemaker/pcmk_sched_primitive.c delete_action(rsc, node, optional); rsc 1520 lib/pacemaker/pcmk_sched_primitive.c pcmk__order_resource_actions(rsc, PCMK_ACTION_STOP, rsc 1521 lib/pacemaker/pcmk_sched_primitive.c rsc, PCMK_ACTION_DELETE, flag); rsc 1522 lib/pacemaker/pcmk_sched_primitive.c pcmk__order_resource_actions(rsc, PCMK_ACTION_DELETE, rsc 1523 lib/pacemaker/pcmk_sched_primitive.c rsc, PCMK_ACTION_START, flag); rsc 1534 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml) rsc 1540 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc) && (xml != NULL)); rsc 1546 lib/pacemaker/pcmk_sched_primitive.c value = g_hash_table_lookup(rsc->priv->meta, PCMK__META_CLONE); rsc 1554 lib/pacemaker/pcmk_sched_primitive.c value = g_hash_table_lookup(rsc->priv->meta, PCMK_META_REMOTE_NODE); rsc 1564 lib/pacemaker/pcmk_sched_primitive.c for (parent = rsc; parent != NULL; parent = parent->priv->parent) { rsc 1575 lib/pacemaker/pcmk_sched_primitive.c value = g_hash_table_lookup(rsc->priv->meta, "external-ip"); rsc 1583 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_add_utilization(const pcmk_resource_t *rsc, rsc 1587 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc) && (orig_rsc != NULL) rsc 1590 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 1596 lib/pacemaker/pcmk_sched_primitive.c orig_rsc->id, rsc->id); rsc 1597 lib/pacemaker/pcmk_sched_primitive.c pcmk__release_node_capacity(utilization, rsc); rsc 1644 lib/pacemaker/pcmk_sched_primitive.c pcmk_resource_t *rsc = (pcmk_resource_t *) user_data; rsc 1646 lib/pacemaker/pcmk_sched_primitive.c if (!pcmk__same_node(node, rsc->priv->lock_node)) { rsc 1647 lib/pacemaker/pcmk_sched_primitive.c resource_location(rsc, node, -PCMK_SCORE_INFINITY, rsc 1648 lib/pacemaker/pcmk_sched_primitive.c PCMK_OPT_SHUTDOWN_LOCK, rsc->priv->scheduler); rsc 1654 lib/pacemaker/pcmk_sched_primitive.c pcmk__primitive_shutdown_lock(pcmk_resource_t *rsc) rsc 1658 lib/pacemaker/pcmk_sched_primitive.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 1659 lib/pacemaker/pcmk_sched_primitive.c scheduler = rsc->priv->scheduler; rsc 1662 lib/pacemaker/pcmk_sched_primitive.c if (pcmk_any_flags_set(rsc->flags, pcmk__rsc_fence_device rsc 1667 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->lock_node != NULL) { rsc 1670 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->active_nodes != NULL) { rsc 1675 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, rsc 1677 lib/pacemaker/pcmk_sched_primitive.c "because %s is already active", rsc->id); rsc 1678 lib/pacemaker/pcmk_sched_primitive.c pe__clear_resource_history(rsc, rsc->priv->lock_node); rsc 1679 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->lock_node = NULL; rsc 1680 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->lock_time = 0; rsc 1684 lib/pacemaker/pcmk_sched_primitive.c } else if (pcmk__list_of_1(rsc->priv->active_nodes)) { rsc 1685 lib/pacemaker/pcmk_sched_primitive.c pcmk_node_t *node = rsc->priv->active_nodes->data; rsc 1689 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_debug(rsc, rsc 1691 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(node)); rsc 1693 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->lock_node = node; rsc 1694 lib/pacemaker/pcmk_sched_primitive.c rsc->priv->lock_time = shutdown_time(node); rsc 1699 lib/pacemaker/pcmk_sched_primitive.c if (rsc->priv->lock_node == NULL) { rsc 1705 lib/pacemaker/pcmk_sched_primitive.c time_t lock_expiration = rsc->priv->lock_time rsc 1708 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, "Locking %s to %s due to shutdown (expires @%lld)", rsc 1709 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(rsc->priv->lock_node), rsc 1714 lib/pacemaker/pcmk_sched_primitive.c pcmk__rsc_info(rsc, "Locking %s to %s due to shutdown", rsc 1715 lib/pacemaker/pcmk_sched_primitive.c rsc->id, pcmk__node_name(rsc->priv->lock_node)); rsc 1719 lib/pacemaker/pcmk_sched_primitive.c g_list_foreach(scheduler->nodes, ban_if_not_locked, rsc); rsc 28 lib/pacemaker/pcmk_sched_probes.c add_expected_result(pcmk_action_t *probe, const pcmk_resource_t *rsc, rsc 32 lib/pacemaker/pcmk_sched_probes.c pcmk_node_t *running = pe_find_node_id(rsc->priv->active_nodes, rsc 39 lib/pacemaker/pcmk_sched_probes.c } else if (rsc->priv->orig_role == pcmk_role_promoted) { rsc 59 lib/pacemaker/pcmk_sched_probes.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 61 lib/pacemaker/pcmk_sched_probes.c if (rsc->priv->cmds->create_probe(rsc, node)) { rsc 135 lib/pacemaker/pcmk_sched_probes.c probe_action(pcmk_resource_t *rsc, pcmk_node_t *node) rsc 138 lib/pacemaker/pcmk_sched_probes.c char *key = pcmk__op_key(rsc->id, PCMK_ACTION_MONITOR, 0); rsc 141 lib/pacemaker/pcmk_sched_probes.c pcmk_role_text(rsc->priv->orig_role), rsc->id, rsc 144 lib/pacemaker/pcmk_sched_probes.c probe = custom_action(rsc, key, PCMK_ACTION_MONITOR, node, FALSE, rsc 145 lib/pacemaker/pcmk_sched_probes.c rsc->priv->scheduler); rsc 148 lib/pacemaker/pcmk_sched_probes.c pcmk__order_vs_unfence(rsc, node, probe, pcmk__ar_ordered); rsc 149 lib/pacemaker/pcmk_sched_probes.c add_expected_result(probe, rsc, node); rsc 165 lib/pacemaker/pcmk_sched_probes.c pcmk__probe_rsc_on_node(pcmk_resource_t *rsc, pcmk_node_t *node) rsc 170 lib/pacemaker/pcmk_sched_probes.c pcmk_resource_t *top = uber_parent(rsc); rsc 173 lib/pacemaker/pcmk_sched_probes.c pcmk__assert((rsc != NULL) && (node != NULL)); rsc 175 lib/pacemaker/pcmk_sched_probes.c if (!pcmk_is_set(rsc->priv->scheduler->flags, rsc 182 lib/pacemaker/pcmk_sched_probes.c if (pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 187 lib/pacemaker/pcmk_sched_probes.c && pe__resource_contains_guest_node(rsc->priv->scheduler, rsc 188 lib/pacemaker/pcmk_sched_probes.c rsc)) { rsc 192 lib/pacemaker/pcmk_sched_probes.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 199 lib/pacemaker/pcmk_sched_probes.c if (rsc->priv->children != NULL) { rsc 200 lib/pacemaker/pcmk_sched_probes.c return pcmk__probe_resource_list(rsc->priv->children, node); rsc 203 lib/pacemaker/pcmk_sched_probes.c if ((rsc->priv->launcher != NULL) rsc 204 lib/pacemaker/pcmk_sched_probes.c && !pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 208 lib/pacemaker/pcmk_sched_probes.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 212 lib/pacemaker/pcmk_sched_probes.c } else if (g_hash_table_lookup(rsc->priv->probed_nodes, rsc 218 lib/pacemaker/pcmk_sched_probes.c allowed = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 221 lib/pacemaker/pcmk_sched_probes.c if (pcmk_is_set(rsc->flags, pcmk__rsc_exclusive_probes) rsc 264 lib/pacemaker/pcmk_sched_probes.c NULL, pcmk__ar_ordered, rsc->priv->scheduler); rsc 270 lib/pacemaker/pcmk_sched_probes.c probe = probe_action(rsc, node); rsc 278 lib/pacemaker/pcmk_sched_probes.c top = rsc; rsc 290 lib/pacemaker/pcmk_sched_probes.c pcmk__new_ordering(rsc, NULL, probe, rsc 292 lib/pacemaker/pcmk_sched_probes.c flags, rsc->priv->scheduler); rsc 293 lib/pacemaker/pcmk_sched_probes.c pcmk__new_ordering(rsc, NULL, probe, top, reload_key(rsc), NULL, rsc 294 lib/pacemaker/pcmk_sched_probes.c pcmk__ar_ordered, rsc->priv->scheduler); rsc 299 lib/pacemaker/pcmk_sched_probes.c pcmk__rsc_trace(rsc, rsc 301 lib/pacemaker/pcmk_sched_probes.c rsc->id, node->priv->id, reason); rsc 499 lib/pacemaker/pcmk_sched_probes.c if ((after->action->rsc->priv->variant <= pcmk__rsc_variant_group) rsc 503 lib/pacemaker/pcmk_sched_probes.c || (pe__const_top_resource(probe->rsc, false) != after->action->rsc) rsc 519 lib/pacemaker/pcmk_sched_probes.c if ((then->action->rsc->priv->active_nodes != NULL) rsc 520 lib/pacemaker/pcmk_sched_probes.c || (pe__const_top_resource(then->action->rsc, false) rsc 521 lib/pacemaker/pcmk_sched_probes.c != after->action->rsc) rsc 562 lib/pacemaker/pcmk_sched_probes.c if ((after == NULL) || (probe == NULL) || !pcmk__is_primitive(probe->rsc) rsc 580 lib/pacemaker/pcmk_sched_probes.c if (pcmk__is_primitive(after->rsc) && (probe->rsc != after->rsc)) { rsc 585 lib/pacemaker/pcmk_sched_probes.c then_actions = pe__resource_actions(after->rsc, NULL, rsc 590 lib/pacemaker/pcmk_sched_probes.c then_actions = pe__resource_actions(after->rsc, NULL, rsc 608 lib/pacemaker/pcmk_sched_probes.c if ((after->rsc != NULL) rsc 609 lib/pacemaker/pcmk_sched_probes.c && (after->rsc->priv->variant > pcmk__rsc_variant_group)) { rsc 611 lib/pacemaker/pcmk_sched_probes.c interleave = crm_is_true(g_hash_table_lookup(after->rsc->priv->meta, rsc 614 lib/pacemaker/pcmk_sched_probes.c compatible_rsc = pcmk__find_compatible_instance(probe->rsc, rsc 615 lib/pacemaker/pcmk_sched_probes.c after->rsc, rsc 646 lib/pacemaker/pcmk_sched_probes.c if ((after->rsc == NULL) rsc 647 lib/pacemaker/pcmk_sched_probes.c || (after->rsc->priv->variant < pcmk__rsc_variant_group) rsc 648 lib/pacemaker/pcmk_sched_probes.c || (probe->rsc->priv->parent == after->rsc) rsc 649 lib/pacemaker/pcmk_sched_probes.c || (after_wrapper->action->rsc == NULL)) { rsc 652 lib/pacemaker/pcmk_sched_probes.c chained_rsc = after_wrapper->action->rsc; rsc 655 lib/pacemaker/pcmk_sched_probes.c || (after->rsc != chained_rsc->priv->parent)) { rsc 662 lib/pacemaker/pcmk_sched_probes.c if ((after->rsc->priv->variant > pcmk__rsc_variant_group) rsc 708 lib/pacemaker/pcmk_sched_probes.c pcmk_resource_t *rsc = data; rsc 712 lib/pacemaker/pcmk_sched_probes.c if (!pcmk__is_primitive(rsc)) { rsc 713 lib/pacemaker/pcmk_sched_probes.c g_list_foreach(rsc->priv->children, rsc 719 lib/pacemaker/pcmk_sched_probes.c probes = pe__resource_actions(rsc, NULL, PCMK_ACTION_MONITOR, FALSE); rsc 732 lib/pacemaker/pcmk_sched_probes.c clear_actions_tracking_flag(rsc->priv->scheduler); rsc 782 lib/pacemaker/pcmk_sched_probes.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 788 lib/pacemaker/pcmk_sched_probes.c actions = pe__resource_actions(rsc, NULL, PCMK_ACTION_START, FALSE); rsc 796 lib/pacemaker/pcmk_sched_probes.c crm_debug("No start action for %s", rsc->id); rsc 800 lib/pacemaker/pcmk_sched_probes.c probes = pe__resource_actions(rsc, NULL, PCMK_ACTION_MONITOR, FALSE); rsc 808 lib/pacemaker/pcmk_sched_probes.c pcmk_resource_t *first_rsc = first->rsc; rsc 820 lib/pacemaker/pcmk_sched_probes.c pcmk__assert(before->action->rsc != NULL); rsc 821 lib/pacemaker/pcmk_sched_probes.c first_rsc = before->action->rsc; rsc 834 lib/pacemaker/pcmk_sched_probes.c == pe__const_top_resource(start->rsc, false)) { rsc 83 lib/pacemaker/pcmk_sched_promotable.c check_for_role_change(const pcmk_resource_t *rsc, bool *demoting, rsc 89 lib/pacemaker/pcmk_sched_promotable.c if (rsc->priv->children != NULL) { rsc 90 lib/pacemaker/pcmk_sched_promotable.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 97 lib/pacemaker/pcmk_sched_promotable.c for (iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 168 lib/pacemaker/pcmk_sched_promotable.c node_to_be_promoted_on(const pcmk_resource_t *rsc) rsc 175 lib/pacemaker/pcmk_sched_promotable.c for (GList *iter = rsc->priv->children; rsc 181 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 183 lib/pacemaker/pcmk_sched_promotable.c rsc->id, child->id); rsc 188 lib/pacemaker/pcmk_sched_promotable.c node = rsc->priv->fns->location(rsc, NULL, pcmk__rsc_node_assigned); rsc 190 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, "%s can't be promoted because it won't be active", rsc 191 lib/pacemaker/pcmk_sched_promotable.c rsc->id); rsc 194 lib/pacemaker/pcmk_sched_promotable.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 195 lib/pacemaker/pcmk_sched_promotable.c if (rsc->priv->fns->state(rsc, true) == pcmk_role_promoted) { rsc 197 lib/pacemaker/pcmk_sched_promotable.c rsc->id, pcmk__node_name(node)); rsc 199 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, "%s can't be promoted because it is unmanaged", rsc 200 lib/pacemaker/pcmk_sched_promotable.c rsc->id); rsc 204 lib/pacemaker/pcmk_sched_promotable.c } else if (rsc->priv->priority < 0) { rsc 205 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 208 lib/pacemaker/pcmk_sched_promotable.c rsc->id, rsc->priv->priority); rsc 212 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 214 lib/pacemaker/pcmk_sched_promotable.c rsc->id, pcmk__node_name(node)); rsc 218 lib/pacemaker/pcmk_sched_promotable.c parent = pe__const_top_resource(rsc, false); rsc 227 lib/pacemaker/pcmk_sched_promotable.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 231 lib/pacemaker/pcmk_sched_promotable.c rsc->id, parent->id, pcmk__node_name(node)); rsc 236 lib/pacemaker/pcmk_sched_promotable.c && pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 237 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 240 lib/pacemaker/pcmk_sched_promotable.c rsc->id, pcmk__node_name(node)); rsc 570 lib/pacemaker/pcmk_sched_promotable.c is_allowed(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 572 lib/pacemaker/pcmk_sched_promotable.c pcmk_node_t *allowed = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 588 lib/pacemaker/pcmk_sched_promotable.c promotion_score_applies(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 590 lib/pacemaker/pcmk_sched_promotable.c char *id = clone_strip(rsc->id); rsc 591 lib/pacemaker/pcmk_sched_promotable.c const pcmk_resource_t *parent = pe__const_top_resource(rsc, false); rsc 596 lib/pacemaker/pcmk_sched_promotable.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 600 lib/pacemaker/pcmk_sched_promotable.c if (active == rsc) { rsc 618 lib/pacemaker/pcmk_sched_promotable.c if ((rsc->priv->active_nodes == NULL) rsc 619 lib/pacemaker/pcmk_sched_promotable.c && (g_hash_table_size(rsc->priv->probed_nodes) == 0)) { rsc 627 lib/pacemaker/pcmk_sched_promotable.c if ((g_hash_table_lookup(rsc->priv->probed_nodes, rsc 629 lib/pacemaker/pcmk_sched_promotable.c || (pe_find_node_id(rsc->priv->active_nodes, rsc 633 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 636 lib/pacemaker/pcmk_sched_promotable.c rsc->id, id, pcmk__node_name(node)); rsc 642 lib/pacemaker/pcmk_sched_promotable.c if (is_allowed(rsc, node)) { rsc 643 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, "Counting %s promotion score (for %s) on %s: %s", rsc 644 lib/pacemaker/pcmk_sched_promotable.c rsc->id, id, pcmk__node_name(node), reason); rsc 649 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 651 lib/pacemaker/pcmk_sched_promotable.c rsc->id, id, pcmk__node_name(node)); rsc 667 lib/pacemaker/pcmk_sched_promotable.c promotion_attr_value(const pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 675 lib/pacemaker/pcmk_sched_promotable.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unassigned)) { rsc 679 lib/pacemaker/pcmk_sched_promotable.c target = g_hash_table_lookup(rsc->priv->meta, rsc 698 lib/pacemaker/pcmk_sched_promotable.c promotion_score(const pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 710 lib/pacemaker/pcmk_sched_promotable.c CRM_CHECK((rsc != NULL) && (node != NULL), return 0); rsc 715 lib/pacemaker/pcmk_sched_promotable.c if (rsc->priv->children != NULL) { rsc 718 lib/pacemaker/pcmk_sched_promotable.c for (const GList *iter = rsc->priv->children; rsc 733 lib/pacemaker/pcmk_sched_promotable.c if (!promotion_score_applies(rsc, node)) { rsc 741 lib/pacemaker/pcmk_sched_promotable.c name = pcmk__s(rsc->priv->history_id, rsc->id); rsc 743 lib/pacemaker/pcmk_sched_promotable.c attr_value = promotion_attr_value(rsc, node, name); rsc 745 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, "Promotion score for %s on %s = %s", rsc 748 lib/pacemaker/pcmk_sched_promotable.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 753 lib/pacemaker/pcmk_sched_promotable.c char *rsc_name = clone_strip(rsc->id); rsc 755 lib/pacemaker/pcmk_sched_promotable.c if (strcmp(rsc->id, rsc_name) != 0) { rsc 756 lib/pacemaker/pcmk_sched_promotable.c attr_value = promotion_attr_value(rsc, node, rsc_name); rsc 757 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, "Promotion score for %s on %s (for %s) = %s", rsc 758 lib/pacemaker/pcmk_sched_promotable.c rsc_name, pcmk__node_name(node), rsc->id, rsc 776 lib/pacemaker/pcmk_sched_promotable.c rsc->id, pcmk__node_name(node), attr_value); rsc 788 lib/pacemaker/pcmk_sched_promotable.c pcmk__add_promotion_scores(pcmk_resource_t *rsc) rsc 790 lib/pacemaker/pcmk_sched_promotable.c if (pe__set_clone_flag(rsc, rsc 795 lib/pacemaker/pcmk_sched_promotable.c for (GList *iter = rsc->priv->children; rsc 818 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 828 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_trace(rsc, rsc 849 lib/pacemaker/pcmk_sched_promotable.c pcmk_resource_t *rsc = (pcmk_resource_t *) data; rsc 851 lib/pacemaker/pcmk_sched_promotable.c if (rsc->priv->orig_role == pcmk_role_started) { rsc 853 lib/pacemaker/pcmk_sched_promotable.c rsc->priv->orig_role = pcmk_role_unpromoted; rsc 855 lib/pacemaker/pcmk_sched_promotable.c g_list_foreach(rsc->priv->children, set_current_role_unpromoted, NULL); rsc 868 lib/pacemaker/pcmk_sched_promotable.c pcmk_resource_t *rsc = (pcmk_resource_t *) data; rsc 871 lib/pacemaker/pcmk_sched_promotable.c rsc->priv->fns->location(rsc, &assigned, pcmk__rsc_node_assigned); rsc 873 lib/pacemaker/pcmk_sched_promotable.c pe__set_next_role(rsc, pcmk_role_stopped, "stopped instance"); rsc 875 lib/pacemaker/pcmk_sched_promotable.c pe__set_next_role(rsc, pcmk_role_unpromoted, "unpromoted instance"); rsc 878 lib/pacemaker/pcmk_sched_promotable.c g_list_foreach(rsc->priv->children, set_next_role_unpromoted, NULL); rsc 891 lib/pacemaker/pcmk_sched_promotable.c pcmk_resource_t *rsc = (pcmk_resource_t *) data; rsc 893 lib/pacemaker/pcmk_sched_promotable.c if (rsc->priv->next_role == pcmk_role_unknown) { rsc 894 lib/pacemaker/pcmk_sched_promotable.c pe__set_next_role(rsc, pcmk_role_promoted, "promoted instance"); rsc 896 lib/pacemaker/pcmk_sched_promotable.c g_list_foreach(rsc->priv->children, set_next_role_promoted, NULL); rsc 1090 lib/pacemaker/pcmk_sched_promotable.c pcmk__set_instance_roles(pcmk_resource_t *rsc) rsc 1097 lib/pacemaker/pcmk_sched_promotable.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 1103 lib/pacemaker/pcmk_sched_promotable.c g_list_foreach(rsc->priv->children, set_instance_priority, rsc); rsc 1104 lib/pacemaker/pcmk_sched_promotable.c sort_promotable_instances(rsc); rsc 1107 lib/pacemaker/pcmk_sched_promotable.c g_list_foreach(rsc->priv->children, set_instance_role, &promoted); rsc 1108 lib/pacemaker/pcmk_sched_promotable.c pcmk__rsc_info(rsc, "%s: Promoted %d instances of a possible %d", rsc 1109 lib/pacemaker/pcmk_sched_promotable.c rsc->id, promoted, pe__clone_promoted_max(rsc)); rsc 62 lib/pacemaker/pcmk_sched_recurring.c is_op_dup(const pcmk_resource_t *rsc, const char *name, guint interval_ms) rsc 66 lib/pacemaker/pcmk_sched_recurring.c for (xmlNode *op = pcmk__xe_first_child(rsc->priv->ops_xml, PCMK_XE_OP, rsc 130 lib/pacemaker/pcmk_sched_recurring.c is_recurring_history(const pcmk_resource_t *rsc, const xmlNode *xml, rsc 154 lib/pacemaker/pcmk_sched_recurring.c if (is_op_dup(rsc, op->name, op->interval_ms)) { rsc 172 lib/pacemaker/pcmk_sched_recurring.c if (pcmk__find_action_config(rsc, op->name, op->interval_ms, rsc 174 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 178 lib/pacemaker/pcmk_sched_recurring.c op->name, rsc->id); rsc 182 lib/pacemaker/pcmk_sched_recurring.c op->key = pcmk__op_key(rsc->id, op->name, op->interval_ms); rsc 198 lib/pacemaker/pcmk_sched_recurring.c active_recurring_should_be_optional(const pcmk_resource_t *rsc, rsc 205 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 211 lib/pacemaker/pcmk_sched_recurring.c if (!pcmk_is_set(rsc->priv->cmds->action_flags(start, NULL), rsc 213 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, "%s will be mandatory because %s is", rsc 218 lib/pacemaker/pcmk_sched_recurring.c possible_matches = find_actions_exact(rsc->priv->actions, key, node); rsc 220 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 232 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 254 lib/pacemaker/pcmk_sched_recurring.c recurring_op_for_active(pcmk_resource_t *rsc, pcmk_action_t *start, rsc 267 lib/pacemaker/pcmk_sched_recurring.c is_optional = active_recurring_should_be_optional(rsc, node, op->key, rsc 273 lib/pacemaker/pcmk_sched_recurring.c role_match = (rsc->priv->next_role != pcmk_role_promoted); rsc 275 lib/pacemaker/pcmk_sched_recurring.c role_match = (rsc->priv->next_role == monitor_role); rsc 281 lib/pacemaker/pcmk_sched_recurring.c pcmk_action_t *cancel_op = pcmk__new_cancel_action(rsc, op->name, rsc 285 lib/pacemaker/pcmk_sched_recurring.c switch (rsc->priv->orig_role) { rsc 288 lib/pacemaker/pcmk_sched_recurring.c if (rsc->priv->next_role == pcmk_role_promoted) { rsc 289 lib/pacemaker/pcmk_sched_recurring.c after_key = promote_key(rsc); rsc 291 lib/pacemaker/pcmk_sched_recurring.c } else if (rsc->priv->next_role == pcmk_role_stopped) { rsc 292 lib/pacemaker/pcmk_sched_recurring.c after_key = stop_key(rsc); rsc 297 lib/pacemaker/pcmk_sched_recurring.c after_key = demote_key(rsc); rsc 304 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, NULL, cancel_op, rsc, after_key, NULL, rsc 306 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 315 lib/pacemaker/pcmk_sched_recurring.c pcmk_role_text(rsc->priv->next_role)); rsc 319 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 322 lib/pacemaker/pcmk_sched_recurring.c op->id, rsc->id, pcmk_role_text(rsc->priv->next_role), rsc 325 lib/pacemaker/pcmk_sched_recurring.c mon = custom_action(rsc, strdup(op->key), op->name, node, is_optional, rsc 326 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 329 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, "%s is unrunnable because start is", mon->uuid); rsc 334 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, "%s is unrunnable because no node is available", rsc 339 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_info(rsc, "Start %s-interval %s for %s on %s", rsc 341 lib/pacemaker/pcmk_sched_recurring.c rsc->id, pcmk__node_name(node)); rsc 344 lib/pacemaker/pcmk_sched_recurring.c if (rsc->priv->next_role == pcmk_role_promoted) { rsc 349 lib/pacemaker/pcmk_sched_recurring.c if ((node == NULL) || pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 350 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, start_key(rsc), NULL, rsc 354 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 356 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, reload_key(rsc), NULL, rsc 360 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 362 lib/pacemaker/pcmk_sched_recurring.c if (rsc->priv->next_role == pcmk_role_promoted) { rsc 363 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, promote_key(rsc), NULL, rsc 364 lib/pacemaker/pcmk_sched_recurring.c rsc, NULL, mon, rsc 367 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 369 lib/pacemaker/pcmk_sched_recurring.c } else if (rsc->priv->orig_role == pcmk_role_promoted) { rsc 370 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, demote_key(rsc), NULL, rsc 371 lib/pacemaker/pcmk_sched_recurring.c rsc, NULL, mon, rsc 374 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 390 lib/pacemaker/pcmk_sched_recurring.c cancel_if_running(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 393 lib/pacemaker/pcmk_sched_recurring.c GList *possible_matches = find_actions_exact(rsc->priv->actions, key, rsc 402 lib/pacemaker/pcmk_sched_recurring.c cancel_op = pcmk__new_cancel_action(rsc, name, interval_ms, node); rsc 404 lib/pacemaker/pcmk_sched_recurring.c switch (rsc->priv->next_role) { rsc 412 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, NULL, cancel_op, rsc 413 lib/pacemaker/pcmk_sched_recurring.c rsc, start_key(rsc), NULL, rsc 415 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 420 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_info(rsc, rsc 423 lib/pacemaker/pcmk_sched_recurring.c pcmk__readable_interval(interval_ms), name, rsc->id, rsc 425 lib/pacemaker/pcmk_sched_recurring.c pcmk_role_text(rsc->priv->next_role)); rsc 437 lib/pacemaker/pcmk_sched_recurring.c order_after_probes(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 440 lib/pacemaker/pcmk_sched_recurring.c GList *probes = pe__resource_actions(rsc, node, PCMK_ACTION_MONITOR, FALSE); rsc 458 lib/pacemaker/pcmk_sched_recurring.c order_after_stops(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 461 lib/pacemaker/pcmk_sched_recurring.c GList *stop_ops = pe__resource_actions(rsc, node, PCMK_ACTION_STOP, TRUE); rsc 468 lib/pacemaker/pcmk_sched_recurring.c && !pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 469 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, "%s optional on %s: unmanaged", rsc 480 lib/pacemaker/pcmk_sched_recurring.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 481 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, stop_key(rsc), stop, rsc 485 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 500 lib/pacemaker/pcmk_sched_recurring.c recurring_op_for_inactive(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 510 lib/pacemaker/pcmk_sched_recurring.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 516 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 518 lib/pacemaker/pcmk_sched_recurring.c "where it should not be running", op->id, rsc->id); rsc 520 lib/pacemaker/pcmk_sched_recurring.c for (GList *iter = rsc->priv->scheduler->nodes; rsc 532 lib/pacemaker/pcmk_sched_recurring.c cancel_if_running(rsc, node, op->key, op->name, op->interval_ms); rsc 537 lib/pacemaker/pcmk_sched_recurring.c possible_matches = find_actions_exact(rsc->priv->actions, op->key, rsc 542 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 546 lib/pacemaker/pcmk_sched_recurring.c op->key, op->id, rsc->id, pcmk__node_name(stop_node)); rsc 548 lib/pacemaker/pcmk_sched_recurring.c stopped_mon = custom_action(rsc, strdup(op->key), op->name, stop_node, rsc 549 lib/pacemaker/pcmk_sched_recurring.c is_optional, rsc->priv->scheduler); rsc 553 lib/pacemaker/pcmk_sched_recurring.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 554 lib/pacemaker/pcmk_sched_recurring.c order_after_probes(rsc, stop_node, stopped_mon); rsc 560 lib/pacemaker/pcmk_sched_recurring.c order_after_stops(rsc, stop_node, stopped_mon); rsc 563 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_debug(rsc, "%s unrunnable on %s: node unavailable)", rsc 573 lib/pacemaker/pcmk_sched_recurring.c stopped_mon->task, rsc->id, pcmk__node_name(stop_node)); rsc 585 lib/pacemaker/pcmk_sched_recurring.c pcmk__create_recurring_actions(pcmk_resource_t *rsc) rsc 589 lib/pacemaker/pcmk_sched_recurring.c if (pcmk_is_set(rsc->flags, pcmk__rsc_blocked)) { rsc 590 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 592 lib/pacemaker/pcmk_sched_recurring.c rsc->id); rsc 596 lib/pacemaker/pcmk_sched_recurring.c if (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance)) { rsc 597 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 599 lib/pacemaker/pcmk_sched_recurring.c "in maintenance mode", rsc->id); rsc 603 lib/pacemaker/pcmk_sched_recurring.c if (rsc->priv->assigned_node == NULL) { rsc 606 lib/pacemaker/pcmk_sched_recurring.c } else if (rsc->priv->assigned_node->details->maintenance) { rsc 607 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, rsc 610 lib/pacemaker/pcmk_sched_recurring.c rsc->id, pcmk__node_name(rsc->priv->assigned_node)); rsc 612 lib/pacemaker/pcmk_sched_recurring.c } else if ((rsc->priv->next_role != pcmk_role_stopped) rsc 613 lib/pacemaker/pcmk_sched_recurring.c || !pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 615 lib/pacemaker/pcmk_sched_recurring.c start = start_action(rsc, rsc->priv->assigned_node, TRUE); rsc 618 lib/pacemaker/pcmk_sched_recurring.c pcmk__rsc_trace(rsc, "Creating any recurring actions needed for %s", rsc 619 lib/pacemaker/pcmk_sched_recurring.c rsc->id); rsc 621 lib/pacemaker/pcmk_sched_recurring.c for (xmlNode *op = pcmk__xe_first_child(rsc->priv->ops_xml, PCMK_XE_OP, rsc 627 lib/pacemaker/pcmk_sched_recurring.c if (!is_recurring_history(rsc, op, &op_history)) { rsc 632 lib/pacemaker/pcmk_sched_recurring.c recurring_op_for_active(rsc, start, rsc->priv->assigned_node, rsc 635 lib/pacemaker/pcmk_sched_recurring.c recurring_op_for_inactive(rsc, rsc->priv->assigned_node, rsc 654 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_cancel_action(pcmk_resource_t *rsc, const char *task, rsc 661 lib/pacemaker/pcmk_sched_recurring.c pcmk__assert((rsc != NULL) && (task != NULL) && (node != NULL)); rsc 663 lib/pacemaker/pcmk_sched_recurring.c key = pcmk__op_key(rsc->id, task, interval_ms); rsc 668 lib/pacemaker/pcmk_sched_recurring.c cancel_op = custom_action(rsc, key, PCMK_ACTION_CANCEL, node, FALSE, rsc 669 lib/pacemaker/pcmk_sched_recurring.c rsc->priv->scheduler); rsc 694 lib/pacemaker/pcmk_sched_recurring.c pcmk__schedule_cancel(pcmk_resource_t *rsc, const char *call_id, rsc 700 lib/pacemaker/pcmk_sched_recurring.c CRM_CHECK((rsc != NULL) && (task != NULL) rsc 705 lib/pacemaker/pcmk_sched_recurring.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 707 lib/pacemaker/pcmk_sched_recurring.c cancel = pcmk__new_cancel_action(rsc, task, interval_ms, node); rsc 711 lib/pacemaker/pcmk_sched_recurring.c pcmk__new_ordering(rsc, stop_key(rsc), NULL, rsc, NULL, cancel, rsc 712 lib/pacemaker/pcmk_sched_recurring.c pcmk__ar_ordered, rsc->priv->scheduler); rsc 725 lib/pacemaker/pcmk_sched_recurring.c pcmk__reschedule_recurring(pcmk_resource_t *rsc, const char *task, rsc 730 lib/pacemaker/pcmk_sched_recurring.c trigger_unfencing(rsc, node, "Device parameters changed (reschedule)", rsc 731 lib/pacemaker/pcmk_sched_recurring.c NULL, rsc->priv->scheduler); rsc 732 lib/pacemaker/pcmk_sched_recurring.c op = custom_action(rsc, pcmk__op_key(rsc->id, task, interval_ms), rsc 733 lib/pacemaker/pcmk_sched_recurring.c task, node, TRUE, rsc->priv->scheduler); rsc 67 lib/pacemaker/pcmk_sched_remote.c then_action->rsc, NULL, then_action, rsc 80 lib/pacemaker/pcmk_sched_remote.c pcmk__new_ordering(first_action->rsc, NULL, first_action, rsc 178 lib/pacemaker/pcmk_sched_remote.c if (action->rsc == NULL) { rsc 307 lib/pacemaker/pcmk_sched_remote.c pcmk__assert(action->rsc != NULL); rsc 317 lib/pacemaker/pcmk_sched_remote.c pe_fence_node(action->rsc->priv->scheduler, action->node, rsc 408 lib/pacemaker/pcmk_sched_remote.c if (action->rsc == NULL) { rsc 416 lib/pacemaker/pcmk_sched_remote.c if (pcmk_is_set(action->rsc->flags, pcmk__rsc_is_remote_connection) rsc 420 lib/pacemaker/pcmk_sched_remote.c pcmk__new_ordering(action->rsc, NULL, action, action->rsc, rsc 421 lib/pacemaker/pcmk_sched_remote.c pcmk__op_key(action->rsc->id, PCMK_ACTION_START, rsc 459 lib/pacemaker/pcmk_sched_remote.c for (GList *item = action->rsc->priv->actions; item != NULL; rsc 467 lib/pacemaker/pcmk_sched_remote.c action->rsc, NULL, rsc_action, rsc 519 lib/pacemaker/pcmk_sched_remote.c pcmk__rsc_corresponds_to_guest(const pcmk_resource_t *rsc, rsc 522 lib/pacemaker/pcmk_sched_remote.c return (rsc != NULL) && (rsc->priv->launched != NULL) && (node != NULL) rsc 524 lib/pacemaker/pcmk_sched_remote.c && (node->priv->remote->priv->launcher == rsc); rsc 568 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), rsc 577 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), rsc 586 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), rsc 621 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), rsc 633 lib/pacemaker/pcmk_sched_remote.c action->task, (action->rsc? action->rsc->id : "no resource"), rsc 652 lib/pacemaker/pcmk_sched_remote.c pcmk__substitute_remote_addr(pcmk_resource_t *rsc, GHashTable *params) rsc 657 lib/pacemaker/pcmk_sched_remote.c GHashTable *base = pe_rsc_params(rsc, NULL, rsc->priv->scheduler); rsc 724 lib/pacemaker/pcmk_sched_remote.c g_hash_table_lookup(action->rsc->priv->meta, rsc 111 lib/pacemaker/pcmk_sched_resource.c pcmk__rsc_agent_changed(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 122 lib/pacemaker/pcmk_sched_resource.c const char *value = crm_element_value(rsc->priv->xml, attr_list[i]); rsc 127 lib/pacemaker/pcmk_sched_resource.c trigger_unfencing(rsc, node, "Device definition changed", NULL, rsc 128 lib/pacemaker/pcmk_sched_resource.c rsc->priv->scheduler); rsc 132 lib/pacemaker/pcmk_sched_resource.c rsc->id, pcmk__node_name(node), attr_list[i], rsc 139 lib/pacemaker/pcmk_sched_resource.c custom_action(rsc, stop_key(rsc), PCMK_ACTION_STOP, node, FALSE, rsc 140 lib/pacemaker/pcmk_sched_resource.c rsc->priv->scheduler); rsc 141 lib/pacemaker/pcmk_sched_resource.c pcmk__set_rsc_flags(rsc, pcmk__rsc_start_pending); rsc 157 lib/pacemaker/pcmk_sched_resource.c add_rsc_if_matching(GList *result, pcmk_resource_t *rsc, const char *id) rsc 159 lib/pacemaker/pcmk_sched_resource.c if (pcmk__str_eq(id, rsc->id, pcmk__str_none) rsc 160 lib/pacemaker/pcmk_sched_resource.c || pcmk__str_eq(id, rsc->priv->history_id, pcmk__str_none)) { rsc 161 lib/pacemaker/pcmk_sched_resource.c result = g_list_prepend(result, rsc); rsc 164 lib/pacemaker/pcmk_sched_resource.c for (GList *iter = rsc->priv->children; rsc 211 lib/pacemaker/pcmk_sched_resource.c pcmk_resource_t *rsc = data; rsc 213 lib/pacemaker/pcmk_sched_resource.c rsc->priv->cmds = &assignment_methods[rsc->priv->variant]; rsc 214 lib/pacemaker/pcmk_sched_resource.c g_list_foreach(rsc->priv->children, set_assignment_methods_for_rsc, rsc 242 lib/pacemaker/pcmk_sched_resource.c add_colocated_resources(const pcmk_resource_t *rsc, rsc 245 lib/pacemaker/pcmk_sched_resource.c *list = rsc->priv->cmds->colocated_resources(rsc, orig_rsc, *list); rsc 250 lib/pacemaker/pcmk_sched_resource.c pcmk__colocated_resources(const pcmk_resource_t *rsc, rsc 258 lib/pacemaker/pcmk_sched_resource.c orig_rsc = rsc; rsc 261 lib/pacemaker/pcmk_sched_resource.c if ((rsc == NULL) || (g_list_find(colocated_rscs, rsc) != NULL)) { rsc 266 lib/pacemaker/pcmk_sched_resource.c rsc->id, orig_rsc->id); rsc 267 lib/pacemaker/pcmk_sched_resource.c colocated_rscs = g_list_prepend(colocated_rscs, (gpointer) rsc); rsc 270 lib/pacemaker/pcmk_sched_resource.c colocations = pcmk__this_with_colocations(rsc); rsc 280 lib/pacemaker/pcmk_sched_resource.c (pcmk__colocation_affects(rsc, primary, constraint, rsc 288 lib/pacemaker/pcmk_sched_resource.c colocations = pcmk__with_this_colocations(rsc); rsc 297 lib/pacemaker/pcmk_sched_resource.c if (pcmk__is_clone(rsc) && !pcmk__is_clone(dependent)) { rsc 302 lib/pacemaker/pcmk_sched_resource.c (pcmk__colocation_affects(dependent, rsc, constraint, rsc 314 lib/pacemaker/pcmk_sched_resource.c pcmk__noop_add_graph_meta(const pcmk_resource_t *rsc, xmlNode *xml) rsc 325 lib/pacemaker/pcmk_sched_resource.c pcmk__output_resource_actions(pcmk_resource_t *rsc) rsc 331 lib/pacemaker/pcmk_sched_resource.c pcmk__assert(rsc != NULL); rsc 333 lib/pacemaker/pcmk_sched_resource.c out = rsc->priv->scheduler->priv->out; rsc 334 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->children != NULL) { rsc 336 lib/pacemaker/pcmk_sched_resource.c for (GList *iter = rsc->priv->children; rsc 346 lib/pacemaker/pcmk_sched_resource.c next = rsc->priv->assigned_node; rsc 347 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->active_nodes != NULL) { rsc 348 lib/pacemaker/pcmk_sched_resource.c current = pcmk__current_node(rsc); rsc 349 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->orig_role == pcmk_role_stopped) { rsc 353 lib/pacemaker/pcmk_sched_resource.c rsc->priv->orig_role = pcmk_role_started; rsc 357 lib/pacemaker/pcmk_sched_resource.c if ((current == NULL) && pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 362 lib/pacemaker/pcmk_sched_resource.c out->message(out, "rsc-action", rsc, current, next); rsc 373 lib/pacemaker/pcmk_sched_resource.c add_assigned_resource(pcmk_node_t *node, pcmk_resource_t *rsc) rsc 376 lib/pacemaker/pcmk_sched_resource.c g_list_prepend(node->priv->assigned_resources, rsc); rsc 415 lib/pacemaker/pcmk_sched_resource.c pcmk__assign_resource(pcmk_resource_t *rsc, pcmk_node_t *node, bool force, rsc 421 lib/pacemaker/pcmk_sched_resource.c pcmk__assert(rsc != NULL); rsc 422 lib/pacemaker/pcmk_sched_resource.c scheduler = rsc->priv->scheduler; rsc 424 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->children != NULL) { rsc 426 lib/pacemaker/pcmk_sched_resource.c for (GList *iter = rsc->priv->children; rsc 445 lib/pacemaker/pcmk_sched_resource.c pcmk__rsc_debug(rsc, rsc 448 lib/pacemaker/pcmk_sched_resource.c rsc->id, pcmk__node_name(node), rsc 453 lib/pacemaker/pcmk_sched_resource.c pe__set_next_role(rsc, pcmk_role_stopped, "node availability"); rsc 458 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->assigned_node != NULL) { rsc 459 lib/pacemaker/pcmk_sched_resource.c changed = !pcmk__same_node(rsc->priv->assigned_node, node); rsc 463 lib/pacemaker/pcmk_sched_resource.c pcmk__unassign_resource(rsc); rsc 464 lib/pacemaker/pcmk_sched_resource.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_unassigned); rsc 469 lib/pacemaker/pcmk_sched_resource.c pcmk__rsc_debug(rsc, "Could not assign %s to a node", rsc->id); rsc 474 lib/pacemaker/pcmk_sched_resource.c pe__set_next_role(rsc, pcmk_role_stopped, "unable to assign"); rsc 476 lib/pacemaker/pcmk_sched_resource.c for (GList *iter = rsc->priv->actions; rsc 481 lib/pacemaker/pcmk_sched_resource.c pcmk__rsc_debug(rsc, "Updating %s for %s assignment failure", rsc 482 lib/pacemaker/pcmk_sched_resource.c op->uuid, rsc->id); rsc 515 lib/pacemaker/pcmk_sched_resource.c pcmk__rsc_debug(rsc, "Assigning %s to %s", rsc->id, pcmk__node_name(node)); rsc 516 lib/pacemaker/pcmk_sched_resource.c rsc->priv->assigned_node = pe__copy_node(node); rsc 518 lib/pacemaker/pcmk_sched_resource.c add_assigned_resource(node, rsc); rsc 521 lib/pacemaker/pcmk_sched_resource.c pcmk__consume_node_capacity(node->priv->utilization, rsc); rsc 526 lib/pacemaker/pcmk_sched_resource.c out->message(out, "resource-util", rsc, node, __func__); rsc 543 lib/pacemaker/pcmk_sched_resource.c pcmk__unassign_resource(pcmk_resource_t *rsc) rsc 545 lib/pacemaker/pcmk_sched_resource.c pcmk_node_t *old = rsc->priv->assigned_node; rsc 548 lib/pacemaker/pcmk_sched_resource.c crm_info("Unassigning %s", rsc->id); rsc 550 lib/pacemaker/pcmk_sched_resource.c crm_info("Unassigning %s from %s", rsc->id, pcmk__node_name(old)); rsc 553 lib/pacemaker/pcmk_sched_resource.c pcmk__set_rsc_flags(rsc, pcmk__rsc_unassigned); rsc 555 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->children == NULL) { rsc 559 lib/pacemaker/pcmk_sched_resource.c rsc->priv->assigned_node = NULL; rsc 565 lib/pacemaker/pcmk_sched_resource.c g_list_remove(old->priv->assigned_resources, rsc); rsc 567 lib/pacemaker/pcmk_sched_resource.c pcmk__release_node_capacity(old->priv->utilization, rsc); rsc 572 lib/pacemaker/pcmk_sched_resource.c for (GList *iter = rsc->priv->children; rsc 591 lib/pacemaker/pcmk_sched_resource.c pcmk__threshold_reached(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 595 lib/pacemaker/pcmk_sched_resource.c pcmk_resource_t *rsc_to_ban = rsc; rsc 598 lib/pacemaker/pcmk_sched_resource.c if (rsc->priv->ban_after_failures == 0) { rsc 603 lib/pacemaker/pcmk_sched_resource.c if (pcmk_is_set(rsc->flags, pcmk__rsc_ignore_failure)) { rsc 608 lib/pacemaker/pcmk_sched_resource.c fail_count = pe_get_failcount(node, rsc, NULL, rsc 615 lib/pacemaker/pcmk_sched_resource.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 616 lib/pacemaker/pcmk_sched_resource.c rsc_to_ban = uber_parent(rsc); rsc 620 lib/pacemaker/pcmk_sched_resource.c remaining_tries = rsc->priv->ban_after_failures - fail_count; rsc 623 lib/pacemaker/pcmk_sched_resource.c pcmk__sched_warn(rsc->priv->scheduler, rsc 629 lib/pacemaker/pcmk_sched_resource.c rsc->priv->ban_after_failures); rsc 639 lib/pacemaker/pcmk_sched_resource.c pcmk__node_name(node), rsc->priv->ban_after_failures); rsc 32 lib/pacemaker/pcmk_sched_tickets.c pcmk_resource_t *rsc; rsc 48 lib/pacemaker/pcmk_sched_tickets.c ticket_role_matches(const pcmk_resource_t *rsc, const rsc_ticket_t *rsc_ticket) rsc 51 lib/pacemaker/pcmk_sched_tickets.c || (rsc_ticket->role == rsc->priv->orig_role)) { rsc 54 lib/pacemaker/pcmk_sched_tickets.c pcmk__rsc_trace(rsc, "Skipping constraint: \"%s\" state filter", rsc 66 lib/pacemaker/pcmk_sched_tickets.c constraints_for_ticket(pcmk_resource_t *rsc, const rsc_ticket_t *rsc_ticket) rsc 70 lib/pacemaker/pcmk_sched_tickets.c CRM_CHECK((rsc != NULL) && (rsc_ticket != NULL), return); rsc 77 lib/pacemaker/pcmk_sched_tickets.c if (rsc->priv->children != NULL) { rsc 78 lib/pacemaker/pcmk_sched_tickets.c pcmk__rsc_trace(rsc, "Processing ticket dependencies from %s", rsc->id); rsc 79 lib/pacemaker/pcmk_sched_tickets.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 85 lib/pacemaker/pcmk_sched_tickets.c pcmk__rsc_trace(rsc, "%s: Processing ticket dependency on %s (%s, %s)", rsc 86 lib/pacemaker/pcmk_sched_tickets.c rsc->id, rsc_ticket->ticket->id, rsc_ticket->id, rsc 90 lib/pacemaker/pcmk_sched_tickets.c && (rsc->priv->active_nodes != NULL)) { rsc 94 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 96 lib/pacemaker/pcmk_sched_tickets.c rsc->priv->scheduler); rsc 102 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 104 lib/pacemaker/pcmk_sched_tickets.c rsc->priv->scheduler); rsc 109 lib/pacemaker/pcmk_sched_tickets.c if (!ticket_role_matches(rsc, rsc_ticket)) { rsc 113 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 115 lib/pacemaker/pcmk_sched_tickets.c rsc->priv->scheduler); rsc 117 lib/pacemaker/pcmk_sched_tickets.c for (iter = rsc->priv->active_nodes; rsc 120 lib/pacemaker/pcmk_sched_tickets.c pe_fence_node(rsc->priv->scheduler, rsc 127 lib/pacemaker/pcmk_sched_tickets.c if (!ticket_role_matches(rsc, rsc_ticket)) { rsc 130 lib/pacemaker/pcmk_sched_tickets.c if (rsc->priv->active_nodes != NULL) { rsc 131 lib/pacemaker/pcmk_sched_tickets.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 132 lib/pacemaker/pcmk_sched_tickets.c pcmk__set_rsc_flags(rsc, pcmk__rsc_blocked); rsc 141 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 142 lib/pacemaker/pcmk_sched_tickets.c "__no_ticket__", rsc->priv->scheduler); rsc 149 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 150 lib/pacemaker/pcmk_sched_tickets.c "__ticket_standby__", rsc->priv->scheduler); rsc 156 lib/pacemaker/pcmk_sched_tickets.c rsc_ticket_new(const char *id, pcmk_resource_t *rsc, pcmk__ticket_t *ticket, rsc 162 lib/pacemaker/pcmk_sched_tickets.c if (rsc == NULL) { rsc 175 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->rsc = rsc; rsc 179 lib/pacemaker/pcmk_sched_tickets.c if (pcmk_is_set(rsc->priv->scheduler->flags, rsc 192 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 197 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 203 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 209 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 216 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 222 lib/pacemaker/pcmk_sched_tickets.c new_rsc_ticket->ticket->id, new_rsc_ticket->rsc->id, rsc 228 lib/pacemaker/pcmk_sched_tickets.c pcmk__rsc_trace(rsc, "%s (%s) ==> %s", rsc 229 lib/pacemaker/pcmk_sched_tickets.c rsc->id, pcmk_role_text(new_rsc_ticket->role), ticket->id); rsc 231 lib/pacemaker/pcmk_sched_tickets.c rsc->priv->ticket_constraints = rsc 232 lib/pacemaker/pcmk_sched_tickets.c g_list_append(rsc->priv->ticket_constraints, new_rsc_ticket); rsc 236 lib/pacemaker/pcmk_sched_tickets.c constraints_for_ticket(rsc, new_rsc_ticket); rsc 294 lib/pacemaker/pcmk_sched_tickets.c pcmk_resource_t *rsc = NULL; rsc 324 lib/pacemaker/pcmk_sched_tickets.c rsc = pcmk__find_constraint_resource(scheduler->priv->resources, rsc 328 lib/pacemaker/pcmk_sched_tickets.c if (rsc == NULL) { rsc 334 lib/pacemaker/pcmk_sched_tickets.c rsc_ticket_new(id, rsc, ticket, state, loss_policy); rsc 346 lib/pacemaker/pcmk_sched_tickets.c pcmk_resource_t *rsc = NULL; rsc 374 lib/pacemaker/pcmk_sched_tickets.c if (!pcmk__valid_resource_or_tag(scheduler, rsc_id, &rsc, &tag)) { rsc 379 lib/pacemaker/pcmk_sched_tickets.c } else if (rsc != NULL) { rsc 507 lib/pacemaker/pcmk_sched_tickets.c pcmk__require_promotion_tickets(pcmk_resource_t *rsc) rsc 509 lib/pacemaker/pcmk_sched_tickets.c for (GList *item = rsc->priv->ticket_constraints; rsc 518 lib/pacemaker/pcmk_sched_tickets.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 520 lib/pacemaker/pcmk_sched_tickets.c rsc->priv->scheduler); rsc 172 lib/pacemaker/pcmk_sched_utilization.c const pcmk_resource_t *rsc) rsc 179 lib/pacemaker/pcmk_sched_utilization.c g_hash_table_foreach(rsc->priv->utilization, update_utilization_value, rsc 192 lib/pacemaker/pcmk_sched_utilization.c const pcmk_resource_t *rsc) rsc 199 lib/pacemaker/pcmk_sched_utilization.c g_hash_table_foreach(rsc->priv->utilization, update_utilization_value, rsc 285 lib/pacemaker/pcmk_sched_utilization.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 287 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->cmds->add_utilization(rsc, orig_rsc, rscs, utilization); rsc 302 lib/pacemaker/pcmk_sched_utilization.c pcmk__ban_insufficient_capacity(pcmk_resource_t *rsc) rsc 312 lib/pacemaker/pcmk_sched_utilization.c CRM_CHECK(rsc != NULL, return NULL); rsc 315 lib/pacemaker/pcmk_sched_utilization.c if (pcmk__str_eq(rsc->priv->scheduler->priv->placement_strategy, rsc 321 lib/pacemaker/pcmk_sched_utilization.c colocated_rscs = rsc->priv->cmds->colocated_resources(rsc, NULL, NULL); rsc 326 lib/pacemaker/pcmk_sched_utilization.c rscs_id = crm_strdup_printf("%s and its colocated resources", rsc->id); rsc 329 lib/pacemaker/pcmk_sched_utilization.c if (g_list_find(colocated_rscs, rsc) == NULL) { rsc 330 lib/pacemaker/pcmk_sched_utilization.c colocated_rscs = g_list_append(colocated_rscs, rsc); rsc 334 lib/pacemaker/pcmk_sched_utilization.c unassigned_utilization = sum_resource_utilization(rsc, colocated_rscs); rsc 337 lib/pacemaker/pcmk_sched_utilization.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 356 lib/pacemaker/pcmk_sched_utilization.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 361 lib/pacemaker/pcmk_sched_utilization.c pcmk__rsc_debug(rsc, "%s does not have enough capacity for %s", rsc 363 lib/pacemaker/pcmk_sched_utilization.c resource_location(rsc, node, -PCMK_SCORE_INFINITY, rsc 365 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->scheduler); rsc 372 lib/pacemaker/pcmk_sched_utilization.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 375 lib/pacemaker/pcmk_sched_utilization.c && !have_enough_capacity(node, rsc->id, rsc 376 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->utilization)) { rsc 377 lib/pacemaker/pcmk_sched_utilization.c pcmk__rsc_debug(rsc, "%s does not have enough capacity for %s", rsc 378 lib/pacemaker/pcmk_sched_utilization.c pcmk__node_name(node), rsc->id); rsc 379 lib/pacemaker/pcmk_sched_utilization.c resource_location(rsc, node, -PCMK_SCORE_INFINITY, rsc 381 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->scheduler); rsc 390 lib/pacemaker/pcmk_sched_utilization.c pe__show_node_scores(true, rsc, "Post-utilization", rsc 391 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->allowed_nodes, rsc->priv->scheduler); rsc 427 lib/pacemaker/pcmk_sched_utilization.c pcmk__create_utilization_constraints(pcmk_resource_t *rsc, rsc 433 lib/pacemaker/pcmk_sched_utilization.c pcmk__rsc_trace(rsc, rsc 435 lib/pacemaker/pcmk_sched_utilization.c rsc->id, rsc->priv->scheduler->priv->placement_strategy); rsc 438 lib/pacemaker/pcmk_sched_utilization.c for (iter = rsc->priv->active_nodes; iter != NULL; iter = iter->next) { rsc 440 lib/pacemaker/pcmk_sched_utilization.c pcmk__new_ordering(rsc, stop_key(rsc), NULL, NULL, NULL, load_stopped, rsc 442 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->scheduler); rsc 448 lib/pacemaker/pcmk_sched_utilization.c pcmk__new_ordering(NULL, NULL, load_stopped, rsc, start_key(rsc), NULL, rsc 450 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->scheduler); rsc 452 lib/pacemaker/pcmk_sched_utilization.c rsc, rsc 453 lib/pacemaker/pcmk_sched_utilization.c pcmk__op_key(rsc->id, PCMK_ACTION_MIGRATE_TO, 0), rsc 456 lib/pacemaker/pcmk_sched_utilization.c rsc->priv->scheduler); rsc 43 lib/pacemaker/pcmk_scheduler.c check_params(pcmk_resource_t *rsc, pcmk_node_t *node, const xmlNode *rsc_op, rsc 51 lib/pacemaker/pcmk_scheduler.c if (pcmk__check_action_config(rsc, node, rsc_op) rsc 52 lib/pacemaker/pcmk_scheduler.c && pe_get_failcount(node, rsc, NULL, pcmk__fc_effective, rsc 59 lib/pacemaker/pcmk_scheduler.c digest_data = rsc_action_digest_cmp(rsc, rsc_op, node, rsc 60 lib/pacemaker/pcmk_scheduler.c rsc->priv->scheduler); rsc 65 lib/pacemaker/pcmk_scheduler.c rsc->id, pcmk__xe_id(rsc_op), node->priv->id); rsc 76 lib/pacemaker/pcmk_scheduler.c pe__clear_failcount(rsc, node, reason, rsc->priv->scheduler); rsc 92 lib/pacemaker/pcmk_scheduler.c const pcmk_resource_t *rsc) rsc 94 lib/pacemaker/pcmk_scheduler.c GList *list = pe__resource_actions(rsc, node, PCMK_ACTION_CLEAR_FAILCOUNT, rsc 114 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = data; rsc 118 lib/pacemaker/pcmk_scheduler.c if (rsc->priv->children != NULL) { rsc 119 lib/pacemaker/pcmk_scheduler.c g_list_foreach(rsc->priv->children, check_failure_threshold, rsc 124 lib/pacemaker/pcmk_scheduler.c if (!failcount_clear_action_exists(node, rsc)) { rsc 137 lib/pacemaker/pcmk_scheduler.c if (pcmk__threshold_reached(rsc, node, &failed)) { rsc 139 lib/pacemaker/pcmk_scheduler.c "__fail_limit__", rsc->priv->scheduler); rsc 160 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = data; rsc 166 lib/pacemaker/pcmk_scheduler.c if (pcmk_is_set(rsc->flags, pcmk__rsc_exclusive_probes) rsc 167 lib/pacemaker/pcmk_scheduler.c || pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 172 lib/pacemaker/pcmk_scheduler.c g_list_foreach(rsc->priv->children, apply_exclusive_discovery, rsc 175 lib/pacemaker/pcmk_scheduler.c match = g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 194 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = data; rsc 198 lib/pacemaker/pcmk_scheduler.c if (rsc->priv->children != NULL) { rsc 199 lib/pacemaker/pcmk_scheduler.c g_list_foreach(rsc->priv->children, apply_stickiness, NULL); rsc 206 lib/pacemaker/pcmk_scheduler.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed) rsc 207 lib/pacemaker/pcmk_scheduler.c || (rsc->priv->stickiness < 1) rsc 208 lib/pacemaker/pcmk_scheduler.c || !pcmk__list_of_1(rsc->priv->active_nodes)) { rsc 212 lib/pacemaker/pcmk_scheduler.c node = rsc->priv->active_nodes->data; rsc 219 lib/pacemaker/pcmk_scheduler.c if (!pcmk_is_set(rsc->priv->scheduler->flags, rsc 221 lib/pacemaker/pcmk_scheduler.c && (g_hash_table_lookup(rsc->priv->allowed_nodes, rsc 223 lib/pacemaker/pcmk_scheduler.c pcmk__rsc_debug(rsc, rsc 226 lib/pacemaker/pcmk_scheduler.c rsc->id, pcmk__node_name(node)); rsc 230 lib/pacemaker/pcmk_scheduler.c pcmk__rsc_debug(rsc, "Resource %s has %d stickiness on %s", rsc 231 lib/pacemaker/pcmk_scheduler.c rsc->id, rsc->priv->stickiness, pcmk__node_name(node)); rsc 232 lib/pacemaker/pcmk_scheduler.c resource_location(rsc, node, rsc->priv->stickiness, "stickiness", rsc 233 lib/pacemaker/pcmk_scheduler.c rsc->priv->scheduler); rsc 251 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 253 lib/pacemaker/pcmk_scheduler.c rsc->priv->cmds->shutdown_lock(rsc); rsc 312 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 313 lib/pacemaker/pcmk_scheduler.c const pcmk_node_t *target = rsc->priv->partial_migration_target; rsc 315 lib/pacemaker/pcmk_scheduler.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 316 lib/pacemaker/pcmk_scheduler.c pcmk__rsc_trace(rsc, "Assigning remote connection resource '%s'", rsc 317 lib/pacemaker/pcmk_scheduler.c rsc->id); rsc 318 lib/pacemaker/pcmk_scheduler.c rsc->priv->cmds->assign(rsc, target, true); rsc 325 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 327 lib/pacemaker/pcmk_scheduler.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 328 lib/pacemaker/pcmk_scheduler.c pcmk__rsc_trace(rsc, "Assigning %s resource '%s'", rsc 329 lib/pacemaker/pcmk_scheduler.c rsc->priv->xml->name, rsc->id); rsc 330 lib/pacemaker/pcmk_scheduler.c rsc->priv->cmds->assign(rsc, NULL, true); rsc 347 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = data; rsc 349 lib/pacemaker/pcmk_scheduler.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 352 lib/pacemaker/pcmk_scheduler.c crm_trace("Clear fail counts for orphaned resource %s", rsc->id); rsc 358 lib/pacemaker/pcmk_scheduler.c for (GList *iter = rsc->priv->scheduler->nodes; rsc 367 lib/pacemaker/pcmk_scheduler.c if (pe_get_failcount(node, rsc, NULL, pcmk__fc_effective, NULL) == 0) { rsc 371 lib/pacemaker/pcmk_scheduler.c clear_op = pe__clear_failcount(rsc, node, "it is orphaned", rsc 372 lib/pacemaker/pcmk_scheduler.c rsc->priv->scheduler); rsc 377 lib/pacemaker/pcmk_scheduler.c pcmk__new_ordering(clear_op->rsc, NULL, clear_op, rsc, stop_key(rsc), rsc 378 lib/pacemaker/pcmk_scheduler.c NULL, pcmk__ar_ordered, rsc->priv->scheduler); rsc 409 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 411 lib/pacemaker/pcmk_scheduler.c rsc->priv->cmds->create_actions(rsc); rsc 424 lib/pacemaker/pcmk_scheduler.c is_managed(const pcmk_resource_t *rsc) rsc 426 lib/pacemaker/pcmk_scheduler.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 429 lib/pacemaker/pcmk_scheduler.c for (GList *iter = rsc->priv->children; rsc 668 lib/pacemaker/pcmk_scheduler.c pcmk_resource_t *rsc = (pcmk_resource_t *) item->data; rsc 671 lib/pacemaker/pcmk_scheduler.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_removed) rsc 672 lib/pacemaker/pcmk_scheduler.c || (rsc->priv->orig_role != pcmk_role_stopped)) { rsc 673 lib/pacemaker/pcmk_scheduler.c out->message(out, (const char *) rsc->priv->xml->name, 0UL, rsc 674 lib/pacemaker/pcmk_scheduler.c rsc, all, all); rsc 64 lib/pacemaker/pcmk_simulate.c if (action->rsc != NULL) { rsc 65 lib/pacemaker/pcmk_simulate.c history_id = action->rsc->priv->history_id; rsc 106 lib/pacemaker/pcmk_simulate.c } else if (action->rsc && action_host) { rsc 252 lib/pacemaker/pcmk_simulate.c } else if ((action->rsc != NULL) rsc 253 lib/pacemaker/pcmk_simulate.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed)) { rsc 742 lib/pacemaker/pcmk_simulate.c xmlNode *rsc = pcmk__xe_first_child(action->xml, PCMK_XE_PRIMITIVE, NULL, rsc 746 lib/pacemaker/pcmk_simulate.c out->message(out, "inject-cluster-action", node, task, rsc); rsc 72 lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c find_rsc(const char *rsc) rsc 83 lib/pacemaker/tests/pcmk_resource/pcmk_resource_delete_test.c "//*[@" PCMK_XA_ID "=\"", rsc, "\"]", NULL); rsc 82 lib/pengine/bundle.c #define get_bundle_variant_data(data, rsc) do { \ rsc 83 lib/pengine/bundle.c pcmk__assert(pcmk__is_bundle(rsc)); \ rsc 84 lib/pengine/bundle.c data = rsc->priv->variant_opaque; \ rsc 96 lib/pengine/bundle.c pe__bundle_max(const pcmk_resource_t *rsc) rsc 100 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, pe__const_top_resource(rsc, true)); rsc 113 lib/pengine/bundle.c pe__bundled_resource(const pcmk_resource_t *rsc) rsc 117 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, pe__const_top_resource(rsc, true)); rsc 315 lib/pengine/bundle.c xmlNode *rsc = pcmk__xe_create(NULL, PCMK_XE_PRIMITIVE); rsc 317 lib/pengine/bundle.c crm_xml_add(rsc, PCMK_XA_ID, name); rsc 318 lib/pengine/bundle.c crm_xml_add(rsc, PCMK_XA_CLASS, PCMK_RESOURCE_CLASS_OCF); rsc 319 lib/pengine/bundle.c crm_xml_add(rsc, PCMK_XA_PROVIDER, provider); rsc 320 lib/pengine/bundle.c crm_xml_add(rsc, PCMK_XA_TYPE, kind); rsc 322 lib/pengine/bundle.c return rsc; rsc 635 lib/pengine/bundle.c disallow_node(pcmk_resource_t *rsc, const char *uname) rsc 637 lib/pengine/bundle.c gpointer match = g_hash_table_lookup(rsc->priv->allowed_nodes, uname); rsc 643 lib/pengine/bundle.c g_list_foreach(rsc->priv->children, (GFunc) disallow_node, rsc 893 lib/pengine/bundle.c pe__bundle_needs_remote_name(pcmk_resource_t *rsc) rsc 898 lib/pengine/bundle.c if (rsc == NULL) { rsc 903 lib/pengine/bundle.c params = pe_rsc_params(rsc, NULL, rsc->priv->scheduler); rsc 907 lib/pengine/bundle.c && xml_contains_remote_node(rsc->priv->xml); rsc 911 lib/pengine/bundle.c pe__add_bundle_remote_name(pcmk_resource_t *rsc, xmlNode *xml, rsc 919 lib/pengine/bundle.c if (!pe__bundle_needs_remote_name(rsc)) { rsc 923 lib/pengine/bundle.c replica = replica_for_remote(rsc); rsc 937 lib/pengine/bundle.c crm_trace("Cannot determine address for bundle connection %s", rsc->id); rsc 942 lib/pengine/bundle.c rsc->id, pcmk__node_name(node)); rsc 957 lib/pengine/bundle.c pe__unpack_bundle(pcmk_resource_t *rsc) rsc 966 lib/pengine/bundle.c pcmk__assert(rsc != NULL); rsc 967 lib/pengine/bundle.c pcmk__rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 970 lib/pengine/bundle.c rsc->priv->variant_opaque = bundle_data; rsc 971 lib/pengine/bundle.c bundle_data->prefix = strdup(rsc->id); rsc 973 lib/pengine/bundle.c xml_obj = pcmk__xe_first_child(rsc->priv->xml, PCMK_XE_DOCKER, NULL, rsc 980 lib/pengine/bundle.c xml_obj = pcmk__xe_first_child(rsc->priv->xml, PCMK_XE_PODMAN, NULL, rsc 1013 lib/pengine/bundle.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_unique); rsc 1024 lib/pengine/bundle.c xml_obj = pcmk__xe_first_child(rsc->priv->xml, PCMK_XE_NETWORK, NULL, rsc 1071 lib/pengine/bundle.c xml_obj = pcmk__xe_first_child(rsc->priv->xml, PCMK_XE_STORAGE, NULL, rsc 1100 lib/pengine/bundle.c xml_obj = pcmk__xe_first_child(rsc->priv->xml, PCMK_XE_PRIMITIVE, NULL, rsc 1153 lib/pengine/bundle.c rsc->id, pcmk__xe_id(xml_obj)); rsc 1163 lib/pengine/bundle.c if (pe__unpack_resource(xml_resource, &(bundle_data->child), rsc, rsc 1164 lib/pengine/bundle.c rsc->priv->scheduler) != pcmk_rc_ok) { rsc 1242 lib/pengine/bundle.c pcmk__insert_dup(rsc->priv->meta, rsc 1270 lib/pengine/bundle.c if (create_replica_resources(rsc, bundle_data, replica) != pcmk_rc_ok) { rsc 1271 lib/pengine/bundle.c pcmk__config_err("Failed unpacking resource %s", rsc->id); rsc 1272 lib/pengine/bundle.c pcmk__free_resource(rsc); rsc 1303 lib/pengine/bundle.c rsc->priv->children = g_list_append(rsc->priv->children, rsc 1310 lib/pengine/bundle.c replica_resource_active(pcmk_resource_t *rsc, gboolean all) rsc 1312 lib/pengine/bundle.c if (rsc) { rsc 1313 lib/pengine/bundle.c gboolean child_active = rsc->priv->fns->active(rsc, all); rsc 1325 lib/pengine/bundle.c pe__bundle_active(const pcmk_resource_t *rsc, bool all) rsc 1330 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1398 lib/pengine/bundle.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 1409 lib/pengine/bundle.c pcmk__assert(rsc != NULL); rsc 1410 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1412 lib/pengine/bundle.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 1416 lib/pengine/bundle.c print_everything = pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches); rsc 1452 lib/pengine/bundle.c const char *unique = pcmk__flag_text(rsc->flags, pcmk__rsc_unique); rsc 1453 lib/pengine/bundle.c const char *maintenance = pcmk__flag_text(rsc->flags, rsc 1455 lib/pengine/bundle.c const char *managed = pcmk__flag_text(rsc->flags, rsc 1457 lib/pengine/bundle.c const char *failed = pcmk__flag_text(rsc->flags, pcmk__rsc_failed); rsc 1461 lib/pengine/bundle.c desc = pe__resource_description(rsc, show_opts); rsc 1464 lib/pengine/bundle.c PCMK_XA_ID, rsc->id, rsc 1518 lib/pengine/bundle.c pcmk_resource_t *rsc = replica->child; rsc 1523 lib/pengine/bundle.c if(rsc == NULL) { rsc 1524 lib/pengine/bundle.c rsc = replica->container; rsc 1539 lib/pengine/bundle.c pe__common_output_html(out, rsc, buffer, node, show_opts); rsc 1552 lib/pengine/bundle.c get_unmanaged_str(const pcmk_resource_t *rsc) rsc 1554 lib/pengine/bundle.c if (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance)) { rsc 1557 lib/pengine/bundle.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 1569 lib/pengine/bundle.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 1578 lib/pengine/bundle.c pcmk__assert(rsc != NULL); rsc 1579 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1581 lib/pengine/bundle.c desc = pe__resource_description(rsc, show_opts); rsc 1583 lib/pengine/bundle.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 1587 lib/pengine/bundle.c print_everything = pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches); rsc 1625 lib/pengine/bundle.c rsc->id, bundle_data->image, rsc 1626 lib/pengine/bundle.c pcmk_is_set(rsc->flags, pcmk__rsc_unique)? " (unique)" : "", rsc 1628 lib/pengine/bundle.c get_unmanaged_str(rsc)); rsc 1662 lib/pengine/bundle.c rsc->id, bundle_data->image, rsc 1663 lib/pengine/bundle.c pcmk_is_set(rsc->flags, pcmk__rsc_unique)? " (unique)" : "", rsc 1665 lib/pengine/bundle.c get_unmanaged_str(rsc)); rsc 1682 lib/pengine/bundle.c const pcmk_resource_t *rsc = replica->child; rsc 1687 lib/pengine/bundle.c if(rsc == NULL) { rsc 1688 lib/pengine/bundle.c rsc = replica->container; rsc 1703 lib/pengine/bundle.c pe__common_output_text(out, rsc, buffer, node, show_opts); rsc 1712 lib/pengine/bundle.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 1721 lib/pengine/bundle.c desc = pe__resource_description(rsc, show_opts); rsc 1723 lib/pengine/bundle.c pcmk__assert(rsc != NULL); rsc 1724 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1726 lib/pengine/bundle.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 1730 lib/pengine/bundle.c print_everything = pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches); rsc 1768 lib/pengine/bundle.c rsc->id, bundle_data->image, rsc 1769 lib/pengine/bundle.c pcmk_is_set(rsc->flags, pcmk__rsc_unique)? " (unique)" : "", rsc 1771 lib/pengine/bundle.c get_unmanaged_str(rsc)); rsc 1805 lib/pengine/bundle.c rsc->id, bundle_data->image, rsc 1806 lib/pengine/bundle.c pcmk_is_set(rsc->flags, pcmk__rsc_unique)? " (unique)" : "", rsc 1808 lib/pengine/bundle.c get_unmanaged_str(rsc)); rsc 1850 lib/pengine/bundle.c pe__free_bundle(pcmk_resource_t *rsc) rsc 1853 lib/pengine/bundle.c CRM_CHECK(rsc != NULL, return); rsc 1855 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1856 lib/pengine/bundle.c pcmk__rsc_trace(rsc, "Freeing %s", rsc->id); rsc 1873 lib/pengine/bundle.c g_list_free(rsc->priv->children); rsc 1880 lib/pengine/bundle.c common_free(rsc); rsc 1884 lib/pengine/bundle.c pe__bundle_resource_state(const pcmk_resource_t *rsc, bool current) rsc 1898 lib/pengine/bundle.c pe_bundle_replicas(const pcmk_resource_t *rsc) rsc 1900 lib/pengine/bundle.c if (pcmk__is_bundle(rsc)) { rsc 1903 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1910 lib/pengine/bundle.c pe__count_bundle(pcmk_resource_t *rsc) rsc 1914 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 1934 lib/pengine/bundle.c pe__bundle_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 1940 lib/pengine/bundle.c if (pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches)) { rsc 1943 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 2008 lib/pengine/bundle.c pe__bundle_active_node(const pcmk_resource_t *rsc, unsigned int *count_all, rsc 2025 lib/pengine/bundle.c if (rsc == NULL) { rsc 2032 lib/pengine/bundle.c get_bundle_variant_data(data, rsc); rsc 2070 lib/pengine/bundle.c && !pe__count_active_node(rsc, node, &active, count_all, rsc 2092 lib/pengine/bundle.c pe__bundle_max_per_node(const pcmk_resource_t *rsc) rsc 2096 lib/pengine/bundle.c get_bundle_variant_data(bundle_data, rsc); rsc 42 lib/pengine/clone.c #define get_clone_variant_data(data, rsc) do { \ rsc 43 lib/pengine/clone.c pcmk__assert(pcmk__is_clone(rsc)); \ rsc 44 lib/pengine/clone.c data = rsc->priv->variant_opaque; \ rsc 164 lib/pengine/clone.c clone_header(pcmk__output_t *out, int *rc, const pcmk_resource_t *rsc, rsc 169 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 173 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 177 lib/pengine/clone.c if (pe__resource_is_disabled(rsc)) { rsc 181 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance)) { rsc 184 lib/pengine/clone.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 190 lib/pengine/clone.c rsc->id, rsc 197 lib/pengine/clone.c rsc->id, rsc 205 lib/pengine/clone.c pe__force_anon(const char *standard, pcmk_resource_t *rsc, const char *rid, rsc 208 lib/pengine/clone.c if (pcmk__is_clone(rsc)) { rsc 209 lib/pengine/clone.c clone_variant_data_t *clone_data = rsc->priv->variant_opaque; rsc 213 lib/pengine/clone.c "anonymous clones", rsc->id, standard, rid); rsc 222 lib/pengine/clone.c pe__create_clone_child(pcmk_resource_t *rsc, pcmk_scheduler_t *scheduler) rsc 231 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 248 lib/pengine/clone.c if (pe__unpack_resource(child_copy, &child_rsc, rsc, rsc 258 lib/pengine/clone.c rsc->priv->children = g_list_append(rsc->priv->children, child_rsc); rsc 264 lib/pengine/clone.c pcmk__rsc_trace(rsc, "Added %s instance %s", rsc->id, child_rsc->id); rsc 287 lib/pengine/clone.c unpack_meta_int(const pcmk_resource_t *rsc, const char *meta_name, rsc 291 lib/pengine/clone.c const char *value = g_hash_table_lookup(rsc->priv->meta, meta_name); rsc 294 lib/pengine/clone.c value = g_hash_table_lookup(rsc->priv->meta, deprecated_name); rsc 304 lib/pengine/clone.c rsc->id); rsc 312 lib/pengine/clone.c rsc->id); rsc 323 lib/pengine/clone.c clone_unpack(pcmk_resource_t *rsc) rsc 326 lib/pengine/clone.c int num_nodes = g_list_length(rsc->priv->scheduler->nodes); rsc 328 lib/pengine/clone.c xmlNode *xml_obj = rsc->priv->xml; rsc 331 lib/pengine/clone.c pcmk__rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 334 lib/pengine/clone.c rsc->priv->variant_opaque = clone_data; rsc 336 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 340 lib/pengine/clone.c unpack_meta_int(rsc, PCMK_META_PROMOTED_MAX, rsc 346 lib/pengine/clone.c unpack_meta_int(rsc, PCMK_META_PROMOTED_NODE_MAX, rsc 351 lib/pengine/clone.c clone_data->clone_node_max = unpack_meta_int(rsc, PCMK_META_CLONE_NODE_MAX, rsc 359 lib/pengine/clone.c clone_data->clone_max = unpack_meta_int(rsc, PCMK_META_CLONE_MAX, NULL, rsc 362 lib/pengine/clone.c if (crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 365 lib/pengine/clone.c "Clone", rsc->id, rsc 371 lib/pengine/clone.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique) rsc 376 lib/pengine/clone.c "per node", clone_data->clone_node_max, rsc->id); rsc 380 lib/pengine/clone.c pcmk__rsc_trace(rsc, "Options for %s", rsc->id); rsc 381 lib/pengine/clone.c pcmk__rsc_trace(rsc, "\tClone max: %d", clone_data->clone_max); rsc 382 lib/pengine/clone.c pcmk__rsc_trace(rsc, "\tClone node max: %d", clone_data->clone_node_max); rsc 383 lib/pengine/clone.c pcmk__rsc_trace(rsc, "\tClone is unique: %s", rsc 384 lib/pengine/clone.c pcmk__flag_text(rsc->flags, pcmk__rsc_unique)); rsc 385 lib/pengine/clone.c pcmk__rsc_trace(rsc, "\tClone is promotable: %s", rsc 386 lib/pengine/clone.c pcmk__flag_text(rsc->flags, pcmk__rsc_promotable)); rsc 400 lib/pengine/clone.c pcmk__config_err("%s has nothing to clone", rsc->id); rsc 410 lib/pengine/clone.c if (g_hash_table_lookup(rsc->priv->meta, rsc 412 lib/pengine/clone.c pcmk__insert_meta(rsc->priv, PCMK_META_RESOURCE_STICKINESS, "1"); rsc 419 lib/pengine/clone.c pcmk__insert_meta(rsc->priv, PCMK_META_GLOBALLY_UNIQUE, rsc 420 lib/pengine/clone.c pcmk__flag_text(rsc->flags, pcmk__rsc_unique)); rsc 426 lib/pengine/clone.c if (pe__create_clone_child(rsc, rsc->priv->scheduler) == NULL) { rsc 433 lib/pengine/clone.c if (pe__create_clone_child(rsc, rsc->priv->scheduler) == NULL) { rsc 439 lib/pengine/clone.c pcmk__rsc_trace(rsc, "Added %d children to resource %s...", rsc 440 lib/pengine/clone.c clone_data->clone_max, rsc->id); rsc 445 lib/pengine/clone.c clone_active(const pcmk_resource_t *rsc, bool all) rsc 447 lib/pengine/clone.c for (GList *gIter = rsc->priv->children; rsc 468 lib/pengine/clone.c configured_role_str(pcmk_resource_t * rsc) rsc 470 lib/pengine/clone.c const char *target_role = g_hash_table_lookup(rsc->priv->meta, rsc 473 lib/pengine/clone.c if ((target_role == NULL) && (rsc->priv->children != NULL)) { rsc 475 lib/pengine/clone.c pcmk_resource_t *instance = rsc->priv->children->data; rsc 484 lib/pengine/clone.c configured_role(pcmk_resource_t *rsc) rsc 487 lib/pengine/clone.c const char *target_role = configured_role_str(rsc); rsc 493 lib/pengine/clone.c " for resource %s", rsc->id); rsc 500 lib/pengine/clone.c is_set_recursive(const pcmk_resource_t *rsc, long long flag, bool any) rsc 504 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, flag)) { rsc 512 lib/pengine/clone.c for (GList *gIter = rsc->priv->children; rsc 537 lib/pengine/clone.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 546 lib/pengine/clone.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 550 lib/pengine/clone.c print_everything = pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches) || rsc 551 lib/pengine/clone.c (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)); rsc 555 lib/pengine/clone.c for (GList *gIter = rsc->priv->children; rsc 570 lib/pengine/clone.c const char *multi_state = pcmk__flag_text(rsc->flags, rsc 572 lib/pengine/clone.c const char *unique = pcmk__flag_text(rsc->flags, pcmk__rsc_unique); rsc 573 lib/pengine/clone.c const char *maintenance = pcmk__flag_text(rsc->flags, rsc 575 lib/pengine/clone.c const char *managed = pcmk__flag_text(rsc->flags, rsc 577 lib/pengine/clone.c const char *disabled = pcmk__btoa(pe__resource_is_disabled(rsc)); rsc 578 lib/pengine/clone.c const char *failed = pcmk__flag_text(rsc->flags, pcmk__rsc_failed); rsc 579 lib/pengine/clone.c const char *ignored = pcmk__flag_text(rsc->flags, rsc 581 lib/pengine/clone.c const char *target_role = configured_role_str(rsc); rsc 582 lib/pengine/clone.c const char *desc = pe__resource_description(rsc, show_opts); rsc 587 lib/pengine/clone.c PCMK_XA_ID, rsc->id, rsc 619 lib/pengine/clone.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 638 lib/pengine/clone.c desc = pe__resource_description(rsc, show_opts); rsc 640 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 642 lib/pengine/clone.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 646 lib/pengine/clone.c print_everything = pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches) || rsc 647 lib/pengine/clone.c (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)); rsc 649 lib/pengine/clone.c for (gIter = rsc->priv->children; gIter != NULL; gIter = gIter->next) { rsc 667 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 670 lib/pengine/clone.c || !pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 738 lib/pengine/clone.c clone_header(out, &rc, rsc, clone_data, desc); rsc 769 lib/pengine/clone.c clone_header(out, &rc, rsc, clone_data, desc); rsc 792 lib/pengine/clone.c clone_header(out, &rc, rsc, clone_data, desc); rsc 794 lib/pengine/clone.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 795 lib/pengine/clone.c enum rsc_role_e role = configured_role(rsc); rsc 818 lib/pengine/clone.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique) rsc 822 lib/pengine/clone.c GList *list = g_hash_table_get_values(rsc->priv->allowed_nodes); rsc 835 lib/pengine/clone.c list = g_hash_table_get_values(rsc->priv->probed_nodes); rsc 842 lib/pengine/clone.c if ((pcmk__find_node_in_list(rsc->priv->active_nodes, rsc 850 lib/pengine/clone.c if (configured_role(rsc) == pcmk_role_stopped) { rsc 858 lib/pengine/clone.c probe_op = pe__failed_probe_for_rsc(rsc, rsc 880 lib/pengine/clone.c clone_header(out, &rc, rsc, clone_data, desc); rsc 906 lib/pengine/clone.c clone_header(out, &rc, rsc, clone_data, desc); rsc 917 lib/pengine/clone.c clone_free(pcmk_resource_t * rsc) rsc 921 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 923 lib/pengine/clone.c pcmk__rsc_trace(rsc, "Freeing %s", rsc->id); rsc 925 lib/pengine/clone.c for (GList *gIter = rsc->priv->children; rsc 940 lib/pengine/clone.c g_list_free(rsc->priv->children); rsc 949 lib/pengine/clone.c common_free(rsc); rsc 953 lib/pengine/clone.c clone_resource_state(const pcmk_resource_t *rsc, bool current) rsc 957 lib/pengine/clone.c for (GList *gIter = rsc->priv->children; rsc 969 lib/pengine/clone.c pcmk__rsc_trace(rsc, "%s role: %s", rsc->id, pcmk_role_text(clone_role)); rsc 981 lib/pengine/clone.c pe__is_universal_clone(const pcmk_resource_t *rsc, rsc 984 lib/pengine/clone.c if (pcmk__is_clone(rsc)) { rsc 985 lib/pengine/clone.c clone_variant_data_t *clone_data = rsc->priv->variant_opaque; rsc 995 lib/pengine/clone.c pe__clone_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 1001 lib/pengine/clone.c if (pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches)) { rsc 1004 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 1009 lib/pengine/clone.c for (const GList *iter = rsc->priv->children; rsc 1027 lib/pengine/clone.c pe__clone_child_id(const pcmk_resource_t *rsc) rsc 1030 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 1253 lib/pengine/clone.c pe__clone_max_per_node(const pcmk_resource_t *rsc) rsc 1257 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 23 lib/pengine/complex.c static pcmk_node_t *active_node(const pcmk_resource_t *rsc, rsc 126 lib/pengine/complex.c expand_parents_fixed_nvpairs(pcmk_resource_t *rsc, rsc 131 lib/pengine/complex.c pcmk_resource_t *p = rsc->priv->parent; rsc 172 lib/pengine/complex.c get_meta_attributes(GHashTable * meta_hash, pcmk_resource_t * rsc, rsc 177 lib/pengine/complex.c .rsc_standard = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS), rsc 178 lib/pengine/complex.c .rsc_provider = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER), rsc 179 lib/pengine/complex.c .rsc_agent = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE) rsc 182 lib/pengine/complex.c for (xmlAttrPtr a = pcmk__xe_first_attr(rsc->priv->xml); rsc 191 lib/pengine/complex.c pe__unpack_dataset_nvpairs(rsc->priv->xml, PCMK_XE_META_ATTRIBUTES, rsc 198 lib/pengine/complex.c if (rsc->priv->parent != NULL) { rsc 199 lib/pengine/complex.c expand_parents_fixed_nvpairs(rsc, &rule_input, meta_hash, scheduler); rsc 211 lib/pengine/complex.c if (rsc->priv->parent != NULL) { rsc 212 lib/pengine/complex.c g_hash_table_foreach(rsc->priv->parent->priv->meta, dup_attr, rsc 226 lib/pengine/complex.c get_rsc_attributes(GHashTable *instance_attrs, const pcmk_resource_t *rsc, rsc 233 lib/pengine/complex.c CRM_CHECK((instance_attrs != NULL) && (rsc != NULL) && (scheduler != NULL), rsc 242 lib/pengine/complex.c pe__unpack_dataset_nvpairs(rsc->priv->xml, PCMK_XE_INSTANCE_ATTRIBUTES, rsc 244 lib/pengine/complex.c if (rsc->priv->parent != NULL) { rsc 245 lib/pengine/complex.c get_rsc_attributes(instance_attrs, rsc->priv->parent, node, scheduler); rsc 422 lib/pengine/complex.c detect_unique(const pcmk_resource_t *rsc) rsc 424 lib/pengine/complex.c const char *value = g_hash_table_lookup(rsc->priv->meta, rsc 428 lib/pengine/complex.c value = g_hash_table_lookup(rsc->priv->meta, rsc 462 lib/pengine/complex.c pe_rsc_params(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 474 lib/pengine/complex.c if ((rsc == NULL) || (scheduler == NULL)) { rsc 482 lib/pengine/complex.c if (rsc->priv->parameter_cache == NULL) { rsc 483 lib/pengine/complex.c rsc->priv->parameter_cache = pcmk__strikey_table(free, rsc 486 lib/pengine/complex.c params_on_node = g_hash_table_lookup(rsc->priv->parameter_cache, rsc 493 lib/pengine/complex.c get_rsc_attributes(params_on_node, rsc, node, scheduler); rsc 494 lib/pengine/complex.c g_hash_table_insert(rsc->priv->parameter_cache, strdup(node_name), rsc 509 lib/pengine/complex.c unpack_requires(pcmk_resource_t *rsc, const char *value, bool is_default) rsc 511 lib/pengine/complex.c const pcmk_scheduler_t *scheduler = rsc->priv->scheduler; rsc 516 lib/pengine/complex.c pcmk__set_rsc_flags(rsc, pcmk__rsc_needs_quorum); rsc 519 lib/pengine/complex.c pcmk__set_rsc_flags(rsc, pcmk__rsc_needs_fencing); rsc 522 lib/pengine/complex.c rsc->id); rsc 526 lib/pengine/complex.c if (pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 529 lib/pengine/complex.c "devices cannot require unfencing", rsc->id); rsc 530 lib/pengine/complex.c unpack_requires(rsc, PCMK_VALUE_QUORUM, true); rsc 536 lib/pengine/complex.c "disabled", rsc->id); rsc 537 lib/pengine/complex.c unpack_requires(rsc, PCMK_VALUE_QUORUM, true); rsc 541 lib/pengine/complex.c pcmk__set_rsc_flags(rsc, pcmk__rsc_needs_fencing rsc 548 lib/pengine/complex.c if (pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 551 lib/pengine/complex.c } else if (pcmk__is_primitive(rsc) rsc 552 lib/pengine/complex.c && xml_contains_remote_node(rsc->priv->xml)) { rsc 571 lib/pengine/complex.c rsc->id, value, orig_value); rsc 573 lib/pengine/complex.c unpack_requires(rsc, value, true); rsc 577 lib/pengine/complex.c pcmk__rsc_trace(rsc, "\tRequired to start: %s%s", value, rsc 588 lib/pengine/complex.c unpack_priority(pcmk_resource_t *rsc) rsc 590 lib/pengine/complex.c const char *value = g_hash_table_lookup(rsc->priv->meta, rsc 592 lib/pengine/complex.c int rc = pcmk_parse_score(value, &(rsc->priv->priority), 0); rsc 598 lib/pengine/complex.c rsc->id, value, pcmk_rc_str(rc)); rsc 609 lib/pengine/complex.c unpack_stickiness(pcmk_resource_t *rsc) rsc 611 lib/pengine/complex.c const char *value = g_hash_table_lookup(rsc->priv->meta, rsc 622 lib/pengine/complex.c int rc = pcmk_parse_score(value, &(rsc->priv->stickiness), 0); rsc 628 lib/pengine/complex.c rsc->id, value, pcmk_rc_str(rc)); rsc 640 lib/pengine/complex.c unpack_migration_threshold(pcmk_resource_t *rsc) rsc 642 lib/pengine/complex.c const char *value = g_hash_table_lookup(rsc->priv->meta, rsc 652 lib/pengine/complex.c rsc->priv->ban_after_failures = PCMK_SCORE_INFINITY; rsc 654 lib/pengine/complex.c int rc = pcmk_parse_score(value, &(rsc->priv->ban_after_failures), rsc 657 lib/pengine/complex.c if ((rc != pcmk_rc_ok) || (rsc->priv->ban_after_failures < 0)) { rsc 662 lib/pengine/complex.c rsc->id, value, pcmk_rc_str(rc)); rsc 663 lib/pengine/complex.c rsc->priv->ban_after_failures = PCMK_SCORE_INFINITY; rsc 686 lib/pengine/complex.c pe__unpack_resource(xmlNode *xml_obj, pcmk_resource_t **rsc, rsc 701 lib/pengine/complex.c CRM_CHECK(rsc != NULL, return EINVAL); rsc 703 lib/pengine/complex.c *rsc = NULL; rsc 721 lib/pengine/complex.c *rsc = calloc(1, sizeof(pcmk_resource_t)); rsc 722 lib/pengine/complex.c if (*rsc == NULL) { rsc 728 lib/pengine/complex.c (*rsc)->priv = calloc(1, sizeof(pcmk__resource_private_t)); rsc 729 lib/pengine/complex.c if ((*rsc)->priv == NULL) { rsc 732 lib/pengine/complex.c free(*rsc); rsc 735 lib/pengine/complex.c rsc_private = (*rsc)->priv; rsc 762 lib/pengine/complex.c common_free(*rsc); rsc 763 lib/pengine/complex.c *rsc = NULL; rsc 774 lib/pengine/complex.c (*rsc)->id = crm_strdup_printf("%s:%s", id, value); rsc 778 lib/pengine/complex.c (*rsc)->id = strdup(id); rsc 783 lib/pengine/complex.c get_meta_attributes(rsc_private->meta, *rsc, NULL, scheduler); rsc 785 lib/pengine/complex.c (*rsc)->flags = 0; rsc 786 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_unassigned); rsc 789 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_managed); rsc 795 lib/pengine/complex.c unpack_priority(*rsc); rsc 799 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_critical); rsc 804 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_notify); rsc 808 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_is_remote_connection); rsc 818 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_migratable); rsc 827 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_migratable); rsc 839 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_managed); rsc 841 lib/pengine/complex.c pcmk__clear_rsc_flags(*rsc, pcmk__rsc_managed); rsc 847 lib/pengine/complex.c pcmk__clear_rsc_flags(*rsc, pcmk__rsc_managed); rsc 848 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_maintenance); rsc 851 lib/pengine/complex.c pcmk__clear_rsc_flags(*rsc, pcmk__rsc_managed); rsc 852 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_maintenance); rsc 855 lib/pengine/complex.c if (pcmk__is_clone(pe__const_top_resource(*rsc, false))) { rsc 856 lib/pengine/complex.c if (detect_unique(*rsc)) { rsc 857 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_unique); rsc 859 lib/pengine/complex.c if (crm_is_true(g_hash_table_lookup((*rsc)->priv->meta, rsc 861 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_promotable); rsc 864 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_unique); rsc 870 lib/pengine/complex.c pcmk__rsc_trace(*rsc, "%s multiple running resource recovery: stop only", rsc 871 lib/pengine/complex.c (*rsc)->id); rsc 875 lib/pengine/complex.c pcmk__rsc_trace(*rsc, "%s multiple running resource recovery: block", rsc 876 lib/pengine/complex.c (*rsc)->id); rsc 881 lib/pengine/complex.c pcmk__rsc_trace(*rsc, rsc 884 lib/pengine/complex.c (*rsc)->id); rsc 896 lib/pengine/complex.c pcmk__rsc_trace(*rsc, rsc 898 lib/pengine/complex.c (*rsc)->id); rsc 901 lib/pengine/complex.c unpack_stickiness(*rsc); rsc 902 lib/pengine/complex.c unpack_migration_threshold(*rsc); rsc 907 lib/pengine/complex.c pcmk__set_rsc_flags(*rsc, pcmk__rsc_fence_device); rsc 911 lib/pengine/complex.c unpack_requires(*rsc, value, false); rsc 919 lib/pengine/complex.c GHashTable *params = pe_rsc_params(*rsc, NULL, scheduler); rsc 942 lib/pengine/complex.c get_target_role(*rsc, &(rsc_private->next_role)); rsc 943 lib/pengine/complex.c pcmk__rsc_trace(*rsc, "%s desired next state: %s", (*rsc)->id, rsc 947 lib/pengine/complex.c if (!rsc_private->fns->unpack(*rsc)) { rsc 948 lib/pengine/complex.c pcmk__free_resource(*rsc); rsc 949 lib/pengine/complex.c *rsc = NULL; rsc 955 lib/pengine/complex.c resource_location(*rsc, NULL, 0, "symmetric_default", scheduler); rsc 960 lib/pengine/complex.c resource_location(*rsc, NULL, 0, "remote_connection_default", rsc 964 lib/pengine/complex.c pcmk__rsc_trace(*rsc, "%s action notification: %s", (*rsc)->id, rsc 965 lib/pengine/complex.c pcmk_is_set((*rsc)->flags, pcmk__rsc_notify)? "required" : "not required"); rsc 973 lib/pengine/complex.c pcmk__free_resource(*rsc); rsc 974 lib/pengine/complex.c *rsc = NULL; rsc 982 lib/pengine/complex.c is_parent(pcmk_resource_t *child, pcmk_resource_t *rsc) rsc 986 lib/pengine/complex.c if (parent == NULL || rsc == NULL) { rsc 990 lib/pengine/complex.c if (parent->priv->parent == rsc) { rsc 999 lib/pengine/complex.c uber_parent(pcmk_resource_t *rsc) rsc 1001 lib/pengine/complex.c pcmk_resource_t *parent = rsc; rsc 1025 lib/pengine/complex.c pe__const_top_resource(const pcmk_resource_t *rsc, bool include_bundle) rsc 1027 lib/pengine/complex.c const pcmk_resource_t *parent = rsc; rsc 1042 lib/pengine/complex.c common_free(pcmk_resource_t * rsc) rsc 1044 lib/pengine/complex.c if (rsc == NULL) { rsc 1048 lib/pengine/complex.c pcmk__rsc_trace(rsc, "Freeing %s", rsc->id); rsc 1050 lib/pengine/complex.c if (rsc->priv->parameter_cache != NULL) { rsc 1051 lib/pengine/complex.c g_hash_table_destroy(rsc->priv->parameter_cache); rsc 1054 lib/pengine/complex.c if ((rsc->priv->parent == NULL) rsc 1055 lib/pengine/complex.c && pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 1057 lib/pengine/complex.c pcmk__xml_free(rsc->priv->xml); rsc 1058 lib/pengine/complex.c rsc->priv->xml = NULL; rsc 1059 lib/pengine/complex.c pcmk__xml_free(rsc->priv->orig_xml); rsc 1060 lib/pengine/complex.c rsc->priv->orig_xml = NULL; rsc 1062 lib/pengine/complex.c } else if (rsc->priv->orig_xml != NULL) { rsc 1064 lib/pengine/complex.c pcmk__xml_free(rsc->priv->xml); rsc 1065 lib/pengine/complex.c rsc->priv->xml = NULL; rsc 1067 lib/pengine/complex.c free(rsc->id); rsc 1069 lib/pengine/complex.c free(rsc->priv->variant_opaque); rsc 1070 lib/pengine/complex.c free(rsc->priv->history_id); rsc 1071 lib/pengine/complex.c free(rsc->priv->pending_action); rsc 1072 lib/pengine/complex.c pcmk__free_node_copy(rsc->priv->assigned_node); rsc 1074 lib/pengine/complex.c g_list_free(rsc->priv->actions); rsc 1075 lib/pengine/complex.c g_list_free(rsc->priv->active_nodes); rsc 1076 lib/pengine/complex.c g_list_free(rsc->priv->launched); rsc 1077 lib/pengine/complex.c g_list_free(rsc->priv->dangling_migration_sources); rsc 1078 lib/pengine/complex.c g_list_free(rsc->priv->with_this_colocations); rsc 1079 lib/pengine/complex.c g_list_free(rsc->priv->this_with_colocations); rsc 1080 lib/pengine/complex.c g_list_free(rsc->priv->location_constraints); rsc 1081 lib/pengine/complex.c g_list_free(rsc->priv->ticket_constraints); rsc 1083 lib/pengine/complex.c if (rsc->priv->meta != NULL) { rsc 1084 lib/pengine/complex.c g_hash_table_destroy(rsc->priv->meta); rsc 1086 lib/pengine/complex.c if (rsc->priv->utilization != NULL) { rsc 1087 lib/pengine/complex.c g_hash_table_destroy(rsc->priv->utilization); rsc 1089 lib/pengine/complex.c if (rsc->priv->probed_nodes != NULL) { rsc 1090 lib/pengine/complex.c g_hash_table_destroy(rsc->priv->probed_nodes); rsc 1092 lib/pengine/complex.c if (rsc->priv->allowed_nodes != NULL) { rsc 1093 lib/pengine/complex.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 1096 lib/pengine/complex.c free(rsc->priv); rsc 1098 lib/pengine/complex.c free(rsc); rsc 1116 lib/pengine/complex.c pe__count_active_node(const pcmk_resource_t *rsc, pcmk_node_t *node, rsc 1123 lib/pengine/complex.c CRM_CHECK((rsc != NULL) && (node != NULL) && (active != NULL), rsc 1138 lib/pengine/complex.c if (rsc->priv->partial_migration_source != NULL) { rsc 1139 lib/pengine/complex.c if (pcmk__same_node(node, rsc->priv->partial_migration_source)) { rsc 1144 lib/pengine/complex.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing)) { rsc 1160 lib/pengine/complex.c active_node(const pcmk_resource_t *rsc, unsigned int *count_all, rsc 1171 lib/pengine/complex.c if (rsc == NULL) { rsc 1174 lib/pengine/complex.c for (GList *iter = rsc->priv->active_nodes; rsc 1177 lib/pengine/complex.c if (!pe__count_active_node(rsc, (pcmk_node_t *) iter->data, &active, rsc 1199 lib/pengine/complex.c pe__find_active_requires(const pcmk_resource_t *rsc, unsigned int *count) rsc 1201 lib/pengine/complex.c if (rsc == NULL) { rsc 1208 lib/pengine/complex.c if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing)) { rsc 1209 lib/pengine/complex.c return rsc->priv->fns->active_node(rsc, count, NULL); rsc 1211 lib/pengine/complex.c return rsc->priv->fns->active_node(rsc, NULL, count); rsc 1216 lib/pengine/complex.c pe__count_common(pcmk_resource_t *rsc) rsc 1218 lib/pengine/complex.c if (rsc->priv->children != NULL) { rsc 1219 lib/pengine/complex.c for (GList *item = rsc->priv->children; rsc 1226 lib/pengine/complex.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_removed) rsc 1227 lib/pengine/complex.c || (rsc->priv->orig_role > pcmk_role_stopped)) { rsc 1228 lib/pengine/complex.c rsc->priv->scheduler->priv->ninstances++; rsc 1229 lib/pengine/complex.c if (pe__resource_is_disabled(rsc)) { rsc 1230 lib/pengine/complex.c rsc->priv->scheduler->priv->disabled_resources++; rsc 1232 lib/pengine/complex.c if (pcmk_is_set(rsc->flags, pcmk__rsc_blocked)) { rsc 1233 lib/pengine/complex.c rsc->priv->scheduler->priv->blocked_resources++; rsc 1247 lib/pengine/complex.c pe__set_next_role(pcmk_resource_t *rsc, enum rsc_role_e role, const char *why) rsc 1249 lib/pengine/complex.c pcmk__assert((rsc != NULL) && (why != NULL)); rsc 1250 lib/pengine/complex.c if (rsc->priv->next_role != role) { rsc 1251 lib/pengine/complex.c pcmk__rsc_trace(rsc, "Resetting next role for %s from %s to %s (%s)", rsc 1252 lib/pengine/complex.c rsc->id, pcmk_role_text(rsc->priv->next_role), rsc 1254 lib/pengine/complex.c rsc->priv->next_role = role; rsc 79 lib/pengine/failcounts.c block_failure(const pcmk_node_t *node, pcmk_resource_t *rsc, rsc 82 lib/pengine/failcounts.c char *xml_name = clone_strip(rsc->id); rsc 101 lib/pengine/failcounts.c xmlXPathObject *xpathObj = pcmk__xpath_search(rsc->priv->xml->doc, xpath); rsc 123 lib/pengine/failcounts.c pcmk_scheduler_t *scheduler = rsc->priv->scheduler; rsc 188 lib/pengine/failcounts.c rsc_fail_name(const pcmk_resource_t *rsc) rsc 190 lib/pengine/failcounts.c const char *name = pcmk__s(rsc->priv->history_id, rsc->id); rsc 192 lib/pengine/failcounts.c return pcmk_is_set(rsc->flags, pcmk__rsc_unique)? strdup(name) : clone_strip(name); rsc 245 lib/pengine/failcounts.c generate_fail_regexes(const pcmk_resource_t *rsc, regex_t *failcount_re, rsc 249 lib/pengine/failcounts.c char *rsc_name = rsc_fail_name(rsc); rsc 252 lib/pengine/failcounts.c pcmk_is_set(rsc->flags, pcmk__rsc_unique), rsc 257 lib/pengine/failcounts.c pcmk_is_set(rsc->flags, pcmk__rsc_unique), rsc 270 lib/pengine/failcounts.c pcmk_resource_t *rsc; // Resource to check for fail count rsc 305 lib/pengine/failcounts.c pcmk__rsc_trace(fc_data->rsc, "Added %s (%s) to %s fail count (now %s)", rsc 307 lib/pengine/failcounts.c fc_data->rsc->id, rsc 347 lib/pengine/failcounts.c #define readable_expiration(rsc) \ rsc 348 lib/pengine/failcounts.c pcmk__readable_interval((rsc)->priv->failure_expiration_ms) rsc 367 lib/pengine/failcounts.c pe_get_failcount(const pcmk_node_t *node, pcmk_resource_t *rsc, rsc 372 lib/pengine/failcounts.c .rsc = rsc, rsc 380 lib/pengine/failcounts.c CRM_CHECK(generate_fail_regexes(rsc, &fc_data.failcount_re, rsc 389 lib/pengine/failcounts.c if ((fc_data.failcount > 0) && (rsc->priv->failure_expiration_ms > 0) rsc 390 lib/pengine/failcounts.c && block_failure(node, rsc, xml_op)) { rsc 395 lib/pengine/failcounts.c readable_expiration(rsc), rsc->id); rsc 396 lib/pengine/failcounts.c rsc->priv->failure_expiration_ms = 0; rsc 402 lib/pengine/failcounts.c && (rsc->priv->failure_expiration_ms > 0)) { rsc 404 lib/pengine/failcounts.c time_t now = pcmk__scheduler_epoch_time(rsc->priv->scheduler); rsc 405 lib/pengine/failcounts.c const guint expiration = pcmk__timeout_ms2s(rsc->priv->failure_expiration_ms); rsc 408 lib/pengine/failcounts.c pcmk__rsc_debug(rsc, "Failcount for %s on %s expired after %s", rsc 409 lib/pengine/failcounts.c rsc->id, pcmk__node_name(node), rsc 410 lib/pengine/failcounts.c readable_expiration(rsc)); rsc 426 lib/pengine/failcounts.c && (rsc->priv->launched != NULL) && !pcmk__is_bundled(rsc)) { rsc 428 lib/pengine/failcounts.c g_list_foreach(rsc->priv->launched, update_launched_failcount, rsc 431 lib/pengine/failcounts.c pcmk__rsc_info(rsc, rsc 434 lib/pengine/failcounts.c rsc->id, pcmk_readable_score(fc_data.failcount), rsc 440 lib/pengine/failcounts.c pcmk__rsc_info(rsc, "%s has failed %s time%s on %s", rsc 441 lib/pengine/failcounts.c rsc->id, pcmk_readable_score(fc_data.failcount), rsc 467 lib/pengine/failcounts.c pe__clear_failcount(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 473 lib/pengine/failcounts.c CRM_CHECK(rsc && node && reason && scheduler, return NULL); rsc 475 lib/pengine/failcounts.c key = pcmk__op_key(rsc->id, PCMK_ACTION_CLEAR_FAILCOUNT, 0); rsc 476 lib/pengine/failcounts.c clear = custom_action(rsc, key, PCMK_ACTION_CLEAR_FAILCOUNT, node, FALSE, rsc 480 lib/pengine/failcounts.c rsc->id, pcmk__node_name(node), reason, clear->uuid); rsc 102 lib/pengine/group.c inactive_resources(pcmk_resource_t *rsc) rsc 106 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 120 lib/pengine/group.c group_header(pcmk__output_t *out, int *rc, const pcmk_resource_t *rsc, rsc 131 lib/pengine/group.c if (pe__resource_is_disabled(rsc)) { rsc 135 lib/pengine/group.c if (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance)) { rsc 138 lib/pengine/group.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 144 lib/pengine/group.c rsc->id, rsc 150 lib/pengine/group.c rsc->id, rsc 157 lib/pengine/group.c skip_child_rsc(pcmk_resource_t *rsc, pcmk_resource_t *child, rsc 184 lib/pengine/group.c group_unpack(pcmk_resource_t *rsc) rsc 186 lib/pengine/group.c xmlNode *xml_obj = rsc->priv->xml; rsc 191 lib/pengine/group.c pcmk__rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 195 lib/pengine/group.c rsc->priv->variant_opaque = group_data; rsc 198 lib/pengine/group.c set_group_flag(rsc, PCMK_META_ORDERED, pcmk__group_ordered, rsc 200 lib/pengine/group.c set_group_flag(rsc, "collocated", pcmk__group_colocated, rsc 203 lib/pengine/group.c clone_id = crm_element_value(rsc->priv->xml, PCMK__META_CLONE); rsc 213 lib/pengine/group.c if (pe__unpack_resource(xml_native_rsc, &new_rsc, rsc, rsc 214 lib/pengine/group.c rsc->priv->scheduler) != pcmk_rc_ok) { rsc 218 lib/pengine/group.c rsc->priv->children = g_list_append(rsc->priv->children, new_rsc); rsc 220 lib/pengine/group.c pcmk__rsc_trace(rsc, "Added %s member %s", rsc->id, new_rsc->id); rsc 223 lib/pengine/group.c if (rsc->priv->children == NULL) { rsc 226 lib/pengine/group.c rsc->priv->variant_opaque = NULL; rsc 227 lib/pengine/group.c pcmk__config_err("Group %s has no members", rsc->id); rsc 235 lib/pengine/group.c group_active(const pcmk_resource_t *rsc, bool all) rsc 240 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 266 lib/pengine/group.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 274 lib/pengine/group.c gboolean parent_passes = pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches) || rsc 275 lib/pengine/group.c (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)); rsc 277 lib/pengine/group.c desc = pe__resource_description(rsc, show_opts); rsc 279 lib/pengine/group.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 283 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 288 lib/pengine/group.c if (skip_child_rsc(rsc, child_rsc, parent_passes, only_rsc, show_opts)) { rsc 294 lib/pengine/group.c const char *maintenance = pcmk__flag_text(rsc->flags, rsc 296 lib/pengine/group.c const char *managed = pcmk__flag_text(rsc->flags, rsc 298 lib/pengine/group.c const char *disabled = pcmk__btoa(pe__resource_is_disabled(rsc)); rsc 301 lib/pengine/group.c PCMK_XA_ID, rsc->id, rsc 329 lib/pengine/group.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 336 lib/pengine/group.c gboolean parent_passes = pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches) || rsc 337 lib/pengine/group.c (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)); rsc 339 lib/pengine/group.c bool active = rsc->priv->fns->active(rsc, true); rsc 340 lib/pengine/group.c bool partially_active = rsc->priv->fns->active(rsc, false); rsc 342 lib/pengine/group.c desc = pe__resource_description(rsc, show_opts); rsc 344 lib/pengine/group.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 349 lib/pengine/group.c GList *rscs = pe__filter_rsc_list(rsc->priv->children, only_rsc); rsc 352 lib/pengine/group.c group_header(out, &rc, rsc, !active && partially_active ? inactive_resources(rsc) : 0, rsc 361 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 365 lib/pengine/group.c if (skip_child_rsc(rsc, child_rsc, parent_passes, only_rsc, show_opts)) { rsc 369 lib/pengine/group.c group_header(out, &rc, rsc, !active && partially_active ? inactive_resources(rsc) : 0, rsc 382 lib/pengine/group.c group_free(pcmk_resource_t * rsc) rsc 384 lib/pengine/group.c CRM_CHECK(rsc != NULL, return); rsc 386 lib/pengine/group.c pcmk__rsc_trace(rsc, "Freeing %s", rsc->id); rsc 388 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 398 lib/pengine/group.c pcmk__rsc_trace(rsc, "Freeing child list"); rsc 399 lib/pengine/group.c g_list_free(rsc->priv->children); rsc 401 lib/pengine/group.c common_free(rsc); rsc 405 lib/pengine/group.c group_resource_state(const pcmk_resource_t *rsc, bool current) rsc 409 lib/pengine/group.c for (GList *gIter = rsc->priv->children; rsc 421 lib/pengine/group.c pcmk__rsc_trace(rsc, "%s role: %s", rsc->id, pcmk_role_text(group_role)); rsc 426 lib/pengine/group.c pe__group_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 432 lib/pengine/group.c && pcmk__str_in_list(rsc_printable_id(pe__const_top_resource(rsc, rsc 436 lib/pengine/group.c } else if (pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches)) { rsc 438 lib/pengine/group.c } else if (strstr(rsc->id, ":") != NULL && pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)) { rsc 441 lib/pengine/group.c for (const GList *iter = rsc->priv->children; rsc 466 lib/pengine/group.c pe__group_max_per_node(const pcmk_resource_t *rsc) rsc 468 lib/pengine/group.c pcmk__assert(pcmk__is_group(rsc)); rsc 27 lib/pengine/native.c is_multiply_active(const pcmk_resource_t *rsc) rsc 31 lib/pengine/native.c if (pcmk__is_primitive(rsc)) { rsc 32 lib/pengine/native.c pe__find_active_requires(rsc, &count); rsc 38 lib/pengine/native.c native_priority_to_node(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 42 lib/pengine/native.c const bool promoted = (rsc->priv->orig_role == pcmk_role_promoted); rsc 44 lib/pengine/native.c if ((rsc->priv->priority == 0) || failed) { rsc 50 lib/pengine/native.c priority = rsc->priv->priority + 1; rsc 53 lib/pengine/native.c priority = rsc->priv->priority; rsc 57 lib/pengine/native.c pcmk__rsc_trace(rsc, "%s now has priority %d with %s'%s' (priority: %d%s)", rsc 60 lib/pengine/native.c rsc->id, rsc->priv->priority, (promoted? " + 1" : "")); rsc 75 lib/pengine/native.c pcmk__rsc_trace(rsc, rsc 79 lib/pengine/native.c (promoted? "promoted " : ""), rsc->id, rsc 80 lib/pengine/native.c rsc->priv->priority, (promoted? " + 1" : ""), rsc 87 lib/pengine/native.c native_add_running(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 90 lib/pengine/native.c pcmk_resource_t *parent = rsc->priv->parent; rsc 94 lib/pengine/native.c for (GList *gIter = rsc->priv->active_nodes; rsc 104 lib/pengine/native.c pcmk__rsc_trace(rsc, "Adding %s to %s %s", rsc->id, pcmk__node_name(node), rsc 105 lib/pengine/native.c pcmk_is_set(rsc->flags, pcmk__rsc_managed)? "" : "(unmanaged)"); rsc 107 lib/pengine/native.c rsc->priv->active_nodes = g_list_append(rsc->priv->active_nodes, node); rsc 108 lib/pengine/native.c if (pcmk__is_primitive(rsc)) { rsc 109 lib/pengine/native.c node->details->running_rsc = g_list_append(node->details->running_rsc, rsc); rsc 110 lib/pengine/native.c native_priority_to_node(rsc, node, failed); rsc 112 lib/pengine/native.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 113 lib/pengine/native.c pcmk__set_rsc_flags(rsc, pcmk__rsc_maintenance); rsc 117 lib/pengine/native.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 120 lib/pengine/native.c pcmk__rsc_info(rsc, "resource %s isn't managed", rsc->id); rsc 121 lib/pengine/native.c resource_location(rsc, node, PCMK_SCORE_INFINITY, rsc 132 lib/pengine/native.c if (is_multiply_active(rsc)) { rsc 133 lib/pengine/native.c switch (rsc->priv->multiply_active_policy) { rsc 140 lib/pengine/native.c if (rsc->priv->allowed_nodes != NULL) { rsc 141 lib/pengine/native.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 143 lib/pengine/native.c rsc->priv->allowed_nodes = rsc 145 lib/pengine/native.c g_hash_table_iter_init(&gIter, rsc->priv->allowed_nodes); rsc 152 lib/pengine/native.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 153 lib/pengine/native.c pcmk__set_rsc_flags(rsc, pcmk__rsc_blocked); rsc 181 lib/pengine/native.c rsc->id, pcmk__node_name(node), rsc 182 lib/pengine/native.c pcmk__multiply_active_text(rsc)); rsc 185 lib/pengine/native.c pcmk__rsc_trace(rsc, "Resource %s is active on %s", rsc 186 lib/pengine/native.c rsc->id, pcmk__node_name(node)); rsc 195 lib/pengine/native.c recursive_clear_unique(pcmk_resource_t *rsc, gpointer user_data) rsc 197 lib/pengine/native.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_unique); rsc 198 lib/pengine/native.c pcmk__insert_meta(rsc->priv, PCMK_META_GLOBALLY_UNIQUE, rsc 200 lib/pengine/native.c g_list_foreach(rsc->priv->children, (GFunc) recursive_clear_unique, rsc 205 lib/pengine/native.c native_unpack(pcmk_resource_t *rsc) rsc 207 lib/pengine/native.c pcmk_resource_t *parent = uber_parent(rsc); rsc 208 lib/pengine/native.c const char *standard = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 211 lib/pengine/native.c pcmk__rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 215 lib/pengine/native.c && pcmk_is_set(rsc->flags, pcmk__rsc_unique) rsc 223 lib/pengine/native.c pe__force_anon(standard, parent, rsc->id, rsc->priv->scheduler); rsc 231 lib/pengine/native.c recursive_clear_unique(rsc, NULL); rsc 238 lib/pengine/native.c rsc->id, standard); rsc 245 lib/pengine/native.c rsc_is_on_node(pcmk_resource_t *rsc, const pcmk_node_t *node, int flags) rsc 247 lib/pengine/native.c pcmk__rsc_trace(rsc, "Checking whether %s is on %s", rsc 248 lib/pengine/native.c rsc->id, pcmk__node_name(node)); rsc 251 lib/pengine/native.c && (rsc->priv->active_nodes != NULL)) { rsc 253 lib/pengine/native.c for (GList *iter = rsc->priv->active_nodes; rsc 262 lib/pengine/native.c && (rsc->priv->assigned_node != NULL) rsc 263 lib/pengine/native.c && pcmk__same_node(rsc->priv->assigned_node, node)) { rsc 270 lib/pengine/native.c native_find_rsc(pcmk_resource_t *rsc, const char *id, rsc 276 lib/pengine/native.c CRM_CHECK(id && rsc && rsc->id, return NULL); rsc 279 lib/pengine/native.c const char *rid = pcmk__xe_id(rsc->priv->xml); rsc 281 lib/pengine/native.c if (!pcmk__is_clone(pe__const_top_resource(rsc, false))) { rsc 284 lib/pengine/native.c } else if (!strcmp(id, rsc->id) || pcmk__str_eq(id, rid, pcmk__str_none)) { rsc 288 lib/pengine/native.c } else if (!strcmp(id, rsc->id)) { rsc 292 lib/pengine/native.c && pcmk__str_eq(rsc->priv->history_id, id, pcmk__str_none)) { rsc 297 lib/pengine/native.c && !pcmk_is_set(rsc->flags, pcmk__rsc_unique))) { rsc 298 lib/pengine/native.c match = pe_base_name_eq(rsc, id); rsc 302 lib/pengine/native.c if (!rsc_is_on_node(rsc, on_node, flags)) { rsc 308 lib/pengine/native.c return rsc; rsc 311 lib/pengine/native.c for (GList *gIter = rsc->priv->children; rsc 316 lib/pengine/native.c result = rsc->priv->fns->find_rsc(child, id, on_node, flags); rsc 325 lib/pengine/native.c native_active(const pcmk_resource_t *rsc, bool all) rsc 327 lib/pengine/native.c for (GList *gIter = rsc->priv->active_nodes; rsc 333 lib/pengine/native.c pcmk__rsc_trace(rsc, "Resource %s: %s is unclean", rsc 334 lib/pengine/native.c rsc->id, pcmk__node_name(a_node)); rsc 337 lib/pengine/native.c && pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 338 lib/pengine/native.c pcmk__rsc_trace(rsc, "Resource %s: %s is offline", rsc 339 lib/pengine/native.c rsc->id, pcmk__node_name(a_node)); rsc 341 lib/pengine/native.c pcmk__rsc_trace(rsc, "Resource %s active on %s", rsc 342 lib/pengine/native.c rsc->id, pcmk__node_name(a_node)); rsc 355 lib/pengine/native.c native_pending_state(const pcmk_resource_t *rsc) rsc 359 lib/pengine/native.c if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_START, rsc 363 lib/pengine/native.c } else if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_STOP, rsc 367 lib/pengine/native.c } else if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_MIGRATE_TO, rsc 371 lib/pengine/native.c } else if (pcmk__str_eq(rsc->priv->pending_action, rsc 376 lib/pengine/native.c } else if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_PROMOTE, rsc 380 lib/pengine/native.c } else if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_DEMOTE, rsc 389 lib/pengine/native.c native_pending_action(const pcmk_resource_t *rsc) rsc 393 lib/pengine/native.c if (pcmk__str_eq(rsc->priv->pending_action, PCMK_ACTION_MONITOR, rsc 403 lib/pengine/native.c } else if (pcmk__str_eq(rsc->private->pending_action, "probe", rsc 413 lib/pengine/native.c native_displayable_role(const pcmk_resource_t *rsc) rsc 415 lib/pengine/native.c enum rsc_role_e role = rsc->priv->orig_role; rsc 418 lib/pengine/native.c && pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 427 lib/pengine/native.c native_displayable_state(const pcmk_resource_t *rsc, bool print_pending) rsc 432 lib/pengine/native.c rsc_state = native_pending_state(rsc); rsc 435 lib/pengine/native.c rsc_state = pcmk_role_text(native_displayable_role(rsc)); rsc 473 lib/pengine/native.c pcmk__native_output_string(const pcmk_resource_t *rsc, const char *name, rsc 477 lib/pengine/native.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 479 lib/pengine/native.c const char *kind = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 483 lib/pengine/native.c if (!pcmk__is_primitive(rsc)) { rsc 492 lib/pengine/native.c provider = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 495 lib/pengine/native.c if ((node == NULL) && (rsc->priv->lock_node != NULL)) { rsc 496 lib/pengine/native.c node = rsc->priv->lock_node; rsc 499 lib/pengine/native.c || pcmk__list_of_multiple(rsc->priv->active_nodes)) { rsc 511 lib/pengine/native.c if (pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 514 lib/pengine/native.c if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 515 lib/pengine/native.c enum rsc_role_e role = native_displayable_role(rsc); rsc 524 lib/pengine/native.c pcmk__add_word(&outstr, 0, native_displayable_state(rsc, show_pending)); rsc 531 lib/pengine/native.c if (native_displayable_role(rsc) == pcmk_role_stopped) { rsc 532 lib/pengine/native.c xmlNode *probe_op = pe__failed_probe_for_rsc(rsc, rsc 547 lib/pengine/native.c if ((node != NULL) && pcmk__same_node(node, rsc->priv->lock_node)) { rsc 551 lib/pengine/native.c const char *pending_action = native_pending_action(rsc); rsc 561 lib/pengine/native.c " %s for resource %s", target_role, rsc->id); rsc 569 lib/pengine/native.c if (pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 588 lib/pengine/native.c if (pcmk_any_flags_set(rsc->flags, rsc 590 lib/pengine/native.c if (pcmk_is_set(rsc->flags, pcmk__rsc_blocked)) { rsc 593 lib/pengine/native.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_maintenance)) { rsc 596 lib/pengine/native.c } else if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 600 lib/pengine/native.c if (pcmk_is_set(rsc->flags, pcmk__rsc_ignore_failure)) { rsc 611 lib/pengine/native.c || pcmk__list_of_multiple(rsc->priv->active_nodes)) { rsc 612 lib/pengine/native.c const char *desc = crm_element_value(rsc->priv->xml, rsc 624 lib/pengine/native.c && pcmk__list_of_multiple(rsc->priv->active_nodes)) { rsc 627 lib/pengine/native.c for (GList *iter = rsc->priv->active_nodes; rsc 643 lib/pengine/native.c pe__common_output_html(pcmk__output_t *out, const pcmk_resource_t *rsc, rsc 647 lib/pengine/native.c const char *kind = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 654 lib/pengine/native.c pcmk__assert((kind != NULL) && pcmk__is_primitive(rsc)); rsc 656 lib/pengine/native.c if (crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 660 lib/pengine/native.c crm_trace("skipping print of internal resource %s", rsc->id); rsc 663 lib/pengine/native.c target_role = g_hash_table_lookup(rsc->priv->meta, rsc 666 lib/pengine/native.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 669 lib/pengine/native.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 672 lib/pengine/native.c } else if (pcmk__is_primitive(rsc) rsc 673 lib/pengine/native.c && (rsc->priv->active_nodes == NULL)) { rsc 676 lib/pengine/native.c } else if (pcmk__list_of_multiple(rsc->priv->active_nodes)) { rsc 679 lib/pengine/native.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_ignore_failure)) { rsc 688 lib/pengine/native.c content = pcmk__native_output_string(rsc, name, node, show_opts, rsc 697 lib/pengine/native.c pe__common_output_text(pcmk__output_t *out, const pcmk_resource_t *rsc, rsc 703 lib/pengine/native.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 705 lib/pengine/native.c if (crm_is_true(g_hash_table_lookup(rsc->priv->meta, rsc 709 lib/pengine/native.c crm_trace("skipping print of internal resource %s", rsc->id); rsc 712 lib/pengine/native.c target_role = g_hash_table_lookup(rsc->priv->meta, rsc 716 lib/pengine/native.c gchar *s = pcmk__native_output_string(rsc, name, node, show_opts, rsc 732 lib/pengine/native.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 738 lib/pengine/native.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 739 lib/pengine/native.c const char *prov = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 742 lib/pengine/native.c const char *rsc_state = native_displayable_state(rsc, print_pending); rsc 744 lib/pengine/native.c const char *active = pcmk__btoa(rsc->priv->fns->active(rsc, true)); rsc 745 lib/pengine/native.c const char *orphaned = pcmk__flag_text(rsc->flags, pcmk__rsc_removed); rsc 746 lib/pengine/native.c const char *blocked = pcmk__flag_text(rsc->flags, pcmk__rsc_blocked); rsc 747 lib/pengine/native.c const char *maintenance = pcmk__flag_text(rsc->flags, rsc 749 lib/pengine/native.c const char *managed = pcmk__flag_text(rsc->flags, pcmk__rsc_managed); rsc 750 lib/pengine/native.c const char *failed = pcmk__flag_text(rsc->flags, pcmk__rsc_failed); rsc 751 lib/pengine/native.c const char *ignored = pcmk__flag_text(rsc->flags, pcmk__rsc_ignore_failure); rsc 753 lib/pengine/native.c const char *pending = print_pending? native_pending_action(rsc) : NULL; rsc 755 lib/pengine/native.c const char *desc = pe__resource_description(rsc, show_opts); rsc 757 lib/pengine/native.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 759 lib/pengine/native.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 766 lib/pengine/native.c crm_element_value(rsc->priv->xml, PCMK_XA_TYPE)); rsc 768 lib/pengine/native.c target_role = g_hash_table_lookup(rsc->priv->meta, rsc 771 lib/pengine/native.c nodes_running_on = pcmk__itoa(g_list_length(rsc->priv->active_nodes)); rsc 773 lib/pengine/native.c if (rsc->priv->lock_node != NULL) { rsc 774 lib/pengine/native.c locked_to = rsc->priv->lock_node->priv->name; rsc 778 lib/pengine/native.c PCMK_XA_ID, rsc_printable_id(rsc), rsc 798 lib/pengine/native.c for (GList *gIter = rsc->priv->active_nodes; rsc 822 lib/pengine/native.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 826 lib/pengine/native.c const pcmk_node_t *node = pcmk__current_node(rsc); rsc 828 lib/pengine/native.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 832 lib/pengine/native.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 836 lib/pengine/native.c node = rsc->priv->pending_node; rsc 838 lib/pengine/native.c return pe__common_output_html(out, rsc, rsc_printable_id(rsc), node, show_opts); rsc 847 lib/pengine/native.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 851 lib/pengine/native.c const pcmk_node_t *node = pcmk__current_node(rsc); rsc 853 lib/pengine/native.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 855 lib/pengine/native.c if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 861 lib/pengine/native.c node = rsc->priv->pending_node; rsc 863 lib/pengine/native.c return pe__common_output_text(out, rsc, rsc_printable_id(rsc), node, show_opts); rsc 867 lib/pengine/native.c native_free(pcmk_resource_t * rsc) rsc 869 lib/pengine/native.c pcmk__rsc_trace(rsc, "Freeing resource action list (not the data)"); rsc 870 lib/pengine/native.c common_free(rsc); rsc 874 lib/pengine/native.c native_resource_state(const pcmk_resource_t *rsc, bool current) rsc 876 lib/pengine/native.c enum rsc_role_e role = rsc->priv->next_role; rsc 879 lib/pengine/native.c role = rsc->priv->orig_role; rsc 881 lib/pengine/native.c pcmk__rsc_trace(rsc, "%s state: %s", rsc->id, pcmk_role_text(role)); rsc 897 lib/pengine/native.c native_location(const pcmk_resource_t *rsc, GList **list, uint32_t target) rsc 902 lib/pengine/native.c if (rsc->priv->children != NULL) { rsc 904 lib/pengine/native.c for (GList *gIter = rsc->priv->children; rsc 914 lib/pengine/native.c result = g_list_copy(rsc->priv->active_nodes); rsc 917 lib/pengine/native.c && (rsc->priv->pending_node != NULL) rsc 918 lib/pengine/native.c && !pe_find_node_id(result, rsc->priv->pending_node->priv->id)) { rsc 919 lib/pengine/native.c result = g_list_append(result, (gpointer) rsc->priv->pending_node); rsc 922 lib/pengine/native.c && (rsc->priv->assigned_node != NULL)) { rsc 923 lib/pengine/native.c result = g_list_append(result, rsc->priv->assigned_node); rsc 954 lib/pengine/native.c pcmk_resource_t *rsc = (pcmk_resource_t *) gIter->data; rsc 956 lib/pengine/native.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 957 lib/pengine/native.c const char *kind = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 965 lib/pengine/native.c if (!pcmk__is_primitive(rsc)) { rsc 971 lib/pengine/native.c const char *prov = crm_element_value(rsc->priv->xml, rsc 993 lib/pengine/native.c for (GList *gIter2 = rsc->priv->active_nodes; rsc 1000 lib/pengine/native.c pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 1129 lib/pengine/native.c pe__native_is_filtered(const pcmk_resource_t *rsc, const GList *only_rsc, rsc 1132 lib/pengine/native.c if (pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, pcmk__str_star_matches) || rsc 1133 lib/pengine/native.c pcmk__str_in_list(rsc->id, only_rsc, pcmk__str_star_matches)) { rsc 1135 lib/pengine/native.c } else if (check_parent && (rsc->priv->parent != NULL)) { rsc 1136 lib/pengine/native.c const pcmk_resource_t *up = pe__const_top_resource(rsc, true); rsc 1153 lib/pengine/native.c pe__primitive_max_per_node(const pcmk_resource_t *rsc) rsc 1155 lib/pengine/native.c pcmk__assert(pcmk__is_primitive(rsc)); rsc 60 lib/pengine/pe_actions.c find_existing_action(const char *key, const pcmk_resource_t *rsc, rsc 67 lib/pengine/pe_actions.c GList *actions = (rsc == NULL)? scheduler->priv->actions : rsc->priv->actions; rsc 92 lib/pengine/pe_actions.c find_exact_action_config(const pcmk_resource_t *rsc, const char *action_name, rsc 95 lib/pengine/pe_actions.c for (xmlNode *operation = pcmk__xe_first_child(rsc->priv->ops_xml, rsc 137 lib/pengine/pe_actions.c pcmk__find_action_config(const pcmk_resource_t *rsc, const char *action_name, rsc 143 lib/pengine/pe_actions.c action_config = find_exact_action_config(rsc, action_name, interval_ms, rsc 151 lib/pengine/pe_actions.c action_config = find_exact_action_config(rsc, "migrate", 0, rsc 174 lib/pengine/pe_actions.c new_action(char *key, const char *task, pcmk_resource_t *rsc, rsc 179 lib/pengine/pe_actions.c action->rsc = rsc; rsc 200 lib/pengine/pe_actions.c if (rsc == NULL) { rsc 206 lib/pengine/pe_actions.c action->op_entry = pcmk__find_action_config(rsc, task, interval_ms, rsc 213 lib/pengine/pe_actions.c action->op_entry = find_exact_action_config(rsc, PCMK_ACTION_NOTIFY, rsc 220 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "Created %s action %d (%s): %s for %s on %s", rsc 223 lib/pengine/pe_actions.c ((rsc == NULL)? "no resource" : rsc->id), rsc 228 lib/pengine/pe_actions.c if (rsc == NULL) { rsc 231 lib/pengine/pe_actions.c rsc->priv->actions = g_list_prepend(rsc->priv->actions, action); rsc 274 lib/pengine/pe_actions.c if ((action->rsc != NULL) && (action->node != NULL) rsc 276 lib/pengine/pe_actions.c && !pcmk_is_set(action->rsc->flags, pcmk__rsc_managed) rsc 278 lib/pengine/pe_actions.c pcmk__rsc_debug(action->rsc, rsc 281 lib/pengine/pe_actions.c action->rsc->id); rsc 292 lib/pengine/pe_actions.c effective_quorum_policy(pcmk_resource_t *rsc, pcmk_scheduler_t *scheduler) rsc 300 lib/pengine/pe_actions.c switch (rsc->priv->orig_role) { rsc 303 lib/pengine/pe_actions.c if (rsc->priv->next_role > pcmk_role_unpromoted) { rsc 304 lib/pengine/pe_actions.c pe__set_next_role(rsc, pcmk_role_unpromoted, rsc 330 lib/pengine/pe_actions.c pcmk_resource_t *rsc = action->rsc; rsc 337 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "%s is unrunnable (unallocated)", action->uuid); rsc 348 lib/pengine/pe_actions.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed) rsc 370 lib/pengine/pe_actions.c pcmk__rsc_debug(rsc, rsc 376 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, rsc 383 lib/pengine/pe_actions.c switch (effective_quorum_policy(rsc, scheduler)) { rsc 385 lib/pengine/pe_actions.c pcmk__rsc_debug(rsc, "%s on %s is unrunnable (no quorum)", rsc 392 lib/pengine/pe_actions.c if (!rsc->priv->fns->active(rsc, true) rsc 393 lib/pengine/pe_actions.c || (rsc->priv->next_role > rsc->priv->orig_role)) { rsc 394 lib/pengine/pe_actions.c pcmk__rsc_debug(rsc, "%s on %s is unrunnable (no quorum)", rsc 428 lib/pengine/pe_actions.c validate_on_fail(const pcmk_resource_t *rsc, const char *action_name, rsc 443 lib/pengine/pe_actions.c "allowed for stop", rsc->id, value); rsc 458 lib/pengine/pe_actions.c for (xmlNode *operation = pcmk__xe_first_child(rsc->priv->ops_xml, rsc 530 lib/pengine/pe_actions.c "allowed for it", rsc->id, name); rsc 623 lib/pengine/pe_actions.c most_frequent_monitor(const pcmk_resource_t *rsc) rsc 628 lib/pengine/pe_actions.c for (xmlNode *operation = pcmk__xe_first_child(rsc->priv->ops_xml, rsc 679 lib/pengine/pe_actions.c pcmk__unpack_action_meta(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 691 lib/pengine/pe_actions.c .now = rsc->priv->scheduler->priv->now, rsc 692 lib/pengine/pe_actions.c .rsc_standard = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS), rsc 693 lib/pengine/pe_actions.c .rsc_provider = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER), rsc 694 lib/pengine/pe_actions.c .rsc_agent = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE), rsc 705 lib/pengine/pe_actions.c rsc->priv->scheduler); rsc 722 lib/pengine/pe_actions.c xmlNode *min_interval_mon = most_frequent_monitor(rsc); rsc 732 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, rsc 735 lib/pengine/pe_actions.c rsc->id, timeout_spec); rsc 742 lib/pengine/pe_actions.c pe__unpack_dataset_nvpairs(rsc->priv->scheduler->priv->op_defaults, rsc 744 lib/pengine/pe_actions.c rsc->priv->scheduler); rsc 772 lib/pengine/pe_actions.c GHashTable *params = pe_rsc_params(rsc, node, rsc->priv->scheduler); rsc 776 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, rsc 779 lib/pengine/pe_actions.c rsc->id, action_name, timeout_spec); rsc 790 lib/pengine/pe_actions.c validate_on_fail(rsc, action_name, action_config, meta); rsc 801 lib/pengine/pe_actions.c rsc->priv->scheduler->priv->now, rsc 820 lib/pengine/pe_actions.c pcmk__action_requires(const pcmk_resource_t *rsc, const char *action_name) rsc 825 lib/pengine/pe_actions.c CRM_CHECK((rsc != NULL) && (action_name != NULL), return requires); rsc 831 lib/pengine/pe_actions.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing)) { rsc 835 lib/pengine/pe_actions.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_needs_quorum)) { rsc 842 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "%s of %s requires %s", action_name, rsc->id, value); rsc 858 lib/pengine/pe_actions.c pcmk__parse_on_fail(const pcmk_resource_t *rsc, const char *action_name, rsc 867 lib/pengine/pe_actions.c pcmk__assert((rsc != NULL) && (action_name != NULL)); rsc 868 lib/pengine/pe_actions.c scheduler = rsc->priv->scheduler; rsc 885 lib/pengine/pe_actions.c action_name, rsc->id); rsc 917 lib/pengine/pe_actions.c if (rsc->priv->launcher == NULL) { rsc 918 lib/pengine/pe_actions.c pcmk__rsc_debug(rsc, rsc 921 lib/pengine/pe_actions.c action_name, rsc->id); rsc 934 lib/pengine/pe_actions.c action_name, rsc->id, value); rsc 942 lib/pengine/pe_actions.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection) rsc 943 lib/pengine/pe_actions.c && pcmk__is_remote_node(pcmk_find_node(scheduler, rsc->id)) rsc 947 lib/pengine/pe_actions.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 955 lib/pengine/pe_actions.c } else if (rsc->priv->launcher != NULL) { rsc 960 lib/pengine/pe_actions.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 986 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "Failure handling for %s-interval %s of %s: %s", rsc 988 lib/pengine/pe_actions.c rsc->id, desc); rsc 1004 lib/pengine/pe_actions.c pcmk__role_after_failure(const pcmk_resource_t *rsc, const char *action_name, rsc 1016 lib/pengine/pe_actions.c if (rsc->priv->remote_reconnect_ms != 0U) { rsc 1033 lib/pengine/pe_actions.c pcmk__rsc_trace(rsc, "Role after %s %s failure is: %s", rsc 1034 lib/pengine/pe_actions.c rsc->id, action_name, pcmk_role_text(role)); rsc 1056 lib/pengine/pe_actions.c action->meta = pcmk__unpack_action_meta(action->rsc, action->node, rsc 1058 lib/pengine/pe_actions.c action->needs = pcmk__action_requires(action->rsc, action->task); rsc 1061 lib/pengine/pe_actions.c action->on_fail = pcmk__parse_on_fail(action->rsc, action->task, rsc 1064 lib/pengine/pe_actions.c action->fail_role = pcmk__role_after_failure(action->rsc, action->task, rsc 1085 lib/pengine/pe_actions.c custom_action(pcmk_resource_t *rsc, char *key, const char *task, rsc 1093 lib/pengine/pe_actions.c action = find_existing_action(key, rsc, on_node, scheduler); rsc 1095 lib/pengine/pe_actions.c action = new_action(key, task, rsc, on_node, optional, scheduler); rsc 1102 lib/pengine/pe_actions.c if (rsc != NULL) { rsc 1353 lib/pengine/pe_actions.c get_complex_task(const pcmk_resource_t *rsc, const char *name) rsc 1357 lib/pengine/pe_actions.c if (pcmk__is_primitive(rsc)) { rsc 1364 lib/pengine/pe_actions.c name, rsc->id); rsc 1487 lib/pengine/pe_actions.c pe__resource_actions(const pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 1491 lib/pengine/pe_actions.c char *key = pcmk__op_key(rsc->id, task, 0); rsc 1494 lib/pengine/pe_actions.c result = find_actions_exact(rsc->priv->actions, key, node); rsc 1496 lib/pengine/pe_actions.c result = find_actions(rsc->priv->actions, key, node); rsc 1533 lib/pengine/pe_actions.c (action->rsc == NULL)? "" : " ", rsc 1534 lib/pengine/pe_actions.c (action->rsc == NULL)? "" : action->rsc->id, rsc 1542 lib/pengine/pe_actions.c pcmk__rsc_trace(action->rsc, "Changing %s reason from '%s' to '%s'", rsc 1546 lib/pengine/pe_actions.c pcmk__rsc_trace(action->rsc, "Set %s reason to '%s'", rsc 1564 lib/pengine/pe_actions.c pe__clear_resource_history(pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 1566 lib/pengine/pe_actions.c pcmk__assert((rsc != NULL) && (node != NULL)); rsc 1568 lib/pengine/pe_actions.c custom_action(rsc, pcmk__op_key(rsc->id, PCMK_ACTION_LRM_DELETE, 0), rsc 1569 lib/pengine/pe_actions.c PCMK_ACTION_LRM_DELETE, node, FALSE, rsc->priv->scheduler); rsc 1720 lib/pengine/pe_actions.c pe__new_rsc_pseudo_action(pcmk_resource_t *rsc, const char *task, bool optional, rsc 1725 lib/pengine/pe_actions.c pcmk__assert((rsc != NULL) && (task != NULL)); rsc 1727 lib/pengine/pe_actions.c action = custom_action(rsc, pcmk__op_key(rsc->id, task, 0), task, NULL, rsc 1728 lib/pengine/pe_actions.c optional, rsc->priv->scheduler); rsc 98 lib/pengine/pe_digest.c calculate_main_digest(pcmk__op_digest_t *data, pcmk_resource_t *rsc, rsc 111 lib/pengine/pe_digest.c (void) pe__add_bundle_remote_name(rsc, data->params_all, rsc 136 lib/pengine/pe_digest.c action_config = pcmk__find_action_config(rsc, task, *interval_ms, true); rsc 157 lib/pengine/pe_digest.c params = pcmk__unpack_action_meta(rsc, node, task, *interval_ms, rsc 186 lib/pengine/pe_digest.c calculate_secure_digest(pcmk__op_digest_t *data, const pcmk_resource_t *rsc, rsc 190 lib/pengine/pe_digest.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 302 lib/pengine/pe_digest.c pe__calculate_digests(pcmk_resource_t *rsc, const char *task, rsc 335 lib/pengine/pe_digest.c params = pe_rsc_params(rsc, node, scheduler); rsc 336 lib/pengine/pe_digest.c calculate_main_digest(data, rsc, node, params, task, interval_ms, xml_op, rsc 339 lib/pengine/pe_digest.c calculate_secure_digest(data, rsc, params, xml_op, op_version, rsc 361 lib/pengine/pe_digest.c rsc_action_digest(pcmk_resource_t *rsc, const char *task, guint interval_ms, rsc 366 lib/pengine/pe_digest.c char *key = pcmk__op_key(rsc->id, task, interval_ms); rsc 370 lib/pengine/pe_digest.c data = pe__calculate_digests(rsc, task, &interval_ms, node, xml_op, rsc 391 lib/pengine/pe_digest.c rsc_action_digest_cmp(pcmk_resource_t *rsc, const xmlNode *xml_op, rsc 409 lib/pengine/pe_digest.c data = rsc_action_digest(rsc, task, interval_ms, node, xml_op, rsc 416 lib/pengine/pe_digest.c pcmk__rsc_info(rsc, rsc 420 lib/pengine/pe_digest.c pcmk__readable_interval(interval_ms), task, rsc->id, rsc 441 lib/pengine/pe_digest.c pcmk__rsc_info(rsc, rsc 445 lib/pengine/pe_digest.c interval_ms, task, rsc->id, pcmk__node_name(node), rsc 452 lib/pengine/pe_digest.c pcmk__rsc_info(rsc, rsc 455 lib/pengine/pe_digest.c interval_ms, task, rsc->id, pcmk__node_name(node), rsc 550 lib/pengine/pe_digest.c pe__compare_fencing_digest(pcmk_resource_t *rsc, const char *agent, rsc 556 lib/pengine/pe_digest.c pcmk__op_digest_t *data = rsc_action_digest(rsc, STONITH_DIGEST_TASK, 0U, rsc 568 lib/pengine/pe_digest.c if (unfencing_digest_matches(rsc->id, agent, data->digest_all_calc, rsc 577 lib/pengine/pe_digest.c if (unfencing_digest_matches(rsc->id, agent, data->digest_secure_calc, rsc 584 lib/pengine/pe_digest.c "for unfencing %s changed", rsc->id, rsc 597 lib/pengine/pe_digest.c char *digest = create_unfencing_summary(rsc->id, agent, rsc 601 lib/pengine/pe_digest.c "%s changed, try '%s'", rsc->id, rsc 605 lib/pengine/pe_digest.c char *digest = create_unfencing_summary(rsc->id, agent, rsc 609 lib/pengine/pe_digest.c rsc->id, pcmk__node_name(node), digest); rsc 19 lib/pengine/pe_notif.c const pcmk_resource_t *rsc; rsc 55 lib/pengine/pe_notif.c if ((entry_a->rsc == NULL) && (entry_b->rsc == NULL)) { rsc 58 lib/pengine/pe_notif.c if (entry_a->rsc == NULL) { rsc 61 lib/pengine/pe_notif.c if (entry_b->rsc == NULL) { rsc 66 lib/pengine/pe_notif.c tmp = strcmp(entry_a->rsc->id, entry_b->rsc->id); rsc 100 lib/pengine/pe_notif.c dup->rsc = entry->rsc; rsc 205 lib/pengine/pe_notif.c CRM_LOG_ASSERT((entry != NULL) && (entry->rsc != NULL) rsc 206 lib/pengine/pe_notif.c && (entry->rsc->id != NULL)); rsc 207 lib/pengine/pe_notif.c if ((entry == NULL) || (entry->rsc == NULL) rsc 208 lib/pengine/pe_notif.c || (entry->rsc->id == NULL)) { rsc 219 lib/pengine/pe_notif.c if (pcmk__str_eq(entry->rsc->id, last_rsc_id, pcmk__str_none)) { rsc 222 lib/pengine/pe_notif.c last_rsc_id = entry->rsc->id; rsc 225 lib/pengine/pe_notif.c pcmk__add_word(rsc_names, 1024, entry->rsc->id); rsc 289 lib/pengine/pe_notif.c new_notify_pseudo_action(pcmk_resource_t *rsc, const pcmk_action_t *action, rsc 294 lib/pengine/pe_notif.c notify = custom_action(rsc, rsc 295 lib/pengine/pe_notif.c pcmk__notify_key(rsc->id, notif_type, action->task), rsc 298 lib/pengine/pe_notif.c rsc->priv->scheduler); rsc 318 lib/pengine/pe_notif.c new_notify_action(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 328 lib/pengine/pe_notif.c CRM_CHECK((rsc != NULL) && (node != NULL), return NULL); rsc 341 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "Skipping notify action for %s on %s: %s", rsc 342 lib/pengine/pe_notif.c rsc->id, pcmk__node_name(node), skip_reason); rsc 349 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "Creating notify action for %s on %s (%s-%s)", rsc 350 lib/pengine/pe_notif.c rsc->id, pcmk__node_name(node), value, task); rsc 353 lib/pengine/pe_notif.c key = pcmk__notify_key(rsc->id, value, task); rsc 354 lib/pengine/pe_notif.c notify_action = custom_action(rsc, key, op->task, node, rsc 356 lib/pengine/pe_notif.c rsc->priv->scheduler); rsc 377 lib/pengine/pe_notif.c new_post_notify_action(pcmk_resource_t *rsc, const pcmk_node_t *node, rsc 385 lib/pengine/pe_notif.c notify = new_notify_action(rsc, node, n_data->post, n_data->post_done, rsc 395 lib/pengine/pe_notif.c for (GList *iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 440 lib/pengine/pe_notif.c pe__action_notif_pseudo_ops(pcmk_resource_t *rsc, const char *task, rsc 445 lib/pengine/pe_notif.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_notify)) { rsc 456 lib/pengine/pe_notif.c n_data->pre = new_notify_pseudo_action(rsc, action, PCMK_ACTION_NOTIFY, rsc 463 lib/pengine/pe_notif.c n_data->pre_done = new_notify_pseudo_action(rsc, action, rsc 478 lib/pengine/pe_notif.c n_data->post = new_notify_pseudo_action(rsc, complete, rsc 490 lib/pengine/pe_notif.c n_data->post_done = new_notify_pseudo_action(rsc, complete, rsc 534 lib/pengine/pe_notif.c new_notify_entry(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 538 lib/pengine/pe_notif.c entry->rsc = rsc; rsc 552 lib/pengine/pe_notif.c collect_resource_data(pcmk_resource_t *rsc, bool activity, rsc 564 lib/pengine/pe_notif.c n_data->allowed_nodes = rsc->priv->allowed_nodes; rsc 568 lib/pengine/pe_notif.c if (rsc->priv->children != NULL) { rsc 569 lib/pengine/pe_notif.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 579 lib/pengine/pe_notif.c if (rsc->priv->active_nodes != NULL) { rsc 580 lib/pengine/pe_notif.c node = rsc->priv->active_nodes->data; // First is sufficient rsc 582 lib/pengine/pe_notif.c entry = new_notify_entry(rsc, node); rsc 585 lib/pengine/pe_notif.c switch (rsc->priv->orig_role) { rsc 607 lib/pengine/pe_notif.c pcmk__sched_err(rsc->priv->scheduler, rsc 610 lib/pengine/pe_notif.c rsc->id, pcmk__node_name(node), rsc 611 lib/pengine/pe_notif.c pcmk_role_text(rsc->priv->orig_role)); rsc 621 lib/pengine/pe_notif.c for (iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 634 lib/pengine/pe_notif.c entry = new_notify_entry(rsc, op->node); rsc 683 lib/pengine/pe_notif.c add_notif_keys(const pcmk_resource_t *rsc, notify_data_t *n_data) rsc 767 lib/pengine/pe_notif.c source = g_hash_table_lookup(rsc->priv->meta, rsc 770 lib/pengine/pe_notif.c get_node_names(rsc->priv->scheduler->nodes, &node_list, &metal_list); rsc 773 lib/pengine/pe_notif.c get_node_names(rsc->priv->scheduler->nodes, &node_list, NULL); rsc 819 lib/pengine/pe_notif.c create_notify_actions(pcmk_resource_t *rsc, notify_data_t *n_data) rsc 827 lib/pengine/pe_notif.c if (rsc->priv->children != NULL) { rsc 828 lib/pengine/pe_notif.c g_list_foreach(rsc->priv->children, (GFunc) create_notify_actions, rsc 834 lib/pengine/pe_notif.c for (iter = rsc->priv->actions; iter != NULL; iter = iter->next) { rsc 856 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "No notify action needed for %s %s", rsc 857 lib/pengine/pe_notif.c rsc->id, n_data->action); rsc 864 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "No notify action needed for %s %s", rsc 865 lib/pengine/pe_notif.c rsc->id, n_data->action); rsc 872 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "No notify action needed for %s %s", rsc 873 lib/pengine/pe_notif.c rsc->id, n_data->action); rsc 883 lib/pengine/pe_notif.c pcmk__rsc_trace(rsc, "Creating notify actions for %s %s", rsc 884 lib/pengine/pe_notif.c rsc->id, n_data->action); rsc 887 lib/pengine/pe_notif.c if ((rsc->priv->orig_role != pcmk_role_stopped) rsc 890 lib/pengine/pe_notif.c stop = find_first_action(rsc->priv->actions, NULL, PCMK_ACTION_STOP, rsc 893 lib/pengine/pe_notif.c for (iter = rsc->priv->active_nodes; rsc 909 lib/pengine/pe_notif.c new_notify_action(rsc, current_node, n_data->pre, rsc 914 lib/pengine/pe_notif.c new_post_notify_action(rsc, current_node, n_data); rsc 920 lib/pengine/pe_notif.c if ((rsc->priv->next_role != pcmk_role_stopped) rsc 923 lib/pengine/pe_notif.c start = find_first_action(rsc->priv->actions, NULL, rsc 938 lib/pengine/pe_notif.c if (rsc->priv->assigned_node == NULL) { rsc 939 lib/pengine/pe_notif.c pcmk__sched_err(rsc->priv->scheduler, rsc 941 lib/pengine/pe_notif.c pcmk_role_text(rsc->priv->next_role), rsc->id); rsc 947 lib/pengine/pe_notif.c new_notify_action(rsc, rsc->priv->assigned_node, n_data->pre, rsc 950 lib/pengine/pe_notif.c new_post_notify_action(rsc, rsc->priv->assigned_node, n_data); rsc 962 lib/pengine/pe_notif.c pe__create_action_notifications(pcmk_resource_t *rsc, notify_data_t *n_data) rsc 964 lib/pengine/pe_notif.c if ((rsc == NULL) || (n_data == NULL)) { rsc 967 lib/pengine/pe_notif.c collect_resource_data(rsc, true, n_data); rsc 968 lib/pengine/pe_notif.c add_notif_keys(rsc, n_data); rsc 969 lib/pengine/pe_notif.c create_notify_actions(rsc, n_data); rsc 1011 lib/pengine/pe_notif.c pe__order_notifs_after_fencing(const pcmk_action_t *stop, pcmk_resource_t *rsc, rsc 1017 lib/pengine/pe_notif.c n_data = pe__action_notif_pseudo_ops(rsc, PCMK_ACTION_STOP, NULL, rsc 1021 lib/pengine/pe_notif.c collect_resource_data(rsc, false, n_data); rsc 1022 lib/pengine/pe_notif.c add_notify_env(n_data, "notify_stop_resource", rsc->id); rsc 1024 lib/pengine/pe_notif.c create_notify_actions(uber_parent(rsc), n_data); rsc 24 lib/pengine/pe_output.c pe__resource_description(const pcmk_resource_t *rsc, uint32_t show_opts) rsc 30 lib/pengine/pe_output.c desc = crm_element_value(rsc->priv->xml, PCMK_XA_DESCRIPTION); rsc 73 lib/pengine/pe_output.c pcmk_resource_t *rsc = (pcmk_resource_t *) gIter->data; rsc 74 lib/pengine/pe_output.c const char *type = g_hash_table_lookup(rsc->priv->meta, rsc 79 lib/pengine/pe_output.c if (rsc->priv->children != NULL) { rsc 80 lib/pengine/pe_output.c if (add_extra_info(node, rsc->priv->children, scheduler, rsc 90 lib/pengine/pe_output.c params = pe_rsc_params(rsc, node, scheduler); rsc 310 lib/pengine/pe_output.c resource_history_string(pcmk_resource_t *rsc, const char *rsc_id, bool all, rsc 314 lib/pengine/pe_output.c if (rsc == NULL) { rsc 334 lib/pengine/pe_output.c rsc_id, rsc->priv->ban_after_failures, rsc 392 lib/pengine/pe_output.c formatted_xml_buf(const pcmk_resource_t *rsc, GString *xml_buf, bool raw) rsc 394 lib/pengine/pe_output.c if (raw && (rsc->priv->orig_xml != NULL)) { rsc 395 lib/pengine/pe_output.c pcmk__xml_string(rsc->priv->orig_xml, pcmk__xml_fmt_pretty, xml_buf, rsc 398 lib/pengine/pe_output.c pcmk__xml_string(rsc->priv->xml, pcmk__xml_fmt_pretty, xml_buf, 0); rsc 660 lib/pengine/pe_output.c location->id, location->rsc->id, rsc 680 lib/pengine/pe_output.c location->id, location->rsc->id, rsc 699 lib/pengine/pe_output.c PCMK_XA_RESOURCE, location->rsc->id, rsc 733 lib/pengine/pe_output.c const pcmk_resource_t *rsc = location->rsc; rsc 739 lib/pengine/pe_output.c if (!pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, rsc 741 lib/pengine/pe_output.c && !pcmk__str_in_list(rsc_printable_id(pe__const_top_resource(rsc, false)), rsc 1687 lib/pengine/pe_output.c char *rsc = NULL; rsc 1699 lib/pengine/pe_output.c if (!parse_op_key(pcmk__xe_history_key(xml_op), &rsc, NULL, NULL)) { rsc 1703 lib/pengine/pe_output.c if (!pcmk__str_in_list(rsc, only_rsc, pcmk__str_star_matches)) { rsc 1704 lib/pengine/pe_output.c free(rsc); rsc 1708 lib/pengine/pe_output.c free(rsc); rsc 1834 lib/pengine/pe_output.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc2->data; rsc 1839 lib/pengine/pe_output.c out->message(out, (const char *) rsc->priv->xml->name, rsc 1840 lib/pengine/pe_output.c show_opts, rsc, only_node, only_rsc); rsc 1976 lib/pengine/pe_output.c pcmk_resource_t *rsc = (pcmk_resource_t *) gIter2->data; rsc 1979 lib/pengine/pe_output.c out->message(out, (const char *) rsc->priv->xml->name, rsc 1980 lib/pengine/pe_output.c show_opts, rsc, only_node, only_rsc); rsc 2109 lib/pengine/pe_output.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 2112 lib/pengine/pe_output.c out->message(out, (const char *) rsc->priv->xml->name, rsc 2113 lib/pengine/pe_output.c show_opts, rsc, only_node, only_rsc); rsc 2202 lib/pengine/pe_output.c pcmk_resource_t *rsc = NULL; rsc 2213 lib/pengine/pe_output.c rsc = pe_find_resource(scheduler->priv->resources, op_rsc); rsc 2215 lib/pengine/pe_output.c if (rsc) { rsc 2216 lib/pengine/pe_output.c const pcmk_node_t *node = pcmk__current_node(rsc); rsc 2217 lib/pengine/pe_output.c const char *target_role = g_hash_table_lookup(rsc->priv->meta, rsc 2222 lib/pengine/pe_output.c node = rsc->priv->pending_node; rsc 2225 lib/pengine/pe_output.c node_str = pcmk__native_output_string(rsc, rsc_printable_id(rsc), node, rsc 2260 lib/pengine/pe_output.c pcmk_resource_t *rsc = NULL; rsc 2282 lib/pengine/pe_output.c rsc = pe_find_resource(scheduler->priv->resources, op_rsc); rsc 2284 lib/pengine/pe_output.c if (rsc) { rsc 2285 lib/pengine/pe_output.c const char *class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 2286 lib/pengine/pe_output.c const char *provider = crm_element_value(rsc->priv->xml, rsc 2288 lib/pengine/pe_output.c const char *kind = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 2298 lib/pengine/pe_output.c PCMK_XA_RSC, rsc_printable_id(rsc), rsc 2469 lib/pengine/pe_output.c pcmk_resource_t *rsc = NULL; rsc 2476 lib/pengine/pe_output.c rsc = pe_find_resource(scheduler->priv->resources, rsc_id); rsc 2477 lib/pengine/pe_output.c if (rsc == NULL) { rsc 2489 lib/pengine/pe_output.c parent = pe__const_top_resource(rsc, false); rsc 2491 lib/pengine/pe_output.c if (!pcmk__str_in_list(rsc_printable_id(rsc), only_rsc, rsc 2497 lib/pengine/pe_output.c } else if (rsc->priv->fns->is_filtered(rsc, only_rsc, true)) { rsc 2503 lib/pengine/pe_output.c int failcount = pe_get_failcount(node, rsc, &last_failure, rsc 2516 lib/pengine/pe_output.c out->message(out, "resource-history", rsc, rsc_id, false, rsc 2520 lib/pengine/pe_output.c pcmk_resource_t *rsc = NULL; rsc 2526 lib/pengine/pe_output.c rsc = pe_find_resource(scheduler->priv->resources, rsc 2535 lib/pengine/pe_output.c out->message(out, "resource-operation-list", scheduler, rsc, node, rsc 2760 lib/pengine/pe_output.c const pcmk_resource_t *rsc = va_arg(args, const pcmk_resource_t *); rsc 2765 lib/pengine/pe_output.c if (rsc) { rsc 2767 lib/pengine/pe_output.c prefix, rsc->id, uname, score); rsc 2780 lib/pengine/pe_output.c const pcmk_resource_t *rsc = va_arg(args, const pcmk_resource_t *); rsc 2791 lib/pengine/pe_output.c if (rsc) { rsc 2792 lib/pengine/pe_output.c crm_xml_add(node, PCMK_XA_ID, rsc->id); rsc 2915 lib/pengine/pe_output.c const pcmk_resource_t *rsc = va_arg(args, const pcmk_resource_t *); rsc 2919 lib/pengine/pe_output.c formatted_xml_buf(rsc, xml_buf, raw); rsc 2938 lib/pengine/pe_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 2945 lib/pengine/pe_output.c char *buf = resource_history_string(rsc, rsc_id, all, failcount, last_failure); rsc 2961 lib/pengine/pe_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 2973 lib/pengine/pe_output.c if (rsc == NULL) { rsc 2976 lib/pengine/pe_output.c char *migration_s = pcmk__itoa(rsc->priv->ban_after_failures); rsc 3062 lib/pengine/pe_output.c pcmk_resource_t *rsc = (pcmk_resource_t *) rsc_iter->data; rsc 3066 lib/pengine/pe_output.c bool is_active = rsc->priv->fns->active(rsc, true); rsc 3067 lib/pengine/pe_output.c bool partially_active = rsc->priv->fns->active(rsc, false); rsc 3070 lib/pengine/pe_output.c if (pcmk_is_set(rsc->flags, pcmk__rsc_removed) && !is_active) { rsc 3081 lib/pengine/pe_output.c && pcmk__is_primitive(rsc)) { rsc 3090 lib/pengine/pe_output.c } else if (partially_active && !pe__rsc_running_on_any(rsc, only_node)) { rsc 3101 lib/pengine/pe_output.c x = out->message(out, (const char *) rsc->priv->xml->name, rsc 3102 lib/pengine/pe_output.c show_opts, rsc, only_node, only_rsc); rsc 3141 lib/pengine/pe_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 3169 lib/pengine/pe_output.c int failcount = pe_get_failcount(node, rsc, &last_failure, rsc 3172 lib/pengine/pe_output.c out->message(out, "resource-history", rsc, rsc_printable_id(rsc), true, rsc 3194 lib/pengine/pe_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 3199 lib/pengine/pe_output.c fn, rsc->id, pcmk__node_name(node)); rsc 3201 lib/pengine/pe_output.c g_hash_table_foreach(rsc->priv->utilization, append_dump_text, rsc 3214 lib/pengine/pe_output.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 3222 lib/pengine/pe_output.c PCMK_XA_RESOURCE, rsc->id, rsc 3226 lib/pengine/pe_output.c g_hash_table_foreach(rsc->priv->utilization, add_dump_node, xml_node); rsc 54 lib/pengine/pe_status_private.h pcmk_resource_t *pe__create_clone_child(pcmk_resource_t *rsc, rsc 58 lib/pengine/pe_status_private.h void pe__create_action_notifications(pcmk_resource_t *rsc, rsc 65 lib/pengine/pe_status_private.h notify_data_t *pe__action_notif_pseudo_ops(pcmk_resource_t *rsc, rsc 71 lib/pengine/pe_status_private.h void pe__force_anon(const char *standard, pcmk_resource_t *rsc, const char *rid, rsc 78 lib/pengine/pe_status_private.h gboolean pe__unpack_resource(xmlNode *xml_obj, pcmk_resource_t **rsc, rsc 106 lib/pengine/pe_status_private.h pcmk__op_digest_t *pe__compare_fencing_digest(pcmk_resource_t *rsc, rsc 117 lib/pengine/pe_status_private.h unsigned int pe__primitive_max_per_node(const pcmk_resource_t *rsc); rsc 122 lib/pengine/pe_status_private.h unsigned int pe__group_max_per_node(const pcmk_resource_t *rsc); rsc 127 lib/pengine/pe_status_private.h unsigned int pe__clone_max_per_node(const pcmk_resource_t *rsc); rsc 132 lib/pengine/pe_status_private.h pcmk_node_t *pe__bundle_active_node(const pcmk_resource_t *rsc, rsc 137 lib/pengine/pe_status_private.h unsigned int pe__bundle_max_per_node(const pcmk_resource_t *rsc); rsc 30 lib/pengine/remote.c const pcmk_resource_t *rsc) rsc 32 lib/pengine/remote.c if ((rsc != NULL) && (scheduler != NULL) rsc 35 lib/pengine/remote.c for (GList *gIter = rsc->priv->launched; rsc 97 lib/pengine/remote.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 99 lib/pengine/remote.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection) rsc 100 lib/pengine/remote.c && (rsc->priv->launcher != NULL)) { rsc 101 lib/pengine/remote.c pcmk_node_t *guest_node = pcmk_find_node(scheduler, rsc->id); rsc 167 lib/pengine/status.c pcmk_resource_t *rsc = item->data; rsc 169 lib/pengine/status.c rsc->priv->fns->count(item->data); rsc 40 lib/pengine/tags.c pcmk_resource_t *rsc = rsc 43 lib/pengine/tags.c if (!rsc) { rsc 47 lib/pengine/tags.c retval = g_list_append(retval, strdup(rsc_printable_id(rsc))); rsc 59 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 61 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "exim-group") == 0) { rsc 62 lib/pengine/tests/native/native_find_rsc_test.c exim_group = rsc; rsc 63 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "httpd-bundle") == 0) { rsc 64 lib/pengine/tests/native/native_find_rsc_test.c httpd_bundle = rsc; rsc 65 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "inactive-clone") == 0) { rsc 66 lib/pengine/tests/native/native_find_rsc_test.c inactive_clone = rsc; rsc 67 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "inactive-group") == 0) { rsc 68 lib/pengine/tests/native/native_find_rsc_test.c inactive_group = rsc; rsc 69 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "mysql-clone-group") == 0) { rsc 70 lib/pengine/tests/native/native_find_rsc_test.c mysql_clone_group = rsc; rsc 71 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "promotable-clone") == 0) { rsc 72 lib/pengine/tests/native/native_find_rsc_test.c promotable_clone = rsc; rsc 89 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = g_list_first(scheduler->priv->resources)->data; rsc 90 lib/pengine/tests/native/native_find_rsc_test.c char *id = rsc->id; rsc 93 lib/pengine/tests/native/native_find_rsc_test.c assert_non_null(rsc); rsc 96 lib/pengine/tests/native/native_find_rsc_test.c assert_null(native_find_rsc(rsc, NULL, NULL, 0)); rsc 99 lib/pengine/tests/native/native_find_rsc_test.c name = crm_strdup_printf("%sX", rsc->id); rsc 100 lib/pengine/tests/native/native_find_rsc_test.c assert_null(native_find_rsc(rsc, name, NULL, 0)); rsc 103 lib/pengine/tests/native/native_find_rsc_test.c name = crm_strdup_printf("x%s", rsc->id); rsc 104 lib/pengine/tests/native/native_find_rsc_test.c assert_null(native_find_rsc(rsc, name, NULL, 0)); rsc 107 lib/pengine/tests/native/native_find_rsc_test.c name = g_ascii_strup(rsc->id, -1); rsc 108 lib/pengine/tests/native/native_find_rsc_test.c assert_null(native_find_rsc(rsc, name, NULL, 0)); rsc 112 lib/pengine/tests/native/native_find_rsc_test.c rsc->id = NULL; rsc 113 lib/pengine/tests/native/native_find_rsc_test.c assert_null(native_find_rsc(rsc, id, NULL, 0)); rsc 114 lib/pengine/tests/native/native_find_rsc_test.c rsc->id = id; rsc 125 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 127 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "dummy") == 0) { rsc 128 lib/pengine/tests/native/native_find_rsc_test.c dummy = rsc; rsc 220 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 222 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "Public-IP") == 0) { rsc 223 lib/pengine/tests/native/native_find_rsc_test.c public_ip = rsc; rsc 263 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 265 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "inactive-dummy-1") == 0) { rsc 266 lib/pengine/tests/native/native_find_rsc_test.c inactive_dummy_1 = rsc; rsc 365 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 367 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "promotable-rsc:0") == 0) { rsc 368 lib/pengine/tests/native/native_find_rsc_test.c promotable_0 = rsc; rsc 369 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "promotable-rsc:1") == 0) { rsc 370 lib/pengine/tests/native/native_find_rsc_test.c promotable_1 = rsc; rsc 506 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 508 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "promotable-rsc:0") == 0) { rsc 509 lib/pengine/tests/native/native_find_rsc_test.c promotable_0 = rsc; rsc 510 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "promotable-rsc:1") == 0) { rsc 511 lib/pengine/tests/native/native_find_rsc_test.c promotable_1 = rsc; rsc 677 lib/pengine/tests/native/native_find_rsc_test.c clone_group_rsc(void **rsc) { rsc 719 lib/pengine/tests/native/native_find_rsc_test.c clone_group_instance_rsc(void **rsc) { rsc 727 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 729 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "mysql-group:0") == 0) { rsc 730 lib/pengine/tests/native/native_find_rsc_test.c mysql_group_0 = rsc; rsc 731 lib/pengine/tests/native/native_find_rsc_test.c } else if (strcmp(rsc->id, "mysql-group:1") == 0) { rsc 732 lib/pengine/tests/native/native_find_rsc_test.c mysql_group_1 = rsc; rsc 867 lib/pengine/tests/native/native_find_rsc_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 869 lib/pengine/tests/native/native_find_rsc_test.c if (strcmp(rsc->id, "mysql-group:0") == 0) { rsc 870 lib/pengine/tests/native/native_find_rsc_test.c for (GList *iter2 = rsc->priv->children; rsc 53 lib/pengine/tests/native/pe_base_name_eq_test.c pcmk_resource_t *rsc = (pcmk_resource_t *) iter->data; rsc 55 lib/pengine/tests/native/pe_base_name_eq_test.c if (strcmp(rsc->id, "dummy") == 0) { rsc 56 lib/pengine/tests/native/pe_base_name_eq_test.c dummy = rsc; rsc 58 lib/pengine/tests/native/pe_base_name_eq_test.c } else if (strcmp(rsc->id, "exim-group") == 0) { rsc 59 lib/pengine/tests/native/pe_base_name_eq_test.c exim_group = rsc; rsc 61 lib/pengine/tests/native/pe_base_name_eq_test.c } else if (strcmp(rsc->id, "httpd-bundle") == 0) { rsc 62 lib/pengine/tests/native/pe_base_name_eq_test.c httpd_bundle = rsc; rsc 64 lib/pengine/tests/native/pe_base_name_eq_test.c } else if (strcmp(rsc->id, "mysql-clone-group") == 0) { rsc 65 lib/pengine/tests/native/pe_base_name_eq_test.c for (GList *iter = rsc->priv->children; rsc 77 lib/pengine/tests/native/pe_base_name_eq_test.c } else if (strcmp(rsc->id, "promotable-clone") == 0) { rsc 78 lib/pengine/tests/native/pe_base_name_eq_test.c for (GList *iter = rsc->priv->children; rsc 33 lib/pengine/unpack.c pcmk_resource_t *rsc; // Resource that history is for rsc 72 lib/pengine/unpack.c static void unpack_rsc_op(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 123 lib/pengine/unpack.c pcmk_resource_t *rsc = node->priv->remote->priv->launcher; rsc 125 lib/pengine/unpack.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 126 lib/pengine/unpack.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 130 lib/pengine/unpack.c pcmk__node_name(node), reason, rsc->id); rsc 135 lib/pengine/unpack.c pcmk__node_name(node), rsc->id, reason); rsc 142 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, rsc 156 lib/pengine/unpack.c pcmk_resource_t *rsc = node->priv->remote; rsc 158 lib/pengine/unpack.c if ((rsc != NULL) && !pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 662 lib/pengine/unpack.c unpack_launcher(pcmk_resource_t *rsc, pcmk_scheduler_t *scheduler) rsc 666 lib/pengine/unpack.c if (rsc->priv->children != NULL) { rsc 667 lib/pengine/unpack.c g_list_foreach(rsc->priv->children, (GFunc) unpack_launcher, rsc 672 lib/pengine/unpack.c launcher_id = g_hash_table_lookup(rsc->priv->meta, PCMK__META_CONTAINER); rsc 674 lib/pengine/unpack.c && !pcmk__str_eq(launcher_id, rsc->id, pcmk__str_none)) { rsc 679 lib/pengine/unpack.c rsc->priv->launcher = launcher; rsc 681 lib/pengine/unpack.c g_list_append(launcher->priv->launched, rsc); rsc 682 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Resource %s's launcher is %s", rsc 683 lib/pengine/unpack.c rsc->id, launcher_id); rsc 686 lib/pengine/unpack.c rsc->id, launcher_id); rsc 869 lib/pengine/unpack.c pcmk_resource_t *rsc = (pcmk_resource_t *) gIter->data; rsc 871 lib/pengine/unpack.c unpack_launcher(rsc, scheduler); rsc 872 lib/pengine/unpack.c link_rsc2remotenode(scheduler, rsc); rsc 1064 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 1085 lib/pengine/unpack.c rsc = this_node->priv->remote; rsc 1107 lib/pengine/unpack.c || ((rsc != NULL) && !pcmk_is_set(rsc->flags, pcmk__rsc_managed))) { rsc 1353 lib/pengine/unpack.c pcmk_resource_t *rsc = this_node->priv->remote; rsc 1355 lib/pengine/unpack.c if ((rsc == NULL) rsc 1357 lib/pengine/unpack.c && (rsc->priv->orig_role != pcmk_role_started))) { rsc 1768 lib/pengine/unpack.c pcmk_resource_t *rsc = this_node->priv->remote; rsc 1773 lib/pengine/unpack.c if (rsc == NULL) { rsc 1784 lib/pengine/unpack.c launcher = rsc->priv->launcher; rsc 1787 lib/pengine/unpack.c if (pcmk__list_of_1(rsc->priv->active_nodes)) { rsc 1788 lib/pengine/unpack.c host = rsc->priv->active_nodes->data; rsc 1793 lib/pengine/unpack.c if (rsc->priv->orig_role == pcmk_role_started) { rsc 1798 lib/pengine/unpack.c if ((rsc->priv->orig_role == pcmk_role_started) rsc 1799 lib/pengine/unpack.c && (rsc->priv->next_role == pcmk_role_stopped)) { rsc 1813 lib/pengine/unpack.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_failed)) { rsc 1818 lib/pengine/unpack.c } else if ((rsc->priv->orig_role == pcmk_role_stopped) rsc 1994 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 2001 lib/pengine/unpack.c if (pe__unpack_resource(xml_rsc, &rsc, NULL, scheduler) != pcmk_rc_ok) { rsc 2014 lib/pengine/unpack.c link_rsc2remotenode(scheduler, rsc); rsc 2026 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_removed_launched); rsc 2028 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_removed); rsc 2029 lib/pengine/unpack.c scheduler->priv->resources = g_list_append(scheduler->priv->resources, rsc); rsc 2030 lib/pengine/unpack.c return rsc; rsc 2080 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 2091 lib/pengine/unpack.c (rIter != NULL) && (rsc == NULL); rIter = rIter->next) { rsc 2128 lib/pengine/unpack.c rsc = parent->priv->fns->find_rsc(child, rsc_id, NULL, rsc 2130 lib/pengine/unpack.c if (rsc) { rsc 2138 lib/pengine/unpack.c if (rsc->priv->active_nodes != NULL) { rsc 2143 lib/pengine/unpack.c rsc = NULL; rsc 2145 lib/pengine/unpack.c pcmk__rsc_trace(parent, "Resource %s, active", rsc->id); rsc 2176 lib/pengine/unpack.c if ((rsc == NULL) && !skip_inactive && (inactive_instance != NULL)) { rsc 2179 lib/pengine/unpack.c rsc = inactive_instance; rsc 2195 lib/pengine/unpack.c if ((rsc != NULL) && !pcmk_is_set(rsc->flags, pcmk__rsc_needs_fencing) rsc 2200 lib/pengine/unpack.c rsc = NULL; rsc 2203 lib/pengine/unpack.c if (rsc == NULL) { rsc 2204 lib/pengine/unpack.c rsc = create_anonymous_orphan(parent, rsc_id, node, scheduler); rsc 2205 lib/pengine/unpack.c pcmk__rsc_trace(parent, "Resource %s, orphan", rsc->id); rsc 2207 lib/pengine/unpack.c return rsc; rsc 2214 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 2218 lib/pengine/unpack.c rsc = pe_find_resource(scheduler->priv->resources, rsc_id); rsc 2220 lib/pengine/unpack.c if (rsc == NULL) { rsc 2230 lib/pengine/unpack.c rsc = clone0; rsc 2239 lib/pengine/unpack.c } else if (rsc->priv->variant > pcmk__rsc_variant_primitive) { rsc 2245 lib/pengine/unpack.c parent = uber_parent(rsc); rsc 2251 lib/pengine/unpack.c rsc = pe__find_bundle_replica(parent->priv->parent, node); rsc 2255 lib/pengine/unpack.c rsc = find_anonymous_clone(scheduler, node, parent, base); rsc 2257 lib/pengine/unpack.c pcmk__assert(rsc != NULL); rsc 2261 lib/pengine/unpack.c if (rsc && !pcmk__str_eq(rsc_id, rsc->id, pcmk__str_none) rsc 2262 lib/pengine/unpack.c && !pcmk__str_eq(rsc_id, rsc->priv->history_id, pcmk__str_none)) { rsc 2264 lib/pengine/unpack.c pcmk__str_update(&(rsc->priv->history_id), rsc_id); rsc 2265 lib/pengine/unpack.c pcmk__rsc_debug(rsc, "Internally renamed %s on %s to %s%s", rsc 2266 lib/pengine/unpack.c rsc_id, pcmk__node_name(node), rsc->id, rsc 2267 lib/pengine/unpack.c pcmk_is_set(rsc->flags, pcmk__rsc_removed)? " (ORPHAN)" : ""); rsc 2269 lib/pengine/unpack.c return rsc; rsc 2276 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 2281 lib/pengine/unpack.c rsc = create_fake_resource(rsc_id, rsc_entry, scheduler); rsc 2282 lib/pengine/unpack.c if (rsc == NULL) { rsc 2287 lib/pengine/unpack.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 2290 lib/pengine/unpack.c CRM_CHECK(rsc != NULL, return NULL); rsc 2291 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Added orphan %s", rsc->id); rsc 2292 lib/pengine/unpack.c resource_location(rsc, NULL, -PCMK_SCORE_INFINITY, rsc 2295 lib/pengine/unpack.c return rsc; rsc 2299 lib/pengine/unpack.c process_rsc_state(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 2308 lib/pengine/unpack.c pcmk__assert(rsc != NULL); rsc 2309 lib/pengine/unpack.c scheduler = rsc->priv->scheduler; rsc 2310 lib/pengine/unpack.c known_active = (rsc->priv->orig_role > pcmk_role_stopped); rsc 2311 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Resource %s is %s on %s: on_fail=%s", rsc 2312 lib/pengine/unpack.c rsc->id, pcmk_role_text(rsc->priv->orig_role), rsc 2316 lib/pengine/unpack.c if (rsc->priv->orig_role != pcmk_role_unknown) { rsc 2317 lib/pengine/unpack.c pcmk_resource_t *iter = rsc; rsc 2324 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "%s (%s in history) known on %s", rsc 2325 lib/pengine/unpack.c rsc->id, rsc 2326 lib/pengine/unpack.c pcmk__s(rsc->priv->history_id, "the same"), rsc 2340 lib/pengine/unpack.c && pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 2352 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_failed|pcmk__rsc_stop_if_failed); rsc 2371 lib/pengine/unpack.c rsc->id); rsc 2378 lib/pengine/unpack.c reason = crm_strdup_printf("%s is thought to be active there", rsc->id); rsc 2401 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_failed); rsc 2402 lib/pengine/unpack.c demote_action(rsc, node, FALSE); rsc 2409 lib/pengine/unpack.c reason = crm_strdup_printf("%s failed there", rsc->id); rsc 2423 lib/pengine/unpack.c pcmk__clear_rsc_flags(rsc, pcmk__rsc_managed); rsc 2424 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_blocked); rsc 2431 lib/pengine/unpack.c resource_location(rsc, node, -PCMK_SCORE_INFINITY, rsc 2436 lib/pengine/unpack.c pe__set_next_role(rsc, pcmk_role_stopped, rsc 2442 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, rsc 2444 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 2449 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_failed|pcmk__rsc_stop_if_failed); rsc 2450 lib/pengine/unpack.c if ((rsc->priv->launcher != NULL) && pcmk__is_bundled(rsc)) { rsc 2458 lib/pengine/unpack.c rsc->priv->launcher); rsc 2459 lib/pengine/unpack.c } else if (rsc->priv->launcher != NULL) { rsc 2460 lib/pengine/unpack.c stop_action(rsc->priv->launcher, node, FALSE); rsc 2462 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 2467 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_failed|pcmk__rsc_stop_if_failed); rsc 2470 lib/pengine/unpack.c if (pcmk_is_set(rsc->flags, pcmk__rsc_is_remote_connection)) { rsc 2471 lib/pengine/unpack.c tmpnode = pcmk_find_node(scheduler, rsc->id); rsc 2486 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 2491 lib/pengine/unpack.c if (rsc->priv->remote_reconnect_ms > 0U) { rsc 2492 lib/pengine/unpack.c pe__set_next_role(rsc, pcmk_role_stopped, "remote reset"); rsc 2502 lib/pengine/unpack.c if (pcmk_all_flags_set(rsc->flags, rsc 2504 lib/pengine/unpack.c tmpnode = pcmk_find_node(scheduler, rsc->id); rsc 2511 lib/pengine/unpack.c if (pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 2512 lib/pengine/unpack.c if (pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 2515 lib/pengine/unpack.c rsc->id, pcmk__node_name(node)); rsc 2519 lib/pengine/unpack.c " is set to false", rsc->id, pcmk__node_name(node)); rsc 2523 lib/pengine/unpack.c native_add_running(rsc, node, scheduler, rsc 2530 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_failed); rsc 2533 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, rsc 2538 lib/pengine/unpack.c } else if ((rsc->priv->history_id != NULL) rsc 2539 lib/pengine/unpack.c && (strchr(rsc->priv->history_id, ':') != NULL)) { rsc 2547 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Clearing history ID %s for %s (stopped)", rsc 2548 lib/pengine/unpack.c rsc->priv->history_id, rsc->id); rsc 2549 lib/pengine/unpack.c free(rsc->priv->history_id); rsc 2550 lib/pengine/unpack.c rsc->priv->history_id = NULL; rsc 2553 lib/pengine/unpack.c GList *possible_matches = pe__resource_actions(rsc, node, rsc 2569 lib/pengine/unpack.c if ((rsc->priv->orig_role == pcmk_role_stopped) rsc 2570 lib/pengine/unpack.c && (rsc->priv->active_nodes != NULL) rsc 2571 lib/pengine/unpack.c && (rsc->priv->partial_migration_target != NULL) rsc 2572 lib/pengine/unpack.c && pcmk__same_node(rsc->priv->partial_migration_source, node)) { rsc 2574 lib/pengine/unpack.c rsc->priv->orig_role = pcmk_role_started; rsc 2580 lib/pengine/unpack.c process_recurring(pcmk_node_t *node, pcmk_resource_t *rsc, rsc 2589 lib/pengine/unpack.c pcmk__assert(rsc != NULL); rsc 2590 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "%s: Start index %d, stop index = %d", rsc 2591 lib/pengine/unpack.c rsc->id, start_index, stop_index); rsc 2603 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Skipping %s on %s: node is offline", rsc 2604 lib/pengine/unpack.c rsc->id, pcmk__node_name(node)); rsc 2609 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Skipping %s on %s: resource is not active", rsc 2614 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Skipping %s on %s: old %d", rsc 2621 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Skipping %s on %s: non-recurring", rsc 2628 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Skipping %s on %s: status", rsc 2634 lib/pengine/unpack.c key = pcmk__op_key(rsc->id, task, interval_ms); rsc 2635 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Creating %s on %s", key, pcmk__node_name(node)); rsc 2636 lib/pengine/unpack.c custom_action(rsc, key, task, node, TRUE, scheduler); rsc 2694 lib/pengine/unpack.c unpack_shutdown_lock(const xmlNode *rsc_entry, pcmk_resource_t *rsc, rsc 2705 lib/pengine/unpack.c pcmk__rsc_info(rsc, "Shutdown lock for %s on %s expired", rsc 2706 lib/pengine/unpack.c rsc->id, pcmk__node_name(node)); rsc 2707 lib/pengine/unpack.c pe__clear_resource_history(rsc, node); rsc 2709 lib/pengine/unpack.c rsc->priv->lock_node = node; rsc 2710 lib/pengine/unpack.c rsc->priv->lock_time = lock_time; rsc 2736 lib/pengine/unpack.c pcmk_resource_t *rsc = NULL; rsc 2773 lib/pengine/unpack.c rsc = unpack_find_resource(scheduler, node, rsc_id); rsc 2774 lib/pengine/unpack.c if (rsc == NULL) { rsc 2779 lib/pengine/unpack.c rsc = process_orphan_resource(lrm_resource, node, scheduler); rsc 2782 lib/pengine/unpack.c pcmk__assert(rsc != NULL); rsc 2786 lib/pengine/unpack.c unpack_shutdown_lock(lrm_resource, rsc, node, scheduler); rsc 2790 lib/pengine/unpack.c saved_role = rsc->priv->orig_role; rsc 2791 lib/pengine/unpack.c rsc->priv->orig_role = pcmk_role_unknown; rsc 2797 lib/pengine/unpack.c unpack_rsc_op(rsc, node, rsc_op, &last_failure, &on_fail); rsc 2802 lib/pengine/unpack.c process_recurring(node, rsc, start_index, stop_index, sorted_op_list, rsc 2808 lib/pengine/unpack.c process_rsc_state(rsc, node, on_fail); rsc 2810 lib/pengine/unpack.c if (get_target_role(rsc, &req_role)) { rsc 2811 lib/pengine/unpack.c if ((rsc->priv->next_role == pcmk_role_unknown) rsc 2812 lib/pengine/unpack.c || (req_role < rsc->priv->next_role)) { rsc 2814 lib/pengine/unpack.c pe__set_next_role(rsc, req_role, PCMK_META_TARGET_ROLE); rsc 2816 lib/pengine/unpack.c } else if (req_role > rsc->priv->next_role) { rsc 2817 lib/pengine/unpack.c pcmk__rsc_info(rsc, rsc 2820 lib/pengine/unpack.c rsc->id, pcmk_role_text(rsc->priv->next_role), rsc 2825 lib/pengine/unpack.c if (saved_role > rsc->priv->orig_role) { rsc 2826 lib/pengine/unpack.c rsc->priv->orig_role = saved_role; rsc 2829 lib/pengine/unpack.c return rsc; rsc 2842 lib/pengine/unpack.c pcmk_resource_t *rsc; rsc 2858 lib/pengine/unpack.c rsc = pe_find_resource(scheduler->priv->resources, rsc_id); rsc 2859 lib/pengine/unpack.c if ((rsc == NULL) || (rsc->priv->launcher != NULL) rsc 2860 lib/pengine/unpack.c || !pcmk_is_set(rsc->flags, pcmk__rsc_removed_launched)) { rsc 2864 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Mapped launcher of removed resource %s to %s", rsc 2865 lib/pengine/unpack.c rsc->id, launcher_id); rsc 2866 lib/pengine/unpack.c rsc->priv->launcher = launcher; rsc 2868 lib/pengine/unpack.c rsc); rsc 2903 lib/pengine/unpack.c pcmk_resource_t *rsc = unpack_lrm_resource(node, rsc_entry, scheduler); rsc 2905 lib/pengine/unpack.c if ((rsc != NULL) rsc 2906 lib/pengine/unpack.c && pcmk_is_set(rsc->flags, pcmk__rsc_removed_launched)) { rsc 2920 lib/pengine/unpack.c set_active(pcmk_resource_t *rsc) rsc 2922 lib/pengine/unpack.c const pcmk_resource_t *top = pe__const_top_resource(rsc, false); rsc 2925 lib/pengine/unpack.c rsc->priv->orig_role = pcmk_role_unpromoted; rsc 2927 lib/pengine/unpack.c rsc->priv->orig_role = pcmk_role_started; rsc 3026 lib/pengine/unpack.c unknown_on_node(pcmk_resource_t *rsc, const char *node_name) rsc 3036 lib/pengine/unpack.c node_name, rsc->id, PCMK_OCF_UNKNOWN); rsc 3038 lib/pengine/unpack.c search = pcmk__xpath_search(rsc->priv->scheduler->input->doc, xpath); rsc 3217 lib/pengine/unpack.c add_dangling_migration(pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 3219 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Dangling migration of %s requires stop on %s", rsc 3220 lib/pengine/unpack.c rsc->id, pcmk__node_name(node)); rsc 3221 lib/pengine/unpack.c rsc->priv->orig_role = pcmk_role_stopped; rsc 3222 lib/pengine/unpack.c rsc->priv->dangling_migration_sources = rsc 3223 lib/pengine/unpack.c g_list_prepend(rsc->priv->dangling_migration_sources, rsc 3276 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 3285 lib/pengine/unpack.c source_newer_op = non_monitor_after(history->rsc->id, source, history->xml, rsc 3289 lib/pengine/unpack.c migrate_from = find_lrm_op(history->rsc->id, PCMK_ACTION_MIGRATE_FROM, rsc 3306 lib/pengine/unpack.c target_newer_state = newer_state_after_migrate(history->rsc->id, target, rsc 3318 lib/pengine/unpack.c add_dangling_migration(history->rsc, history->node); rsc 3325 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; rsc 3333 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, TRUE); rsc 3336 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, rsc 3338 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_migratable); rsc 3350 lib/pengine/unpack.c && unknown_on_node(history->rsc, target)) { rsc 3357 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, FALSE); rsc 3365 lib/pengine/unpack.c history->rsc->priv->partial_migration_target = target_node; rsc 3366 lib/pengine/unpack.c history->rsc->priv->partial_migration_source = source_node; rsc 3371 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, rsc 3373 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_migratable); rsc 3389 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 3400 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; rsc 3403 lib/pengine/unpack.c target_migrate_from = find_lrm_op(history->rsc->id, rsc 3412 lib/pengine/unpack.c !unknown_on_node(history->rsc, target) rsc 3416 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, target, history->xml, rsc 3425 lib/pengine/unpack.c native_add_running(history->rsc, target_node, scheduler, FALSE); rsc 3428 lib/pengine/unpack.c } else if (!non_monitor_after(history->rsc->id, source, history->xml, rsc 3436 lib/pengine/unpack.c history->rsc->priv->dangling_migration_sources = rsc 3437 lib/pengine/unpack.c g_list_prepend(history->rsc->priv->dangling_migration_sources, rsc 3454 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 3465 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; rsc 3468 lib/pengine/unpack.c source_migrate_to = find_lrm_op(history->rsc->id, PCMK_ACTION_MIGRATE_TO, rsc 3476 lib/pengine/unpack.c !unknown_on_node(history->rsc, source) rsc 3480 lib/pengine/unpack.c && !newer_state_after_migrate(history->rsc->id, source, rsc 3489 lib/pengine/unpack.c native_add_running(history->rsc, source_node, scheduler, TRUE); rsc 3503 lib/pengine/unpack.c const pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 3527 lib/pengine/unpack.c crm_xml_add(history->xml, PCMK__XA_RSC_ID, history->rsc->id); rsc 3563 lib/pengine/unpack.c ban_from_all_nodes(pcmk_resource_t *rsc) rsc 3566 lib/pengine/unpack.c const pcmk_scheduler_t *scheduler = rsc->priv->scheduler; rsc 3568 lib/pengine/unpack.c if (rsc->priv->parent != NULL) { rsc 3569 lib/pengine/unpack.c pcmk_resource_t *parent = uber_parent(rsc); rsc 3576 lib/pengine/unpack.c rsc = parent; rsc 3581 lib/pengine/unpack.c crm_notice("%s will not be started under current conditions", rsc->id); rsc 3582 lib/pengine/unpack.c if (rsc->priv->allowed_nodes != NULL) { rsc 3583 lib/pengine/unpack.c g_hash_table_destroy(rsc->priv->allowed_nodes); rsc 3585 lib/pengine/unpack.c rsc->priv->allowed_nodes = pe__node_list2table(scheduler->nodes); rsc 3586 lib/pengine/unpack.c g_hash_table_foreach(rsc->priv->allowed_nodes, set_node_score, &score); rsc 3602 lib/pengine/unpack.c xmlNode *config = pcmk__find_action_config(history->rsc, history->task, rsc 3605 lib/pengine/unpack.c GHashTable *meta = pcmk__unpack_action_meta(history->rsc, history->node, rsc 3611 lib/pengine/unpack.c *on_fail = pcmk__parse_on_fail(history->rsc, history->task, rsc 3613 lib/pengine/unpack.c *fail_role = pcmk__role_after_failure(history->rsc, history->task, *on_fail, rsc 3636 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 3650 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, rsc 3660 lib/pengine/unpack.c (is_probe? "probe" : history->task), history->rsc->id, rsc 3674 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); rsc 3683 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "on-fail %s -> %s for %s", rsc 3690 lib/pengine/unpack.c resource_location(history->rsc, history->node, -PCMK_SCORE_INFINITY, rsc 3700 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 3704 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 3705 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_stopped, rsc 3709 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; rsc 3717 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unpromoted; rsc 3723 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "Leaving %s stopped", history->rsc->id); rsc 3724 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; rsc 3726 lib/pengine/unpack.c } else if (history->rsc->priv->orig_role < pcmk_role_started) { rsc 3727 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "Setting %s active", history->rsc->id); rsc 3728 lib/pengine/unpack.c set_active(history->rsc); rsc 3731 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 3733 lib/pengine/unpack.c history->rsc->id, rsc 3734 lib/pengine/unpack.c pcmk_role_text(history->rsc->priv->orig_role), rsc 3740 lib/pengine/unpack.c && (history->rsc->priv->next_role < fail_role)) { rsc 3741 lib/pengine/unpack.c pe__set_next_role(history->rsc, fail_role, "failure"); rsc 3745 lib/pengine/unpack.c ban_from_all_nodes(history->rsc); rsc 3775 lib/pengine/unpack.c history->rsc->id, history->task, rsc 3784 lib/pengine/unpack.c pcmk__clear_rsc_flags(history->rsc, pcmk__rsc_managed); rsc 3785 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, pcmk__rsc_blocked); rsc 3854 lib/pengine/unpack.c if (!pcmk__is_bundled(history->rsc) rsc 3909 lib/pengine/unpack.c pcmk__rsc_debug(history->rsc, rsc 3927 lib/pengine/unpack.c pcmk__rsc_info(history->rsc, rsc 3929 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node), rsc 3938 lib/pengine/unpack.c || !pcmk_is_set(history->rsc->flags, pcmk__rsc_managed)) { rsc 3945 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; rsc 3947 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, rsc 3958 lib/pengine/unpack.c pcmk__rsc_info(history->rsc, rsc 3960 lib/pengine/unpack.c history->rsc->id, rsc 3966 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 3972 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 4015 lib/pengine/unpack.c history->exit_status, task, history->rsc->id, rsc 4026 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 4039 lib/pengine/unpack.c pcmk_resource_t *rsc, pcmk_node_t *node) rsc 4042 lib/pengine/unpack.c if (pe__bundle_needs_remote_name(rsc)) { rsc 4047 lib/pengine/unpack.c pcmk__add_param_check(xml_op, rsc, node, pcmk__check_last_failure); rsc 4052 lib/pengine/unpack.c digest_data = rsc_action_digest_cmp(rsc, xml_op, node, rsc 4053 lib/pengine/unpack.c rsc->priv->scheduler); rsc 4058 lib/pengine/unpack.c rsc->id, pcmk__xe_history_key(xml_op), rsc 4087 lib/pengine/unpack.c should_ignore_failure_timeout(const pcmk_resource_t *rsc, const char *task, rsc 4110 lib/pengine/unpack.c if ((rsc->priv->remote_reconnect_ms > 0U) rsc 4111 lib/pengine/unpack.c && pcmk_is_set(rsc->priv->scheduler->flags, rsc 4116 lib/pengine/unpack.c pcmk_node_t *remote_node = pcmk_find_node(rsc->priv->scheduler, rsc 4117 lib/pengine/unpack.c rsc->id); rsc 4123 lib/pengine/unpack.c " until fencing has occurred", rsc->id); rsc 4158 lib/pengine/unpack.c pcmk__timeout_ms2s(history->rsc->priv->failure_expiration_ms); rsc 4159 lib/pengine/unpack.c pcmk_scheduler_t *scheduler = history->rsc->priv->scheduler; rsc 4162 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 4182 lib/pengine/unpack.c && !should_ignore_failure_timeout(history->rsc, history->task, rsc 4189 lib/pengine/unpack.c unexpired_fail_count = pe_get_failcount(history->node, history->rsc, rsc 4209 lib/pengine/unpack.c if (pe_get_failcount(history->node, history->rsc, NULL, rsc 4224 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 4232 lib/pengine/unpack.c && (history->rsc->priv->remote_reconnect_ms > 0U)) { rsc 4242 lib/pengine/unpack.c history->rsc, history->node)) { rsc 4250 lib/pengine/unpack.c clear_op = pe__clear_failcount(history->rsc, history->node, rsc 4254 lib/pengine/unpack.c && (history->rsc->priv->remote_reconnect_ms > 0)) { rsc 4265 lib/pengine/unpack.c history->task, history->rsc->id); rsc 4266 lib/pengine/unpack.c order_after_remote_fencing(clear_op, history->rsc, scheduler); rsc 4279 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 4321 lib/pengine/unpack.c || (!pcmk__is_bundled(history->rsc) rsc 4323 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; rsc 4335 lib/pengine/unpack.c if (history->rsc->priv->orig_role < pcmk_role_started) { rsc 4336 lib/pengine/unpack.c set_active(history->rsc); rsc 4340 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; rsc 4344 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_stopped; rsc 4349 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 4360 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unpromoted; rsc 4364 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_started; rsc 4371 lib/pengine/unpack.c } else if (history->rsc->priv->orig_role < pcmk_role_started) { rsc 4372 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, "%s active on %s", rsc 4373 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); rsc 4374 lib/pengine/unpack.c set_active(history->rsc); rsc 4386 lib/pengine/unpack.c pcmk__rsc_trace(history->rsc, rsc 4388 lib/pengine/unpack.c history->rsc->id, pcmk__on_fail_text(*on_fail), rsc 4398 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, rsc 4403 lib/pengine/unpack.c if (history->rsc->priv->remote_reconnect_ms == 0U) { rsc 4411 lib/pengine/unpack.c pe__set_next_role(history->rsc, pcmk_role_unknown, rsc 4454 lib/pengine/unpack.c history->id, history->rsc->id, rsc 4466 lib/pengine/unpack.c history->id, history->rsc->id, rsc 4490 lib/pengine/unpack.c if (!pcmk__is_bundled(history->rsc) rsc 4494 lib/pengine/unpack.c if (history->rsc->priv->orig_role <= pcmk_role_stopped) { rsc 4495 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_unknown; rsc 4499 lib/pengine/unpack.c history->id, history->rsc->id, rsc 4511 lib/pengine/unpack.c history->id, history->task, history->rsc->id, rsc 4530 lib/pengine/unpack.c history->rsc->id, pcmk__node_name(history->node)); rsc 4553 lib/pengine/unpack.c pcmk_resource_t *ban_rsc = history->rsc; rsc 4555 lib/pengine/unpack.c if (!pcmk_is_set(history->rsc->flags, pcmk__rsc_unique)) { rsc 4556 lib/pengine/unpack.c ban_rsc = uber_parent(history->rsc); rsc 4560 lib/pengine/unpack.c crm_exit_str(orig_exit_status), history->rsc->id, rsc 4644 lib/pengine/unpack.c pcmk__set_rsc_flags(history->rsc, pcmk__rsc_start_pending); rsc 4645 lib/pengine/unpack.c set_active(history->rsc); rsc 4648 lib/pengine/unpack.c history->rsc->priv->orig_role = pcmk_role_promoted; rsc 4660 lib/pengine/unpack.c target = pcmk_find_node(history->rsc->priv->scheduler, rsc 4663 lib/pengine/unpack.c stop_action(history->rsc, target, FALSE); rsc 4667 lib/pengine/unpack.c if (history->rsc->priv->pending_action != NULL) { rsc 4681 lib/pengine/unpack.c history->rsc->private->pending_action = strdup("probe"); rsc 4682 lib/pengine/unpack.c history->rsc->private->pending_node = history->node; rsc 4685 lib/pengine/unpack.c history->rsc->priv->pending_action = strdup(history->task); rsc 4686 lib/pengine/unpack.c history->rsc->priv->pending_node = history->node; rsc 4691 lib/pengine/unpack.c unpack_rsc_op(pcmk_resource_t *rsc, pcmk_node_t *node, xmlNode *xml_op, rsc 4696 lib/pengine/unpack.c pcmk_resource_t *parent = rsc; rsc 4701 lib/pengine/unpack.c .rsc = rsc, rsc 4707 lib/pengine/unpack.c CRM_CHECK(rsc && node && xml_op, return); rsc 4712 lib/pengine/unpack.c "without ID", rsc->id, pcmk__node_name(node)); rsc 4721 lib/pengine/unpack.c history.id, rsc->id, pcmk__node_name(node)); rsc 4726 lib/pengine/unpack.c pcmk__rsc_trace(rsc, rsc 4729 lib/pengine/unpack.c history.id, rsc->id, pcmk__node_name(node), rsc 4742 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "Unpacking %s (%s call %d on %s): %s (%s)", rsc 4749 lib/pengine/unpack.c pcmk__rsc_trace(rsc, rsc 4752 lib/pengine/unpack.c rsc->id, pcmk__node_name(node)); rsc 4764 lib/pengine/unpack.c if (!pcmk__is_bundled(rsc) && pcmk_xe_mask_probe_failure(xml_op)) { rsc 4769 lib/pengine/unpack.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 4770 lib/pengine/unpack.c parent = uber_parent(rsc); rsc 4789 lib/pengine/unpack.c history.task, rsc->id, pcmk__node_name(node), rsc 4798 lib/pengine/unpack.c "hard-error", rsc->priv->scheduler); rsc 4841 lib/pengine/unpack.c pcmk__s(history.exit_reason, ""), rsc->id, rsc 4848 lib/pengine/unpack.c pcmk__set_rsc_flags(rsc, pcmk__rsc_ignore_failure); rsc 4875 lib/pengine/unpack.c "hard-error", rsc->priv->scheduler); rsc 4878 lib/pengine/unpack.c pcmk__sched_err(rsc->priv->scheduler, rsc 4885 lib/pengine/unpack.c "fatal-error", rsc->priv->scheduler); rsc 4890 lib/pengine/unpack.c pcmk__rsc_trace(rsc, "%s role on %s after %s is %s (next %s)", rsc 4891 lib/pengine/unpack.c rsc->id, pcmk__node_name(node), history.id, rsc 4892 lib/pengine/unpack.c pcmk_role_text(rsc->priv->orig_role), rsc 4893 lib/pengine/unpack.c pcmk_role_text(rsc->priv->next_role)); rsc 4986 lib/pengine/unpack.c extract_operations(const char *node, const char *rsc, xmlNode * rsc_entry, gboolean active_filter) rsc 5006 lib/pengine/unpack.c crm_xml_add(rsc_op, PCMK_XA_RESOURCE, rsc); rsc 5048 lib/pengine/unpack.c find_operations(const char *rsc, const char *node, gboolean active_filter, rsc 5107 lib/pengine/unpack.c if ((rsc != NULL) rsc 5108 lib/pengine/unpack.c && !pcmk__str_eq(rsc_id, rsc, pcmk__str_none)) { rsc 41 lib/pengine/utils.c pcmk_resource_t *rsc = node->priv->remote->priv->launcher; rsc 43 lib/pengine/utils.c for (GList *n = rsc->priv->active_nodes; n != NULL; n = n->next) { rsc 88 lib/pengine/utils.c pcmk_resource_t *rsc = node->priv->remote; rsc 92 lib/pengine/utils.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 212 lib/pengine/utils.c pe__output_node_weights(const pcmk_resource_t *rsc, const char *comment, rsc 224 lib/pengine/utils.c out->message(out, "node-weight", rsc, comment, node->priv->name, rsc 243 lib/pengine/utils.c const pcmk_resource_t *rsc, const char *comment, rsc 254 lib/pengine/utils.c if (rsc) { rsc 258 lib/pengine/utils.c comment, rsc->id, rsc 286 lib/pengine/utils.c bool to_log, const pcmk_resource_t *rsc, rsc 290 lib/pengine/utils.c if ((rsc != NULL) && pcmk_is_set(rsc->flags, pcmk__rsc_removed)) { rsc 300 lib/pengine/utils.c pe__log_node_weights(file, function, line, rsc, comment, nodes); rsc 302 lib/pengine/utils.c pe__output_node_weights(rsc, comment, nodes, scheduler); rsc 305 lib/pengine/utils.c if (rsc == NULL) { rsc 310 lib/pengine/utils.c for (GList *gIter = rsc->priv->children; rsc 359 lib/pengine/utils.c resource_node_score(pcmk_resource_t *rsc, const pcmk_node_t *node, int score, rsc 364 lib/pengine/utils.c if ((pcmk_is_set(rsc->flags, pcmk__rsc_exclusive_probes) rsc 374 lib/pengine/utils.c for (GList *gIter = rsc->priv->children; rsc 383 lib/pengine/utils.c match = g_hash_table_lookup(rsc->priv->allowed_nodes, node->priv->id); rsc 386 lib/pengine/utils.c g_hash_table_insert(rsc->priv->allowed_nodes, rsc 390 lib/pengine/utils.c pcmk__rsc_trace(rsc, rsc 392 lib/pengine/utils.c tag, pcmk_readable_score(score), rsc->id, rsc 398 lib/pengine/utils.c resource_location(pcmk_resource_t *rsc, const pcmk_node_t *node, int score, rsc 402 lib/pengine/utils.c resource_node_score(rsc, node, score, tag); rsc 410 lib/pengine/utils.c resource_node_score(rsc, node_iter, score, tag); rsc 417 lib/pengine/utils.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 419 lib/pengine/utils.c resource_node_score(rsc, node_iter, score, tag); rsc 424 lib/pengine/utils.c && (rsc->priv->assigned_node != NULL)) { rsc 428 lib/pengine/utils.c rsc->id, pcmk__node_name(rsc->priv->assigned_node)); rsc 429 lib/pengine/utils.c pcmk__free_node_copy(rsc->priv->assigned_node); rsc 430 lib/pengine/utils.c rsc->priv->assigned_node = NULL; rsc 435 lib/pengine/utils.c get_target_role(const pcmk_resource_t *rsc, enum rsc_role_e *role) rsc 438 lib/pengine/utils.c const char *value = g_hash_table_lookup(rsc->priv->meta, rsc 459 lib/pengine/utils.c "because '%s' is not valid", rsc->id, value); rsc 463 lib/pengine/utils.c if (pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 473 lib/pengine/utils.c "clones", rsc->id, value); rsc 581 lib/pengine/utils.c rsc_printable_id(const pcmk_resource_t *rsc) rsc 583 lib/pengine/utils.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 584 lib/pengine/utils.c return rsc->id; rsc 586 lib/pengine/utils.c return pcmk__xe_id(rsc->priv->xml); rsc 590 lib/pengine/utils.c pe__clear_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t flags) rsc 592 lib/pengine/utils.c pcmk__clear_rsc_flags(rsc, flags); rsc 594 lib/pengine/utils.c for (GList *gIter = rsc->priv->children; rsc 615 lib/pengine/utils.c pe__set_resource_flags_recursive(pcmk_resource_t *rsc, uint64_t flags) rsc 617 lib/pengine/utils.c pcmk__set_rsc_flags(rsc, flags); rsc 619 lib/pengine/utils.c for (GList *gIter = rsc->priv->children; rsc 628 lib/pengine/utils.c trigger_unfencing(pcmk_resource_t *rsc, pcmk_node_t *node, const char *reason, rsc 635 lib/pengine/utils.c } else if ((rsc != NULL) rsc 636 lib/pengine/utils.c && !pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 651 lib/pengine/utils.c } else if(rsc) { rsc 654 lib/pengine/utils.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 657 lib/pengine/utils.c trigger_unfencing(rsc, node, reason, dependency, scheduler); rsc 728 lib/pengine/utils.c pe__resource_is_disabled(const pcmk_resource_t *rsc) rsc 732 lib/pengine/utils.c CRM_CHECK(rsc != NULL, return false); rsc 733 lib/pengine/utils.c target_role = g_hash_table_lookup(rsc->priv->meta, rsc 741 lib/pengine/utils.c && pcmk_is_set(pe__const_top_resource(rsc, false)->flags, rsc 759 lib/pengine/utils.c pe__rsc_running_on_only(const pcmk_resource_t *rsc, const pcmk_node_t *node) rsc 761 lib/pengine/utils.c return (rsc != NULL) && pcmk__list_of_1(rsc->priv->active_nodes) rsc 763 lib/pengine/utils.c rsc->priv->active_nodes->data, node); rsc 767 lib/pengine/utils.c pe__rsc_running_on_any(pcmk_resource_t *rsc, GList *node_list) rsc 769 lib/pengine/utils.c if (rsc != NULL) { rsc 770 lib/pengine/utils.c for (GList *ele = rsc->priv->active_nodes; ele; ele = ele->next) { rsc 782 lib/pengine/utils.c pcmk__rsc_filtered_by_node(pcmk_resource_t *rsc, GList *only_node) rsc 784 lib/pengine/utils.c return rsc->priv->fns->active(rsc, false) rsc 785 lib/pengine/utils.c && !pe__rsc_running_on_any(rsc, only_node); rsc 794 lib/pengine/utils.c pcmk_resource_t *rsc = (pcmk_resource_t *) gIter->data; rsc 799 lib/pengine/utils.c if (pcmk__str_in_list(rsc_printable_id(rsc), filter, pcmk__str_star_matches) || rsc 800 lib/pengine/utils.c ((rsc->priv->parent != NULL) rsc 801 lib/pengine/utils.c && pcmk__str_in_list(rsc_printable_id(rsc->priv->parent), rsc 803 lib/pengine/utils.c retval = g_list_prepend(retval, rsc); rsc 852 lib/pengine/utils.c pcmk_resource_t *rsc = rsc 855 lib/pengine/utils.c if (rsc) { rsc 862 lib/pengine/utils.c resources = g_list_prepend(resources, strdup(rsc->id)); rsc 864 lib/pengine/utils.c resources = g_list_prepend(resources, strdup(rsc_printable_id(rsc))); rsc 879 lib/pengine/utils.c pe__failed_probe_for_rsc(const pcmk_resource_t *rsc, const char *name) rsc 881 lib/pengine/utils.c const pcmk_resource_t *parent = pe__const_top_resource(rsc, false); rsc 882 lib/pengine/utils.c const char *rsc_id = rsc->id; rsc 883 lib/pengine/utils.c const pcmk_scheduler_t *scheduler = rsc->priv->scheduler; rsc 117 lib/services/services.c expand_resource_class(const char *rsc, const char *standard, const char *agent) rsc 126 lib/services/services.c crm_debug("Found %s agent %s for %s", found_class, agent, rsc); rsc 139 lib/services/services.c default_standard, agent, rsc); rsc 220 lib/services/services.c op->rsc = strdup(name); rsc 221 lib/services/services.c if (op->rsc == NULL) { rsc 500 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); rsc 605 lib/services/services.c free(op->rsc); rsc 823 lib/services/services.c if (op->rsc) { rsc 871 lib/services/services.c && op->rsc && is_op_blocked(op->rsc)) { rsc 889 lib/services/services.c is_op_blocked(const char *rsc) rsc 896 lib/services/services.c if (pcmk__str_eq(op->rsc, rsc, pcmk__str_none)) { rsc 922 lib/services/services.c if (is_op_blocked(op->rsc)) { rsc 1020 lib/services/services.c op->rsc, op->action, op->interval_ms, op->opaque->exec, op->rc); rsc 469 lib/services/services_linux.c if (op->rsc) { rsc 470 lib/services/services_linux.c set_ocf_env("OCF_RESOURCE_INSTANCE", op->rsc, NULL); rsc 984 lib/services/services_linux.c rc = pcmk__substitute_secrets(op->rsc, op->params); rsc 989 lib/services/services_linux.c op->rsc, pcmk_rc_str(rc)); rsc 993 lib/services/services_linux.c op->rsc, pcmk_rc_str(rc)); rsc 105 lib/services/services_private.h gboolean is_op_blocked(const char *rsc); rsc 365 lib/services/systemd.c error->name, pcmk__s(op->rsc, "unknown resource")); rsc 390 lib/services/systemd.c ((op->rsc == NULL)? "" : " for resource "), pcmk__s(op->rsc, ""), rsc 826 lib/services/systemd.c op->action, pcmk__s(op->rsc, "unknown resource")); rsc 850 lib/services/systemd.c op->action, pcmk__s(op->rsc, "unknown resource"), path); rsc 1204 lib/services/systemd.c pcmk__s(op->rsc, "(unspecified)"), name, rsc 1304 lib/services/systemd.c ((op->rsc == NULL)? "" : " for resource "), pcmk__s(op->rsc, "")); rsc 1354 lib/services/systemd.c op->action, op->agent, op->rsc); rsc 1404 lib/services/systemd.c ((op->rsc == NULL)? "" : " for resource "), pcmk__s(op->rsc, "")); rsc 1673 tools/crm_mon.c send_custom_trap(const char *node, const char *rsc, const char *task, int target_rc, int rc, rsc 1685 tools/crm_mon.c if(rsc) { rsc 1686 tools/crm_mon.c setenv("CRM_notify_rsc", rsc, 1); rsc 1724 tools/crm_mon.c char *rsc = NULL; rsc 1753 tools/crm_mon.c if (parse_op_key(id, &rsc, &task, NULL) == FALSE) { rsc 1784 tools/crm_mon.c crm_notice("%s of %s on %s completed: %s", task, rsc, node, desc); rsc 1791 tools/crm_mon.c crm_warn("%s of %s on %s failed: %s", task, rsc, node, desc); rsc 1795 tools/crm_mon.c crm_warn("%s of %s on %s failed: %s", task, rsc, node, desc); rsc 1799 tools/crm_mon.c send_custom_trap(node, rsc, task, target_rc, rc, status, desc); rsc 1803 tools/crm_mon.c free(rsc); rsc 854 tools/crm_resource.c ban_or_move(pcmk__output_t *out, pcmk_resource_t *rsc, cib_t *cib_conn, rsc 861 tools/crm_resource.c CRM_CHECK(rsc != NULL, return EINVAL); rsc 863 tools/crm_resource.c current = pe__find_active_requires(rsc, &nactive); rsc 870 tools/crm_resource.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 875 tools/crm_resource.c for (iter = rsc->priv->children; iter != NULL; iter = iter->next) { rsc 915 tools/crm_resource.c cleanup(pcmk__output_t *out, pcmk_resource_t *rsc, pcmk_node_t *node, rsc 921 tools/crm_resource.c rsc = uber_parent(rsc); rsc 925 tools/crm_resource.c rsc->id, options.rsc_id, rsc 927 tools/crm_resource.c rc = cli_resource_delete(controld_api, rsc, node, options.operation, rsc 932 tools/crm_resource.c cli_resource_check(out, rsc, node); rsc 1048 tools/crm_resource.c refresh_resource(pcmk__output_t *out, pcmk_resource_t *rsc, pcmk_node_t *node, rsc 1054 tools/crm_resource.c rsc = uber_parent(rsc); rsc 1058 tools/crm_resource.c rsc->id, options.rsc_id, rsc 1060 tools/crm_resource.c rc = cli_resource_delete(controld_api, rsc, node, NULL, 0, false, rsc 1065 tools/crm_resource.c cli_resource_check(out, rsc, node); rsc 1191 tools/crm_resource.c handle_ban(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1198 tools/crm_resource.c rc = ban_or_move(out, rsc, cib_conn, options.move_lifetime); rsc 1212 tools/crm_resource.c handle_cleanup(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1216 tools/crm_resource.c if (rsc == NULL) { rsc 1225 tools/crm_resource.c cleanup(out, rsc, node, controld_api); rsc 1237 tools/crm_resource.c handle_clear(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1300 tools/crm_resource.c handle_colocations(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1304 tools/crm_resource.c int rc = out->message(out, "locations-and-colocations", rsc, rsc 1311 tools/crm_resource.c handle_cts(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1322 tools/crm_resource.c handle_delete(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1350 tools/crm_resource.c handle_delete_param(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1354 tools/crm_resource.c int rc = cli_resource_delete_attribute(rsc, options.rsc_id, rsc 1365 tools/crm_resource.c handle_digests(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1369 tools/crm_resource.c int rc = pcmk__resource_digests(out, rsc, node, options.override_params); rsc 1375 tools/crm_resource.c handle_execute_agent(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1389 tools/crm_resource.c return cli_resource_execute(rsc, options.rsc_id, options.operation, rsc 1396 tools/crm_resource.c handle_fail(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1400 tools/crm_resource.c int rc = cli_resource_fail(controld_api, rsc, options.rsc_id, node); rsc 1411 tools/crm_resource.c handle_get_param(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1417 tools/crm_resource.c pcmk_node_t *current = rsc->priv->fns->active_node(rsc, &count, NULL); rsc 1426 tools/crm_resource.c rsc->id, pcmk__s(options.prop_name, "unspecified property")); rsc 1430 tools/crm_resource.c crm_debug("Looking up %s in %s", options.prop_name, rsc->id); rsc 1434 tools/crm_resource.c params = pe_rsc_params(rsc, current, scheduler); rsc 1442 tools/crm_resource.c get_meta_attributes(params, rsc, NULL, scheduler); rsc 1448 tools/crm_resource.c value = crm_element_value(rsc->priv->xml, options.prop_name); rsc 1457 tools/crm_resource.c pe__unpack_dataset_nvpairs(rsc->priv->xml, PCMK_XE_UTILIZATION, rsc 1463 tools/crm_resource.c rc = out->message(out, "attribute-list", rsc, options.prop_name, value); rsc 1472 tools/crm_resource.c handle_list_active_ops(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1484 tools/crm_resource.c handle_list_agents(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1494 tools/crm_resource.c handle_list_all_ops(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1506 tools/crm_resource.c handle_list_alternatives(pcmk_resource_t *rsc, pcmk_node_t *node, rsc 1516 tools/crm_resource.c handle_list_instances(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1531 tools/crm_resource.c handle_list_options(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1556 tools/crm_resource.c handle_list_providers(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1566 tools/crm_resource.c handle_list_resources(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1587 tools/crm_resource.c handle_list_standards(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1597 tools/crm_resource.c handle_locate(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1601 tools/crm_resource.c GList *nodes = cli_resource_search(rsc, options.rsc_id); rsc 1609 tools/crm_resource.c handle_metadata(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1663 tools/crm_resource.c handle_move(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1670 tools/crm_resource.c rc = ban_or_move(out, rsc, cib_conn, options.move_lifetime); rsc 1672 tools/crm_resource.c rc = cli_resource_move(rsc, options.rsc_id, node, options.move_lifetime, rsc 1684 tools/crm_resource.c handle_query_xml(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1688 tools/crm_resource.c int rc = cli_resource_print(rsc, true); rsc 1694 tools/crm_resource.c handle_query_xml_raw(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1698 tools/crm_resource.c int rc = cli_resource_print(rsc, false); rsc 1704 tools/crm_resource.c handle_refresh(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1708 tools/crm_resource.c if (rsc == NULL) { rsc 1711 tools/crm_resource.c refresh_resource(out, rsc, node, controld_api); rsc 1723 tools/crm_resource.c handle_restart(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1731 tools/crm_resource.c int rc = cli_resource_restart(out, rsc, node, options.move_lifetime, rsc 1739 tools/crm_resource.c handle_set_param(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1753 tools/crm_resource.c rc = cli_resource_update_attribute(rsc, options.rsc_id, options.prop_set, rsc 1762 tools/crm_resource.c handle_wait(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1772 tools/crm_resource.c handle_why(pcmk_resource_t *rsc, pcmk_node_t *node, cib_t *cib_conn, rsc 1777 tools/crm_resource.c scheduler->priv->resources, rsc, node); rsc 2054 tools/crm_resource.c pcmk_resource_t *rsc = NULL; rsc 2326 tools/crm_resource.c rsc = pe_find_resource_with_flags(scheduler->priv->resources, rsc 2328 tools/crm_resource.c if (rsc == NULL) { rsc 2336 tools/crm_resource.c && pcmk__is_clone(rsc->priv->parent) rsc 2347 tools/crm_resource.c exit_code = command_info->fn(rsc, node, cib_conn, scheduler, controld_api, rsc 43 tools/crm_resource.h pcmk_resource_t *rsc; rsc 55 tools/crm_resource.h pcmk_resource_t *rsc; // Resource being checked rsc 60 tools/crm_resource.h resource_checks_t *cli_check_resource(pcmk_resource_t *rsc, char *role_s, rsc 74 tools/crm_resource.h const char *rsc, const char *node, gboolean promoted_role_only); rsc 77 tools/crm_resource.h void cli_resource_print_cts(pcmk_resource_t *rsc, pcmk__output_t *out); rsc 80 tools/crm_resource.h int cli_resource_print(pcmk_resource_t *rsc, bool expanded); rsc 85 tools/crm_resource.h int cli_resource_check(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 87 tools/crm_resource.h int cli_resource_fail(pcmk_ipc_api_t *controld_api, pcmk_resource_t *rsc, rsc 89 tools/crm_resource.h GList *cli_resource_search(const pcmk_resource_t *rsc, rsc 91 tools/crm_resource.h int cli_resource_delete(pcmk_ipc_api_t *controld_api, pcmk_resource_t *rsc, rsc 98 tools/crm_resource.h int cli_resource_restart(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 102 tools/crm_resource.h int cli_resource_move(pcmk_resource_t *rsc, const char *rsc_id, rsc 112 tools/crm_resource.h crm_exit_t cli_resource_execute(pcmk_resource_t *rsc, rsc 120 tools/crm_resource.h int cli_resource_update_attribute(pcmk_resource_t *rsc, rsc 127 tools/crm_resource.h int cli_resource_delete_attribute(pcmk_resource_t *rsc, rsc 138 tools/crm_resource.h bool resource_is_running_on(pcmk_resource_t *rsc, const char *host); rsc 360 tools/crm_resource_ban.c const char *rsc, const char *node, rsc 380 tools/crm_resource_ban.c if ((node != NULL) || (rsc != NULL) || promoted_role_only) { rsc 386 tools/crm_resource_ban.c if (promoted_role_only || (rsc != NULL)) { rsc 391 tools/crm_resource_ban.c if ((rsc != NULL) && promoted_role_only) { rsc 394 tools/crm_resource_ban.c "@" PCMK_XA_RSC "='", rsc, "' " rsc 397 tools/crm_resource_ban.c } else if (rsc != NULL) { rsc 400 tools/crm_resource_ban.c "@" PCMK_XA_RSC "='", rsc, "'", NULL); rsc 441 tools/crm_resource_ban.c cli_resource_clear_all_expired(xmlNode *root, cib_t *cib_conn, const char *rsc, rsc 470 tools/crm_resource_ban.c build_clear_xpath_string(buf, constraint_node, rsc, node, rsc 56 tools/crm_resource_print.c cli_resource_print_cts(pcmk_resource_t *rsc, pcmk__output_t *out) rsc 60 tools/crm_resource_print.c const char *rtype = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 61 tools/crm_resource_print.c const char *rprov = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 62 tools/crm_resource_print.c const char *rclass = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 63 tools/crm_resource_print.c pcmk_node_t *node = pcmk__current_node(rsc); rsc 65 tools/crm_resource_print.c if (pcmk_is_set(rsc->flags, pcmk__rsc_fence_device)) { rsc 76 tools/crm_resource_print.c rsc->priv->xml->name, rsc->id, rsc 77 tools/crm_resource_print.c pcmk__s(rsc->priv->history_id, rsc->id), rsc 78 tools/crm_resource_print.c ((rsc->priv->parent == NULL)? "NA" : rsc->priv->parent->id), rsc 79 tools/crm_resource_print.c rprov ? rprov : "NA", rclass, rtype, host ? host : "NA", needs_quorum, rsc->flags, rsc 80 tools/crm_resource_print.c rsc->flags); rsc 82 tools/crm_resource_print.c g_list_foreach(rsc->priv->children, (GFunc) cli_resource_print_cts, out); rsc 112 tools/crm_resource_print.c cli_resource_print(pcmk_resource_t *rsc, bool expanded) rsc 118 tools/crm_resource_print.c pcmk__assert(rsc != NULL); rsc 120 tools/crm_resource_print.c scheduler = rsc->priv->scheduler; rsc 125 tools/crm_resource_print.c out->message(out, (const char *) rsc->priv->xml->name, pcmk_show_pending, rsc 126 tools/crm_resource_print.c rsc, all, all); rsc 127 tools/crm_resource_print.c out->message(out, "resource-config", rsc, !expanded); rsc 158 tools/crm_resource_print.c (const char *) ud->rsc->priv->xml->name, rsc 159 tools/crm_resource_print.c PCMK_XA_ID, ud->rsc->id, rsc 221 tools/crm_resource_print.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 231 tools/crm_resource_print.c out->err(out, "Attribute '%s' not found for '%s'", attr, rsc->id); rsc 317 tools/crm_resource_print.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 325 tools/crm_resource_print.c out->err(out, "Attribute '%s' not found for '%s'", attr, rsc->id); rsc 502 tools/crm_resource_print.c const pcmk_resource_t *parent = pe__const_top_resource(checks->rsc, false); rsc 503 tools/crm_resource_print.c const pcmk_scheduler_t *scheduler = checks->rsc->priv->scheduler; rsc 549 tools/crm_resource_print.c const pcmk_resource_t *parent = pe__const_top_resource(checks->rsc, false); rsc 654 tools/crm_resource_print.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 661 tools/crm_resource_print.c if ((rsc == NULL) && (host_uname == NULL)) { rsc 666 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 668 tools/crm_resource_print.c rsc->priv->fns->location(rsc, &hosts, pcmk__rsc_node_current); rsc 671 tools/crm_resource_print.c out->list_item(out, "reason", "Resource %s is not running", rsc->id); rsc 673 tools/crm_resource_print.c out->list_item(out, "reason", "Resource %s is running", rsc->id); rsc 676 tools/crm_resource_print.c cli_resource_check(out, rsc, NULL); rsc 681 tools/crm_resource_print.c } else if ((rsc != NULL) && (host_uname != NULL)) { rsc 682 tools/crm_resource_print.c if (resource_is_running_on(rsc, host_uname)) { rsc 684 tools/crm_resource_print.c rsc->id, host_uname); rsc 687 tools/crm_resource_print.c rsc->id, host_uname); rsc 690 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 692 tools/crm_resource_print.c } else if ((rsc == NULL) && (host_uname != NULL)) { rsc 700 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 702 tools/crm_resource_print.c rsc->id, host_uname); rsc 703 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 707 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 709 tools/crm_resource_print.c rsc->id, host_uname); rsc 710 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 717 tools/crm_resource_print.c } else if ((rsc != NULL) && (host_uname == NULL)) { rsc 720 tools/crm_resource_print.c rsc->priv->fns->location(rsc, &hosts, pcmk__rsc_node_current); rsc 722 tools/crm_resource_print.c rsc->id, (hosts? "" : "not ")); rsc 723 tools/crm_resource_print.c cli_resource_check(out, rsc, NULL); rsc 737 tools/crm_resource_print.c pcmk_resource_t *rsc = va_arg(args, pcmk_resource_t *); rsc 745 tools/crm_resource_print.c if ((rsc == NULL) && (host_uname == NULL)) { rsc 752 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 755 tools/crm_resource_print.c rsc->priv->fns->location(rsc, &hosts, pcmk__rsc_node_current); rsc 759 tools/crm_resource_print.c PCMK_XA_ID, rsc->id, rsc 763 tools/crm_resource_print.c cli_resource_check(out, rsc, NULL); rsc 771 tools/crm_resource_print.c } else if ((rsc != NULL) && (host_uname != NULL)) { rsc 772 tools/crm_resource_print.c if (resource_is_running_on(rsc, host_uname)) { rsc 776 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 778 tools/crm_resource_print.c } else if ((rsc == NULL) && (host_uname != NULL)) { rsc 788 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 791 tools/crm_resource_print.c PCMK_XA_ID, rsc->id, rsc 796 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 801 tools/crm_resource_print.c pcmk_resource_t *rsc = (pcmk_resource_t *) lpc->data; rsc 804 tools/crm_resource_print.c PCMK_XA_ID, rsc->id, rsc 809 tools/crm_resource_print.c cli_resource_check(out, rsc, node); rsc 818 tools/crm_resource_print.c } else if ((rsc != NULL) && (host_uname == NULL)) { rsc 821 tools/crm_resource_print.c rsc->priv->fns->location(rsc, &hosts, pcmk__rsc_node_current); rsc 823 tools/crm_resource_print.c cli_resource_check(out, rsc, NULL); rsc 832 tools/crm_resource_print.c add_resource_name(pcmk_resource_t *rsc, pcmk__output_t *out) rsc 834 tools/crm_resource_print.c if (rsc->priv->children == NULL) { rsc 839 tools/crm_resource_print.c out->list_item(out, PCMK_XE_RESOURCE, "%s", rsc->id); rsc 841 tools/crm_resource_print.c g_list_foreach(rsc->priv->children, (GFunc) add_resource_name, out); rsc 32 tools/crm_resource_runtime.c const pcmk_resource_t *rsc; //!< Resource rsc 55 tools/crm_resource_runtime.c pcmk__assert(rni->rsc != NULL); rsc 59 tools/crm_resource_runtime.c ni->promoted = pcmk_is_set(rni->rsc->flags, pcmk__rsc_promotable) rsc 60 tools/crm_resource_runtime.c && (rni->rsc->priv->fns->state(rni->rsc, true) rsc 67 tools/crm_resource_runtime.c cli_resource_search(const pcmk_resource_t *rsc, const char *requested_name) rsc 71 tools/crm_resource_runtime.c .rsc = rsc, rsc 75 tools/crm_resource_runtime.c pcmk__assert(rsc != NULL); rsc 77 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc)) { rsc 78 tools/crm_resource_runtime.c clone = rsc; rsc 81 tools/crm_resource_runtime.c const pcmk_resource_t *parent = pe__const_top_resource(rsc, false); rsc 84 tools/crm_resource_runtime.c && !pcmk_is_set(rsc->flags, pcmk__rsc_unique) rsc 85 tools/crm_resource_runtime.c && (rsc->priv->history_id != NULL) rsc 86 tools/crm_resource_runtime.c && pcmk__str_eq(requested_name, rsc->priv->history_id, rsc 88 tools/crm_resource_runtime.c && !pcmk__str_eq(requested_name, rsc->id, pcmk__str_none)) { rsc 96 tools/crm_resource_runtime.c g_list_foreach(rsc->priv->active_nodes, prepend_node_info, &rni); rsc 105 tools/crm_resource_runtime.c rni.rsc = child; rsc 114 tools/crm_resource_runtime.c const char *rsc, const char *attr_set_type, const char *set_name, rsc 138 tools/crm_resource_runtime.c xpath_base, "//*[@" PCMK_XA_ID "=\"", rsc, "\"]", NULL); rsc 189 tools/crm_resource_runtime.c pcmk_resource_t *rsc, const char * attr_set, rsc 194 tools/crm_resource_runtime.c char *lookup_id = clone_strip(rsc->id); rsc 196 tools/crm_resource_runtime.c for (GList *gIter = rsc->priv->children; rsc 204 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc)) { rsc 215 tools/crm_resource_runtime.c *result = g_list_append(*result, rsc); rsc 224 tools/crm_resource_runtime.c find_matching_attr_resources(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 238 tools/crm_resource_runtime.c return g_list_append(result, rsc); rsc 240 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc->priv->parent)) { rsc 245 tools/crm_resource_runtime.c rsc = rsc->priv->parent; rsc 247 tools/crm_resource_runtime.c cmd, attr_name, rsc->id, rsc_id); rsc 249 tools/crm_resource_runtime.c return g_list_append(result, rsc); rsc 251 tools/crm_resource_runtime.c } else if ((rsc->priv->parent == NULL) rsc 252 tools/crm_resource_runtime.c && (rsc->priv->children != NULL) && pcmk__is_clone(rsc)) { rsc 254 tools/crm_resource_runtime.c pcmk_resource_t *child = rsc->priv->children->data; rsc 262 tools/crm_resource_runtime.c rsc = child; rsc 269 tools/crm_resource_runtime.c return g_list_append(result, rsc); rsc 272 tools/crm_resource_runtime.c find_matching_attr_resources_recursive(out, &result, rsc, attr_set, rsc 288 tools/crm_resource_runtime.c get_cib_rsc(xmlNode *cib_xml, const pcmk_resource_t *rsc) rsc 292 tools/crm_resource_runtime.c pcmk__xe_id(rsc->priv->xml)); rsc 300 tools/crm_resource_runtime.c update_element_attribute(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 305 tools/crm_resource_runtime.c xmlNode *rsc_xml = get_cib_rsc(cib_xml_orig, rsc); rsc 324 tools/crm_resource_runtime.c resources_with_attr(pcmk__output_t *out, cib_t *cib, pcmk_resource_t *rsc, rsc 363 tools/crm_resource_runtime.c *resources = g_list_append(*resources, rsc); rsc 366 tools/crm_resource_runtime.c *resources = find_matching_attr_resources(out, rsc, requested_name, rsc 405 tools/crm_resource_runtime.c update_attribute(pcmk_resource_t *rsc, const char *requested_name, rsc 411 tools/crm_resource_runtime.c pcmk__output_t *out = rsc->priv->scheduler->priv->out; rsc 415 tools/crm_resource_runtime.c const char *top_id = pe__const_top_resource(rsc, false)->id; rsc 422 tools/crm_resource_runtime.c rc = resources_with_attr(out, cib, rsc, requested_name, attr_set, attr_set_type, rsc 442 tools/crm_resource_runtime.c rsc = (pcmk_resource_t *) iter->data; rsc 444 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); /* Could be a cloned group! */ rsc 468 tools/crm_resource_runtime.c rsc_xml = get_cib_rsc(cib_xml_orig, rsc); rsc 524 tools/crm_resource_runtime.c ud->rsc = rsc; rsc 544 tools/crm_resource_runtime.c pcmk__set_rsc_flags(rsc, pcmk__rsc_detect_loop); rsc 545 tools/crm_resource_runtime.c for (GList *lpc = rsc->priv->with_this_colocations; rsc 571 tools/crm_resource_runtime.c cli_resource_update_attribute(pcmk_resource_t *rsc, const char *requested_name, rsc 581 tools/crm_resource_runtime.c pcmk__output_t *out = rsc->priv->scheduler->priv->out; rsc 589 tools/crm_resource_runtime.c return update_element_attribute(out, rsc, cib, cib_xml_orig, attr_name, rsc 596 tools/crm_resource_runtime.c pcmk__unpack_constraints(rsc->priv->scheduler); rsc 597 tools/crm_resource_runtime.c pe__clear_resource_flags_on_all(rsc->priv->scheduler, rsc 601 tools/crm_resource_runtime.c rc = update_attribute(rsc, requested_name, attr_set, attr_set_type, rsc 619 tools/crm_resource_runtime.c cli_resource_delete_attribute(pcmk_resource_t *rsc, const char *requested_name, rsc 624 tools/crm_resource_runtime.c pcmk__output_t *out = rsc->priv->scheduler->priv->out; rsc 632 tools/crm_resource_runtime.c pe__const_top_resource(rsc, false)->id, NULL, rsc 637 tools/crm_resource_runtime.c xmlNode *rsc_xml = get_cib_rsc(cib_xml_orig, rsc); rsc 653 tools/crm_resource_runtime.c resources = find_matching_attr_resources(out, rsc, requested_name, rsc 658 tools/crm_resource_runtime.c resources = g_list_append(resources, rsc); rsc 668 tools/crm_resource_runtime.c rsc = (pcmk_resource_t *) iter->data; rsc 674 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); rsc 726 tools/crm_resource_runtime.c pcmk_resource_t *rsc, const char *rsc_id, rsc 738 tools/crm_resource_runtime.c pcmk__assert((rsc != NULL) && (rsc_id != NULL) && (node != NULL)); rsc 740 tools/crm_resource_runtime.c out = rsc->priv->scheduler->priv->out; rsc 742 tools/crm_resource_runtime.c if (!pcmk__is_primitive(rsc)) { rsc 748 tools/crm_resource_runtime.c rsc_class = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 749 tools/crm_resource_runtime.c rsc_provider = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 750 tools/crm_resource_runtime.c rsc_type = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 778 tools/crm_resource_runtime.c if (rsc->priv->history_id != NULL) { rsc 779 tools/crm_resource_runtime.c rsc_api_id = rsc->priv->history_id; rsc 780 tools/crm_resource_runtime.c rsc_long_id = rsc->id; rsc 782 tools/crm_resource_runtime.c rsc_api_id = rsc->id; rsc 806 tools/crm_resource_runtime.c rsc_fail_name(const pcmk_resource_t *rsc) rsc 808 tools/crm_resource_runtime.c const char *name = pcmk__s(rsc->priv->history_id, rsc->id); rsc 810 tools/crm_resource_runtime.c if (pcmk_is_set(rsc->flags, pcmk__rsc_unique)) { rsc 818 tools/crm_resource_runtime.c clear_rsc_history(pcmk_ipc_api_t *controld_api, pcmk_resource_t *rsc, rsc 823 tools/crm_resource_runtime.c pcmk__assert((rsc != NULL) && (node != NULL)); rsc 830 tools/crm_resource_runtime.c rc = send_lrm_rsc_op(controld_api, false, rsc, rsc_id, node); rsc 927 tools/crm_resource_runtime.c pcmk_resource_t *rsc = NULL; rsc 932 tools/crm_resource_runtime.c rsc = pe_find_resource(scheduler->priv->resources, failed_id); rsc 933 tools/crm_resource_runtime.c if (rsc == NULL) { rsc 938 tools/crm_resource_runtime.c rc = clear_rsc_history(controld_api, rsc, failed_id, node); rsc 949 tools/crm_resource_runtime.c clear_rsc_fail_attrs(const pcmk_resource_t *rsc, const char *operation, rsc 954 tools/crm_resource_runtime.c char *rsc_name = rsc_fail_name(rsc); rsc 969 tools/crm_resource_runtime.c cli_resource_delete(pcmk_ipc_api_t *controld_api, pcmk_resource_t *rsc, rsc 977 tools/crm_resource_runtime.c pcmk__assert(rsc != NULL); rsc 979 tools/crm_resource_runtime.c scheduler = rsc->priv->scheduler; rsc 982 tools/crm_resource_runtime.c if (rsc->priv->children != NULL) { rsc 983 tools/crm_resource_runtime.c for (GList *iter = rsc->priv->children; iter != NULL; rsc 998 tools/crm_resource_runtime.c GList *nodes = g_hash_table_get_values(rsc->priv->probed_nodes); rsc 1004 tools/crm_resource_runtime.c } else if (pcmk_is_set(rsc->flags, pcmk__rsc_exclusive_probes)) { rsc 1007 tools/crm_resource_runtime.c g_hash_table_iter_init(&iter, rsc->priv->allowed_nodes); rsc 1016 tools/crm_resource_runtime.c nodes = g_hash_table_get_values(rsc->priv->allowed_nodes); rsc 1027 tools/crm_resource_runtime.c rc = cli_resource_delete(controld_api, rsc, node, operation, rsc 1042 tools/crm_resource_runtime.c rsc->id, pcmk__node_name(node)); rsc 1048 tools/crm_resource_runtime.c rsc->id, pcmk__node_name(node)); rsc 1052 tools/crm_resource_runtime.c rc = clear_rsc_fail_attrs(rsc, operation, interval_spec, node); rsc 1055 tools/crm_resource_runtime.c rsc->id, pcmk__node_name(node), pcmk_rc_str(rc)); rsc 1060 tools/crm_resource_runtime.c rc = clear_rsc_failures(out, controld_api, node, rsc->id, operation, rsc 1063 tools/crm_resource_runtime.c rc = clear_rsc_history(controld_api, rsc, rsc->id, node); rsc 1069 tools/crm_resource_runtime.c rsc->id, pcmk__node_name(node), pcmk_rc_str(rc)); rsc 1071 tools/crm_resource_runtime.c out->info(out, "Cleaned up %s on %s", rsc->id, pcmk__node_name(node)); rsc 1146 tools/crm_resource_runtime.c const char *role_s = g_hash_table_lookup(checks->rsc->priv->meta, rsc 1158 tools/crm_resource_runtime.c if (pcmk_is_set(pe__const_top_resource(checks->rsc, false)->flags, rsc 1172 tools/crm_resource_runtime.c const char *managed_s = g_hash_table_lookup(checks->rsc->priv->meta, rsc 1183 tools/crm_resource_runtime.c const pcmk_node_t *lock_node = checks->rsc->priv->lock_node; rsc 1229 tools/crm_resource_runtime.c g_hash_table_iter_init(&iter, checks->rsc->priv->allowed_nodes); rsc 1250 tools/crm_resource_runtime.c cli_resource_check(pcmk__output_t *out, pcmk_resource_t *rsc, pcmk_node_t *node) rsc 1252 tools/crm_resource_runtime.c resource_checks_t checks = { .rsc = rsc }; rsc 1264 tools/crm_resource_runtime.c cli_resource_fail(pcmk_ipc_api_t *controld_api, pcmk_resource_t *rsc, rsc 1267 tools/crm_resource_runtime.c pcmk__assert((rsc != NULL) && (rsc_id != NULL) && (node != NULL)); rsc 1270 tools/crm_resource_runtime.c pcmk__output_t *out = rsc->priv->scheduler->priv->out; rsc 1277 tools/crm_resource_runtime.c return send_lrm_rsc_op(controld_api, true, rsc, rsc_id, node); rsc 1281 tools/crm_resource_runtime.c generate_resource_params(pcmk_resource_t *rsc) rsc 1292 tools/crm_resource_runtime.c params = pe_rsc_params(rsc, NULL, rsc->priv->scheduler); rsc 1301 tools/crm_resource_runtime.c get_meta_attributes(meta, rsc, NULL, rsc->priv->scheduler); rsc 1315 tools/crm_resource_runtime.c bool resource_is_running_on(pcmk_resource_t *rsc, const char *host) rsc 1321 tools/crm_resource_runtime.c if (rsc == NULL) { rsc 1325 tools/crm_resource_runtime.c rsc->priv->fns->location(rsc, &hosts, pcmk__rsc_node_current); rsc 1331 tools/crm_resource_runtime.c crm_trace("Resource %s is running on %s\n", rsc->id, host); rsc 1337 tools/crm_resource_runtime.c crm_trace("Resource %s is not running on: %s\n", rsc->id, host); rsc 1341 tools/crm_resource_runtime.c crm_trace("Resource %s is not running\n", rsc->id); rsc 1366 tools/crm_resource_runtime.c pcmk_resource_t *rsc = (pcmk_resource_t *) rIter->data; rsc 1372 tools/crm_resource_runtime.c if (pcmk__is_group(rsc)) { rsc 1375 tools/crm_resource_runtime.c member_active = get_active_resources(host, rsc->priv->children); rsc 1377 tools/crm_resource_runtime.c } else if (resource_is_running_on(rsc, host)) { rsc 1378 tools/crm_resource_runtime.c active = g_list_append(active, strdup(rsc->id)); rsc 1558 tools/crm_resource_runtime.c max_rsc_stop_timeout(pcmk_resource_t *rsc) rsc 1565 tools/crm_resource_runtime.c if (rsc == NULL) { rsc 1570 tools/crm_resource_runtime.c if (rsc->priv->children != NULL) { rsc 1572 tools/crm_resource_runtime.c for (GList *iter = rsc->priv->children; rsc 1579 tools/crm_resource_runtime.c pcmk__rsc_trace(rsc, rsc 1581 tools/crm_resource_runtime.c "due to %s", rsc->id, rsc 1590 tools/crm_resource_runtime.c config = pcmk__find_action_config(rsc, PCMK_ACTION_STOP, 0, true); rsc 1597 tools/crm_resource_runtime.c meta = pcmk__unpack_action_meta(rsc, NULL, PCMK_ACTION_STOP, 0, config); rsc 1629 tools/crm_resource_runtime.c pcmk_resource_t *rsc = pe_find_resource(scheduler->priv->resources, rsc 1631 tools/crm_resource_runtime.c guint delay = max_rsc_stop_timeout(rsc); rsc 1634 tools/crm_resource_runtime.c pcmk__rsc_trace(rsc, rsc 1636 tools/crm_resource_runtime.c pcmk__readable_interval(delay), rsc->id); rsc 1669 tools/crm_resource_runtime.c cli_resource_restart(pcmk__output_t *out, pcmk_resource_t *rsc, rsc 1697 tools/crm_resource_runtime.c pcmk_resource_t *parent = uber_parent(rsc); rsc 1700 tools/crm_resource_runtime.c const char *id = pcmk__s(rsc->priv->history_id, rsc->id); rsc 1706 tools/crm_resource_runtime.c if (pcmk__is_bundled(rsc)) { rsc 1707 tools/crm_resource_runtime.c rsc = parent->priv->parent; rsc 1710 tools/crm_resource_runtime.c running = resource_is_running_on(rsc, host); rsc 1714 tools/crm_resource_runtime.c lookup_id = strdup(rsc->id); rsc 1716 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); rsc 1719 tools/crm_resource_runtime.c rsc = parent->priv->fns->find_rsc(parent, lookup_id, node, rsc 1723 tools/crm_resource_runtime.c running = resource_is_running_on(rsc, host); rsc 1735 tools/crm_resource_runtime.c if (!pcmk_is_set(rsc->flags, pcmk__rsc_managed)) { rsc 1740 tools/crm_resource_runtime.c rsc_id = strdup(rsc->id); rsc 1743 tools/crm_resource_runtime.c lookup_id = strdup(rsc->id); rsc 1745 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); rsc 1749 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc) || pe_bundle_replicas(rsc)) { rsc 1819 tools/crm_resource_runtime.c rc = cli_resource_update_attribute(rsc, rsc_id, NULL, rsc 1901 tools/crm_resource_runtime.c rc = cli_resource_update_attribute(rsc, rsc_id, NULL, rsc 1909 tools/crm_resource_runtime.c rc = cli_resource_delete_attribute(rsc, rsc_id, NULL, rsc 1932 tools/crm_resource_runtime.c while (waiting_for_starts(list_delta, rsc, host)) { rsc 1940 tools/crm_resource_runtime.c for (lpc = 0; (lpc < step_timeout_s) && waiting_for_starts(list_delta, rsc, host); lpc++) { rsc 1986 tools/crm_resource_runtime.c cli_resource_update_attribute(rsc, rsc_id, NULL, rsc 1992 tools/crm_resource_runtime.c cli_resource_delete_attribute(rsc, rsc_id, NULL, rsc 2347 tools/crm_resource_runtime.c get_action_timeout(pcmk_resource_t *rsc, const char *action) rsc 2350 tools/crm_resource_runtime.c xmlNode *op = pcmk__find_action_config(rsc, action, 0, true); rsc 2351 tools/crm_resource_runtime.c GHashTable *meta = pcmk__unpack_action_meta(rsc, NULL, action, 0, op); rsc 2364 tools/crm_resource_runtime.c cli_resource_execute(pcmk_resource_t *rsc, const char *requested_name, rsc 2378 tools/crm_resource_runtime.c pcmk__assert(rsc != NULL); rsc 2380 tools/crm_resource_runtime.c scheduler = rsc->priv->scheduler; rsc 2385 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc)) { rsc 2386 tools/crm_resource_runtime.c GList *nodes = cli_resource_search(rsc, requested_name); rsc 2390 tools/crm_resource_runtime.c rsc_action, rsc->id); rsc 2402 tools/crm_resource_runtime.c if (pcmk__is_clone(rsc)) { rsc 2404 tools/crm_resource_runtime.c rsc = rsc->priv->children->data; rsc 2407 tools/crm_resource_runtime.c if (pcmk__is_group(rsc)) { rsc 2410 tools/crm_resource_runtime.c } else if (pcmk__is_bundled(rsc)) { rsc 2415 tools/crm_resource_runtime.c rclass = crm_element_value(rsc->priv->xml, PCMK_XA_CLASS); rsc 2416 tools/crm_resource_runtime.c rprov = crm_element_value(rsc->priv->xml, PCMK_XA_PROVIDER); rsc 2417 tools/crm_resource_runtime.c rtype = crm_element_value(rsc->priv->xml, PCMK_XA_TYPE); rsc 2419 tools/crm_resource_runtime.c params = generate_resource_params(rsc); // @TODO use local node rsc 2422 tools/crm_resource_runtime.c timeout_ms = get_action_timeout(rsc, get_action(rsc_action)); rsc 2425 tools/crm_resource_runtime.c if (!pcmk__is_anonymous_clone(rsc->priv->parent)) { rsc 2426 tools/crm_resource_runtime.c rid = rsc->id; rsc 2437 tools/crm_resource_runtime.c cli_resource_move(pcmk_resource_t *rsc, const char *rsc_id, rsc 2449 tools/crm_resource_runtime.c pcmk__assert((rsc != NULL) && (dest != NULL)); rsc 2451 tools/crm_resource_runtime.c scheduler = rsc->priv->scheduler; rsc 2455 tools/crm_resource_runtime.c && !pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 2457 tools/crm_resource_runtime.c pcmk_resource_t *p = uber_parent(rsc); rsc 2478 tools/crm_resource_runtime.c rsc->id, rsc_id); rsc 2480 tools/crm_resource_runtime.c rsc = p; rsc 2489 tools/crm_resource_runtime.c current = pe__find_active_requires(rsc, &count); rsc 2491 tools/crm_resource_runtime.c if (pcmk_is_set(rsc->flags, pcmk__rsc_promotable)) { rsc 2495 tools/crm_resource_runtime.c for (GList *iter = rsc->priv->children; iter != NULL; rsc 2502 tools/crm_resource_runtime.c rsc = child; rsc 2514 tools/crm_resource_runtime.c if (!pcmk__is_clone(rsc)) { rsc 2548 tools/crm_resource_runtime.c rsc->id, (promoted_role_only? " (promoted)" : ""),