rsc 271 attrd/attrd_common.c attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, rsc 279 attrd/attrd_common.c if (rsc == NULL) { rsc 282 attrd/attrd_common.c pattern = crm_strdup_printf(ATTRD_RE_CLEAR_ONE, rsc); rsc 285 attrd/attrd_common.c rsc, op, interval); rsc 51 attrd/attrd_common.h int attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, rsc 305 attrd/commands.c const char *rsc = crm_element_value(xml, F_ATTRD_RESOURCE); rsc 314 attrd/commands.c if (rsc) { rsc 318 attrd/commands.c pattern = crm_strdup_printf(ATTRD_RE_CLEAR_ONE, rsc); rsc 324 attrd/commands.c rsc, op, interval); rsc 492 attrd/commands.c const char *rsc = crm_element_value(xml, F_ATTRD_RESOURCE); rsc 501 attrd/commands.c if (attrd_failure_regex(®ex, rsc, op, interval) != pcmk_ok) { rsc 503 attrd/commands.c (rsc? rsc : "all resources")); rsc 518 attrd/commands.c attr, (rsc? rsc : "all resources")); rsc 241 attrd/legacy.c const char *rsc = crm_element_value(xml, F_ATTRD_RESOURCE); rsc 242 attrd/legacy.c const char *what = rsc? rsc : "all resources"; rsc 250 attrd/legacy.c if (attrd_failure_regex(®ex, rsc, op, interval) != pcmk_ok) { rsc 252 attrd/legacy.c (rsc? rsc : "all resources")); rsc 339 attrd/legacy.c const char *rsc = crm_element_value(xml, F_ATTRD_RESOURCE); rsc 347 attrd/legacy.c (rsc? rsc : "all resources"), rsc 354 attrd/legacy.c if (rsc == NULL) { rsc 369 attrd/legacy.c rsc, rsc, rsc, rsc); rsc 372 attrd/legacy.c host, rsc, rsc, rsc, rsc); rsc 383 attrd/legacy.c rsc, rsc, rsc, op, interval, rsc 384 attrd/legacy.c rsc, op, interval); rsc 387 attrd/legacy.c host, rsc, rsc, rsc, op, interval, rsc 388 attrd/legacy.c rsc, op, interval); rsc 125 crmd/attrd.c update_attrd_clear_failures(const char *host, const char *rsc, const char *op, rsc 131 crmd/attrd.c rsc, (is_remote_node? "Pacemaker Remote" : "cluster"), host); rsc 132 crmd/attrd.c update_attrd_helper(host, rsc, op, interval, NULL, is_remote_node, 0); rsc 31 crmd/crmd_lrm.h lrmd_rsc_info_t rsc; rsc 76 crmd/crmd_lrm.h char *rsc; rsc 121 crmd/crmd_metadata.c ra_version_from_xml(xmlNode *metadata_xml, const lrmd_rsc_info_t *rsc) rsc 127 crmd/crmd_metadata.c rsc->class, rsc->provider, rsc->type); rsc 132 crmd/crmd_metadata.c rsc->class, rsc->provider, rsc->type); rsc 137 crmd/crmd_metadata.c rsc->class, rsc->provider, rsc->type, version); rsc 176 crmd/crmd_metadata.c metadata_cache_update(GHashTable *mdc, lrmd_rsc_info_t *rsc, rsc 184 crmd/crmd_metadata.c CRM_CHECK(mdc && rsc && metadata_str, return NULL); rsc 186 crmd/crmd_metadata.c key = crm_generate_ra_key(rsc->class, rsc->provider, rsc->type); rsc 195 crmd/crmd_metadata.c rsc->class, rsc->provider, rsc->type); rsc 206 crmd/crmd_metadata.c md->ra_version = ra_version_from_xml(metadata, rsc); rsc 231 crmd/crmd_metadata.c rsc->class, rsc->provider, rsc->type); rsc 257 crmd/crmd_metadata.c metadata_cache_get(GHashTable *mdc, lrmd_rsc_info_t *rsc) rsc 262 crmd/crmd_metadata.c CRM_CHECK(mdc && rsc, return NULL); rsc 263 crmd/crmd_metadata.c key = crm_generate_ra_key(rsc->class, rsc->provider, rsc->type); rsc 38 crmd/crmd_metadata.h lrmd_rsc_info_t *rsc, rsc 40 crmd/crmd_metadata.h struct ra_metadata_s *metadata_cache_get(GHashTable *mdc, lrmd_rsc_info_t *rsc); rsc 96 crmd/crmd_utils.h void update_attrd_clear_failures(const char *host, const char *rsc, rsc 46 crmd/lrm.c const char *rsc; rsc 58 crmd/lrm.c static void do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operation, rsc 62 crmd/lrm.c lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, const char *rsc_id); rsc 66 crmd/lrm.c static int do_update_resource(const char *node_name, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op); rsc 83 crmd/lrm.c make_stop_id(const char *rsc, int call_id) rsc 87 crmd/lrm.c op_id = calloc(1, strlen(rsc) + 34); rsc 89 crmd/lrm.c snprintf(op_id, strlen(rsc) + 34, "%s:%d", rsc, call_id); rsc 173 crmd/lrm.c free(history->rsc.type); rsc 174 crmd/lrm.c free(history->rsc.class); rsc 175 crmd/lrm.c free(history->rsc.provider); rsc 185 crmd/lrm.c update_history_cache(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op) rsc 203 crmd/lrm.c if (entry == NULL && rsc) { rsc 208 crmd/lrm.c entry->rsc.id = entry->id; rsc 209 crmd/lrm.c entry->rsc.type = strdup(rsc->type); rsc 210 crmd/lrm.c entry->rsc.class = strdup(rsc->class); rsc 211 crmd/lrm.c if (rsc->provider) { rsc 212 crmd/lrm.c entry->rsc.provider = strdup(rsc->provider); rsc 214 crmd/lrm.c entry->rsc.provider = NULL; rsc 293 crmd/lrm.c const char *rsc_id, lrmd_rsc_info_t *rsc, const char *task, rsc 301 crmd/lrm.c send_direct_ack(ack_host, ack_sys, rsc, op, rsc_id); rsc 659 crmd/lrm.c build_operation_update(xmlNode * parent, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, rsc 693 crmd/lrm.c if ((rsc == NULL) || (op == NULL) || (op->params == NULL) rsc 694 crmd/lrm.c || !crm_op_needs_metadata(rsc->class, op->op_type)) { rsc 697 crmd/lrm.c op->op_type, op->rsc_id, op->params, rsc); rsc 708 crmd/lrm.c metadata = metadata_cache_get(lrm_state->metadata_cache, rsc); rsc 724 crmd/lrm.c int rc = lrm_state_get_metadata(lrm_state, rsc->class, rsc 725 crmd/lrm.c rsc->provider, rsc->type, rsc 730 crmd/lrm.c rsc->id, rsc->class, rsc->provider, rsc->type); rsc 734 crmd/lrm.c metadata = metadata_cache_update(lrm_state->metadata_cache, rsc, rsc 739 crmd/lrm.c rsc->id, rsc->class, rsc->provider, rsc->type); rsc 748 crmd/lrm.c crm_trace("Including additional digests for %s::%s:%s", rsc->class, rsc->provider, rsc->type); rsc 801 crmd/lrm.c crm_xml_add(xml_rsc, XML_ATTR_TYPE, entry->rsc.type); rsc 802 crmd/lrm.c crm_xml_add(xml_rsc, XML_AGENT_ATTR_CLASS, entry->rsc.class); rsc 803 crmd/lrm.c crm_xml_add(xml_rsc, XML_AGENT_ATTR_PROVIDER, entry->rsc.provider); rsc 812 crmd/lrm.c build_operation_update(xml_rsc, &(entry->rsc), entry->failed, lrm_state->node_name, __FUNCTION__); rsc 813 crmd/lrm.c build_operation_update(xml_rsc, &(entry->rsc), entry->last, lrm_state->node_name, __FUNCTION__); rsc 815 crmd/lrm.c build_operation_update(xml_rsc, &(entry->rsc), gIter->data, lrm_state->node_name, __FUNCTION__); rsc 922 crmd/lrm.c if (crm_str_eq(event->rsc, op->rsc, TRUE)) { rsc 923 crmd/lrm.c notify_deleted(event->lrm_state, op->input, event->rsc, event->rc); rsc 932 crmd/lrm.c const char *rsc = user_data; rsc 935 crmd/lrm.c if (crm_str_eq(rsc, pending->rsc_id, TRUE)) { rsc 937 crmd/lrm.c pending->op_key, pending->call_id, rsc); rsc 998 crmd/lrm.c event.rsc = rsc_id; rsc 1220 crmd/lrm.c lrmd_rsc_info_t *rsc; rsc 1233 crmd/lrm.c remove = !cancel_op(data->lrm_state, data->rsc->id, key, op->call_id, data->remove); rsc 1239 crmd/lrm.c cancel_op_key(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *key, gboolean remove) rsc 1244 crmd/lrm.c CRM_CHECK(rsc != NULL, return FALSE); rsc 1248 crmd/lrm.c data.rsc = rsc; rsc 1262 crmd/lrm.c lrmd_rsc_info_t *rsc = NULL; rsc 1272 crmd/lrm.c rsc = lrm_state_get_rsc_info(lrm_state, id, 0); rsc 1274 crmd/lrm.c if (!rsc && long_id) { rsc 1275 crmd/lrm.c rsc = lrm_state_get_rsc_info(lrm_state, long_id, 0); rsc 1278 crmd/lrm.c if (!rsc && do_create) { rsc 1286 crmd/lrm.c rsc = lrm_state_get_rsc_info(lrm_state, id, 0); rsc 1288 crmd/lrm.c if (!rsc) { rsc 1301 crmd/lrm.c return rsc; rsc 1307 crmd/lrm.c lrmd_rsc_info_t * rsc, rsc 1319 crmd/lrm.c if (rsc && unregister) { rsc 1332 crmd/lrm.c op->rsc = strdup(rsc->id); rsc 1393 crmd/lrm.c delete_resource(lrm_state, entry->id, &entry->rsc, &gIter, from_sys, from_host, rsc 1449 crmd/lrm.c lrmd_rsc_info_t rsc; rsc 1451 crmd/lrm.c rsc.id = strdup(op->rsc_id); rsc 1452 crmd/lrm.c rsc.type = crm_element_value_copy(xml_rsc, XML_ATTR_TYPE); rsc 1453 crmd/lrm.c rsc.class = crm_element_value_copy(xml_rsc, XML_AGENT_ATTR_CLASS); rsc 1454 crmd/lrm.c rsc.provider = crm_element_value_copy(xml_rsc, XML_AGENT_ATTR_PROVIDER); rsc 1456 crmd/lrm.c do_update_resource(target_node, &rsc, op); rsc 1458 crmd/lrm.c free(rsc.id); rsc 1459 crmd/lrm.c free(rsc.type); rsc 1460 crmd/lrm.c free(rsc.class); rsc 1461 crmd/lrm.c free(rsc.provider); rsc 1532 crmd/lrm.c lrmd_rsc_info_t *rsc = NULL; rsc 1567 crmd/lrm.c rsc = get_lrm_resource(lrm_state, xml_rsc, input->xml, create_rsc); rsc 1568 crmd/lrm.c if (rsc) { rsc 1569 crmd/lrm.c crm_info("Failing resource %s...", rsc->id); rsc 1573 crmd/lrm.c lrmd_free_rsc_info(rsc); rsc 1644 crmd/lrm.c lrmd_rsc_info_t *rsc = NULL; rsc 1661 crmd/lrm.c rsc = get_lrm_resource(lrm_state, xml_rsc, input->xml, create_rsc); rsc 1662 crmd/lrm.c if (rsc == NULL && create_rsc) { rsc 1670 crmd/lrm.c } else if (rsc == NULL) { rsc 1688 crmd/lrm.c lrmd_free_rsc_info(rsc); return); rsc 1703 crmd/lrm.c lrmd_free_rsc_info(rsc); return); rsc 1705 crmd/lrm.c lrmd_free_rsc_info(rsc); return); rsc 1707 crmd/lrm.c op_key = generate_op_key(rsc->id, op_task, crm_parse_int(op_interval, "0")); rsc 1714 crmd/lrm.c in_progress = cancel_op_key(lrm_state, rsc, op_key, TRUE); rsc 1718 crmd/lrm.c in_progress = cancel_op(lrm_state, rsc->id, NULL, call, TRUE); rsc 1722 crmd/lrm.c if (in_progress == FALSE || is_remote_lrmd_ra(NULL, NULL, rsc->id)) { rsc 1723 crmd/lrm.c char *op_id = make_stop_id(rsc->id, call); rsc 1725 crmd/lrm.c if (is_remote_lrmd_ra(NULL, NULL, rsc->id) == FALSE) { rsc 1728 crmd/lrm.c erase_lrm_history_by_id(lrm_state, rsc->id, op_key, NULL, call); rsc 1729 crmd/lrm.c send_task_ok_ack(lrm_state, input, rsc->id, rsc, op_task, rsc 1749 crmd/lrm.c send_task_ok_ack(lrm_state, input, rsc->id, rsc, op_task, rsc 1760 crmd/lrm.c int cib_rc = delete_rsc_status(lrm_state, rsc->id, cib_dryrun | cib_sync_call, user_name); rsc 1766 crmd/lrm.c rsc->id, from_sys, user_name ? user_name : "unknown", from_host, cib_rc, rsc 1769 crmd/lrm.c op = construct_op(lrm_state, input->xml, rsc->id, operation); rsc 1777 crmd/lrm.c send_direct_ack(from_host, from_sys, NULL, op, rsc->id); rsc 1779 crmd/lrm.c lrmd_free_rsc_info(rsc); rsc 1783 crmd/lrm.c if (crm_rsc_delete == TRUE && is_remote_lrmd_ra(NULL, NULL, rsc->id)) { rsc 1787 crmd/lrm.c delete_resource(lrm_state, rsc->id, rsc, NULL, from_sys, from_host, user_name, input, unregister); rsc 1790 crmd/lrm.c do_lrm_rsc_op(lrm_state, rsc, operation, input->xml, input->msg); rsc 1793 crmd/lrm.c lrmd_free_rsc_info(rsc); rsc 1858 crmd/lrm.c lrmd_rsc_info_t *rsc = lrm_state_get_rsc_info(lrm_state, rsc_id, 0); rsc 1861 crmd/lrm.c metadata = metadata_cache_get(lrm_state->metadata_cache, rsc); rsc 1905 crmd/lrm.c lrmd_free_rsc_info(rsc); rsc 1962 crmd/lrm.c lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, const char *rsc_id) rsc 1988 crmd/lrm.c build_operation_update(iter, rsc, op, fsa_our_uname, __FUNCTION__); rsc 2027 crmd/lrm.c lrmd_rsc_info_t *rsc; rsc 2038 crmd/lrm.c if (op->interval != 0 && crm_str_eq(op->rsc_id, event->rsc->id, TRUE)) { rsc 2040 crmd/lrm.c remove = !cancel_op(event->lrm_state, event->rsc->id, key, op->call_id, FALSE); rsc 2062 crmd/lrm.c record_pending_op(const char *node_name, lrmd_rsc_info_t *rsc, lrmd_event_data_t *op) rsc 2065 crmd/lrm.c CRM_CHECK(rsc != NULL, return); rsc 2096 crmd/lrm.c do_update_resource(node_name, rsc, op); rsc 2100 crmd/lrm.c do_lrm_rsc_op(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, const char *operation, xmlNode * msg, rsc 2112 crmd/lrm.c CRM_CHECK(rsc != NULL, return); rsc 2122 crmd/lrm.c op = construct_op(lrm_state, msg, rsc->id, operation); rsc 2125 crmd/lrm.c if (is_remote_lrmd_ra(NULL, NULL, rsc->id) rsc 2147 crmd/lrm.c data.rsc = rsc; rsc 2154 crmd/lrm.c removed, s_if_plural(removed), rsc->id, operation, op->interval); rsc 2159 crmd/lrm.c crm_info("Performing key=%s op=%s_%s_%d", transition, rsc->id, operation, op->interval); rsc 2175 crmd/lrm.c operation, rsc->id, fsa_state2string(fsa_state), rsc 2180 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, rsc->id); rsc 2186 crmd/lrm.c record_pending_op(lrm_state->node_name, rsc, op); rsc 2188 crmd/lrm.c op_id = generate_op_key(rsc->id, op->op_type, op->interval); rsc 2192 crmd/lrm.c cancel_op_key(lrm_state, rsc, op_id, FALSE); rsc 2207 crmd/lrm.c rsc->id, rsc 2212 crmd/lrm.c crm_err("Operation %s on %s failed: %d", operation, rsc->id, call_id); rsc 2217 crmd/lrm.c crm_err("Operation %s on resource %s failed to execute on remote node %s: %d", operation, rsc->id, lrm_state->node_name, call_id); rsc 2218 crmd/lrm.c op->call_id = get_fake_call_id(lrm_state, rsc->id); rsc 2229 crmd/lrm.c char *call_id_s = make_stop_id(rsc->id, call_id); rsc 2239 crmd/lrm.c pending->rsc_id = strdup(rsc->id); rsc 2255 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, rsc->id); rsc 2289 crmd/lrm.c do_update_resource(const char *node_name, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op) rsc 2336 crmd/lrm.c build_operation_update(iter, rsc, op, node_name, __FUNCTION__); rsc 2338 crmd/lrm.c if (rsc) { rsc 2341 crmd/lrm.c crm_xml_add(iter, XML_ATTR_TYPE, rsc->type); rsc 2342 crmd/lrm.c crm_xml_add(iter, XML_AGENT_ATTR_CLASS, rsc->class); rsc 2343 crmd/lrm.c crm_xml_add(iter, XML_AGENT_ATTR_PROVIDER, rsc->provider); rsc 2355 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, op->rsc_id); rsc 2432 crmd/lrm.c lrmd_rsc_info_t *rsc = NULL; rsc 2439 crmd/lrm.c rsc = lrm_state_get_rsc_info(lrm_state, op->rsc_id, 0); rsc 2465 crmd/lrm.c update_id = do_update_resource(lrm_state->node_name, rsc, op); rsc 2570 crmd/lrm.c metadata_cache_update(lrm_state->metadata_cache, rsc, metadata); rsc 2583 crmd/lrm.c update_history_cache(lrm_state, rsc, op); rsc 2585 crmd/lrm.c lrmd_free_rsc_info(rsc); rsc 53 crmd/lrm_state.c free(op->rsc); rsc 630 crmd/lrm_state.c lrmd_rsc_info_t *rsc = NULL; rsc 639 crmd/lrm_state.c rsc = g_hash_table_lookup(lrm_state->rsc_info_cache, rsc_id); rsc 640 crmd/lrm_state.c if (rsc == NULL) { rsc 642 crmd/lrm_state.c rsc = ((lrmd_t *) lrm_state->conn)->cmds->get_rsc_info(lrm_state->conn, rsc_id, options); rsc 643 crmd/lrm_state.c if (rsc == NULL) { rsc 647 crmd/lrm_state.c g_hash_table_insert(lrm_state->rsc_info_cache, rsc->id, rsc); rsc 650 crmd/lrm_state.c return lrmd_copy_rsc_info(rsc); rsc 623 crmd/messages.c const char *rsc = NULL; rsc 636 crmd/messages.c rsc = ID(xml_rsc); rsc 648 crmd/messages.c if ((rsc == NULL) || (uname == NULL)) { rsc 656 crmd/messages.c update_attrd_clear_failures(uname, rsc, op, interval, is_remote_node); rsc 657 crmd/messages.c lrm_clear_last_failure(rsc, uname, op, interval_ms); rsc 313 crmd/te_actions.c xmlNode *rsc = NULL; rsc 359 crmd/te_actions.c rsc = create_xml_node(state, XML_CIB_TAG_LRM); rsc 360 crmd/te_actions.c crm_xml_add(rsc, XML_ATTR_ID, target_uuid); rsc 362 crmd/te_actions.c rsc = create_xml_node(rsc, XML_LRM_TAG_RESOURCES); rsc 363 crmd/te_actions.c rsc = create_xml_node(rsc, XML_LRM_TAG_RESOURCE); rsc 364 crmd/te_actions.c crm_xml_add(rsc, XML_ATTR_ID, rsc_id); rsc 367 crmd/te_actions.c crm_copy_xml_element(action_rsc, rsc, XML_ATTR_TYPE); rsc 368 crmd/te_actions.c crm_copy_xml_element(action_rsc, rsc, XML_AGENT_ATTR_CLASS); rsc 369 crmd/te_actions.c crm_copy_xml_element(action_rsc, rsc, XML_AGENT_ATTR_PROVIDER); rsc 375 crmd/te_actions.c xml_op = create_operation_update(rsc, op, CRM_FEATURE_SET, target_rc, target, __FUNCTION__, LOG_INFO); rsc 248 crmd/te_callbacks.c xmlNode *rsc = NULL; rsc 282 crmd/te_callbacks.c for (rsc = __xml_first_child(xml); rsc != NULL; rsc = __xml_next(rsc)) { rsc 283 crmd/te_callbacks.c crm_trace("Processing %s", ID(rsc)); rsc 284 crmd/te_callbacks.c for (rsc_op = __xml_first_child(rsc); rsc_op != NULL; rsc_op = __xml_next(rsc_op)) { rsc 583 fencing/main.c our_node_allowed_for(resource_t *rsc) rsc 588 fencing/main.c if (rsc && stonith_our_uname) { rsc 589 fencing/main.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 608 fencing/main.c static void cib_device_update(resource_t *rsc, pe_working_set_t *data_set) rsc 619 fencing/main.c if(rsc->children) { rsc 621 fencing/main.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 623 fencing/main.c if(pe_rsc_is_clone(rsc)) { rsc 624 fencing/main.c crm_trace("Only processing one copy of the clone %s", rsc->id); rsc 632 fencing/main.c rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 638 fencing/main.c value = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET_ROLE); rsc 640 fencing/main.c crm_info("Device %s has been disabled", rsc->id); rsc 645 fencing/main.c node = our_node_allowed_for(rsc); rsc 646 fencing/main.c if (rsc->parent && (rsc->parent->variant == pe_group)) { rsc 647 fencing/main.c parent = our_node_allowed_for(rsc->parent); rsc 654 fencing/main.c crm_info("Device %s has been disabled on %s: unknown", rsc->id, stonith_our_uname); rsc 655 fencing/main.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 666 fencing/main.c crm_info("Device %s has been disabled on %s: score=%s", rsc->id, stonith_our_uname, score); rsc 678 fencing/main.c const char *agent = crm_element_value(rsc->xml, XML_EXPR_ATTR_TYPE); rsc 679 fencing/main.c const char *provider = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 682 fencing/main.c crm_debug("Device %s is allowed on %s: score=%d", rsc->id, stonith_our_uname, node->weight); rsc 683 fencing/main.c get_rsc_attributes(rsc->parameters, rsc, node, data_set); rsc 684 fencing/main.c get_meta_attributes(rsc->meta, rsc, node, data_set); rsc 686 fencing/main.c rsc_provides = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_PROVIDES); rsc 688 fencing/main.c g_hash_table_iter_init(&gIter, rsc->parameters); rsc 698 fencing/main.c data = create_device_registration_xml(rsc_name(rsc), provider, agent, params, rsc_provides); rsc 707 fencing/main.c if(remove && g_hash_table_lookup(device_list, rsc_name(rsc))) { rsc 708 fencing/main.c stonith_device_remove(rsc_name(rsc), TRUE); rsc 55 include/crm/pengine/complex.h void get_meta_attributes(GHashTable * meta_hash, resource_t * rsc, node_t * node, rsc 57 include/crm/pengine/complex.h void get_rsc_attributes(GHashTable * meta_hash, resource_t * rsc, node_t * node, rsc 61 include/crm/pengine/complex.h void pe_get_versioned_attributes(xmlNode * meta_hash, resource_t * rsc, node_t * node, rsc 67 include/crm/pengine/complex.h gboolean is_parent(resource_t *child, resource_t *rsc); rsc 68 include/crm/pengine/complex.h resource_t *uber_parent(resource_t * rsc); rsc 24 include/crm/pengine/internal.h # define pe_rsc_info(rsc, fmt, args...) crm_log_tag(LOG_INFO, rsc ? rsc->id : "<NULL>", fmt, ##args) rsc 25 include/crm/pengine/internal.h # define pe_rsc_debug(rsc, fmt, args...) crm_log_tag(LOG_DEBUG, rsc ? rsc->id : "<NULL>", fmt, ##args) rsc 26 include/crm/pengine/internal.h # define pe_rsc_trace(rsc, fmt, args...) crm_log_tag(LOG_TRACE, rsc ? rsc->id : "<NULL>", fmt, ##args) rsc 63 include/crm/pengine/internal.h char *native_parameter(resource_t * rsc, node_t * node, gboolean create, const char *name, rsc 65 include/crm/pengine/internal.h node_t *native_location(resource_t * rsc, GListPtr * list, gboolean current); rsc 70 include/crm/pengine/internal.h void common_update_score(resource_t * rsc, const char *id, int score); rsc 71 include/crm/pengine/internal.h void native_add_running(resource_t * rsc, node_t * node, pe_working_set_t * data_set); rsc 72 include/crm/pengine/internal.h node_t *rsc_known_on(resource_t * rsc, GListPtr * list); rsc 74 include/crm/pengine/internal.h gboolean native_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 75 include/crm/pengine/internal.h gboolean group_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 76 include/crm/pengine/internal.h gboolean clone_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 77 include/crm/pengine/internal.h gboolean master_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 78 include/crm/pengine/internal.h gboolean container_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 80 include/crm/pengine/internal.h resource_t *native_find_rsc(resource_t * rsc, const char *id, node_t * node, int flags); rsc 82 include/crm/pengine/internal.h gboolean native_active(resource_t * rsc, gboolean all); rsc 83 include/crm/pengine/internal.h gboolean group_active(resource_t * rsc, gboolean all); rsc 84 include/crm/pengine/internal.h gboolean clone_active(resource_t * rsc, gboolean all); rsc 85 include/crm/pengine/internal.h gboolean master_active(resource_t * rsc, gboolean all); rsc 86 include/crm/pengine/internal.h gboolean container_active(resource_t * rsc, gboolean all); rsc 88 include/crm/pengine/internal.h void native_print(resource_t * rsc, const char *pre_text, long options, void *print_data); rsc 89 include/crm/pengine/internal.h void group_print(resource_t * rsc, const char *pre_text, long options, void *print_data); rsc 90 include/crm/pengine/internal.h void clone_print(resource_t * rsc, const char *pre_text, long options, void *print_data); rsc 91 include/crm/pengine/internal.h void master_print(resource_t * rsc, const char *pre_text, long options, void *print_data); rsc 92 include/crm/pengine/internal.h void container_print(resource_t * rsc, const char *pre_text, long options, void *print_data); rsc 94 include/crm/pengine/internal.h void native_free(resource_t * rsc); rsc 95 include/crm/pengine/internal.h void group_free(resource_t * rsc); rsc 96 include/crm/pengine/internal.h void clone_free(resource_t * rsc); rsc 97 include/crm/pengine/internal.h void master_free(resource_t * rsc); rsc 98 include/crm/pengine/internal.h void container_free(resource_t * rsc); rsc 100 include/crm/pengine/internal.h enum rsc_role_e native_resource_state(const resource_t * rsc, gboolean current); rsc 101 include/crm/pengine/internal.h enum rsc_role_e group_resource_state(const resource_t * rsc, gboolean current); rsc 102 include/crm/pengine/internal.h enum rsc_role_e clone_resource_state(const resource_t * rsc, gboolean current); rsc 103 include/crm/pengine/internal.h enum rsc_role_e master_resource_state(const resource_t * rsc, gboolean current); rsc 104 include/crm/pengine/internal.h enum rsc_role_e container_resource_state(const resource_t * rsc, gboolean current); rsc 106 include/crm/pengine/internal.h gboolean common_unpack(xmlNode * xml_obj, resource_t ** rsc, resource_t * parent, rsc 108 include/crm/pengine/internal.h void common_free(resource_t * rsc); rsc 124 include/crm/pengine/internal.h int pe_get_failcount(node_t *node, resource_t *rsc, time_t *last_failure, rsc 159 include/crm/pengine/internal.h extern void print_resource(int log_level, const char *pre_text, resource_t * rsc, gboolean details); rsc 162 include/crm/pengine/internal.h resource_t * rsc, const char *comment, GHashTable * nodes); rsc 165 include/crm/pengine/internal.h extern void dump_rsc_utilization(int level, const char *comment, resource_t * rsc, node_t * node); rsc 167 include/crm/pengine/internal.h # define dump_node_scores(level, rsc, text, nodes) do { \ rsc 168 include/crm/pengine/internal.h dump_node_scores_worker(level, __FILE__, __FUNCTION__, __LINE__, rsc, text, nodes); \ rsc 175 include/crm/pengine/internal.h extern xmlNode *find_rsc_op_entry(resource_t * rsc, const char *key); rsc 177 include/crm/pengine/internal.h extern action_t *custom_action(resource_t * rsc, char *key, const char *task, node_t * on_node, rsc 180 include/crm/pengine/internal.h # define delete_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_DELETE, 0) rsc 181 include/crm/pengine/internal.h # define delete_action(rsc, node, optional) custom_action( \ rsc 182 include/crm/pengine/internal.h rsc, delete_key(rsc), CRMD_ACTION_DELETE, node, \ rsc 185 include/crm/pengine/internal.h # define stopped_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_STOPPED, 0) rsc 186 include/crm/pengine/internal.h # define stopped_action(rsc, node, optional) custom_action( \ rsc 187 include/crm/pengine/internal.h rsc, stopped_key(rsc), CRMD_ACTION_STOPPED, node, \ rsc 190 include/crm/pengine/internal.h # define stop_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_STOP, 0) rsc 191 include/crm/pengine/internal.h # define stop_action(rsc, node, optional) custom_action( \ rsc 192 include/crm/pengine/internal.h rsc, stop_key(rsc), CRMD_ACTION_STOP, node, \ rsc 195 include/crm/pengine/internal.h # define reload_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_RELOAD, 0) rsc 196 include/crm/pengine/internal.h # define start_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_START, 0) rsc 197 include/crm/pengine/internal.h # define start_action(rsc, node, optional) custom_action( \ rsc 198 include/crm/pengine/internal.h rsc, start_key(rsc), CRMD_ACTION_START, node, \ rsc 201 include/crm/pengine/internal.h # define started_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_STARTED, 0) rsc 202 include/crm/pengine/internal.h # define started_action(rsc, node, optional) custom_action( \ rsc 203 include/crm/pengine/internal.h rsc, started_key(rsc), CRMD_ACTION_STARTED, node, \ rsc 206 include/crm/pengine/internal.h # define promote_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_PROMOTE, 0) rsc 207 include/crm/pengine/internal.h # define promote_action(rsc, node, optional) custom_action( \ rsc 208 include/crm/pengine/internal.h rsc, promote_key(rsc), CRMD_ACTION_PROMOTE, node, \ rsc 211 include/crm/pengine/internal.h # define promoted_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_PROMOTED, 0) rsc 212 include/crm/pengine/internal.h # define promoted_action(rsc, node, optional) custom_action( \ rsc 213 include/crm/pengine/internal.h rsc, promoted_key(rsc), CRMD_ACTION_PROMOTED, node, \ rsc 216 include/crm/pengine/internal.h # define demote_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_DEMOTE, 0) rsc 217 include/crm/pengine/internal.h # define demote_action(rsc, node, optional) custom_action( \ rsc 218 include/crm/pengine/internal.h rsc, demote_key(rsc), CRMD_ACTION_DEMOTE, node, \ rsc 221 include/crm/pengine/internal.h # define demoted_key(rsc) generate_op_key(rsc->id, CRMD_ACTION_DEMOTED, 0) rsc 222 include/crm/pengine/internal.h # define demoted_action(rsc, node, optional) custom_action( \ rsc 223 include/crm/pengine/internal.h rsc, demoted_key(rsc), CRMD_ACTION_DEMOTED, node, \ rsc 226 include/crm/pengine/internal.h extern int pe_get_configured_timeout(resource_t *rsc, const char *action, rsc 231 include/crm/pengine/internal.h extern enum action_tasks get_complex_task(resource_t * rsc, const char *name, rsc 240 include/crm/pengine/internal.h extern void resource_location(resource_t * rsc, node_t * node, int score, const char *tag, rsc 244 include/crm/pengine/internal.h extern gboolean get_target_role(resource_t * rsc, enum rsc_role_e *role); rsc 246 include/crm/pengine/internal.h extern resource_t *find_clone_instance(resource_t * rsc, const char *sub_id, rsc 258 include/crm/pengine/internal.h pe_base_name_eq(resource_t *rsc, const char *id) rsc 260 include/crm/pengine/internal.h if (id && rsc && rsc->id) { rsc 262 include/crm/pengine/internal.h size_t base_len = pe_base_name_end(rsc->id) - rsc->id + 1; rsc 264 include/crm/pengine/internal.h return (strlen(id) == base_len) && !strncmp(id, rsc->id, base_len); rsc 272 include/crm/pengine/internal.h bool is_set_recursive(resource_t * rsc, long long flag, bool any); rsc 296 include/crm/pengine/internal.h op_digest_cache_t *rsc_action_digest_cmp(resource_t * rsc, xmlNode * xml_op, node_t * node, rsc 301 include/crm/pengine/internal.h resource_t * rsc, node_t *node, const char *reason, action_t *dependency, pe_working_set_t * data_set); rsc 309 include/crm/pengine/internal.h void set_bit_recursive(resource_t * rsc, unsigned long long flag); rsc 310 include/crm/pengine/internal.h void clear_bit_recursive(resource_t * rsc, unsigned long long flag); rsc 321 include/crm/pengine/internal.h void common_print(resource_t * rsc, const char *pre_text, const char *name, node_t *node, long options, void *print_data); rsc 322 include/crm/pengine/internal.h resource_t *find_container_child(const char *stem, resource_t * rsc, node_t *node); rsc 323 include/crm/pengine/internal.h bool container_fix_remote_addr(resource_t *rsc); rsc 324 include/crm/pengine/internal.h const char *container_fix_remote_addr_in(resource_t *rsc, xmlNode *xml, const char *field); rsc 325 include/crm/pengine/internal.h const char *pe_node_attribute_calculated(pe_node_t *node, const char *name, resource_t *rsc); rsc 25 include/crm/pengine/remote.h gboolean is_rsc_baremetal_remote_node(resource_t *rsc, pe_working_set_t * data_set); rsc 26 include/crm/pengine/remote.h resource_t * rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc); rsc 335 include/crm/pengine/status.h resource_t *rsc; rsc 465 include/crm/pengine/status.h const char *rsc_printable_id(resource_t *rsc); rsc 474 include/crm/pengine/status.h GListPtr find_operations(const char *rsc, const char *node, gboolean active_filter, rsc 476 include/crm/pengine/status.h int pe_bundle_replicas(const resource_t *rsc); rsc 489 include/crm/pengine/status.h pe_rsc_is_clone(resource_t *rsc) rsc 491 include/crm/pengine/status.h return rsc && ((rsc->variant == pe_clone) || (rsc->variant == pe_master)); rsc 502 include/crm/pengine/status.h pe_rsc_is_unique_clone(resource_t *rsc) rsc 504 include/crm/pengine/status.h return pe_rsc_is_clone(rsc) && is_set(rsc->flags, pe_rsc_unique); rsc 515 include/crm/pengine/status.h pe_rsc_is_anon_clone(resource_t *rsc) rsc 517 include/crm/pengine/status.h return pe_rsc_is_clone(rsc) && is_not_set(rsc->flags, pe_rsc_unique); rsc 164 include/crm/services.h char *rsc; rsc 122 include/crm/transition.h gboolean(*rsc) (crm_graph_t * graph, crm_action_t * action); rsc 30 lib/pengine/clone.c void force_non_unique_clone(resource_t * rsc, const char *rid, pe_working_set_t * data_set); rsc 31 lib/pengine/clone.c resource_t *create_child_clone(resource_t * rsc, int sub_id, pe_working_set_t * data_set); rsc 34 lib/pengine/clone.c mark_as_orphan(resource_t * rsc) rsc 36 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 38 lib/pengine/clone.c set_bit(rsc->flags, pe_rsc_orphan); rsc 48 lib/pengine/clone.c force_non_unique_clone(resource_t * rsc, const char *rid, pe_working_set_t * data_set) rsc 50 lib/pengine/clone.c if (pe_rsc_is_clone(rsc)) { rsc 53 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 57 lib/pengine/clone.c "Set the " XML_RSC_ATTR_UNIQUE " meta attribute to false", rsc->id, rid); rsc 61 lib/pengine/clone.c clear_bit_recursive(rsc, pe_rsc_unique); rsc 66 lib/pengine/clone.c find_clone_instance(resource_t * rsc, const char *sub_id, pe_working_set_t * data_set) rsc 73 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 77 lib/pengine/clone.c child = pe_find_resource(rsc->children, child_id); rsc 84 lib/pengine/clone.c create_child_clone(resource_t * rsc, int sub_id, pe_working_set_t * data_set) rsc 93 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 108 lib/pengine/clone.c if (common_unpack(child_copy, &child_rsc, rsc, data_set) == FALSE) { rsc 118 lib/pengine/clone.c rsc->children = g_list_append(rsc->children, child_rsc); rsc 135 lib/pengine/clone.c master_unpack(resource_t * rsc, pe_working_set_t * data_set) rsc 137 lib/pengine/clone.c const char *master_max = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_MASTER_MAX); rsc 138 lib/pengine/clone.c const char *master_node_max = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_MASTER_NODEMAX); rsc 140 lib/pengine/clone.c g_hash_table_replace(rsc->meta, strdup("stateful"), strdup(XML_BOOLEAN_TRUE)); rsc 141 lib/pengine/clone.c if (clone_unpack(rsc, data_set)) { rsc 144 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 153 lib/pengine/clone.c clone_unpack(resource_t * rsc, pe_working_set_t * data_set) rsc 157 lib/pengine/clone.c xmlNode *xml_obj = rsc->xml; rsc 160 lib/pengine/clone.c const char *ordered = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_ORDERED); rsc 161 lib/pengine/clone.c const char *interleave = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INTERLEAVE); rsc 162 lib/pengine/clone.c const char *max_clones = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INCARNATION_MAX); rsc 163 lib/pengine/clone.c const char *max_clones_node = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INCARNATION_NODEMAX); rsc 165 lib/pengine/clone.c pe_rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 168 lib/pengine/clone.c rsc->variant_opaque = clone_data; rsc 187 lib/pengine/clone.c if ((rsc->flags & pe_rsc_unique) == 0 && clone_data->clone_node_max > 1) { rsc 188 lib/pengine/clone.c crm_config_err("Anonymous clones (%s) may only support one copy per node", rsc->id); rsc 192 lib/pengine/clone.c pe_rsc_trace(rsc, "Options for %s", rsc->id); rsc 193 lib/pengine/clone.c pe_rsc_trace(rsc, "\tClone max: %d", clone_data->clone_max); rsc 194 lib/pengine/clone.c pe_rsc_trace(rsc, "\tClone node max: %d", clone_data->clone_node_max); rsc 195 lib/pengine/clone.c pe_rsc_trace(rsc, "\tClone is unique: %s", rsc 196 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_unique) ? "true" : "false"); rsc 210 lib/pengine/clone.c crm_config_err("%s has nothing to clone", rsc->id); rsc 220 lib/pengine/clone.c if (g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_STICKINESS) == NULL) { rsc 221 lib/pengine/clone.c add_hash_param(rsc->meta, XML_RSC_ATTR_STICKINESS, "1"); rsc 224 lib/pengine/clone.c pe_rsc_trace(rsc, "\tClone is unique (fixed): %s", rsc 225 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_unique) ? "true" : "false"); rsc 226 lib/pengine/clone.c clone_data->notify_confirm = is_set(rsc->flags, pe_rsc_notify); rsc 227 lib/pengine/clone.c add_hash_param(rsc->meta, XML_RSC_ATTR_UNIQUE, rsc 228 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_unique) ? XML_BOOLEAN_TRUE : XML_BOOLEAN_FALSE); rsc 231 lib/pengine/clone.c if (create_child_clone(rsc, lpc, data_set) == NULL) { rsc 240 lib/pengine/clone.c if (create_child_clone(rsc, -1, data_set) == NULL) { rsc 245 lib/pengine/clone.c pe_rsc_trace(rsc, "Added %d children to resource %s...", clone_data->clone_max, rsc->id); rsc 250 lib/pengine/clone.c clone_active(resource_t * rsc, gboolean all) rsc 252 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 298 lib/pengine/clone.c configured_role_str(resource_t * rsc) rsc 300 lib/pengine/clone.c const char *target_role = g_hash_table_lookup(rsc->meta, rsc 303 lib/pengine/clone.c if ((target_role == NULL) && rsc->children && rsc->children->data) { rsc 304 lib/pengine/clone.c target_role = g_hash_table_lookup(((resource_t*)rsc->children->data)->meta, rsc 311 lib/pengine/clone.c configured_role(resource_t * rsc) rsc 313 lib/pengine/clone.c const char *target_role = configured_role_str(rsc); rsc 322 lib/pengine/clone.c clone_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 324 lib/pengine/clone.c int is_master_slave = rsc->variant == pe_master ? 1 : 0; rsc 326 lib/pengine/clone.c const char *target_role = configured_role_str(rsc); rsc 327 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 330 lib/pengine/clone.c status_print("id=\"%s\" ", rsc->id); rsc 332 lib/pengine/clone.c status_print("unique=\"%s\" ", is_set(rsc->flags, pe_rsc_unique) ? "true" : "false"); rsc 333 lib/pengine/clone.c status_print("managed=\"%s\" ", is_set(rsc->flags, pe_rsc_managed) ? "true" : "false"); rsc 334 lib/pengine/clone.c status_print("failed=\"%s\" ", is_set(rsc->flags, pe_rsc_failed) ? "true" : "false"); rsc 336 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_failure_ignored) ? "true" : "false"); rsc 352 lib/pengine/clone.c bool is_set_recursive(resource_t * rsc, long long flag, bool any) rsc 357 lib/pengine/clone.c if(is_set(rsc->flags, flag)) { rsc 365 lib/pengine/clone.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 383 lib/pengine/clone.c clone_print(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 392 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 402 lib/pengine/clone.c clone_print_xml(rsc, pre_text, options, print_data); rsc 406 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 410 lib/pengine/clone.c if (rsc->variant == pe_master) { rsc 415 lib/pengine/clone.c pre_text ? pre_text : "", type, rsc->id, ID(clone_data->xml_obj_child), rsc 416 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_unique) ? " (unique)" : "", rsc 417 lib/pengine/clone.c is_set(rsc->flags, pe_rsc_managed) ? "" : " (unmanaged)"); rsc 439 lib/pengine/clone.c } else if (is_set(rsc->flags, pe_rsc_unique)) { rsc 521 lib/pengine/clone.c if(rsc->variant == pe_master) { rsc 522 lib/pengine/clone.c enum rsc_role_e role = configured_role(rsc); rsc 540 lib/pengine/clone.c enum rsc_role_e role = configured_role(rsc); rsc 546 lib/pengine/clone.c if (is_not_set(rsc->flags, pe_rsc_unique) rsc 550 lib/pengine/clone.c GListPtr list = g_hash_table_get_values(rsc->allowed_nodes); rsc 559 lib/pengine/clone.c list = g_hash_table_get_values(rsc->known_on); rsc 566 lib/pengine/clone.c if (pe_find_node(rsc->running_on, node->details->uname) == NULL) { rsc 585 lib/pengine/clone.c clone_free(resource_t * rsc) rsc 587 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 590 lib/pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 592 lib/pengine/clone.c pe_rsc_trace(rsc, "Freeing %s", rsc->id); rsc 607 lib/pengine/clone.c g_list_free(rsc->children); rsc 616 lib/pengine/clone.c common_free(rsc); rsc 620 lib/pengine/clone.c clone_resource_state(const resource_t * rsc, gboolean current) rsc 623 lib/pengine/clone.c GListPtr gIter = rsc->children; rsc 634 lib/pengine/clone.c pe_rsc_trace(rsc, "%s role: %s", rsc->id, role2text(clone_role)); rsc 440 lib/pengine/common.c pe_node_attribute_calculated(pe_node_t *node, const char *name, resource_t *rsc) rsc 447 lib/pengine/common.c } else if(rsc == NULL) { rsc 451 lib/pengine/common.c source = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET); rsc 468 lib/pengine/common.c pe_rsc_trace(rsc, "%s: Looking for %s on the container host %s", rsc->id, name, host->details->uname); rsc 472 lib/pengine/common.c pe_rsc_trace(rsc, "%s: Not looking for %s on the container host: %s is inactive", rsc 473 lib/pengine/common.c rsc->id, name, node->details->remote_rsc->container->id); rsc 131 lib/pengine/complex.c get_meta_attributes(GHashTable * meta_hash, resource_t * rsc, rsc 141 lib/pengine/complex.c if (rsc->xml) { rsc 144 lib/pengine/complex.c for (xIter = rsc->xml->properties; xIter; xIter = xIter->next) { rsc 146 lib/pengine/complex.c const char *prop_value = crm_element_value(rsc->xml, prop_name); rsc 152 lib/pengine/complex.c unpack_instance_attributes(data_set->input, rsc->xml, XML_TAG_META_SETS, node_hash, rsc 159 lib/pengine/complex.c unpack_instance_attributes(data_set->input, rsc->xml, XML_TAG_ATTR_SETS, node_hash, rsc 164 lib/pengine/complex.c if (rsc->parent != NULL) { rsc 165 lib/pengine/complex.c g_hash_table_foreach(rsc->parent->meta, dup_attr, meta_hash); rsc 174 lib/pengine/complex.c get_rsc_attributes(GHashTable * meta_hash, resource_t * rsc, rsc 183 lib/pengine/complex.c unpack_instance_attributes(data_set->input, rsc->xml, XML_TAG_ATTR_SETS, node_hash, rsc 187 lib/pengine/complex.c if (rsc->parent != NULL) { rsc 188 lib/pengine/complex.c get_rsc_attributes(meta_hash, rsc->parent, node, data_set); rsc 199 lib/pengine/complex.c pe_get_versioned_attributes(xmlNode * meta_hash, resource_t * rsc, rsc 208 lib/pengine/complex.c pe_unpack_versioned_attributes(data_set->input, rsc->xml, XML_TAG_ATTR_SETS, node_hash, rsc 212 lib/pengine/complex.c if (rsc->parent != NULL) { rsc 213 lib/pengine/complex.c pe_get_versioned_attributes(meta_hash, rsc->parent, node, data_set); rsc 384 lib/pengine/complex.c handle_rsc_isolation(resource_t *rsc) rsc 386 lib/pengine/complex.c resource_t *top = uber_parent(rsc); rsc 387 lib/pengine/complex.c resource_t *iso = rsc; rsc 394 lib/pengine/complex.c value = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_ISOLATION); rsc 396 lib/pengine/complex.c if (g_hash_table_lookup(rsc->parameters, "pcmk_docker_image")) { rsc 412 lib/pengine/complex.c if (top == rsc->parent && pe_rsc_is_clone(top)) { rsc 424 lib/pengine/complex.c clear_bit(rsc->flags, pe_rsc_allow_migrate); rsc 425 lib/pengine/complex.c set_bit(rsc->flags, pe_rsc_unique); rsc 427 lib/pengine/complex.c add_hash_param(rsc->meta, XML_RSC_ATTR_UNIQUE, XML_BOOLEAN_TRUE); rsc 432 lib/pengine/complex.c check_deprecated_stonith(resource_t *rsc) rsc 437 lib/pengine/complex.c g_hash_table_iter_init(&iter, rsc->parameters); rsc 465 lib/pengine/complex.c common_unpack(xmlNode * xml_obj, resource_t ** rsc, rsc 485 lib/pengine/complex.c } else if (rsc == NULL) { rsc 495 lib/pengine/complex.c *rsc = calloc(1, sizeof(resource_t)); rsc 496 lib/pengine/complex.c (*rsc)->cluster = data_set; rsc 500 lib/pengine/complex.c (*rsc)->xml = expanded_xml; rsc 501 lib/pengine/complex.c (*rsc)->orig_xml = xml_obj; rsc 504 lib/pengine/complex.c (*rsc)->xml = xml_obj; rsc 505 lib/pengine/complex.c (*rsc)->orig_xml = NULL; rsc 509 lib/pengine/complex.c rclass = crm_element_value((*rsc)->xml, XML_AGENT_ATTR_CLASS); rsc 510 lib/pengine/complex.c (*rsc)->parent = parent; rsc 512 lib/pengine/complex.c ops = find_xml_node((*rsc)->xml, "operations", FALSE); rsc 513 lib/pengine/complex.c (*rsc)->ops_xml = expand_idref(ops, data_set->input); rsc 515 lib/pengine/complex.c (*rsc)->variant = get_resource_type(crm_element_name((*rsc)->xml)); rsc 516 lib/pengine/complex.c if ((*rsc)->variant == pe_unknown) { rsc 517 lib/pengine/complex.c pe_err("Unknown resource type: %s", crm_element_name((*rsc)->xml)); rsc 518 lib/pengine/complex.c free(*rsc); rsc 522 lib/pengine/complex.c (*rsc)->parameters = crm_str_table_new(); rsc 525 lib/pengine/complex.c (*rsc)->versioned_parameters = create_xml_node(NULL, XML_TAG_RSC_VER_ATTRS); rsc 528 lib/pengine/complex.c (*rsc)->meta = crm_str_table_new(); rsc 530 lib/pengine/complex.c (*rsc)->allowed_nodes = rsc 533 lib/pengine/complex.c (*rsc)->known_on = g_hash_table_new_full(crm_str_hash, g_str_equal, NULL, g_hash_destroy_str); rsc 535 lib/pengine/complex.c value = crm_element_value((*rsc)->xml, XML_RSC_ATTR_INCARNATION); rsc 537 lib/pengine/complex.c (*rsc)->id = crm_concat(id, value, ':'); rsc 538 lib/pengine/complex.c add_hash_param((*rsc)->meta, XML_RSC_ATTR_INCARNATION, value); rsc 541 lib/pengine/complex.c (*rsc)->id = strdup(id); rsc 544 lib/pengine/complex.c (*rsc)->fns = &resource_class_functions[(*rsc)->variant]; rsc 545 lib/pengine/complex.c pe_rsc_trace((*rsc), "Unpacking resource..."); rsc 547 lib/pengine/complex.c get_meta_attributes((*rsc)->meta, *rsc, NULL, data_set); rsc 548 lib/pengine/complex.c get_rsc_attributes((*rsc)->parameters, *rsc, NULL, data_set); rsc 550 lib/pengine/complex.c pe_get_versioned_attributes((*rsc)->versioned_parameters, *rsc, NULL, data_set); rsc 553 lib/pengine/complex.c (*rsc)->flags = 0; rsc 554 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_runnable); rsc 555 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_provisional); rsc 558 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_managed); rsc 561 lib/pengine/complex.c (*rsc)->rsc_cons = NULL; rsc 562 lib/pengine/complex.c (*rsc)->rsc_tickets = NULL; rsc 563 lib/pengine/complex.c (*rsc)->actions = NULL; rsc 564 lib/pengine/complex.c (*rsc)->role = RSC_ROLE_STOPPED; rsc 565 lib/pengine/complex.c (*rsc)->next_role = RSC_ROLE_UNKNOWN; rsc 567 lib/pengine/complex.c (*rsc)->recovery_type = recovery_stop_start; rsc 568 lib/pengine/complex.c (*rsc)->stickiness = data_set->default_resource_stickiness; rsc 569 lib/pengine/complex.c (*rsc)->migration_threshold = INFINITY; rsc 570 lib/pengine/complex.c (*rsc)->failure_timeout = 0; rsc 572 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_CIB_ATTR_PRIORITY); rsc 573 lib/pengine/complex.c (*rsc)->priority = crm_parse_int(value, "0"); rsc 574 lib/pengine/complex.c (*rsc)->effective_priority = (*rsc)->priority; rsc 576 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_NOTIFY); rsc 578 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_notify); rsc 581 lib/pengine/complex.c if (xml_contains_remote_node((*rsc)->xml)) { rsc 582 lib/pengine/complex.c (*rsc)->is_remote_node = TRUE; rsc 583 lib/pengine/complex.c if (g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_CONTAINER)) { rsc 590 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_OP_ATTR_ALLOW_MIGRATE); rsc 592 lib/pengine/complex.c has_versioned_params = xml_has_children((*rsc)->versioned_parameters); rsc 595 lib/pengine/complex.c pe_rsc_trace((*rsc), "Migration is disabled for resources with versioned parameters"); rsc 597 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_allow_migrate); rsc 606 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_allow_migrate); rsc 609 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_MANAGED); rsc 615 lib/pengine/complex.c clear_bit((*rsc)->flags, pe_rsc_managed); rsc 617 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_managed); rsc 621 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_MAINTENANCE); rsc 627 lib/pengine/complex.c clear_bit((*rsc)->flags, pe_rsc_managed); rsc 628 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_maintenance); rsc 632 lib/pengine/complex.c clear_bit((*rsc)->flags, pe_rsc_managed); rsc 633 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_maintenance); rsc 636 lib/pengine/complex.c pe_rsc_trace((*rsc), "Options for %s", (*rsc)->id); rsc 638 lib/pengine/complex.c handle_rsc_isolation(*rsc); rsc 640 lib/pengine/complex.c top = uber_parent(*rsc); rsc 641 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_UNIQUE); rsc 643 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_unique); rsc 646 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_RESTART); rsc 648 lib/pengine/complex.c (*rsc)->restart_type = pe_restart_restart; rsc 649 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tDependency restart handling: restart"); rsc 652 lib/pengine/complex.c (*rsc)->restart_type = pe_restart_ignore; rsc 653 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tDependency restart handling: ignore"); rsc 656 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_MULTIPLE); rsc 658 lib/pengine/complex.c (*rsc)->recovery_type = recovery_stop_only; rsc 659 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tMultiple running resource recovery: stop only"); rsc 662 lib/pengine/complex.c (*rsc)->recovery_type = recovery_block; rsc 663 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tMultiple running resource recovery: block"); rsc 666 lib/pengine/complex.c (*rsc)->recovery_type = recovery_stop_start; rsc 667 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tMultiple running resource recovery: stop/start"); rsc 670 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_STICKINESS); rsc 672 lib/pengine/complex.c (*rsc)->stickiness = char2score(value); rsc 675 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_FAIL_STICKINESS); rsc 677 lib/pengine/complex.c (*rsc)->migration_threshold = char2score(value); rsc 685 lib/pengine/complex.c legacy = g_hash_table_lookup((*rsc)->meta, rsc 688 lib/pengine/complex.c legacy = g_hash_table_lookup((*rsc)->meta, rsc 719 lib/pengine/complex.c (*rsc)->migration_threshold = 1; rsc 720 lib/pengine/complex.c pe_rsc_info((*rsc), rsc 722 lib/pengine/complex.c (*rsc)->migration_threshold, (*rsc)->id, value); rsc 724 lib/pengine/complex.c } else if ((*rsc)->stickiness != 0 && fail_sticky != 0) { rsc 725 lib/pengine/complex.c (*rsc)->migration_threshold = (*rsc)->stickiness / fail_sticky; rsc 726 lib/pengine/complex.c if ((*rsc)->migration_threshold < 0) { rsc 728 lib/pengine/complex.c (*rsc)->migration_threshold = 0 - (*rsc)->migration_threshold; rsc 730 lib/pengine/complex.c (*rsc)->migration_threshold += 1; rsc 731 lib/pengine/complex.c pe_rsc_info((*rsc), rsc 733 lib/pengine/complex.c (*rsc)->id, (*rsc)->migration_threshold, (*rsc)->stickiness, value); rsc 740 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_fence_device); rsc 741 lib/pengine/complex.c check_deprecated_stonith(*rsc); rsc 744 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_REQUIRES); rsc 750 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_needs_quorum); rsc 753 lib/pengine/complex.c if (is_set((*rsc)->flags, pe_rsc_fence_device)) { rsc 754 lib/pengine/complex.c crm_config_warn("%s is a fencing device but requires (un)fencing", (*rsc)->id); rsc 760 lib/pengine/complex.c crm_config_warn("%s requires (un)fencing but fencing is disabled", (*rsc)->id); rsc 766 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_needs_fencing); rsc 767 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_needs_unfencing); rsc 771 lib/pengine/complex.c set_bit((*rsc)->flags, pe_rsc_needs_fencing); rsc 773 lib/pengine/complex.c crm_config_warn("%s requires fencing but fencing is disabled", (*rsc)->id); rsc 779 lib/pengine/complex.c (*rsc)->id, value, rsc 784 lib/pengine/complex.c if(is_set((*rsc)->flags, pe_rsc_fence_device)) { rsc 802 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tRequired to start: %s%s", value, isdefault?" (default)":""); rsc 803 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->meta, XML_RSC_ATTR_FAIL_TIMEOUT); rsc 806 lib/pengine/complex.c (*rsc)->failure_timeout = (crm_get_msec(value) / 1000); rsc 810 lib/pengine/complex.c value = g_hash_table_lookup((*rsc)->parameters, XML_REMOTE_ATTR_RECONNECT_INTERVAL); rsc 814 lib/pengine/complex.c (*rsc)->remote_reconnect_interval = (crm_get_msec(value) / 1000); rsc 817 lib/pengine/complex.c (*rsc)->failure_timeout = (*rsc)->remote_reconnect_interval; rsc 821 lib/pengine/complex.c get_target_role(*rsc, &((*rsc)->next_role)); rsc 822 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tDesired next state: %s", rsc 823 lib/pengine/complex.c (*rsc)->next_role != RSC_ROLE_UNKNOWN ? role2text((*rsc)->next_role) : "default"); rsc 825 lib/pengine/complex.c if ((*rsc)->fns->unpack(*rsc, data_set) == FALSE) { rsc 831 lib/pengine/complex.c resource_location(*rsc, NULL, 0, "symmetric_default", data_set); rsc 836 lib/pengine/complex.c resource_location(*rsc, NULL, 0, "remote_connection_default", data_set); rsc 839 lib/pengine/complex.c pe_rsc_trace((*rsc), "\tAction notification: %s", rsc 840 lib/pengine/complex.c is_set((*rsc)->flags, pe_rsc_notify) ? "required" : "not required"); rsc 842 lib/pengine/complex.c (*rsc)->utilization = crm_str_table_new(); rsc 844 lib/pengine/complex.c unpack_instance_attributes(data_set->input, (*rsc)->xml, XML_TAG_UTILIZATION, NULL, rsc 845 lib/pengine/complex.c (*rsc)->utilization, NULL, FALSE, data_set->now); rsc 858 lib/pengine/complex.c common_update_score(resource_t * rsc, const char *id, int score) rsc 862 lib/pengine/complex.c node = pe_hash_table_lookup(rsc->allowed_nodes, id); rsc 864 lib/pengine/complex.c pe_rsc_trace(rsc, "Updating score for %s on %s: %d + %d", rsc->id, id, node->weight, score); rsc 868 lib/pengine/complex.c if (rsc->children) { rsc 869 lib/pengine/complex.c GListPtr gIter = rsc->children; rsc 880 lib/pengine/complex.c is_parent(resource_t *child, resource_t *rsc) rsc 884 lib/pengine/complex.c if (parent == NULL || rsc == NULL) { rsc 888 lib/pengine/complex.c if (parent->parent == rsc) { rsc 897 lib/pengine/complex.c uber_parent(resource_t * rsc) rsc 899 lib/pengine/complex.c resource_t *parent = rsc; rsc 911 lib/pengine/complex.c common_free(resource_t * rsc) rsc 913 lib/pengine/complex.c if (rsc == NULL) { rsc 917 lib/pengine/complex.c pe_rsc_trace(rsc, "Freeing %s %d", rsc->id, rsc->variant); rsc 919 lib/pengine/complex.c g_list_free(rsc->rsc_cons); rsc 920 lib/pengine/complex.c g_list_free(rsc->rsc_cons_lhs); rsc 921 lib/pengine/complex.c g_list_free(rsc->rsc_tickets); rsc 922 lib/pengine/complex.c g_list_free(rsc->dangling_migrations); rsc 924 lib/pengine/complex.c if (rsc->parameters != NULL) { rsc 925 lib/pengine/complex.c g_hash_table_destroy(rsc->parameters); rsc 928 lib/pengine/complex.c if (rsc->versioned_parameters != NULL) { rsc 929 lib/pengine/complex.c free_xml(rsc->versioned_parameters); rsc 932 lib/pengine/complex.c if (rsc->meta != NULL) { rsc 933 lib/pengine/complex.c g_hash_table_destroy(rsc->meta); rsc 935 lib/pengine/complex.c if (rsc->utilization != NULL) { rsc 936 lib/pengine/complex.c g_hash_table_destroy(rsc->utilization); rsc 939 lib/pengine/complex.c if (rsc->parent == NULL && is_set(rsc->flags, pe_rsc_orphan)) { rsc 940 lib/pengine/complex.c free_xml(rsc->xml); rsc 941 lib/pengine/complex.c rsc->xml = NULL; rsc 942 lib/pengine/complex.c free_xml(rsc->orig_xml); rsc 943 lib/pengine/complex.c rsc->orig_xml = NULL; rsc 946 lib/pengine/complex.c } else if (rsc->orig_xml) { rsc 947 lib/pengine/complex.c free_xml(rsc->xml); rsc 948 lib/pengine/complex.c rsc->xml = NULL; rsc 950 lib/pengine/complex.c if (rsc->running_on) { rsc 951 lib/pengine/complex.c g_list_free(rsc->running_on); rsc 952 lib/pengine/complex.c rsc->running_on = NULL; rsc 954 lib/pengine/complex.c if (rsc->known_on) { rsc 955 lib/pengine/complex.c g_hash_table_destroy(rsc->known_on); rsc 956 lib/pengine/complex.c rsc->known_on = NULL; rsc 958 lib/pengine/complex.c if (rsc->actions) { rsc 959 lib/pengine/complex.c g_list_free(rsc->actions); rsc 960 lib/pengine/complex.c rsc->actions = NULL; rsc 962 lib/pengine/complex.c if (rsc->allowed_nodes) { rsc 963 lib/pengine/complex.c g_hash_table_destroy(rsc->allowed_nodes); rsc 964 lib/pengine/complex.c rsc->allowed_nodes = NULL; rsc 966 lib/pengine/complex.c g_list_free(rsc->fillers); rsc 967 lib/pengine/complex.c g_list_free(rsc->rsc_location); rsc 968 lib/pengine/complex.c pe_rsc_trace(rsc, "Resource freed"); rsc 969 lib/pengine/complex.c free(rsc->id); rsc 970 lib/pengine/complex.c free(rsc->clone_name); rsc 971 lib/pengine/complex.c free(rsc->allocated_to); rsc 972 lib/pengine/complex.c free(rsc->variant_opaque); rsc 973 lib/pengine/complex.c free(rsc->pending_task); rsc 974 lib/pengine/complex.c free(rsc); rsc 95 lib/pengine/container.c xmlNode *rsc = create_xml_node(NULL, XML_CIB_TAG_RESOURCE); rsc 97 lib/pengine/container.c crm_xml_add(rsc, XML_ATTR_ID, name); rsc 98 lib/pengine/container.c crm_xml_add(rsc, XML_AGENT_ATTR_CLASS, PCMK_RESOURCE_CLASS_OCF); rsc 99 lib/pengine/container.c crm_xml_add(rsc, XML_AGENT_ATTR_PROVIDER, provider); rsc 100 lib/pengine/container.c crm_xml_add(rsc, XML_ATTR_TYPE, kind); rsc 102 lib/pengine/container.c return rsc; rsc 505 lib/pengine/container.c disallow_node(resource_t *rsc, const char *uname) rsc 507 lib/pengine/container.c gpointer match = g_hash_table_lookup(rsc->allowed_nodes, uname); rsc 513 lib/pengine/container.c if (rsc->children) { rsc 516 lib/pengine/container.c for (child = rsc->children; child != NULL; child = child->next) { rsc 755 lib/pengine/container.c container_fix_remote_addr(resource_t *rsc) rsc 770 lib/pengine/container.c if(rsc == NULL) { rsc 775 lib/pengine/container.c value = g_hash_table_lookup(rsc->parameters, name); rsc 782 lib/pengine/container.c value = crm_element_value(rsc->xml, attr_list[lpc]); rsc 791 lib/pengine/container.c container_fix_remote_addr_in(resource_t *rsc, xmlNode *xml, const char *field) rsc 798 lib/pengine/container.c if(container_fix_remote_addr(rsc) == FALSE) { rsc 802 lib/pengine/container.c tuple = tuple_for_remote(rsc); rsc 820 lib/pengine/container.c crm_trace("Fixing addr for %s on %s", rsc->id, node->details->uname); rsc 829 lib/pengine/container.c container_unpack(resource_t * rsc, pe_working_set_t * data_set) rsc 836 lib/pengine/container.c CRM_ASSERT(rsc != NULL); rsc 837 lib/pengine/container.c pe_rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 840 lib/pengine/container.c rsc->variant_opaque = container_data; rsc 841 lib/pengine/container.c container_data->prefix = strdup(rsc->id); rsc 843 lib/pengine/container.c xml_obj = first_named_child(rsc->xml, "docker"); rsc 847 lib/pengine/container.c xml_obj = first_named_child(rsc->xml, "rkt"); rsc 859 lib/pengine/container.c rsc->id); rsc 870 lib/pengine/container.c pe_err("'replicas' for %s must be positive integer, using 1", rsc->id); rsc 883 lib/pengine/container.c rsc->id); rsc 887 lib/pengine/container.c clear_bit(rsc->flags, pe_rsc_unique); rsc 895 lib/pengine/container.c xml_obj = first_named_child(rsc->xml, "network"); rsc 928 lib/pengine/container.c xml_obj = first_named_child(rsc->xml, "storage"); rsc 949 lib/pengine/container.c xml_obj = first_named_child(rsc->xml, "primitive"); rsc 995 lib/pengine/container.c rsc->id, ID(xml_obj)); rsc 1008 lib/pengine/container.c if (common_unpack(xml_resource, &new_rsc, rsc, data_set) == FALSE) { rsc 1009 lib/pengine/container.c pe_err("Failed unpacking resource %s", ID(rsc->xml)); rsc 1079 lib/pengine/container.c g_hash_table_replace(rsc->meta, strdup(XML_RSC_ATTR_TARGET), strdup(container_data->attribute_target)); rsc 1100 lib/pengine/container.c if (create_container(rsc, container_data, tuple, data_set) == FALSE) { rsc 1101 lib/pengine/container.c pe_err("Failed unpacking resource %s", rsc->id); rsc 1102 lib/pengine/container.c rsc->fns->free(rsc); rsc 1108 lib/pengine/container.c rsc->children = g_list_append(rsc->children, container_data->child); rsc 1114 lib/pengine/container.c tuple_rsc_active(resource_t *rsc, gboolean all) rsc 1116 lib/pengine/container.c if (rsc) { rsc 1117 lib/pengine/container.c gboolean child_active = rsc->fns->active(rsc, all); rsc 1129 lib/pengine/container.c container_active(resource_t * rsc, gboolean all) rsc 1134 lib/pengine/container.c get_container_variant_data(container_data, rsc); rsc 1168 lib/pengine/container.c find_container_child(const char *stem, resource_t * rsc, node_t *node) rsc 1171 lib/pengine/container.c resource_t *parent = uber_parent(rsc); rsc 1177 lib/pengine/container.c if (is_not_set(rsc->flags, pe_rsc_unique)) { rsc 1183 lib/pengine/container.c rsc = tuple->child; rsc 1189 lib/pengine/container.c if (rsc && safe_str_neq(stem, rsc->id)) { rsc 1190 lib/pengine/container.c free(rsc->clone_name); rsc 1191 lib/pengine/container.c rsc->clone_name = strdup(stem); rsc 1194 lib/pengine/container.c return rsc; rsc 1198 lib/pengine/container.c print_rsc_in_list(resource_t *rsc, const char *pre_text, long options, rsc 1201 lib/pengine/container.c if (rsc != NULL) { rsc 1205 lib/pengine/container.c rsc->fns->print(rsc, pre_text, options, print_data); rsc 1225 lib/pengine/container.c container_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 1229 lib/pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 1236 lib/pengine/container.c get_container_variant_data(container_data, rsc); rsc 1239 lib/pengine/container.c status_print("id=\"%s\" ", rsc->id); rsc 1250 lib/pengine/container.c status_print("unique=\"%s\" ", is_set(rsc->flags, pe_rsc_unique)? "true" : "false"); rsc 1251 lib/pengine/container.c status_print("managed=\"%s\" ", is_set(rsc->flags, pe_rsc_managed) ? "true" : "false"); rsc 1252 lib/pengine/container.c status_print("failed=\"%s\" ", is_set(rsc->flags, pe_rsc_failed) ? "true" : "false"); rsc 1274 lib/pengine/container.c resource_t *rsc = tuple->child; rsc 1279 lib/pengine/container.c if(rsc == NULL) { rsc 1280 lib/pengine/container.c rsc = tuple->docker; rsc 1295 lib/pengine/container.c common_print(rsc, pre_text, buffer, node, options, print_data); rsc 1299 lib/pengine/container.c container_print(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 1303 lib/pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 1306 lib/pengine/container.c container_print_xml(rsc, pre_text, options, print_data); rsc 1310 lib/pengine/container.c get_container_variant_data(container_data, rsc); rsc 1318 lib/pengine/container.c container_data->replicas>1?" set":"", rsc->id, container_data->image, rsc 1319 lib/pengine/container.c is_set(rsc->flags, pe_rsc_unique) ? " (unique)" : "", rsc 1320 lib/pengine/container.c is_set(rsc->flags, pe_rsc_managed) ? "" : " (unmanaged)"); rsc 1399 lib/pengine/container.c container_free(resource_t * rsc) rsc 1402 lib/pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 1404 lib/pengine/container.c get_container_variant_data(container_data, rsc); rsc 1405 lib/pengine/container.c pe_rsc_trace(rsc, "Freeing %s", rsc->id); rsc 1421 lib/pengine/container.c g_list_free(rsc->children); rsc 1428 lib/pengine/container.c common_free(rsc); rsc 1432 lib/pengine/container.c container_resource_state(const resource_t * rsc, gboolean current) rsc 1446 lib/pengine/container.c pe_bundle_replicas(const resource_t *rsc) rsc 1448 lib/pengine/container.c if ((rsc == NULL) || (rsc->variant != pe_container)) { rsc 1453 lib/pengine/container.c get_container_variant_data(container_data, rsc); rsc 73 lib/pengine/failcounts.c block_failure(node_t *node, resource_t *rsc, xmlNode *xml_op, rsc 76 lib/pengine/failcounts.c char *xml_name = clone_strip(rsc->id); rsc 79 lib/pengine/failcounts.c xmlXPathObject *xpathObj = xpath_search(rsc->xml, xpath); rsc 86 lib/pengine/failcounts.c if (rsc->container == NULL && is_not_set(data_set->flags, pe_flag_stonith_enabled)) { rsc 163 lib/pengine/failcounts.c rsc_fail_name(resource_t *rsc) rsc 165 lib/pengine/failcounts.c const char *name = (rsc->clone_name? rsc->clone_name : rsc->id); rsc 167 lib/pengine/failcounts.c return is_set(rsc->flags, pe_rsc_unique)? strdup(name) : clone_strip(name); rsc 220 lib/pengine/failcounts.c generate_fail_regexes(resource_t *rsc, pe_working_set_t *data_set, rsc 223 lib/pengine/failcounts.c char *rsc_name = rsc_fail_name(rsc); rsc 228 lib/pengine/failcounts.c is_set(rsc->flags, pe_rsc_unique), failcount_re); rsc 231 lib/pengine/failcounts.c is_set(rsc->flags, pe_rsc_unique), lastfailure_re); rsc 237 lib/pengine/failcounts.c pe_get_failcount(node_t *node, resource_t *rsc, time_t *last_failure, rsc 247 lib/pengine/failcounts.c generate_fail_regexes(rsc, data_set, &failcount_re, &lastfailure_re); rsc 267 lib/pengine/failcounts.c if ((failcount > 0) && rsc->failure_timeout rsc 268 lib/pengine/failcounts.c && block_failure(node, rsc, xml_op, data_set)) { rsc 271 lib/pengine/failcounts.c rsc->id, rsc->failure_timeout); rsc 272 lib/pengine/failcounts.c rsc->failure_timeout = 0; rsc 277 lib/pengine/failcounts.c && rsc->failure_timeout) { rsc 281 lib/pengine/failcounts.c if (now > (last + rsc->failure_timeout)) { rsc 283 lib/pengine/failcounts.c rsc->id, node->details->uname, rsc->failure_timeout); rsc 288 lib/pengine/failcounts.c if (is_set(flags, pe_fc_fillers) && rsc->fillers) { rsc 291 lib/pengine/failcounts.c for (gIter = rsc->fillers; gIter != NULL; gIter = gIter->next) { rsc 307 lib/pengine/failcounts.c rsc->id, score, node->details->uname); rsc 315 lib/pengine/failcounts.c rsc->id, score, node->details->uname); rsc 31 lib/pengine/group.c group_unpack(resource_t * rsc, pe_working_set_t * data_set) rsc 33 lib/pengine/group.c xmlNode *xml_obj = rsc->xml; rsc 36 lib/pengine/group.c const char *group_ordered = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_ORDERED); rsc 37 lib/pengine/group.c const char *group_colocated = g_hash_table_lookup(rsc->meta, "collocated"); rsc 40 lib/pengine/group.c pe_rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 46 lib/pengine/group.c rsc->variant_opaque = group_data; rsc 58 lib/pengine/group.c clone_id = crm_element_value(rsc->xml, XML_RSC_ATTR_INCARNATION); rsc 66 lib/pengine/group.c if (common_unpack(xml_native_rsc, &new_rsc, rsc, data_set) == FALSE) { rsc 74 lib/pengine/group.c rsc->children = g_list_append(rsc->children, new_rsc); rsc 87 lib/pengine/group.c crm_config_err("Group %s did not have any children", rsc->id); rsc 90 lib/pengine/group.c crm_config_warn("Group %s did not have any children", rsc->id); rsc 95 lib/pengine/group.c pe_rsc_trace(rsc, "Added %d children to resource %s...", group_data->num_children, rsc->id); rsc 101 lib/pengine/group.c group_active(resource_t * rsc, gboolean all) rsc 105 lib/pengine/group.c GListPtr gIter = rsc->children; rsc 126 lib/pengine/group.c group_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 128 lib/pengine/group.c GListPtr gIter = rsc->children; rsc 131 lib/pengine/group.c status_print("%s<group id=\"%s\" ", pre_text, rsc->id); rsc 132 lib/pengine/group.c status_print("number_resources=\"%d\" ", g_list_length(rsc->children)); rsc 146 lib/pengine/group.c group_print(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 149 lib/pengine/group.c GListPtr gIter = rsc->children; rsc 156 lib/pengine/group.c group_print_xml(rsc, pre_text, options, print_data); rsc 162 lib/pengine/group.c status_print("%sResource Group: %s", pre_text ? pre_text : "", rsc->id); rsc 172 lib/pengine/group.c print_rscs_brief(rsc->children, child_text, options, print_data, TRUE); rsc 195 lib/pengine/group.c group_free(resource_t * rsc) rsc 197 lib/pengine/group.c GListPtr gIter = rsc->children; rsc 199 lib/pengine/group.c CRM_CHECK(rsc != NULL, return); rsc 201 lib/pengine/group.c pe_rsc_trace(rsc, "Freeing %s", rsc->id); rsc 211 lib/pengine/group.c pe_rsc_trace(rsc, "Freeing child list"); rsc 212 lib/pengine/group.c g_list_free(rsc->children); rsc 214 lib/pengine/group.c common_free(rsc); rsc 218 lib/pengine/group.c group_resource_state(const resource_t * rsc, gboolean current) rsc 221 lib/pengine/group.c GListPtr gIter = rsc->children; rsc 232 lib/pengine/group.c pe_rsc_trace(rsc, "%s role: %s", rsc->id, role2text(group_role)); rsc 32 lib/pengine/native.c native_add_running(resource_t * rsc, node_t * node, pe_working_set_t * data_set) rsc 34 lib/pengine/native.c GListPtr gIter = rsc->running_on; rsc 46 lib/pengine/native.c pe_rsc_trace(rsc, "Adding %s to %s %s", rsc->id, node->details->uname, rsc 47 lib/pengine/native.c is_set(rsc->flags, pe_rsc_managed)?"":"(unmanaged)"); rsc 49 lib/pengine/native.c rsc->running_on = g_list_append(rsc->running_on, node); rsc 50 lib/pengine/native.c if (rsc->variant == pe_native) { rsc 51 lib/pengine/native.c node->details->running_rsc = g_list_append(node->details->running_rsc, rsc); rsc 54 lib/pengine/native.c if (rsc->variant == pe_native && node->details->maintenance) { rsc 55 lib/pengine/native.c clear_bit(rsc->flags, pe_rsc_managed); rsc 58 lib/pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 59 lib/pengine/native.c resource_t *p = rsc->parent; rsc 61 lib/pengine/native.c pe_rsc_info(rsc, "resource %s isn't managed", rsc->id); rsc 62 lib/pengine/native.c resource_location(rsc, node, INFINITY, "not_managed_default", data_set); rsc 72 lib/pengine/native.c if (rsc->variant == pe_native && g_list_length(rsc->running_on) > 1) { rsc 73 lib/pengine/native.c switch (rsc->recovery_type) { rsc 80 lib/pengine/native.c g_hash_table_destroy(rsc->allowed_nodes); rsc 81 lib/pengine/native.c rsc->allowed_nodes = node_hash_from_list(data_set->nodes); rsc 82 lib/pengine/native.c g_hash_table_iter_init(&gIter, rsc->allowed_nodes); rsc 91 lib/pengine/native.c clear_bit(rsc->flags, pe_rsc_managed); rsc 92 lib/pengine/native.c set_bit(rsc->flags, pe_rsc_block); rsc 97 lib/pengine/native.c if (rsc->parent rsc 98 lib/pengine/native.c && (rsc->parent->variant == pe_group || rsc->parent->variant == pe_container) rsc 99 lib/pengine/native.c && rsc->parent->recovery_type == recovery_block) { rsc 100 lib/pengine/native.c GListPtr gIter = rsc->parent->children; rsc 112 lib/pengine/native.c rsc->id, g_list_length(rsc->running_on), node->details->uname, rsc 113 lib/pengine/native.c recovery2text(rsc->recovery_type)); rsc 116 lib/pengine/native.c pe_rsc_trace(rsc, "Resource %s is active on: %s", rsc->id, node->details->uname); rsc 119 lib/pengine/native.c if (rsc->parent != NULL) { rsc 120 lib/pengine/native.c native_add_running(rsc->parent, node, data_set); rsc 124 lib/pengine/native.c extern void force_non_unique_clone(resource_t * rsc, const char *rid, pe_working_set_t * data_set); rsc 127 lib/pengine/native.c native_unpack(resource_t * rsc, pe_working_set_t * data_set) rsc 129 lib/pengine/native.c resource_t *parent = uber_parent(rsc); rsc 131 lib/pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 133 lib/pengine/native.c pe_rsc_trace(rsc, "Processing resource %s...", rsc->id); rsc 136 lib/pengine/native.c rsc->variant_opaque = native_data; rsc 138 lib/pengine/native.c if (is_set(rsc->flags, pe_rsc_unique) && rsc->parent) { rsc 141 lib/pengine/native.c resource_t *top = uber_parent(rsc); rsc 143 lib/pengine/native.c force_non_unique_clone(top, rsc->id, data_set); rsc 153 lib/pengine/native.c rsc->id, class); rsc 162 lib/pengine/native.c rsc_is_on_node(resource_t *rsc, node_t *node, int flags) rsc 164 lib/pengine/native.c pe_rsc_trace(rsc, "Checking whether %s is on %s", rsc 165 lib/pengine/native.c rsc->id, node->details->uname); rsc 167 lib/pengine/native.c if (is_set(flags, pe_find_current) && rsc->running_on) { rsc 169 lib/pengine/native.c for (GListPtr iter = rsc->running_on; iter; iter = iter->next) { rsc 177 lib/pengine/native.c } else if (is_set(flags, pe_find_inactive) && (rsc->running_on == NULL)) { rsc 180 lib/pengine/native.c } else if (is_not_set(flags, pe_find_current) && rsc->allocated_to rsc 181 lib/pengine/native.c && (rsc->allocated_to->details == node->details)) { rsc 188 lib/pengine/native.c native_find_rsc(resource_t * rsc, const char *id, node_t * on_node, int flags) rsc 193 lib/pengine/native.c CRM_CHECK(id && rsc && rsc->id, return NULL); rsc 196 lib/pengine/native.c const char *rid = ID(rsc->xml); rsc 198 lib/pengine/native.c if (!pe_rsc_is_clone(uber_parent(rsc))) { rsc 201 lib/pengine/native.c } else if (!strcmp(id, rsc->id) || safe_str_eq(id, rid)) { rsc 205 lib/pengine/native.c } else if (!strcmp(id, rsc->id)) { rsc 209 lib/pengine/native.c && rsc->clone_name && strcmp(rsc->clone_name, id) == 0) { rsc 214 lib/pengine/native.c && is_not_set(rsc->flags, pe_rsc_unique))) { rsc 215 lib/pengine/native.c match = pe_base_name_eq(rsc, id); rsc 219 lib/pengine/native.c bool match_node = rsc_is_on_node(rsc, on_node, flags); rsc 227 lib/pengine/native.c return rsc; rsc 230 lib/pengine/native.c for (GListPtr gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 233 lib/pengine/native.c result = rsc->fns->find_rsc(child, id, on_node, flags); rsc 242 lib/pengine/native.c native_parameter(resource_t * rsc, node_t * node, gboolean create, const char *name, rsc 247 lib/pengine/native.c GHashTable *hash = rsc->parameters; rsc 250 lib/pengine/native.c CRM_CHECK(rsc != NULL, return NULL); rsc 253 lib/pengine/native.c pe_rsc_trace(rsc, "Looking up %s in %s", name, rsc->id); rsc 255 lib/pengine/native.c if (create || g_hash_table_size(rsc->parameters) == 0) { rsc 257 lib/pengine/native.c pe_rsc_trace(rsc, "Creating hash with node %s", node->details->uname); rsc 259 lib/pengine/native.c pe_rsc_trace(rsc, "Creating default hash"); rsc 264 lib/pengine/native.c get_rsc_attributes(local_hash, rsc, node, data_set); rsc 272 lib/pengine/native.c value = g_hash_table_lookup(rsc->meta, name); rsc 285 lib/pengine/native.c native_active(resource_t * rsc, gboolean all) rsc 287 lib/pengine/native.c GListPtr gIter = rsc->running_on; rsc 293 lib/pengine/native.c crm_debug("Resource %s: node %s is unclean", rsc->id, a_node->details->uname); rsc 296 lib/pengine/native.c crm_debug("Resource %s: node %s is offline", rsc->id, a_node->details->uname); rsc 298 lib/pengine/native.c crm_debug("Resource %s active on %s", rsc->id, a_node->details->uname); rsc 321 lib/pengine/native.c native_pending_state(resource_t * rsc) rsc 325 lib/pengine/native.c if (safe_str_eq(rsc->pending_task, CRMD_ACTION_START)) { rsc 328 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_STOP)) { rsc 331 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_MIGRATE)) { rsc 334 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_MIGRATED)) { rsc 338 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_PROMOTE)) { rsc 341 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_DEMOTE)) { rsc 349 lib/pengine/native.c native_pending_task(resource_t * rsc) rsc 353 lib/pengine/native.c if (safe_str_eq(rsc->pending_task, CRMD_ACTION_NOTIFY)) { rsc 357 lib/pengine/native.c } else if (safe_str_eq(rsc->pending_task, CRMD_ACTION_STATUS)) { rsc 375 lib/pengine/native.c native_displayable_role(resource_t *rsc) rsc 377 lib/pengine/native.c enum rsc_role_e role = rsc->role; rsc 380 lib/pengine/native.c && (uber_parent(rsc)->variant == pe_master)) { rsc 388 lib/pengine/native.c native_displayable_state(resource_t *rsc, long options) rsc 393 lib/pengine/native.c rsc_state = native_pending_state(rsc); rsc 396 lib/pengine/native.c rsc_state = role2text(native_displayable_role(rsc)); rsc 402 lib/pengine/native.c native_print_xml(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 404 lib/pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 405 lib/pengine/native.c const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 406 lib/pengine/native.c const char *rsc_state = native_displayable_state(rsc, options); rsc 411 lib/pengine/native.c status_print("id=\"%s\" ", rsc_printable_id(rsc)); rsc 414 lib/pengine/native.c prov ? "::" : "", prov ? prov : "", crm_element_value(rsc->xml, XML_ATTR_TYPE)); rsc 417 lib/pengine/native.c if (rsc->meta) { rsc 418 lib/pengine/native.c target_role = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET_ROLE); rsc 423 lib/pengine/native.c status_print("active=\"%s\" ", rsc->fns->active(rsc, TRUE) ? "true" : "false"); rsc 424 lib/pengine/native.c status_print("orphaned=\"%s\" ", is_set(rsc->flags, pe_rsc_orphan) ? "true" : "false"); rsc 425 lib/pengine/native.c status_print("blocked=\"%s\" ", is_set(rsc->flags, pe_rsc_block) ? "true" : "false"); rsc 426 lib/pengine/native.c status_print("managed=\"%s\" ", is_set(rsc->flags, pe_rsc_managed) ? "true" : "false"); rsc 427 lib/pengine/native.c status_print("failed=\"%s\" ", is_set(rsc->flags, pe_rsc_failed) ? "true" : "false"); rsc 429 lib/pengine/native.c is_set(rsc->flags, pe_rsc_failure_ignored) ? "true" : "false"); rsc 430 lib/pengine/native.c status_print("nodes_running_on=\"%d\" ", g_list_length(rsc->running_on)); rsc 433 lib/pengine/native.c const char *pending_task = native_pending_task(rsc); rsc 442 lib/pengine/native.c is_set(rsc->flags, pe_rsc_provisional) ? "true" : "false"); rsc 443 lib/pengine/native.c status_print("runnable=\"%s\" ", is_set(rsc->flags, pe_rsc_runnable) ? "true" : "false"); rsc 444 lib/pengine/native.c status_print("priority=\"%f\" ", (double)rsc->priority); rsc 445 lib/pengine/native.c status_print("variant=\"%s\" ", crm_element_name(rsc->xml)); rsc 452 lib/pengine/native.c } else if (g_list_length(rsc->running_on) > 0) { rsc 453 lib/pengine/native.c GListPtr gIter = rsc->running_on; rsc 479 lib/pengine/native.c common_print(resource_t * rsc, const char *pre_text, const char *name, node_t *node, long options, void *print_data) rsc 482 lib/pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 483 lib/pengine/native.c const char *kind = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 485 lib/pengine/native.c enum rsc_role_e role = native_displayable_role(rsc); rsc 492 lib/pengine/native.c CRM_ASSERT(rsc->variant == pe_native); rsc 495 lib/pengine/native.c if (rsc->meta) { rsc 496 lib/pengine/native.c const char *is_internal = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INTERNAL_RSC); rsc 498 lib/pengine/native.c crm_trace("skipping print of internal resource %s", rsc->id); rsc 501 lib/pengine/native.c target_role = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET_ROLE); rsc 509 lib/pengine/native.c native_print_xml(rsc, pre_text, options, print_data); rsc 513 lib/pengine/native.c if ((options & pe_print_rsconly) || g_list_length(rsc->running_on) > 1) { rsc 518 lib/pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 521 lib/pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failed)) { rsc 524 lib/pengine/native.c } else if (rsc->variant == pe_native && g_list_length(rsc->running_on) == 0) { rsc 527 lib/pengine/native.c } else if (g_list_length(rsc->running_on) > 1) { rsc 530 lib/pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failure_ignored)) { rsc 544 lib/pengine/native.c const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 548 lib/pengine/native.c if(is_set(rsc->flags, pe_rsc_orphan)) { rsc 551 lib/pengine/native.c if(role > RSC_ROLE_SLAVE && is_set(rsc->flags, pe_rsc_failed)) { rsc 553 lib/pengine/native.c } else if(is_set(rsc->flags, pe_rsc_failed)) { rsc 556 lib/pengine/native.c const char *rsc_state = native_displayable_state(rsc, options); rsc 571 lib/pengine/native.c const char *pending_task = native_pending_task(rsc); rsc 588 lib/pengine/native.c rsc->cluster->disabled_resources++; rsc 590 lib/pengine/native.c } else if (uber_parent(rsc)->variant == pe_master rsc 594 lib/pengine/native.c rsc->cluster->disabled_resources++; rsc 598 lib/pengine/native.c if (is_set(rsc->flags, pe_rsc_block)) { rsc 601 lib/pengine/native.c rsc->cluster->blocked_resources++; rsc 603 lib/pengine/native.c } else if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 608 lib/pengine/native.c if(is_set(rsc->flags, pe_rsc_failure_ignored)) { rsc 613 lib/pengine/native.c if ((options & pe_print_rsconly) || g_list_length(rsc->running_on) > 1) { rsc 614 lib/pengine/native.c desc = crm_element_value(rsc->xml, XML_ATTR_DESC); rsc 625 lib/pengine/native.c if ((options & pe_print_rsconly) || g_list_length(rsc->running_on) > 1) { rsc 640 lib/pengine/native.c } else if (g_list_length(rsc->running_on) > 1) { rsc 641 lib/pengine/native.c GListPtr gIter = rsc->running_on; rsc 696 lib/pengine/native.c g_hash_table_foreach(rsc->parameters, native_print_attr, &pdata); rsc 704 lib/pengine/native.c is_set(rsc->flags, pe_rsc_provisional) ? "provisional, " : "", rsc 705 lib/pengine/native.c is_set(rsc->flags, pe_rsc_runnable) ? "" : "non-startable, ", rsc 706 lib/pengine/native.c crm_element_name(rsc->xml), (double)rsc->priority); rsc 708 lib/pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 719 lib/pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 727 lib/pengine/native.c native_print(resource_t * rsc, const char *pre_text, long options, void *print_data) rsc 731 lib/pengine/native.c CRM_ASSERT(rsc->variant == pe_native); rsc 733 lib/pengine/native.c native_print_xml(rsc, pre_text, options, print_data); rsc 737 lib/pengine/native.c if (rsc->running_on != NULL) { rsc 738 lib/pengine/native.c node = rsc->running_on->data; rsc 740 lib/pengine/native.c common_print(rsc, pre_text, rsc_printable_id(rsc), node, options, print_data); rsc 744 lib/pengine/native.c native_free(resource_t * rsc) rsc 746 lib/pengine/native.c pe_rsc_trace(rsc, "Freeing resource action list (not the data)"); rsc 747 lib/pengine/native.c common_free(rsc); rsc 751 lib/pengine/native.c native_resource_state(const resource_t * rsc, gboolean current) rsc 753 lib/pengine/native.c enum rsc_role_e role = rsc->next_role; rsc 756 lib/pengine/native.c role = rsc->role; rsc 758 lib/pengine/native.c pe_rsc_trace(rsc, "%s state: %s", rsc->id, role2text(role)); rsc 763 lib/pengine/native.c native_location(resource_t * rsc, GListPtr * list, gboolean current) rsc 768 lib/pengine/native.c if (rsc->children) { rsc 769 lib/pengine/native.c GListPtr gIter = rsc->children; rsc 777 lib/pengine/native.c } else if (current && rsc->running_on) { rsc 778 lib/pengine/native.c result = g_list_copy(rsc->running_on); rsc 780 lib/pengine/native.c } else if (current == FALSE && rsc->allocated_to) { rsc 781 lib/pengine/native.c result = g_list_append(NULL, rsc->allocated_to); rsc 810 lib/pengine/native.c resource_t *rsc = (resource_t *) gIter->data; rsc 812 lib/pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 813 lib/pengine/native.c const char *kind = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 821 lib/pengine/native.c if (rsc->variant != pe_native) { rsc 827 lib/pengine/native.c const char *prov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 844 lib/pengine/native.c GListPtr gIter2 = rsc->running_on; rsc 25 lib/pengine/remote.c is_rsc_baremetal_remote_node(resource_t *rsc, pe_working_set_t * data_set) rsc 29 lib/pengine/remote.c if (rsc == NULL) { rsc 31 lib/pengine/remote.c } else if (rsc->is_remote_node == FALSE) { rsc 35 lib/pengine/remote.c node = pe_find_node(data_set->nodes, rsc->id); rsc 71 lib/pengine/remote.c rsc_contains_remote_node(pe_working_set_t * data_set, resource_t *rsc) rsc 77 lib/pengine/remote.c if (rsc->fillers) { rsc 79 lib/pengine/remote.c for (gIter = rsc->fillers; gIter != NULL; gIter = gIter->next) { rsc 124 lib/pengine/remote.c resource_t *rsc = (resource_t *) iter->data; rsc 126 lib/pengine/remote.c if (rsc->is_remote_node && (rsc->container != NULL)) { rsc 127 lib/pengine/remote.c node_t *guest_node = pe_find_node(data_set->nodes, rsc->id); rsc 115 lib/pengine/status.c resource_t *rsc = NULL; rsc 119 lib/pengine/status.c rsc = (resource_t *) iterator->data; rsc 121 lib/pengine/status.c rsc->fns->free(rsc); rsc 45 lib/pengine/unpack.c gboolean unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, xmlNode ** last_failure, rsc 83 lib/pengine/unpack.c resource_t *rsc = node->details->remote_rsc->container; rsc 85 lib/pengine/unpack.c if (is_set(rsc->flags, pe_rsc_failed) == FALSE) { rsc 86 lib/pengine/unpack.c if (!is_set(rsc->flags, pe_rsc_managed)) { rsc 90 lib/pengine/unpack.c node->details->uname, reason, rsc->id); rsc 94 lib/pengine/unpack.c node->details->uname, rsc->id, reason); rsc 101 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 113 lib/pengine/unpack.c resource_t *rsc = node->details->remote_rsc; rsc 115 lib/pengine/unpack.c if (rsc && (!is_set(rsc->flags, pe_rsc_managed))) { rsc 580 lib/pengine/unpack.c setup_container(resource_t * rsc, pe_working_set_t * data_set) rsc 584 lib/pengine/unpack.c if (rsc->children) { rsc 585 lib/pengine/unpack.c GListPtr gIter = rsc->children; rsc 595 lib/pengine/unpack.c container_id = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_CONTAINER); rsc 596 lib/pengine/unpack.c if (container_id && safe_str_neq(container_id, rsc->id)) { rsc 600 lib/pengine/unpack.c rsc->container = container; rsc 602 lib/pengine/unpack.c container->fillers = g_list_append(container->fillers, rsc); rsc 603 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resource %s's container is %s", rsc->id, container_id); rsc 605 lib/pengine/unpack.c pe_err("Resource %s: Unknown resource container (%s)", rsc->id, container_id); rsc 775 lib/pengine/unpack.c resource_t *rsc = (resource_t *) gIter->data; rsc 777 lib/pengine/unpack.c setup_container(rsc, data_set); rsc 778 lib/pengine/unpack.c link_rsc2remotenode(data_set, rsc); rsc 1008 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 1023 lib/pengine/unpack.c rsc = this_node->details->remote_rsc; rsc 1035 lib/pengine/unpack.c if (rsc) { rsc 1036 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_STOPPED; rsc 1046 lib/pengine/unpack.c (rsc && !is_set(rsc->flags, pe_rsc_managed))) { rsc 1101 lib/pengine/unpack.c resource_t *rsc = this_node->details->remote_rsc; rsc 1106 lib/pengine/unpack.c } else if(rsc == NULL) { rsc 1110 lib/pengine/unpack.c && rsc->role == RSC_ROLE_STARTED rsc 1111 lib/pengine/unpack.c && rsc->container->role == RSC_ROLE_STARTED) { rsc 1117 lib/pengine/unpack.c crm_trace("Checking node %s/%s/%s status %d/%d/%d", id, rsc->id, rsc->container->id, fence, rsc->role, RSC_ROLE_STARTED); rsc 1120 lib/pengine/unpack.c && rsc->role == RSC_ROLE_STARTED) { rsc 1122 lib/pengine/unpack.c crm_trace("Checking node %s/%s status %d/%d/%d", id, rsc->id, fence, rsc->role, RSC_ROLE_STARTED); rsc 1421 lib/pengine/unpack.c resource_t *rsc = this_node->details->remote_rsc; rsc 1429 lib/pengine/unpack.c if (rsc == NULL) { rsc 1434 lib/pengine/unpack.c container = rsc->container; rsc 1436 lib/pengine/unpack.c if (container && (g_list_length(rsc->running_on) == 1)) { rsc 1437 lib/pengine/unpack.c host = rsc->running_on->data; rsc 1441 lib/pengine/unpack.c if (rsc->role == RSC_ROLE_STARTED) { rsc 1448 lib/pengine/unpack.c if (rsc->role == RSC_ROLE_STARTED && rsc->next_role == RSC_ROLE_STOPPED) { rsc 1461 lib/pengine/unpack.c } else if(is_set(rsc->flags, pe_rsc_failed)) { rsc 1466 lib/pengine/unpack.c } else if (rsc->role == RSC_ROLE_STOPPED rsc 1649 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 1656 lib/pengine/unpack.c if (!common_unpack(xml_rsc, &rsc, NULL, data_set)) { rsc 1668 lib/pengine/unpack.c link_rsc2remotenode(data_set, rsc); rsc 1679 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_orphan_container_filler); rsc 1681 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_orphan); rsc 1682 lib/pengine/unpack.c data_set->resources = g_list_append(data_set->resources, rsc); rsc 1683 lib/pengine/unpack.c return rsc; rsc 1686 lib/pengine/unpack.c extern resource_t *create_child_clone(resource_t * rsc, int sub_id, pe_working_set_t * data_set); rsc 1693 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 1702 lib/pengine/unpack.c for (rIter = parent->children; rsc == NULL && rIter; rIter = rIter->next) { rsc 1713 lib/pengine/unpack.c for (nIter = locations; nIter && rsc == NULL; nIter = nIter->next) { rsc 1718 lib/pengine/unpack.c rsc = parent->fns->find_rsc(child, rsc_id, NULL, pe_find_clone); rsc 1719 lib/pengine/unpack.c if(rsc) { rsc 1720 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resource %s, active", rsc->id); rsc 1727 lib/pengine/unpack.c if (rsc && rsc->running_on) { rsc 1731 lib/pengine/unpack.c rsc = NULL; rsc 1741 lib/pengine/unpack.c for (rIter = parent->children; rsc == NULL && rIter; rIter = rIter->next) { rsc 1753 lib/pengine/unpack.c rsc = parent->fns->find_rsc(child, rsc_id, NULL, pe_find_clone); rsc 1754 lib/pengine/unpack.c pe_rsc_trace(parent, "Resource %s, empty slot", rsc->id); rsc 1760 lib/pengine/unpack.c if (rsc == NULL) { rsc 1765 lib/pengine/unpack.c rsc = top->fns->find_rsc(top, rsc_id, NULL, pe_find_clone); rsc 1766 lib/pengine/unpack.c CRM_ASSERT(rsc != NULL); rsc 1772 lib/pengine/unpack.c if (safe_str_neq(rsc_id, rsc->id)) { rsc 1773 lib/pengine/unpack.c pe_rsc_debug(rsc, "Internally renamed %s on %s to %s%s", rsc 1774 lib/pengine/unpack.c rsc_id, node->details->uname, rsc->id, rsc 1775 lib/pengine/unpack.c is_set(rsc->flags, pe_rsc_orphan) ? " (ORPHAN)" : ""); rsc 1778 lib/pengine/unpack.c return rsc; rsc 1785 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 1789 lib/pengine/unpack.c rsc = pe_find_resource(data_set->resources, rsc_id); rsc 1792 lib/pengine/unpack.c if (rsc == NULL) { rsc 1798 lib/pengine/unpack.c rsc = clone0; rsc 1808 lib/pengine/unpack.c } else if (rsc->variant > pe_native) { rsc 1814 lib/pengine/unpack.c parent = uber_parent(rsc); rsc 1818 lib/pengine/unpack.c rsc = find_container_child(rsc_id, rsc, node); rsc 1824 lib/pengine/unpack.c rsc = find_anonymous_clone(data_set, node, parent, base); rsc 1825 lib/pengine/unpack.c CRM_ASSERT(rsc != NULL); rsc 1829 lib/pengine/unpack.c if (rsc && safe_str_neq(rsc_id, rsc->id)) { rsc 1830 lib/pengine/unpack.c free(rsc->clone_name); rsc 1831 lib/pengine/unpack.c rsc->clone_name = strdup(rsc_id); rsc 1835 lib/pengine/unpack.c return rsc; rsc 1841 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 1845 lib/pengine/unpack.c rsc = create_fake_resource(rsc_id, rsc_entry, data_set); rsc 1848 lib/pengine/unpack.c clear_bit(rsc->flags, pe_rsc_managed); rsc 1851 lib/pengine/unpack.c print_resource(LOG_DEBUG_3, "Added orphan", rsc, FALSE); rsc 1853 lib/pengine/unpack.c CRM_CHECK(rsc != NULL, return NULL); rsc 1854 lib/pengine/unpack.c resource_location(rsc, NULL, -INFINITY, "__orphan_dont_run__", data_set); rsc 1856 lib/pengine/unpack.c return rsc; rsc 1860 lib/pengine/unpack.c process_rsc_state(resource_t * rsc, node_t * node, rsc 1867 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 1868 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resource %s is %s on %s: on_fail=%s", rsc 1869 lib/pengine/unpack.c rsc->id, role2text(rsc->role), node->details->uname, fail2text(on_fail)); rsc 1872 lib/pengine/unpack.c if (rsc->role != RSC_ROLE_UNKNOWN) { rsc 1873 lib/pengine/unpack.c resource_t *iter = rsc; rsc 1879 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s (aka. %s) known on %s", rsc->id, rsc->clone_name, rsc 1891 lib/pengine/unpack.c if (rsc->role > RSC_ROLE_STOPPED rsc 1894 lib/pengine/unpack.c && is_set(rsc->flags, pe_rsc_managed)) { rsc 1906 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 1922 lib/pengine/unpack.c rsc->id); rsc 1929 lib/pengine/unpack.c reason = crm_strdup_printf("%s is thought to be active there", rsc->id); rsc 1952 lib/pengine/unpack.c reason = crm_strdup_printf("%s failed there", rsc->id); rsc 1966 lib/pengine/unpack.c clear_bit(rsc->flags, pe_rsc_managed); rsc 1967 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_block); rsc 1974 lib/pengine/unpack.c resource_location(rsc, node, -INFINITY, "__action_migration_auto__", data_set); rsc 1978 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_STOPPED; rsc 1982 lib/pengine/unpack.c if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { rsc 1983 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 1984 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 1989 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 1991 lib/pengine/unpack.c if (rsc->container) { rsc 1992 lib/pengine/unpack.c stop_action(rsc->container, node, FALSE); rsc 1993 lib/pengine/unpack.c } else if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { rsc 1994 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 1999 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 2002 lib/pengine/unpack.c if (rsc->is_remote_node) { rsc 2003 lib/pengine/unpack.c tmpnode = pe_find_node(data_set->nodes, rsc->id); rsc 2017 lib/pengine/unpack.c if (rsc->role > RSC_ROLE_STOPPED) { rsc 2018 lib/pengine/unpack.c stop_action(rsc, node, FALSE); rsc 2023 lib/pengine/unpack.c if (rsc->remote_reconnect_interval) { rsc 2024 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_STOPPED; rsc 2033 lib/pengine/unpack.c if (is_set(rsc->flags, pe_rsc_failed) && rsc->is_remote_node) { rsc 2034 lib/pengine/unpack.c tmpnode = pe_find_node(data_set->nodes, rsc->id); rsc 2040 lib/pengine/unpack.c if (rsc->role != RSC_ROLE_STOPPED && rsc->role != RSC_ROLE_UNKNOWN) { rsc 2041 lib/pengine/unpack.c if (is_set(rsc->flags, pe_rsc_orphan)) { rsc 2042 lib/pengine/unpack.c if (is_set(rsc->flags, pe_rsc_managed)) { rsc 2044 lib/pengine/unpack.c rsc->id, node->details->uname); rsc 2048 lib/pengine/unpack.c rsc->id, node->details->uname); rsc 2052 lib/pengine/unpack.c native_add_running(rsc, node, data_set); rsc 2054 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 2057 lib/pengine/unpack.c } else if (rsc->clone_name && strchr(rsc->clone_name, ':') != NULL) { rsc 2061 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resetting clone_name %s for %s (stopped)", rsc->clone_name, rsc->id); rsc 2062 lib/pengine/unpack.c free(rsc->clone_name); rsc 2063 lib/pengine/unpack.c rsc->clone_name = NULL; rsc 2066 lib/pengine/unpack.c char *key = stop_key(rsc); rsc 2067 lib/pengine/unpack.c GListPtr possible_matches = find_actions(rsc->actions, key, node); rsc 2083 lib/pengine/unpack.c process_recurring(node_t * node, resource_t * rsc, rsc 2092 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 2093 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s: Start index %d, stop index = %d", rsc->id, start_index, stop_index); rsc 2106 lib/pengine/unpack.c pe_rsc_trace(rsc, "Skipping %s/%s: node is offline", rsc->id, node->details->uname); rsc 2111 lib/pengine/unpack.c pe_rsc_trace(rsc, "Skipping %s/%s: resource is not active", id, node->details->uname); rsc 2115 lib/pengine/unpack.c pe_rsc_trace(rsc, "Skipping %s/%s: old %d", id, node->details->uname, counter); rsc 2122 lib/pengine/unpack.c pe_rsc_trace(rsc, "Skipping %s/%s: non-recurring", id, node->details->uname); rsc 2128 lib/pengine/unpack.c pe_rsc_trace(rsc, "Skipping %s/%s: status", id, node->details->uname); rsc 2133 lib/pengine/unpack.c key = generate_op_key(rsc->id, task, interval); rsc 2134 lib/pengine/unpack.c pe_rsc_trace(rsc, "Creating %s/%s", key, node->details->uname); rsc 2135 lib/pengine/unpack.c custom_action(rsc, key, task, node, TRUE, TRUE, data_set); rsc 2198 lib/pengine/unpack.c resource_t *rsc = NULL; rsc 2228 lib/pengine/unpack.c rsc = unpack_find_resource(data_set, node, rsc_id, rsc_entry); rsc 2229 lib/pengine/unpack.c if (rsc == NULL) { rsc 2230 lib/pengine/unpack.c rsc = process_orphan_resource(rsc_entry, node, data_set); rsc 2232 lib/pengine/unpack.c CRM_ASSERT(rsc != NULL); rsc 2235 lib/pengine/unpack.c saved_role = rsc->role; rsc 2237 lib/pengine/unpack.c rsc->role = RSC_ROLE_UNKNOWN; rsc 2248 lib/pengine/unpack.c unpack_rsc_op(rsc, node, rsc_op, &last_failure, &on_fail, data_set); rsc 2253 lib/pengine/unpack.c process_recurring(node, rsc, start_index, stop_index, sorted_op_list, data_set); rsc 2258 lib/pengine/unpack.c process_rsc_state(rsc, node, on_fail, migrate_op, data_set); rsc 2260 lib/pengine/unpack.c if (get_target_role(rsc, &req_role)) { rsc 2261 lib/pengine/unpack.c if (rsc->next_role == RSC_ROLE_UNKNOWN || req_role < rsc->next_role) { rsc 2262 lib/pengine/unpack.c pe_rsc_debug(rsc, "%s: Overwriting calculated next role %s" rsc 2264 lib/pengine/unpack.c rsc->id, role2text(rsc->next_role), role2text(req_role)); rsc 2265 lib/pengine/unpack.c rsc->next_role = req_role; rsc 2267 lib/pengine/unpack.c } else if (req_role > rsc->next_role) { rsc 2268 lib/pengine/unpack.c pe_rsc_info(rsc, "%s: Not overwriting calculated next role %s" rsc 2270 lib/pengine/unpack.c rsc->id, role2text(rsc->next_role), role2text(req_role)); rsc 2274 lib/pengine/unpack.c if (saved_role > rsc->role) { rsc 2275 lib/pengine/unpack.c rsc->role = saved_role; rsc 2278 lib/pengine/unpack.c return rsc; rsc 2288 lib/pengine/unpack.c resource_t *rsc; rsc 2308 lib/pengine/unpack.c rsc = pe_find_resource(data_set->resources, rsc_id); rsc 2309 lib/pengine/unpack.c if (rsc == NULL || rsc 2310 lib/pengine/unpack.c is_set(rsc->flags, pe_rsc_orphan_container_filler) == FALSE || rsc 2311 lib/pengine/unpack.c rsc->container != NULL) { rsc 2315 lib/pengine/unpack.c pe_rsc_trace(rsc, "Mapped orphaned rsc %s's container to %s", rsc->id, container_id); rsc 2316 lib/pengine/unpack.c rsc->container = container; rsc 2317 lib/pengine/unpack.c container->fillers = g_list_append(container->fillers, rsc); rsc 2335 lib/pengine/unpack.c resource_t *rsc = unpack_lrm_rsc_state(node, rsc_entry, data_set); rsc 2336 lib/pengine/unpack.c if (!rsc) { rsc 2339 lib/pengine/unpack.c if (is_set(rsc->flags, pe_rsc_orphan_container_filler)) { rsc 2355 lib/pengine/unpack.c set_active(resource_t * rsc) rsc 2357 lib/pengine/unpack.c resource_t *top = uber_parent(rsc); rsc 2360 lib/pengine/unpack.c rsc->role = RSC_ROLE_SLAVE; rsc 2362 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; rsc 2410 lib/pengine/unpack.c unpack_rsc_migration(resource_t *rsc, node_t *node, xmlNode *xml_op, pe_working_set_t * data_set) rsc 2429 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_STOP, node->details->id, NULL, data_set); rsc 2447 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_MIGRATED, migrate_target, migrate_source, rsc 2450 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; /* can be master? */ rsc 2454 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s op on %s exited with status=%d, rc=%d", rsc 2460 lib/pengine/unpack.c pe_rsc_trace(rsc, "Detected dangling migration op: %s on %s", ID(xml_op), rsc 2467 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 2468 lib/pengine/unpack.c rsc->dangling_migrations = g_list_prepend(rsc->dangling_migrations, node); rsc 2472 lib/pengine/unpack.c pe_rsc_trace(rsc, "Marking active on %s %p %d", migrate_target, target, rsc 2474 lib/pengine/unpack.c native_add_running(rsc, target, data_set); rsc 2479 lib/pengine/unpack.c pe_rsc_trace(rsc, "Marking active on %s %p %d", migrate_target, target, rsc 2482 lib/pengine/unpack.c native_add_running(rsc, target, data_set); rsc 2489 lib/pengine/unpack.c rsc->partial_migration_target = target; rsc 2490 lib/pengine/unpack.c rsc->partial_migration_source = source; rsc 2494 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failed); rsc 2495 lib/pengine/unpack.c clear_bit(rsc->flags, pe_rsc_allow_migrate); rsc 2502 lib/pengine/unpack.c unpack_rsc_migration_failure(resource_t *rsc, node_t *node, xmlNode *xml_op, pe_working_set_t * data_set) rsc 2506 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 2514 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_STOP, migrate_source, NULL, data_set); rsc 2516 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_MIGRATE, migrate_source, migrate_target, rsc 2527 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; /* can be master? */ rsc 2533 lib/pengine/unpack.c native_add_running(rsc, source, data_set); rsc 2544 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_STOP, migrate_target, NULL, data_set); rsc 2546 lib/pengine/unpack.c find_lrm_op(rsc->id, CRMD_ACTION_MIGRATED, migrate_target, migrate_source, rsc 2557 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; /* can be master? */ rsc 2562 lib/pengine/unpack.c pe_rsc_trace(rsc, "Stop: %p %d, Migrated: %p %d", stop_op, stop_id, migrate_op, rsc 2565 lib/pengine/unpack.c native_add_running(rsc, target, data_set); rsc 2570 lib/pengine/unpack.c rsc->dangling_migrations = g_list_prepend(rsc->dangling_migrations, node); rsc 2576 lib/pengine/unpack.c record_failed_op(xmlNode *op, node_t* node, resource_t *rsc, pe_working_set_t * data_set) rsc 2597 lib/pengine/unpack.c crm_xml_add(op, XML_LRM_ATTR_RSCID, rsc->id); rsc 2611 lib/pengine/unpack.c unpack_rsc_op_failure(resource_t * rsc, node_t * node, int rc, xmlNode * xml_op, xmlNode ** last_failure, rsc 2622 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 2629 lib/pengine/unpack.c pe_rsc_trace(rsc, "is a probe: %s", key); rsc 2634 lib/pengine/unpack.c task, rsc->id, node->details->uname, services_ocf_exitcode_str(rc), rsc 2637 lib/pengine/unpack.c record_failed_op(xml_op, node, rsc, data_set); rsc 2641 lib/pengine/unpack.c task, rsc->id, node->details->uname, services_ocf_exitcode_str(rc), rsc 2645 lib/pengine/unpack.c action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); rsc 2650 lib/pengine/unpack.c pe_rsc_trace(rsc, "on-fail %s -> %s for %s (%s)", fail2text(*on_fail), rsc 2656 lib/pengine/unpack.c resource_location(rsc, node, -INFINITY, "__stop_fail__", data_set); rsc 2659 lib/pengine/unpack.c unpack_rsc_migration_failure(rsc, node, xml_op, data_set); rsc 2662 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 2671 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 2672 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_STOPPED; rsc 2675 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 2678 lib/pengine/unpack.c crm_warn("Forcing %s to stop after a failed demote action", rsc->id); rsc 2679 lib/pengine/unpack.c rsc->role = RSC_ROLE_SLAVE; rsc 2680 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_STOPPED; rsc 2685 lib/pengine/unpack.c resource_location(rsc, node, -INFINITY, "__legacy_start__", data_set); rsc 2690 lib/pengine/unpack.c pe_rsc_trace(rsc, "Leaving %s stopped", rsc->id); rsc 2691 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 2693 lib/pengine/unpack.c } else if (rsc->role < RSC_ROLE_STARTED) { rsc 2694 lib/pengine/unpack.c pe_rsc_trace(rsc, "Setting %s active", rsc->id); rsc 2695 lib/pengine/unpack.c set_active(rsc); rsc 2698 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resource %s: role=%s, unclean=%s, on_fail=%s, fail_role=%s", rsc 2699 lib/pengine/unpack.c rsc->id, role2text(rsc->role), rsc 2703 lib/pengine/unpack.c if (action->fail_role != RSC_ROLE_STARTED && rsc->next_role < action->fail_role) { rsc 2704 lib/pengine/unpack.c rsc->next_role = action->fail_role; rsc 2710 lib/pengine/unpack.c resource_t *fail_rsc = rsc; rsc 2735 lib/pengine/unpack.c resource_t *rsc, int rc, int target_rc, node_t * node, xmlNode * xml_op, enum action_fail_response * on_fail, pe_working_set_t * data_set) rsc 2745 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 2753 lib/pengine/unpack.c pe_rsc_debug(rsc, "%s on %s returned '%s' (%d) instead of the expected value: '%s' (%d)", rsc 2766 lib/pengine/unpack.c pe_rsc_info(rsc, "Operation %s found resource %s active on %s", rsc 2767 lib/pengine/unpack.c task, rsc->id, node->details->uname); rsc 2770 lib/pengine/unpack.c } else if (target_rc < 0 && interval > 0 && rsc->role == RSC_ROLE_MASTER) { rsc 2779 lib/pengine/unpack.c if (is_probe || target_rc == rc || is_not_set(rsc->flags, pe_rsc_managed)) { rsc 2781 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 2785 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_UNKNOWN; rsc 2795 lib/pengine/unpack.c pe_rsc_info(rsc, "Operation %s found resource %s active in master mode on %s", rsc 2796 lib/pengine/unpack.c task, rsc->id, node->details->uname); rsc 2806 lib/pengine/unpack.c || rsc->role != RSC_ROLE_MASTER) { rsc 2808 lib/pengine/unpack.c if (rsc->role != RSC_ROLE_MASTER) { rsc 2810 lib/pengine/unpack.c key, rsc->id, node->details->uname); rsc 2813 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 2818 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 2838 lib/pengine/unpack.c rsc->id, task, services_ocf_exitcode_str(rc), rc); rsc 2839 lib/pengine/unpack.c clear_bit(rsc->flags, pe_rsc_managed); rsc 2840 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_block); rsc 2856 lib/pengine/unpack.c static bool check_operation_expiry(resource_t *rsc, node_t *node, int rc, xmlNode *xml_op, pe_working_set_t * data_set) rsc 2861 lib/pengine/unpack.c int failure_timeout = rsc->failure_timeout; rsc 2881 lib/pengine/unpack.c (rsc->remote_reconnect_interval)) { rsc 2883 lib/pengine/unpack.c node_t *remote_node = pe_find_node(data_set->nodes, rsc->id); rsc 2886 lib/pengine/unpack.c crm_info("Waiting to clear monitor failure for remote node %s until fencing has occurred", rsc->id); rsc 2909 lib/pengine/unpack.c if (pe_get_failcount(node, rsc, &last_failure, pe_fc_default, rsc 2912 lib/pengine/unpack.c if (pe_get_failcount(node, rsc, &last_failure, pe_fc_effective, rsc 2919 lib/pengine/unpack.c } else if (rsc->remote_reconnect_interval && strstr(ID(xml_op), "last_failure")) { rsc 2930 lib/pengine/unpack.c digest_data = rsc_action_digest_cmp(rsc, xml_op, node, data_set); rsc 2933 lib/pengine/unpack.c crm_trace("rsc op %s/%s on node %s does not have a op digest to compare against", rsc->id, rsc 2935 lib/pengine/unpack.c } else if(container_fix_remote_addr(rsc) && digest_data->rc != RSC_DIGEST_MATCH) { rsc 2937 lib/pengine/unpack.c crm_trace("Ignoring rsc op %s/%s on node %s", rsc->id, key, node->details->id); rsc 2945 lib/pengine/unpack.c char *key = generate_op_key(rsc->id, CRM_OP_CLEAR_FAILCOUNT, 0); rsc 2946 lib/pengine/unpack.c action_t *clear_op = custom_action(rsc, key, CRM_OP_CLEAR_FAILCOUNT, rsc 2952 lib/pengine/unpack.c rsc->id, node->details->uname, clear_reason, clear_op->uuid); rsc 2989 lib/pengine/unpack.c get_action_on_fail(resource_t *rsc, const char *key, const char *task, pe_working_set_t * data_set) rsc 2992 lib/pengine/unpack.c action_t *action = custom_action(rsc, strdup(key), task, NULL, TRUE, FALSE, data_set); rsc 3001 lib/pengine/unpack.c update_resource_state(resource_t * rsc, node_t * node, xmlNode * xml_op, const char * task, int rc, rsc 3006 lib/pengine/unpack.c CRM_ASSERT(rsc); rsc 3013 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 3025 lib/pengine/unpack.c if (rsc->role < RSC_ROLE_STARTED) { rsc 3026 lib/pengine/unpack.c set_active(rsc); rsc 3030 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; rsc 3034 lib/pengine/unpack.c rsc->role = RSC_ROLE_STOPPED; rsc 3038 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 3043 lib/pengine/unpack.c rsc->role = RSC_ROLE_SLAVE; rsc 3046 lib/pengine/unpack.c rsc->role = RSC_ROLE_STARTED; rsc 3050 lib/pengine/unpack.c unpack_rsc_migration(rsc, node, xml_op, data_set); rsc 3052 lib/pengine/unpack.c } else if (rsc->role < RSC_ROLE_STARTED) { rsc 3053 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s active on %s", rsc->id, node->details->uname); rsc 3054 lib/pengine/unpack.c set_active(rsc); rsc 3064 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s.%s is not cleared by a completed stop", rsc 3065 lib/pengine/unpack.c rsc->id, fail2text(*on_fail)); rsc 3073 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_UNKNOWN; rsc 3076 lib/pengine/unpack.c if (rsc->remote_reconnect_interval == 0) { rsc 3082 lib/pengine/unpack.c rsc->next_role = RSC_ROLE_UNKNOWN; rsc 3091 lib/pengine/unpack.c unpack_rsc_op(resource_t * rsc, node_t * node, xmlNode * xml_op, xmlNode ** last_failure, rsc 3106 lib/pengine/unpack.c resource_t *parent = rsc; rsc 3109 lib/pengine/unpack.c CRM_CHECK(rsc != NULL, return FALSE); rsc 3133 lib/pengine/unpack.c if (is_not_set(rsc->flags, pe_rsc_unique)) { rsc 3134 lib/pengine/unpack.c parent = uber_parent(rsc); rsc 3137 lib/pengine/unpack.c pe_rsc_trace(rsc, "Unpacking task %s/%s (call_id=%d, status=%d, rc=%d) on %s (role=%s)", rsc 3138 lib/pengine/unpack.c task_key, task, task_id, status, rc, node->details->uname, role2text(rsc->role)); rsc 3141 lib/pengine/unpack.c pe_rsc_trace(rsc, "Node %s (where %s is running) is unclean." rsc 3143 lib/pengine/unpack.c node->details->uname, rsc->id); rsc 3152 lib/pengine/unpack.c expired = check_operation_expiry(rsc, node, rc, xml_op, data_set); rsc 3162 lib/pengine/unpack.c record_failed_op(xml_op, node, rsc, data_set); rsc 3171 lib/pengine/unpack.c record_failed_op(xml_op, node, rsc, data_set); rsc 3178 lib/pengine/unpack.c pe_rsc_debug(rsc, "Expired operation '%s' on %s returned '%s' (%d) instead of the expected value: '%s' (%d)", rsc 3198 lib/pengine/unpack.c status = determine_op_status(rsc, rc, target_rc, node, xml_op, on_fail, data_set); rsc 3201 lib/pengine/unpack.c pe_rsc_trace(rsc, "Handling status: %d", status); rsc 3210 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_start_pending); rsc 3211 lib/pengine/unpack.c set_active(rsc); rsc 3214 lib/pengine/unpack.c rsc->role = RSC_ROLE_MASTER; rsc 3222 lib/pengine/unpack.c stop_action(rsc, target, FALSE); rsc 3226 lib/pengine/unpack.c if (rsc->pending_task == NULL) { rsc 3236 lib/pengine/unpack.c rsc->pending_task = strdup(task); rsc 3242 lib/pengine/unpack.c pe_rsc_trace(rsc, "%s/%s completed on %s", rsc->id, task, node->details->uname); rsc 3243 lib/pengine/unpack.c update_resource_state(rsc, node, xml_op, task, rc, *last_failure, on_fail, data_set); rsc 3247 lib/pengine/unpack.c failure_strategy = get_action_on_fail(rsc, task_key, task, data_set); rsc 3256 lib/pengine/unpack.c unpack_rsc_op_failure(rsc, node, rc, xml_op, last_failure, on_fail, data_set); rsc 3265 lib/pengine/unpack.c failure_strategy = get_action_on_fail(rsc, task_key, task, data_set); rsc 3273 lib/pengine/unpack.c update_resource_state(rsc, node, xml_op, task, target_rc, *last_failure, on_fail, data_set); rsc 3275 lib/pengine/unpack.c set_bit(rsc->flags, pe_rsc_failure_ignored); rsc 3277 lib/pengine/unpack.c record_failed_op(xml_op, node, rsc, data_set); rsc 3284 lib/pengine/unpack.c unpack_rsc_op_failure(rsc, node, rc, xml_op, last_failure, on_fail, data_set); rsc 3305 lib/pengine/unpack.c pe_rsc_trace(rsc, "Resource %s after %s: role=%s, next=%s", rsc->id, task, role2text(rsc->role), role2text(rsc->next_role)); rsc 3357 lib/pengine/unpack.c extract_operations(const char *node, const char *rsc, xmlNode * rsc_entry, gboolean active_filter) rsc 3375 lib/pengine/unpack.c crm_xml_add(rsc_op, "resource", rsc); rsc 3418 lib/pengine/unpack.c find_operations(const char *rsc, const char *node, gboolean active_filter, rsc 3469 lib/pengine/unpack.c if (rsc != NULL && safe_str_neq(rsc_id, rsc)) { rsc 38 lib/pengine/utils.c static xmlNode *find_rsc_op_entry_helper(resource_t * rsc, const char *key, rsc 235 lib/pengine/utils.c resource_t * rsc, const char *comment, GHashTable * nodes) rsc 241 lib/pengine/utils.c if (rsc) { rsc 242 lib/pengine/utils.c hash = rsc->allowed_nodes; rsc 245 lib/pengine/utils.c if (rsc && is_set(rsc->flags, pe_rsc_orphan)) { rsc 265 lib/pengine/utils.c if (rsc) { rsc 267 lib/pengine/utils.c comment, rsc->id, node->details->uname, score); rsc 283 lib/pengine/utils.c if (rsc) { rsc 285 lib/pengine/utils.c "%s: %s allocation score on %s: %s", comment, rsc->id, rsc 294 lib/pengine/utils.c if (rsc && rsc->children) { rsc 297 lib/pengine/utils.c gIter = rsc->children; rsc 343 lib/pengine/utils.c dump_rsc_utilization(int level, const char *comment, resource_t * rsc, node_t * node) rsc 348 lib/pengine/utils.c len = strlen(comment) + strlen(": ") + strlen(rsc->id) + strlen(" utilization on ") rsc 351 lib/pengine/utils.c sprintf(dump_text, "%s: %s utilization on %s:", comment, rsc->id, node->details->uname); rsc 353 lib/pengine/utils.c g_hash_table_foreach(rsc->utilization, append_dump_text, &dump_text); rsc 419 lib/pengine/utils.c custom_action(resource_t * rsc, char *key, const char *task, rsc 429 lib/pengine/utils.c if (save_action && rsc != NULL) { rsc 430 lib/pengine/utils.c possible_matches = find_actions(rsc->actions, key, on_node); rsc 447 lib/pengine/utils.c task, rsc ? rsc->id : "<NULL>", rsc 452 lib/pengine/utils.c pe_rsc_trace(rsc, "Found existing action (%d) %s for %s on %s", rsc 453 lib/pengine/utils.c action->id, task, rsc ? rsc->id : "<NULL>", rsc 460 lib/pengine/utils.c pe_rsc_trace(rsc, "Creating%s action %d: %s for %s on %s %d", rsc 462 lib/pengine/utils.c rsc ? rsc->id : "<NULL>", on_node ? on_node->details->uname : "<NULL>", optional); rsc 471 lib/pengine/utils.c action->rsc = rsc; rsc 481 lib/pengine/utils.c pe_rsc_trace(rsc, "Set optional on %s", action->uuid); rsc 485 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset optional on %s", action->uuid); rsc 504 lib/pengine/utils.c if(rsc == NULL) { rsc 509 lib/pengine/utils.c if (rsc != NULL) { rsc 510 lib/pengine/utils.c action->op_entry = find_rsc_op_entry_helper(rsc, key, TRUE); rsc 512 lib/pengine/utils.c unpack_operation(action, action->op_entry, rsc->container, data_set); rsc 515 lib/pengine/utils.c rsc->actions = g_list_prepend(rsc->actions, action); rsc 520 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %d created", action->id); rsc 525 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset optional on %s", action->uuid); rsc 529 lib/pengine/utils.c if (rsc != NULL) { rsc 549 lib/pengine/utils.c pe_rsc_trace(rsc, "Unset runnable on %s", action->uuid); rsc 552 lib/pengine/utils.c } else if (is_not_set(rsc->flags, pe_rsc_managed) rsc 555 lib/pengine/utils.c pe_rsc_trace(rsc, "Set optional on %s", action->uuid); rsc 564 lib/pengine/utils.c if (is_set(action->rsc->flags, pe_rsc_managed) rsc 576 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %s does not require anything", action->uuid); rsc 595 lib/pengine/utils.c pe_rsc_trace(rsc, "Check resource is already active: %s %s %s %s", rsc->id, action->uuid, role2text(rsc->next_role), role2text(rsc->role)); rsc 596 lib/pengine/utils.c if (rsc->fns->active(rsc, TRUE) == FALSE || rsc->next_role > rsc->role) { rsc 598 lib/pengine/utils.c pe_rsc_debug(rsc, "%s\t%s (cancelled : quorum freeze)", rsc 603 lib/pengine/utils.c pe_rsc_trace(rsc, "Action %s is runnable", action->uuid); rsc 611 lib/pengine/utils.c set_bit(rsc->flags, pe_rsc_stopping); rsc 614 lib/pengine/utils.c clear_bit(rsc->flags, pe_rsc_starting); rsc 616 lib/pengine/utils.c set_bit(rsc->flags, pe_rsc_starting); rsc 636 lib/pengine/utils.c crm_config_err("on-fail=standby is not allowed for stop actions: %s", action->rsc->id); rsc 647 lib/pengine/utils.c CRM_CHECK(action->rsc != NULL, return NULL); rsc 649 lib/pengine/utils.c for (operation = __xml_first_child(action->rsc->ops_xml); rsc 678 lib/pengine/utils.c find_min_interval_mon(resource_t * rsc, gboolean include_disabled) rsc 688 lib/pengine/utils.c for (operation = __xml_first_child(rsc->ops_xml); operation != NULL; rsc 811 lib/pengine/utils.c xmlNode *min_interval_mon = find_min_interval_mon(action->rsc, FALSE); rsc 815 lib/pengine/utils.c pe_rsc_trace(action->rsc, rsc 845 lib/pengine/utils.c pe_get_configured_timeout(resource_t *rsc, const char *action, pe_working_set_t *data_set) rsc 851 lib/pengine/utils.c for (child = first_named_child(rsc->ops_xml, XML_ATTR_OP); rsc 926 lib/pengine/utils.c CRM_CHECK(action->rsc != NULL, return); rsc 992 lib/pengine/utils.c set_bit(action->rsc->flags, pe_rsc_needs_unfencing); rsc 994 lib/pengine/utils.c crm_notice("%s requires unfencing but fencing is disabled", action->rsc->id); rsc 1001 lib/pengine/utils.c crm_notice("%s requires fencing but fencing is disabled", action->rsc->id); rsc 1005 lib/pengine/utils.c } else if (is_set(action->rsc->flags, pe_rsc_needs_fencing)) { rsc 1009 lib/pengine/utils.c } else if (is_set(action->rsc->flags, pe_rsc_needs_quorum)) { rsc 1018 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\tAction %s requires: %s", action->task, value); rsc 1071 lib/pengine/utils.c pe_err("Resource %s: Unknown failure type (%s)", action->rsc->id, value); rsc 1089 lib/pengine/utils.c } else if (((value == NULL) || !is_set(action->rsc->flags, pe_rsc_managed)) && rsc 1090 lib/pengine/utils.c (is_rsc_baremetal_remote_node(action->rsc, data_set) && rsc 1094 lib/pengine/utils.c if (!is_set(action->rsc->flags, pe_rsc_managed)) { rsc 1106 lib/pengine/utils.c if (action->rsc->remote_reconnect_interval) { rsc 1127 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\t%s failure handling: %s", action->task, value); rsc 1144 lib/pengine/utils.c pe_rsc_trace(action->rsc, "\t%s failure results in: %s", action->task, rsc 1168 lib/pengine/utils.c find_rsc_op_entry_helper(resource_t * rsc, const char *key, gboolean include_disabled) rsc 1181 lib/pengine/utils.c for (operation = __xml_first_child(rsc->ops_xml); operation != NULL; rsc 1192 lib/pengine/utils.c match_key = generate_op_key(rsc->id, name, number); rsc 1198 lib/pengine/utils.c if (rsc->clone_name) { rsc 1199 lib/pengine/utils.c match_key = generate_op_key(rsc->clone_name, name, number); rsc 1220 lib/pengine/utils.c local_key = generate_op_key(rsc->id, "migrate", 0); rsc 1225 lib/pengine/utils.c local_key = generate_op_key(rsc->id, "notify", 0); rsc 1234 lib/pengine/utils.c find_rsc_op_entry(resource_t * rsc, const char *key) rsc 1236 lib/pengine/utils.c return find_rsc_op_entry_helper(rsc, key, FALSE); rsc 1265 lib/pengine/utils.c resource_t *rsc = (resource_t *) gIter->data; rsc 1267 lib/pengine/utils.c print_resource(LOG_DEBUG_4, "\t\t", rsc, FALSE); rsc 1284 lib/pengine/utils.c print_resource(int log_level, const char *pre_text, resource_t * rsc, gboolean details) rsc 1288 lib/pengine/utils.c if (rsc == NULL) { rsc 1296 lib/pengine/utils.c rsc->fns->print(rsc, pre_text, options, &log_level); rsc 1314 lib/pengine/utils.c if (action->rsc) { rsc 1361 lib/pengine/utils.c get_complex_task(resource_t * rsc, const char *name, gboolean allow_non_atomic) rsc 1365 lib/pengine/utils.c if (rsc == NULL) { rsc 1368 lib/pengine/utils.c } else if (allow_non_atomic == FALSE || rsc->variant == pe_native) { rsc 1374 lib/pengine/utils.c crm_trace("Folding %s back into its atomic counterpart for %s", name, rsc->id); rsc 1484 lib/pengine/utils.c resource_node_score(resource_t * rsc, node_t * node, int score, const char *tag) rsc 1488 lib/pengine/utils.c if ((rsc->exclusive_discover || (node->rsc_discover_mode == pe_discover_never)) rsc 1496 lib/pengine/utils.c } else if (rsc->children) { rsc 1497 lib/pengine/utils.c GListPtr gIter = rsc->children; rsc 1506 lib/pengine/utils.c pe_rsc_trace(rsc, "Setting %s for %s on %s: %d", tag, rsc->id, node->details->uname, score); rsc 1507 lib/pengine/utils.c match = pe_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 1510 lib/pengine/utils.c g_hash_table_insert(rsc->allowed_nodes, (gpointer) match->details->id, match); rsc 1516 lib/pengine/utils.c resource_location(resource_t * rsc, node_t * node, int score, const char *tag, rsc 1520 lib/pengine/utils.c resource_node_score(rsc, node, score, tag); rsc 1528 lib/pengine/utils.c resource_node_score(rsc, node_iter, score, tag); rsc 1535 lib/pengine/utils.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 1537 lib/pengine/utils.c resource_node_score(rsc, node_iter, score, tag); rsc 1542 lib/pengine/utils.c if (rsc->allocated_to) { rsc 1543 lib/pengine/utils.c crm_info("Deallocating %s from %s", rsc->id, rsc->allocated_to->details->uname); rsc 1544 lib/pengine/utils.c free(rsc->allocated_to); rsc 1545 lib/pengine/utils.c rsc->allocated_to = NULL; rsc 1690 lib/pengine/utils.c get_target_role(resource_t * rsc, enum rsc_role_e * role) rsc 1693 lib/pengine/utils.c const char *value = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET_ROLE); rsc 1704 lib/pengine/utils.c crm_config_err("%s: Unknown value for %s: %s", rsc->id, XML_RSC_ATTR_TARGET_ROLE, value); rsc 1708 lib/pengine/utils.c if (uber_parent(rsc)->variant == pe_master) { rsc 1716 lib/pengine/utils.c rsc->id, XML_RSC_ATTR_TARGET_ROLE, value); rsc 1889 lib/pengine/utils.c rsc_action_digest(resource_t * rsc, const char *task, const char *key, rsc 1897 lib/pengine/utils.c action_t *action = custom_action(rsc, strdup(key), task, node, TRUE, FALSE, data_set); rsc 1910 lib/pengine/utils.c get_rsc_attributes(local_rsc_params, rsc, node, data_set); rsc 1912 lib/pengine/utils.c pe_get_versioned_attributes(local_versioned_params, rsc, node, data_set); rsc 1918 lib/pengine/utils.c if (container_fix_remote_addr_in(rsc, data->params_all, "addr")) { rsc 1919 lib/pengine/utils.c crm_trace("Fixed addr for %s on %s", rsc->id, node->details->uname); rsc 1924 lib/pengine/utils.c g_hash_table_foreach(rsc->parameters, hash2field, data->params_all); rsc 1942 lib/pengine/utils.c append_versioned_params(rsc->versioned_parameters, ra_version, data->params_all); rsc 1980 lib/pengine/utils.c rsc_action_digest_cmp(resource_t * rsc, xmlNode * xml_op, node_t * node, rsc 2002 lib/pengine/utils.c key = generate_op_key(rsc->id, task, interval); rsc 2003 lib/pengine/utils.c data = rsc_action_digest(rsc, task, key, node, xml_op, data_set); rsc 2007 lib/pengine/utils.c pe_rsc_info(rsc, "Parameters to %s on %s changed: was %s vs. now %s (restart:%s) %s", rsc 2018 lib/pengine/utils.c pe_rsc_info(rsc, "Parameters to %s on %s changed: was %s vs. now %s (%s:%s) %s", rsc 2033 lib/pengine/utils.c fencing_action_digest_cmp(resource_t * rsc, node_t * node, pe_working_set_t * data_set) rsc 2035 lib/pengine/utils.c char *key = generate_op_key(rsc->id, STONITH_DIGEST_TASK, 0); rsc 2036 lib/pengine/utils.c op_digest_cache_t *data = rsc_action_digest(rsc, STONITH_DIGEST_TASK, key, node, NULL, data_set); rsc 2046 lib/pengine/utils.c char *search_all = crm_strdup_printf("%s:%s:%s", rsc->id, (const char*)g_hash_table_lookup(rsc->meta, XML_ATTR_TYPE), data->digest_all_calc); rsc 2047 lib/pengine/utils.c char *search_secure = crm_strdup_printf("%s:%s:%s", rsc->id, (const char*)g_hash_table_lookup(rsc->meta, XML_ATTR_TYPE), data->digest_secure_calc); rsc 2061 lib/pengine/utils.c rsc->id, node->details->uname); rsc 2070 lib/pengine/utils.c rsc->id, node->details->uname, rsc->id, rsc 2071 lib/pengine/utils.c (const char *) g_hash_table_lookup(rsc->meta, XML_ATTR_TYPE), rsc 2083 lib/pengine/utils.c const char *rsc_printable_id(resource_t *rsc) rsc 2085 lib/pengine/utils.c if (is_not_set(rsc->flags, pe_rsc_unique)) { rsc 2086 lib/pengine/utils.c return ID(rsc->xml); rsc 2088 lib/pengine/utils.c return rsc->id; rsc 2092 lib/pengine/utils.c clear_bit_recursive(resource_t * rsc, unsigned long long flag) rsc 2094 lib/pengine/utils.c GListPtr gIter = rsc->children; rsc 2096 lib/pengine/utils.c clear_bit(rsc->flags, flag); rsc 2105 lib/pengine/utils.c set_bit_recursive(resource_t * rsc, unsigned long long flag) rsc 2107 lib/pengine/utils.c GListPtr gIter = rsc->children; rsc 2109 lib/pengine/utils.c set_bit(rsc->flags, flag); rsc 2222 lib/pengine/utils.c resource_t * rsc, node_t *node, const char *reason, action_t *dependency, pe_working_set_t * data_set) rsc 2228 lib/pengine/utils.c } else if (rsc != NULL && is_not_set(rsc->flags, pe_rsc_fence_device)) { rsc 2242 lib/pengine/utils.c } else if(rsc) { rsc 2245 lib/pengine/utils.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 2248 lib/pengine/utils.c trigger_unfencing(rsc, node, reason, dependency, data_set); rsc 2338 lib/pengine/utils.c } else if(reason->rsc == NULL) { rsc 2341 lib/pengine/utils.c reason_text = crm_strdup_printf("%s %s %s%c %s", change, reason->rsc->id, reason->task, text?':':0, text?text:"NA"); rsc 2344 lib/pengine/utils.c if(reason_text && action->rsc != reason->rsc) { rsc 2354 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Changing %s reason from '%s' to '%s'", action->uuid, action->reason, reason); rsc 2360 lib/pengine/utils.c pe_rsc_trace(action->rsc, "Set %s reason to '%s'", action->uuid, reason); rsc 53 lib/pengine/variant.h # define get_clone_variant_data(data, rsc) \ rsc 54 lib/pengine/variant.h CRM_ASSERT(rsc != NULL); \ rsc 55 lib/pengine/variant.h CRM_ASSERT(rsc->variant == pe_clone || rsc->variant == pe_master); \ rsc 56 lib/pengine/variant.h data = (clone_variant_data_t *)rsc->variant_opaque; rsc 124 lib/pengine/variant.h # define get_container_variant_data(data, rsc) \ rsc 125 lib/pengine/variant.h CRM_ASSERT(rsc != NULL); \ rsc 126 lib/pengine/variant.h CRM_ASSERT(rsc->variant == pe_container); \ rsc 127 lib/pengine/variant.h CRM_ASSERT(rsc->variant_opaque != NULL); \ rsc 128 lib/pengine/variant.h data = (container_variant_data_t *)rsc->variant_opaque; \ rsc 145 lib/pengine/variant.h # define get_group_variant_data(data, rsc) \ rsc 146 lib/pengine/variant.h CRM_ASSERT(rsc != NULL); \ rsc 147 lib/pengine/variant.h CRM_ASSERT(rsc->variant == pe_group); \ rsc 148 lib/pengine/variant.h CRM_ASSERT(rsc->variant_opaque != NULL); \ rsc 149 lib/pengine/variant.h data = (group_variant_data_t *)rsc->variant_opaque; \ rsc 157 lib/pengine/variant.h # define get_native_variant_data(data, rsc) \ rsc 158 lib/pengine/variant.h CRM_ASSERT(rsc != NULL); \ rsc 159 lib/pengine/variant.h CRM_ASSERT(rsc->variant == pe_native); \ rsc 160 lib/pengine/variant.h CRM_ASSERT(rsc->variant_opaque != NULL); \ rsc 161 lib/pengine/variant.h data = (native_variant_data_t *)rsc->variant_opaque; rsc 142 lib/services/services.c expand_resource_class(const char *rsc, const char *standard, const char *agent) rsc 150 lib/services/services.c crm_debug("Found %s agent %s for %s", found_class, agent, rsc); rsc 154 lib/services/services.c agent, rsc); rsc 207 lib/services/services.c op->rsc = strdup(name); rsc 535 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); rsc 541 lib/services/services.c crm_trace("Cleaning up pending dbus call %p %s for %s", op->opaque->pending, op->action, op->rsc); rsc 543 lib/services/services.c crm_warn("Pending dbus call %s for %s did not complete", op->action, op->rsc); rsc 596 lib/services/services.c free(op->rsc); rsc 804 lib/services/services.c if (op->rsc) { rsc 844 lib/services/services.c if (op->rsc && is_op_blocked(op->rsc)) { rsc 856 lib/services/services.c is_op_blocked(const char *rsc) rsc 863 lib/services/services.c if (safe_str_eq(op->rsc, rsc)) { rsc 890 lib/services/services.c if (is_op_blocked(op->rsc)) { rsc 1340 lib/services/services.c op->rsc, op->action, op->interval, op->opaque->exec, op->rc); rsc 184 lib/services/services_linux.c if (op->rsc) { rsc 185 lib/services/services_linux.c set_ocf_env("OCF_RESOURCE_INSTANCE", op->rsc, NULL); rsc 412 lib/services/services_linux.c if (replace_secret_params(op->rsc, op->params) < 0) { rsc 416 lib/services/services_linux.c crm_info("proceeding with the stop operation for %s", op->rsc); rsc 420 lib/services/services_linux.c "considering resource not configured", op->rsc); rsc 85 lib/services/services_private.h gboolean is_op_blocked(const char *rsc); rsc 228 lib/services/systemd.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); rsc 234 lib/services/systemd.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); rsc 239 lib/services/systemd.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); rsc 528 lib/services/systemd.c crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error.message); rsc 561 lib/services/systemd.c crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); rsc 579 lib/services/systemd.c crm_trace("Resource %s has %s='%s'", op->rsc, name, state); rsc 693 lib/services/systemd.c crm_debug("Calling %s for %s: %s", method, op->rsc, unit); rsc 747 lib/services/systemd.c crm_warn("%s operation on systemd unit %s named '%s' timed out", op->action, op->agent, op->rsc); rsc 764 lib/services/systemd.c op->synchronous ? "" : "a", op->action, op->agent, op->rsc); rsc 342 lib/services/upstart.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); rsc 345 lib/services/upstart.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); rsc 349 lib/services/upstart.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); rsc 357 lib/services/upstart.c crm_trace("Mapping %s failure for %s: starting a started resource is allowed", op->action, op->rsc); rsc 381 lib/services/upstart.c crm_err("%s for %s: %s", op->action, op->rsc, error.message); rsc 489 lib/services/upstart.c crm_debug("Calling %s for %s on %s", action, op->rsc, job); rsc 527 lib/services/upstart.c action, op->rsc, error.message, job); rsc 193 lib/transition/graph.c return graph_fns->rsc(graph, action); rsc 76 lib/transition/utils.c CRM_ASSERT(graph_fns->rsc != NULL); rsc 92 lrmd/lrmd.c static void cmd_finalize(lrmd_cmd_t * cmd, lrmd_rsc_t * rsc); rsc 94 lrmd/lrmd.c static void cancel_all_recurring(lrmd_rsc_t * rsc, const char *client_id); rsc 135 lrmd/lrmd.c normalize_action_name(lrmd_rsc_t * rsc, const char *action) rsc 138 lrmd/lrmd.c (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_LSB) || rsc 139 lrmd/lrmd.c safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_SERVICE) rsc 140 lrmd/lrmd.c || safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_SYSTEMD))) { rsc 150 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 152 lrmd/lrmd.c rsc = calloc(1, sizeof(lrmd_rsc_t)); rsc 154 lrmd/lrmd.c crm_element_value_int(msg, F_LRMD_CALLOPTS, &rsc->call_opts); rsc 156 lrmd/lrmd.c rsc->rsc_id = crm_element_value_copy(rsc_xml, F_LRMD_RSC_ID); rsc 157 lrmd/lrmd.c rsc->class = crm_element_value_copy(rsc_xml, F_LRMD_CLASS); rsc 158 lrmd/lrmd.c rsc->provider = crm_element_value_copy(rsc_xml, F_LRMD_PROVIDER); rsc 159 lrmd/lrmd.c rsc->type = crm_element_value_copy(rsc_xml, F_LRMD_TYPE); rsc 160 lrmd/lrmd.c rsc->work = mainloop_add_trigger(G_PRIORITY_HIGH, lrmd_rsc_dispatch, rsc); rsc 161 lrmd/lrmd.c return rsc; rsc 165 lrmd/lrmd.c create_lrmd_cmd(xmlNode * msg, crm_client_t * client, lrmd_rsc_t *rsc) rsc 193 lrmd/lrmd.c g_hash_table_insert(cmd->params, strdup("CRM_meta_isolation_instance"), strdup(rsc->rsc_id)); rsc 195 lrmd/lrmd.c if (rsc->provider) { rsc 196 lrmd/lrmd.c g_hash_table_insert(cmd->params, strdup("CRM_meta_provider"), strdup(rsc->provider)); rsc 198 lrmd/lrmd.c g_hash_table_insert(cmd->params, strdup("CRM_meta_class"), strdup(rsc->class)); rsc 199 lrmd/lrmd.c g_hash_table_insert(cmd->params, strdup("CRM_meta_type"), strdup(rsc->type)); rsc 236 lrmd/lrmd.c lrmd_rsc_t *rsc; rsc 244 lrmd/lrmd.c rsc = g_hash_table_lookup(rsc_list, cmd->rsc_id); rsc 246 lrmd/lrmd.c CRM_ASSERT(rsc != NULL); rsc 249 lrmd/lrmd.c rsc->recurring_ops = g_list_remove(rsc->recurring_ops, cmd); rsc 250 lrmd/lrmd.c rsc->pending_ops = g_list_append(rsc->pending_ops, cmd); rsc 257 lrmd/lrmd.c mainloop_set_trigger(rsc->work); rsc 266 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 269 lrmd/lrmd.c rsc = cmd->rsc_id ? g_hash_table_lookup(rsc_list, cmd->rsc_id) : NULL; rsc 271 lrmd/lrmd.c if (rsc) { rsc 272 lrmd/lrmd.c mainloop_set_trigger(rsc->work); rsc 279 lrmd/lrmd.c merge_recurring_duplicate(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 289 lrmd/lrmd.c for (gIter = rsc->pending_ops; gIter != NULL; gIter = gIter->next) { rsc 299 lrmd/lrmd.c for (gIter = rsc->recurring_ops; gIter != NULL; gIter = gIter->next) { rsc 313 lrmd/lrmd.c rsc->rsc_id, rsc 314 lrmd/lrmd.c normalize_action_name(rsc, dup->action), rsc 324 lrmd/lrmd.c if (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH)) { rsc 334 lrmd/lrmd.c services_action_kick(rsc->rsc_id, normalize_action_name(rsc, dup->action), dup->interval); rsc 342 lrmd/lrmd.c schedule_lrmd_cmd(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 346 lrmd/lrmd.c CRM_CHECK(rsc != NULL, return); rsc 348 lrmd/lrmd.c crm_trace("Scheduling %s on %s", cmd->action, rsc->rsc_id); rsc 350 lrmd/lrmd.c dup_processed = merge_recurring_duplicate(rsc, cmd); rsc 357 lrmd/lrmd.c if (rsc && safe_str_eq(cmd->action, "stop")) { rsc 358 lrmd/lrmd.c cancel_all_recurring(rsc, NULL); rsc 361 lrmd/lrmd.c rsc->pending_ops = g_list_append(rsc->pending_ops, cmd); rsc 368 lrmd/lrmd.c mainloop_set_trigger(rsc->work); rsc 595 lrmd/lrmd.c cmd_finalize(lrmd_cmd_t * cmd, lrmd_rsc_t * rsc) rsc 598 lrmd/lrmd.c rsc ? rsc->active : NULL, cmd); rsc 600 lrmd/lrmd.c if (rsc && (rsc->active == cmd)) { rsc 601 lrmd/lrmd.c rsc->active = NULL; rsc 602 lrmd/lrmd.c mainloop_set_trigger(rsc->work); rsc 605 lrmd/lrmd.c if (!rsc) { rsc 615 lrmd/lrmd.c if (rsc) { rsc 616 lrmd/lrmd.c rsc->recurring_ops = g_list_remove(rsc->recurring_ops, cmd); rsc 617 lrmd/lrmd.c rsc->pending_ops = g_list_remove(rsc->pending_ops, cmd); rsc 621 lrmd/lrmd.c if (rsc) { rsc 622 lrmd/lrmd.c rsc->pending_ops = g_list_remove(rsc->pending_ops, cmd); rsc 842 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 846 lrmd/lrmd.c while (g_hash_table_iter_next(&iter, (gpointer *) & key, (gpointer *) & rsc)) { rsc 847 lrmd/lrmd.c if (rsc->call_opts & lrmd_opt_drop_recurring) { rsc 850 lrmd/lrmd.c cancel_all_recurring(rsc, client_id); rsc 858 lrmd/lrmd.c lrmd_rsc_t *rsc; rsc 877 lrmd/lrmd.c rsc = cmd->rsc_id ? g_hash_table_lookup(rsc_list, cmd->rsc_id) : NULL; rsc 879 lrmd/lrmd.c if (rsc && safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_SERVICE)) { rsc 880 lrmd/lrmd.c rclass = resources_find_service_class(rsc->class); rsc 881 lrmd/lrmd.c } else if(rsc) { rsc 882 lrmd/lrmd.c rclass = rsc->class; rsc 930 lrmd/lrmd.c if (rsc && safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_NAGIOS)) { rsc 976 lrmd/lrmd.c if(rsc) { rsc 977 lrmd/lrmd.c rsc->active = NULL; rsc 979 lrmd/lrmd.c schedule_lrmd_cmd(rsc, cmd); rsc 1002 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1009 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 1013 lrmd/lrmd.c rsc = g_hash_table_lookup(rsc_list, cmd->rsc_id); rsc 1040 lrmd/lrmd.c if (safe_str_eq(cmd->action, "start") && rsc) { rsc 1041 lrmd/lrmd.c rsc->stonith_started = 1; rsc 1045 lrmd/lrmd.c if (recurring && rsc) { rsc 1052 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1067 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 1071 lrmd/lrmd.c while (g_hash_table_iter_next(&iter, (gpointer *) & key, (gpointer *) & rsc)) { rsc 1072 lrmd/lrmd.c if (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH)) { rsc 1073 lrmd/lrmd.c if (rsc->active) { rsc 1074 lrmd/lrmd.c cmd_list = g_list_append(cmd_list, rsc->active); rsc 1076 lrmd/lrmd.c if (rsc->recurring_ops) { rsc 1077 lrmd/lrmd.c cmd_list = g_list_concat(cmd_list, rsc->recurring_ops); rsc 1079 lrmd/lrmd.c if (rsc->pending_ops) { rsc 1080 lrmd/lrmd.c cmd_list = g_list_concat(cmd_list, rsc->pending_ops); rsc 1082 lrmd/lrmd.c rsc->pending_ops = rsc->recurring_ops = NULL; rsc 1099 lrmd/lrmd.c lrmd_rsc_execute_stonith(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 1110 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1135 lrmd/lrmd.c rsc->provider, rsc->type, device_params); rsc 1143 lrmd/lrmd.c rsc->stonith_started = 0; rsc 1148 lrmd/lrmd.c rc = rsc->stonith_started ? 0 : -ENODEV; rsc 1166 lrmd/lrmd.c rsc->active = cmd; rsc 1178 lrmd/lrmd.c lrmd_rsc_execute_service_lib(lrmd_rsc_t * rsc, lrmd_cmd_t * cmd) rsc 1183 lrmd/lrmd.c CRM_ASSERT(rsc); rsc 1187 lrmd/lrmd.c rsc->rsc_id, cmd->action, rsc->class, rsc->provider, rsc->type); rsc 1191 lrmd/lrmd.c if (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_NAGIOS) rsc 1203 lrmd/lrmd.c action = resources_action_create(rsc->rsc_id, rsc 1213 lrmd/lrmd.c action = resources_action_create(rsc->rsc_id, rsc 1214 lrmd/lrmd.c rsc->class, rsc 1215 lrmd/lrmd.c rsc->provider, rsc 1216 lrmd/lrmd.c rsc->type, rsc 1217 lrmd/lrmd.c normalize_action_name(rsc, cmd->action), rsc 1225 lrmd/lrmd.c crm_err("Failed to create action, action:%s on resource %s", cmd->action, rsc->rsc_id); rsc 1252 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1257 lrmd/lrmd.c lrmd_rsc_execute(lrmd_rsc_t * rsc) rsc 1261 lrmd/lrmd.c CRM_CHECK(rsc != NULL, return FALSE); rsc 1263 lrmd/lrmd.c if (rsc->active) { rsc 1264 lrmd/lrmd.c crm_trace("%s is still active", rsc->rsc_id); rsc 1268 lrmd/lrmd.c if (rsc->pending_ops) { rsc 1269 lrmd/lrmd.c GList *first = rsc->pending_ops; rsc 1278 lrmd/lrmd.c rsc->pending_ops = g_list_remove_link(rsc->pending_ops, first); rsc 1290 lrmd/lrmd.c crm_trace("Nothing further to do for %s", rsc->rsc_id); rsc 1294 lrmd/lrmd.c rsc->active = cmd; /* only one op at a time for a rsc */ rsc 1296 lrmd/lrmd.c rsc->recurring_ops = g_list_append(rsc->recurring_ops, cmd); rsc 1301 lrmd/lrmd.c if (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH)) { rsc 1302 lrmd/lrmd.c lrmd_rsc_execute_stonith(rsc, cmd); rsc 1304 lrmd/lrmd.c lrmd_rsc_execute_service_lib(rsc, cmd); rsc 1320 lrmd/lrmd.c lrmd_rsc_t *rsc = data; rsc 1321 lrmd/lrmd.c int is_stonith = safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH); rsc 1323 lrmd/lrmd.c gIter = rsc->pending_ops; rsc 1335 lrmd/lrmd.c g_list_free(rsc->pending_ops); rsc 1337 lrmd/lrmd.c gIter = rsc->recurring_ops; rsc 1348 lrmd/lrmd.c if (rsc->active != cmd) { rsc 1356 lrmd/lrmd.c services_action_cancel(rsc->rsc_id, normalize_action_name(rsc, cmd->action), cmd->interval); rsc 1362 lrmd/lrmd.c g_list_free(rsc->recurring_ops); rsc 1364 lrmd/lrmd.c free(rsc->rsc_id); rsc 1365 lrmd/lrmd.c free(rsc->class); rsc 1366 lrmd/lrmd.c free(rsc->provider); rsc 1367 lrmd/lrmd.c free(rsc->type); rsc 1368 lrmd/lrmd.c mainloop_destroy_trigger(rsc->work); rsc 1370 lrmd/lrmd.c free(rsc); rsc 1406 lrmd/lrmd.c lrmd_rsc_t *rsc = build_rsc_from_xml(request); rsc 1407 lrmd/lrmd.c lrmd_rsc_t *dup = g_hash_table_lookup(rsc_list, rsc->rsc_id); rsc 1410 lrmd/lrmd.c safe_str_eq(rsc->class, dup->class) && rsc 1411 lrmd/lrmd.c safe_str_eq(rsc->provider, dup->provider) && safe_str_eq(rsc->type, dup->type)) { rsc 1414 lrmd/lrmd.c rsc->rsc_id, g_hash_table_size(rsc_list)); rsc 1416 lrmd/lrmd.c free_rsc(rsc); rsc 1420 lrmd/lrmd.c g_hash_table_replace(rsc_list, rsc->rsc_id, rsc); rsc 1422 lrmd/lrmd.c rsc->rsc_id, g_hash_table_size(rsc_list)); rsc 1436 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 1445 lrmd/lrmd.c if (!(rsc = g_hash_table_lookup(rsc_list, rsc_id))) { rsc 1459 lrmd/lrmd.c if (rsc) { rsc 1460 lrmd/lrmd.c crm_xml_add(reply, F_LRMD_RSC_ID, rsc->rsc_id); rsc 1461 lrmd/lrmd.c crm_xml_add(reply, F_LRMD_CLASS, rsc->class); rsc 1462 lrmd/lrmd.c crm_xml_add(reply, F_LRMD_PROVIDER, rsc->provider); rsc 1463 lrmd/lrmd.c crm_xml_add(reply, F_LRMD_TYPE, rsc->type); rsc 1479 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 1487 lrmd/lrmd.c if (!(rsc = g_hash_table_lookup(rsc_list, rsc_id))) { rsc 1493 lrmd/lrmd.c if (rsc->active) { rsc 1495 lrmd/lrmd.c crm_trace("Operation still in progress: %p", rsc->active); rsc 1507 lrmd/lrmd.c lrmd_rsc_t *rsc = NULL; rsc 1516 lrmd/lrmd.c if (!(rsc = g_hash_table_lookup(rsc_list, rsc_id))) { rsc 1522 lrmd/lrmd.c cmd = create_lrmd_cmd(request, client, rsc); rsc 1527 lrmd/lrmd.c schedule_lrmd_cmd(rsc, cmd); rsc 1536 lrmd/lrmd.c lrmd_rsc_t *rsc = g_hash_table_lookup(rsc_list, rsc_id); rsc 1549 lrmd/lrmd.c if (!rsc) { rsc 1553 lrmd/lrmd.c for (gIter = rsc->pending_ops; gIter != NULL; gIter = gIter->next) { rsc 1558 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1563 lrmd/lrmd.c if (safe_str_eq(rsc->class, PCMK_RESOURCE_CLASS_STONITH)) { rsc 1566 lrmd/lrmd.c for (gIter = rsc->recurring_ops; gIter != NULL; gIter = gIter->next) { rsc 1571 lrmd/lrmd.c if (rsc->active != cmd) { rsc 1572 lrmd/lrmd.c cmd_finalize(cmd, rsc); rsc 1577 lrmd/lrmd.c } else if (services_action_cancel(rsc_id, normalize_action_name(rsc, action), interval) == TRUE) { rsc 1589 lrmd/lrmd.c cancel_all_recurring(lrmd_rsc_t * rsc, const char *client_id) rsc 1600 lrmd/lrmd.c if (rsc->recurring_ops) { rsc 1601 lrmd/lrmd.c cmd_list = g_list_concat(cmd_list, g_list_copy(rsc->recurring_ops)); rsc 1603 lrmd/lrmd.c if (rsc->pending_ops) { rsc 1604 lrmd/lrmd.c cmd_list = g_list_concat(cmd_list, g_list_copy(rsc->pending_ops)); rsc 1621 lrmd/lrmd.c cancel_op(rsc->rsc_id, cmd->action, cmd->interval); rsc 354 lrmd/test.c resource_t *rsc = NULL; rsc 395 lrmd/test.c rsc = pe_find_resource_with_flags(data_set.resources, options.rsc_id, rsc 399 lrmd/test.c if (!rsc) { rsc 408 lrmd/test.c get_rsc_attributes(params, rsc, NULL, &data_set); rsc 409 lrmd/test.c get_meta_attributes(meta, rsc, NULL, &data_set); rsc 38 pengine/allocate.c extern void ReloadRsc(resource_t * rsc, node_t *node, pe_working_set_t * data_set); rsc 39 pengine/allocate.c extern gboolean DeleteRsc(resource_t * rsc, node_t * node, gboolean optional, pe_working_set_t * data_set); rsc 153 pengine/allocate.c check_rsc_parameters(resource_t * rsc, node_t * node, xmlNode * rsc_entry, rsc 171 pengine/allocate.c value = crm_element_value(rsc->xml, attr_list[attr_lpc]); rsc 179 pengine/allocate.c trigger_unfencing(rsc, node, "Device definition changed", NULL, data_set); rsc 183 pengine/allocate.c rsc->id, node->details->uname, attr_list[attr_lpc], rsc 189 pengine/allocate.c stop_action(rsc, node, FALSE); rsc 190 pengine/allocate.c set_bit(rsc->flags, pe_rsc_start_pending); rsc 200 pengine/allocate.c CancelXmlOp(resource_t * rsc, xmlNode * xml_op, node_t * active_node, rsc 221 pengine/allocate.c key = generate_op_key(rsc->id, task, interval); rsc 227 pengine/allocate.c cancel = custom_action(rsc, strdup(key), RSC_CANCEL, active_node, FALSE, TRUE, data_set); rsc 238 pengine/allocate.c custom_action_order(rsc, stop_key(rsc), NULL, rsc, NULL, cancel, pe_order_optional, data_set); rsc 244 pengine/allocate.c check_action_definition(resource_t * rsc, node_t * active_node, xmlNode * xml_op, rsc 268 pengine/allocate.c key = generate_op_key(rsc->id, task, interval); rsc 270 pengine/allocate.c pe_rsc_trace(rsc, "Checking parameters for %s", key); rsc 271 pengine/allocate.c op_match = find_rsc_op_entry(rsc, key); rsc 274 pengine/allocate.c CancelXmlOp(rsc, xml_op, active_node, "orphan", data_set); rsc 279 pengine/allocate.c pe_rsc_debug(rsc, "Orphan action detected: %s on %s", key, active_node->details->uname); rsc 288 pengine/allocate.c rsc->id, task, interval, active_node->details->uname); rsc 301 pengine/allocate.c digest_data = rsc_action_digest_cmp(rsc, xml_op, active_node, data_set); rsc 313 pengine/allocate.c rsc->id, task, interval, active_node->details->uname, rsc 322 pengine/allocate.c key = generate_op_key(rsc->id, task, interval); rsc 324 pengine/allocate.c required = custom_action(rsc, key, task, NULL, TRUE, TRUE, data_set); rsc 328 pengine/allocate.c trigger_unfencing(rsc, active_node, "Device parameters changed", NULL, data_set); rsc 335 pengine/allocate.c trigger_unfencing(rsc, active_node, "Device parameters changed (reload)", NULL, data_set); rsc 337 pengine/allocate.c key = generate_op_key(rsc->id, task, interval); rsc 344 pengine/allocate.c ReloadRsc(rsc, active_node, data_set); rsc 347 pengine/allocate.c op = custom_action(rsc, key, task, active_node, TRUE, TRUE, data_set); rsc 351 pengine/allocate.c } else if (digest_restart && rsc->isolation_wrapper == NULL && (uber_parent(rsc))->isolation_wrapper == NULL) { rsc 352 pengine/allocate.c pe_rsc_trace(rsc, "Reloading '%s' action for resource %s", task, rsc->id); rsc 355 pengine/allocate.c ReloadRsc(rsc, active_node, data_set); rsc 360 pengine/allocate.c pe_rsc_trace(rsc, "Resource %s doesn't know how to reload", rsc->id); rsc 365 pengine/allocate.c required = custom_action(rsc, key, task, NULL, TRUE, TRUE, data_set); rsc 376 pengine/allocate.c check_actions_for(xmlNode * rsc_entry, resource_t * rsc, node_t * node, pe_working_set_t * data_set) rsc 395 pengine/allocate.c if (is_set(rsc->flags, pe_rsc_orphan)) { rsc 396 pengine/allocate.c resource_t *parent = uber_parent(rsc); rsc 400 pengine/allocate.c pe_rsc_trace(rsc, "Skipping param check for %s and deleting: orphan", rsc->id); rsc 401 pengine/allocate.c DeleteRsc(rsc, node, FALSE, data_set); rsc 403 pengine/allocate.c pe_rsc_trace(rsc, "Skipping param check for %s (orphan clone)", rsc->id); rsc 407 pengine/allocate.c } else if (pe_find_node_id(rsc->running_on, node->details->id) == NULL) { rsc 408 pengine/allocate.c if (check_rsc_parameters(rsc, node, rsc_entry, FALSE, data_set)) { rsc 409 pengine/allocate.c DeleteRsc(rsc, node, FALSE, data_set); rsc 411 pengine/allocate.c pe_rsc_trace(rsc, "Skipping param check for %s: no longer active on %s", rsc 412 pengine/allocate.c rsc->id, node->details->uname); rsc 416 pengine/allocate.c pe_rsc_trace(rsc, "Processing %s on %s", rsc->id, node->details->uname); rsc 418 pengine/allocate.c if (check_rsc_parameters(rsc, node, rsc_entry, TRUE, data_set)) { rsc 419 pengine/allocate.c DeleteRsc(rsc, node, FALSE, data_set); rsc 456 pengine/allocate.c (is_set(rsc->flags, pe_rsc_maintenance) || node->details->maintenance)) { rsc 457 pengine/allocate.c CancelXmlOp(rsc, rsc_op, node, "maintenance mode", data_set); rsc 461 pengine/allocate.c did_change = check_action_definition(rsc, node, rsc_op, data_set); rsc 464 pengine/allocate.c if (did_change && pe_get_failcount(node, rsc, NULL, pe_fc_effective, rsc 470 pengine/allocate.c key = generate_op_key(rsc->id, CRM_OP_CLEAR_FAILCOUNT, 0); rsc 472 pengine/allocate.c custom_action(rsc, key, CRM_OP_CLEAR_FAILCOUNT, node, FALSE, TRUE, data_set); rsc 477 pengine/allocate.c rsc->id, node->details->uname, action_clear->uuid); rsc 486 pengine/allocate.c find_rsc_list(GListPtr result, resource_t * rsc, const char *id, gboolean renamed_clones, rsc 495 pengine/allocate.c } else if (rsc == NULL && data_set) { rsc 505 pengine/allocate.c } else if (rsc == NULL) { rsc 510 pengine/allocate.c if (strstr(rsc->id, id)) { rsc 513 pengine/allocate.c } else if (renamed_clones && rsc->clone_name && strstr(rsc->clone_name, id)) { rsc 518 pengine/allocate.c if (strcmp(rsc->id, id) == 0) { rsc 521 pengine/allocate.c } else if (renamed_clones && rsc->clone_name && strcmp(rsc->clone_name, id) == 0) { rsc 527 pengine/allocate.c result = g_list_prepend(result, rsc); rsc 530 pengine/allocate.c if (rsc->children) { rsc 531 pengine/allocate.c gIter = rsc->children; rsc 588 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 590 pengine/allocate.c if (rsc->variant != pe_native) { rsc 593 pengine/allocate.c check_actions_for(rsc_entry, rsc, node, data_set); rsc 622 pengine/allocate.c failcount_clear_action_exists(node_t * node, resource_t * rsc) rsc 625 pengine/allocate.c char *key = generate_op_key(rsc->id, CRM_OP_CLEAR_FAILCOUNT, 0); rsc 626 pengine/allocate.c GListPtr list = find_actions_exact(rsc->actions, key, node); rsc 646 pengine/allocate.c check_migration_threshold(resource_t *rsc, node_t *node, rsc 653 pengine/allocate.c if (rsc->migration_threshold == 0) { rsc 658 pengine/allocate.c if (is_set(rsc->flags, pe_rsc_failure_ignored)) { rsc 663 pengine/allocate.c fail_count = pe_get_failcount(node, rsc, NULL, rsc 671 pengine/allocate.c countdown = QB_MAX(rsc->migration_threshold - fail_count, 0); rsc 674 pengine/allocate.c failed = rsc; rsc 675 pengine/allocate.c if (is_not_set(rsc->flags, pe_rsc_unique)) { rsc 676 pengine/allocate.c failed = uber_parent(rsc); rsc 683 pengine/allocate.c rsc->migration_threshold); rsc 691 pengine/allocate.c common_apply_stickiness(resource_t * rsc, node_t * node, pe_working_set_t * data_set) rsc 693 pengine/allocate.c if (rsc->children) { rsc 694 pengine/allocate.c GListPtr gIter = rsc->children; rsc 704 pengine/allocate.c if (is_set(rsc->flags, pe_rsc_managed) rsc 705 pengine/allocate.c && rsc->stickiness != 0 && g_list_length(rsc->running_on) == 1) { rsc 706 pengine/allocate.c node_t *current = pe_find_node_id(rsc->running_on, node->details->id); rsc 707 pengine/allocate.c node_t *match = pe_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 712 pengine/allocate.c resource_t *sticky_rsc = rsc; rsc 714 pengine/allocate.c resource_location(sticky_rsc, node, rsc->stickiness, "stickiness", data_set); rsc 717 pengine/allocate.c node->details->uname, rsc->stickiness); rsc 722 pengine/allocate.c pe_rsc_debug(rsc, "Ignoring stickiness for %s: the cluster is asymmetric" rsc 723 pengine/allocate.c " and node %s is not explicitly allowed", rsc->id, node->details->uname); rsc 724 pengine/allocate.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 726 pengine/allocate.c crm_err("%s[%s] = %d", rsc->id, nIter->details->uname, nIter->weight); rsc 735 pengine/allocate.c if (failcount_clear_action_exists(node, rsc) == FALSE) { rsc 736 pengine/allocate.c check_migration_threshold(rsc, node, data_set); rsc 741 pengine/allocate.c complex_set_cmds(resource_t * rsc) rsc 743 pengine/allocate.c GListPtr gIter = rsc->children; rsc 745 pengine/allocate.c rsc->cmds = &resource_class_alloc_functions[rsc->variant]; rsc 761 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 763 pengine/allocate.c complex_set_cmds(rsc); rsc 861 pengine/allocate.c resource_t *rsc = (resource_t *) gIter2->data; rsc 863 pengine/allocate.c rsc2node_new(health_strategy, rsc, system_health, NULL, node, data_set); rsc 930 pengine/allocate.c resource_t *rsc = (resource_t *) gIter2->data; rsc 932 pengine/allocate.c rsc->cmds->create_probe(rsc, node, probe_node_complete, FALSE, data_set); rsc 939 pengine/allocate.c rsc_discover_filter(resource_t *rsc, node_t *node) rsc 941 pengine/allocate.c GListPtr gIter = rsc->children; rsc 942 pengine/allocate.c resource_t *top = uber_parent(rsc); rsc 945 pengine/allocate.c if (rsc->exclusive_discover == FALSE && top->exclusive_discover == FALSE) { rsc 954 pengine/allocate.c match = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 995 pengine/allocate.c resource_t *rsc = (resource_t *) gIter2->data; rsc 997 pengine/allocate.c common_apply_stickiness(rsc, node, data_set); rsc 998 pengine/allocate.c rsc_discover_filter(rsc, node); rsc 1015 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1017 pengine/allocate.c rsc->cmds->internal_constraints(rsc, data_set); rsc 1179 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1180 pengine/allocate.c if (rsc->is_remote_node == FALSE) { rsc 1183 pengine/allocate.c pe_rsc_trace(rsc, "Allocating: %s", rsc->id); rsc 1188 pengine/allocate.c rsc->cmds->allocate(rsc, rsc->partial_migration_target, data_set); rsc 1194 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1195 pengine/allocate.c if (rsc->is_remote_node == TRUE) { rsc 1198 pengine/allocate.c pe_rsc_trace(rsc, "Allocating: %s", rsc->id); rsc 1199 pengine/allocate.c rsc->cmds->allocate(rsc, NULL, data_set); rsc 1217 pengine/allocate.c rh_action->rsc, NULL, rh_action, rsc 1228 pengine/allocate.c custom_action_order(lh_action->rsc, NULL, lh_action, rsc 1235 pengine/allocate.c cleanup_orphans(resource_t * rsc, pe_working_set_t * data_set) rsc 1244 pengine/allocate.c if(is_not_set(rsc->flags, pe_rsc_orphan)) { rsc 1252 pengine/allocate.c && pe_get_failcount(node, rsc, NULL, pe_fc_effective, NULL, rsc 1255 pengine/allocate.c char *key = generate_op_key(rsc->id, CRM_OP_CLEAR_FAILCOUNT, 0); rsc 1256 pengine/allocate.c action_t *clear_op = custom_action(rsc, key, CRM_OP_CLEAR_FAILCOUNT, rsc 1261 pengine/allocate.c pe_rsc_info(rsc, rsc 1264 pengine/allocate.c rsc->id, node->details->uname, clear_op->uuid); rsc 1269 pengine/allocate.c custom_action_order(clear_op->rsc, NULL, clear_op, rsc 1270 pengine/allocate.c rsc, stop_key(rsc), NULL, rsc 1353 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1354 pengine/allocate.c cleanup_orphans(rsc, data_set); rsc 1360 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1362 pengine/allocate.c rsc->cmds->create_actions(rsc, data_set); rsc 1370 pengine/allocate.c is_managed(const resource_t * rsc) rsc 1372 pengine/allocate.c GListPtr gIter = rsc->children; rsc 1374 pengine/allocate.c if (is_set(rsc->flags, pe_rsc_managed)) { rsc 1396 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 1398 pengine/allocate.c if (is_managed(rsc)) { rsc 1651 pengine/allocate.c find_actions_by_task(GListPtr actions, resource_t * rsc, const char *original_key) rsc 1664 pengine/allocate.c key = generate_op_key(rsc->id, task, interval); rsc 1683 pengine/allocate.c rsc_order_then(action_t * lh_action, resource_t * rsc, order_constraint_t * order) rsc 1690 pengine/allocate.c CRM_CHECK(rsc != NULL, return); rsc 1699 pengine/allocate.c } else if (rsc != NULL) { rsc 1700 pengine/allocate.c rh_actions = find_actions_by_task(rsc->actions, rsc, order->rh_action_task); rsc 1704 pengine/allocate.c pe_rsc_trace(rsc, "No RH-Side (%s/%s) found for constraint..." rsc 1705 pengine/allocate.c " ignoring", rsc->id, order->rh_action_task); rsc 1707 pengine/allocate.c pe_rsc_trace(rsc, "LH-Side was: %s", lh_action->uuid); rsc 1712 pengine/allocate.c if (lh_action && lh_action->rsc == rsc && is_set(lh_action->flags, pe_action_dangle)) { rsc 1713 pengine/allocate.c pe_rsc_trace(rsc, "Detected dangling operation %s -> %s", lh_action->uuid, rsc 1789 pengine/allocate.c rh_rsc = order->rh_action->rsc; rsc 1830 pengine/allocate.c CRM_ASSERT(action->rsc); rsc 1998 pengine/allocate.c if (action->rsc == NULL) { rsc 2126 pengine/allocate.c if (action->rsc == NULL) { rsc 2134 pengine/allocate.c if (action->rsc->is_remote_node && rsc 2137 pengine/allocate.c custom_action_order(action->rsc, rsc 2140 pengine/allocate.c action->rsc, rsc 2141 pengine/allocate.c generate_op_key(action->rsc->id, RSC_START, 0), rsc 2201 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 2250 pengine/allocate.c key = start_key(rsc); rsc 2251 pengine/allocate.c actions = find_actions(rsc->actions, key, NULL); rsc 2260 pengine/allocate.c crm_err("No start action for %s", rsc->id); rsc 2264 pengine/allocate.c key = generate_op_key(rsc->id, CRMD_ACTION_STATUS, 0); rsc 2265 pengine/allocate.c probes = find_actions(rsc->actions, key, NULL); rsc 2273 pengine/allocate.c resource_t *first_rsc = first->rsc; rsc 2280 pengine/allocate.c crm_trace("Testing %s -> %s (%p) for %s", first->uuid, before->action->uuid, before->action->rsc, start->uuid); rsc 2282 pengine/allocate.c CRM_ASSERT(before->action->rsc); rsc 2283 pengine/allocate.c first_rsc = before->action->rsc; rsc 2294 pengine/allocate.c } else if(uber_parent(first_rsc) == uber_parent(start->rsc)) { rsc 2333 pengine/allocate.c resource_t *rsc = order->lh_rsc; rsc 2337 pengine/allocate.c if (rsc != NULL) { rsc 2339 pengine/allocate.c rsc_order_first(rsc, order, data_set); rsc 2343 pengine/allocate.c rsc = order->rh_rsc; rsc 2344 pengine/allocate.c if (rsc != NULL) { rsc 2346 pengine/allocate.c rsc_order_then(order->lh_action, rsc, order); rsc 2372 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 2374 pengine/allocate.c LogActions(rsc, data_set, FALSE); rsc 2429 pengine/allocate.c resource_t *rsc = (resource_t *) gIter->data; rsc 2431 pengine/allocate.c pe_rsc_trace(rsc, "processing actions for rsc=%s", rsc->id); rsc 2432 pengine/allocate.c rsc->cmds->expand(rsc, data_set); rsc 2447 pengine/allocate.c if (action->rsc rsc 2450 pengine/allocate.c && is_not_set(action->rsc->flags, pe_rsc_maintenance) rsc 2463 pengine/allocate.c action->node->details->uname, action->rsc->id, rsc 2464 pengine/allocate.c is_not_set(action->rsc->flags, pe_rsc_managed) ? " unmanaged" : " blocked", rsc 2465 pengine/allocate.c is_set(action->rsc->flags, pe_rsc_failed) ? " failed" : "", rsc 2489 pengine/allocate.c if (action->rsc != NULL) { rsc 46 pengine/allocate.h void (*append_meta) (resource_t * rsc, xmlNode * xml); rsc 49 pengine/allocate.h extern GHashTable *rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 52 pengine/allocate.h extern GHashTable *clone_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 55 pengine/allocate.h extern GHashTable *container_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 58 pengine/allocate.h extern GHashTable *master_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 61 pengine/allocate.h extern GHashTable *native_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 64 pengine/allocate.h extern GHashTable *group_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, rsc 67 pengine/allocate.h extern node_t *native_color(resource_t * rsc, node_t * preferred, pe_working_set_t * data_set); rsc 68 pengine/allocate.h extern void native_create_actions(resource_t * rsc, pe_working_set_t * data_set); rsc 69 pengine/allocate.h extern void native_internal_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 78 pengine/allocate.h extern void native_rsc_location(resource_t * rsc, rsc_to_node_t * constraint); rsc 79 pengine/allocate.h extern void native_expand(resource_t * rsc, pe_working_set_t * data_set); rsc 80 pengine/allocate.h extern void native_dump(resource_t * rsc, const char *pre_text, gboolean details); rsc 81 pengine/allocate.h extern gboolean native_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 83 pengine/allocate.h extern void native_append_meta(resource_t * rsc, xmlNode * xml); rsc 85 pengine/allocate.h extern int group_num_allowed_nodes(resource_t * rsc); rsc 86 pengine/allocate.h extern node_t *group_color(resource_t * rsc, node_t * preferred, pe_working_set_t * data_set); rsc 87 pengine/allocate.h extern void group_create_actions(resource_t * rsc, pe_working_set_t * data_set); rsc 88 pengine/allocate.h extern void group_internal_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 94 pengine/allocate.h extern void group_rsc_location(resource_t * rsc, rsc_to_node_t * constraint); rsc 95 pengine/allocate.h extern void group_expand(resource_t * rsc, pe_working_set_t * data_set); rsc 96 pengine/allocate.h extern void group_append_meta(resource_t * rsc, xmlNode * xml); rsc 98 pengine/allocate.h extern int container_num_allowed_nodes(resource_t * rsc); rsc 99 pengine/allocate.h extern node_t *container_color(resource_t * rsc, node_t * preferred, pe_working_set_t * data_set); rsc 100 pengine/allocate.h extern void container_create_actions(resource_t * rsc, pe_working_set_t * data_set); rsc 101 pengine/allocate.h extern void container_internal_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 106 pengine/allocate.h extern void container_rsc_location(resource_t * rsc, rsc_to_node_t * constraint); rsc 108 pengine/allocate.h extern void container_expand(resource_t * rsc, pe_working_set_t * data_set); rsc 109 pengine/allocate.h extern gboolean container_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 111 pengine/allocate.h extern void container_append_meta(resource_t * rsc, xmlNode * xml); rsc 113 pengine/allocate.h extern int clone_num_allowed_nodes(resource_t * rsc); rsc 114 pengine/allocate.h extern node_t *clone_color(resource_t * rsc, node_t * preferred, pe_working_set_t * data_set); rsc 115 pengine/allocate.h extern void clone_create_actions(resource_t * rsc, pe_working_set_t * data_set); rsc 116 pengine/allocate.h extern void clone_internal_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 121 pengine/allocate.h extern void clone_rsc_location(resource_t * rsc, rsc_to_node_t * constraint); rsc 123 pengine/allocate.h extern void clone_expand(resource_t * rsc, pe_working_set_t * data_set); rsc 124 pengine/allocate.h extern gboolean clone_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 126 pengine/allocate.h extern void clone_append_meta(resource_t * rsc, xmlNode * xml); rsc 128 pengine/allocate.h extern gboolean master_unpack(resource_t * rsc, pe_working_set_t * data_set); rsc 129 pengine/allocate.h extern node_t *master_color(resource_t * rsc, node_t * preferred, pe_working_set_t * data_set); rsc 130 pengine/allocate.h extern void master_create_actions(resource_t * rsc, pe_working_set_t * data_set); rsc 131 pengine/allocate.h extern void master_internal_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 134 pengine/allocate.h extern void master_append_meta(resource_t * rsc, xmlNode * xml); rsc 156 pengine/allocate.h void LogActions(resource_t * rsc, pe_working_set_t * data_set, gboolean terminal); rsc 157 pengine/allocate.h void container_LogActions(resource_t * rsc, pe_working_set_t * data_set, gboolean terminal); rsc 161 pengine/allocate.h extern void rsc_stonith_ordering(resource_t * rsc, action_t * stonith_op, rsc 177 pengine/allocate.h void complex_set_cmds(resource_t * rsc); rsc 179 pengine/allocate.h void master_promotion_constraints(resource_t * rsc, pe_working_set_t * data_set); rsc 181 pengine/allocate.h resource_t * rsc, GListPtr children, notify_data_t **start_notify, notify_data_t **stop_notify, pe_working_set_t * data_set); rsc 31 pengine/clone.c static void append_parent_colocation(resource_t * rsc, resource_t * child, gboolean all); rsc 46 pengine/clone.c parent_node_instance(const resource_t * rsc, node_t * node) rsc 50 pengine/clone.c if (node != NULL && rsc->parent) { rsc 51 pengine/clone.c ret = pe_hash_table_lookup(rsc->parent->allowed_nodes, node->details->id); rsc 53 pengine/clone.c ret = pe_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 59 pengine/clone.c did_fail(const resource_t * rsc) rsc 61 pengine/clone.c GListPtr gIter = rsc->children; rsc 63 pengine/clone.c if (is_set(rsc->flags, pe_rsc_failed)) { rsc 364 pengine/clone.c can_run_instance(resource_t * rsc, node_t * node, int limit) rsc 368 pengine/clone.c if (node == NULL && rsc->allowed_nodes) { rsc 370 pengine/clone.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 372 pengine/clone.c can_run_instance(rsc, local_node, limit); rsc 380 pengine/clone.c } else if (is_set(rsc->flags, pe_rsc_orphan)) { rsc 384 pengine/clone.c local_node = parent_node_instance(rsc, node); rsc 387 pengine/clone.c crm_warn("%s cannot run on %s: node not allowed", rsc->id, node->details->uname); rsc 391 pengine/clone.c common_update_score(rsc, node->details->id, local_node->weight); rsc 392 pengine/clone.c pe_rsc_trace(rsc, "%s cannot run on %s: Parent node weight doesn't allow it.", rsc 393 pengine/clone.c rsc->id, node->details->uname); rsc 396 pengine/clone.c pe_rsc_trace(rsc, "%s can run on %s (already running %d)", rsc 397 pengine/clone.c rsc->id, node->details->uname, local_node->count); rsc 401 pengine/clone.c pe_rsc_trace(rsc, "%s cannot run on %s: node full (%d >= %d)", rsc 402 pengine/clone.c rsc->id, node->details->uname, local_node->count, limit); rsc 407 pengine/clone.c common_update_score(rsc, node->details->id, -INFINITY); rsc 413 pengine/clone.c color_instance(resource_t * rsc, node_t * prefer, gboolean all_coloc, int limit, pe_working_set_t * data_set) rsc 418 pengine/clone.c CRM_ASSERT(rsc); rsc 419 pengine/clone.c pe_rsc_trace(rsc, "Checking allocation of %s (preferring %s, using %s parent colocations)", rsc 420 pengine/clone.c rsc->id, (prefer? prefer->details->uname: "none"), rsc 423 pengine/clone.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 424 pengine/clone.c return rsc->fns->location(rsc, NULL, FALSE); rsc 426 pengine/clone.c } else if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 427 pengine/clone.c pe_rsc_debug(rsc, "Dependency loop detected involving %s", rsc->id); rsc 434 pengine/clone.c append_parent_colocation(rsc->parent, rsc, all_coloc); rsc 437 pengine/clone.c node_t *local_prefer = g_hash_table_lookup(rsc->allowed_nodes, prefer->details->id); rsc 440 pengine/clone.c pe_rsc_trace(rsc, "Not pre-allocating %s to %s - unavailable", rsc->id, rsc 446 pengine/clone.c can_run_instance(rsc, NULL, limit); rsc 448 pengine/clone.c backup = node_hash_dup(rsc->allowed_nodes); rsc 449 pengine/clone.c chosen = rsc->cmds->allocate(rsc, prefer, data_set); rsc 451 pengine/clone.c node_t *local_node = parent_node_instance(rsc, chosen); rsc 455 pengine/clone.c g_hash_table_destroy(rsc->allowed_nodes); rsc 456 pengine/clone.c rsc->allowed_nodes = backup; rsc 457 pengine/clone.c native_deallocate(rsc); rsc 464 pengine/clone.c } else if (is_set(rsc->flags, pe_rsc_managed)) { rsc 467 pengine/clone.c chosen->details->id, rsc->parent->id, rsc 468 pengine/clone.c g_hash_table_size(rsc->parent->allowed_nodes)); rsc 479 pengine/clone.c append_parent_colocation(resource_t * rsc, resource_t * child, gboolean all) rsc 484 pengine/clone.c gIter = rsc->rsc_cons; rsc 493 pengine/clone.c gIter = rsc->rsc_cons_lhs; rsc 505 pengine/clone.c distribute_children(resource_t *rsc, GListPtr children, GListPtr nodes, rsc 509 pengine/clone.c distribute_children(resource_t *rsc, GListPtr children, GListPtr nodes, rsc 533 pengine/clone.c pe_rsc_debug(rsc, "Allocating up to %d %s instances to a possible %d nodes (at most %d per host, %d optimal)", rsc 534 pengine/clone.c max, rsc->id, available_nodes, per_host_max, loop_max); rsc 545 pengine/clone.c pe_rsc_trace(rsc, "Checking pre-allocation of %s to %s (%d remaining of %d)", rsc 549 pengine/clone.c pe_rsc_trace(rsc, "Not pre-allocating because %s can not run %s", rsc 553 pengine/clone.c pe_rsc_trace(rsc, rsc 558 pengine/clone.c pe_rsc_trace(rsc, "Pre-allocated %s to %s", child->id, rsc 565 pengine/clone.c pe_rsc_trace(rsc, "Done pre-allocating (%d of %d)", allocated, max); rsc 582 pengine/clone.c pe_rsc_debug(rsc, "Child %s not allocated - limit reached %d %d", child->id, allocated, max); rsc 591 pengine/clone.c pe_rsc_debug(rsc, "Allocated %d %s instances of a possible %d", rsc 592 pengine/clone.c allocated, rsc->id, max); rsc 597 pengine/clone.c clone_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 603 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 605 pengine/clone.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 608 pengine/clone.c } else if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 609 pengine/clone.c pe_rsc_debug(rsc, "Dependency loop detected involving %s", rsc->id); rsc 613 pengine/clone.c set_bit(rsc->flags, pe_rsc_allocating); rsc 614 pengine/clone.c pe_rsc_trace(rsc, "Processing %s", rsc->id); rsc 619 pengine/clone.c for (GListPtr gIter = rsc->rsc_cons; gIter != NULL; gIter = gIter->next) { rsc 622 pengine/clone.c pe_rsc_trace(rsc, "%s: Coloring %s first", rsc->id, constraint->rsc_rh->id); rsc 626 pengine/clone.c for (GListPtr gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { rsc 629 pengine/clone.c rsc->allowed_nodes = rsc 630 pengine/clone.c constraint->rsc_lh->cmds->merge_weights(constraint->rsc_lh, rsc->id, rsc->allowed_nodes, rsc 636 pengine/clone.c dump_node_scores(show_scores ? 0 : scores_log_level, rsc, __FUNCTION__, rsc->allowed_nodes); rsc 638 pengine/clone.c nodes = g_hash_table_get_values(rsc->allowed_nodes); rsc 640 pengine/clone.c rsc->children = g_list_sort_with_data(rsc->children, sort_clone_instance, data_set); rsc 641 pengine/clone.c distribute_children(rsc, rsc->children, nodes, clone_data->clone_max, clone_data->clone_node_max, data_set); rsc 644 pengine/clone.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 645 pengine/clone.c clear_bit(rsc->flags, pe_rsc_allocating); rsc 647 pengine/clone.c pe_rsc_trace(rsc, "Done allocating %s", rsc->id); rsc 652 pengine/clone.c clone_update_pseudo_status(resource_t * rsc, gboolean * stopping, gboolean * starting, rsc 657 pengine/clone.c if (rsc->children) { rsc 659 pengine/clone.c gIter = rsc->children; rsc 673 pengine/clone.c if (rsc->running_on) { rsc 677 pengine/clone.c gIter = rsc->actions; rsc 685 pengine/clone.c pe_rsc_trace(rsc, "Skipping optional: %s", action->uuid); rsc 690 pengine/clone.c pe_rsc_trace(rsc, "Skipping unrunnable: %s", action->uuid); rsc 694 pengine/clone.c pe_rsc_trace(rsc, "Stopping due to: %s", action->uuid); rsc 699 pengine/clone.c pe_rsc_trace(rsc, "Skipping pseudo-op: %s run=%d, pseudo=%d", rsc 703 pengine/clone.c pe_rsc_trace(rsc, "Starting due to: %s", action->uuid); rsc 704 pengine/clone.c pe_rsc_trace(rsc, "%s run=%d, pseudo=%d", rsc 714 pengine/clone.c find_rsc_action(resource_t * rsc, const char *key, gboolean active_only, GListPtr * list) rsc 720 pengine/clone.c possible = find_actions(rsc->actions, key, NULL); rsc 762 pengine/clone.c child_ordering_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 773 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 779 pengine/clone.c rsc->children = g_list_sort(rsc->children, sort_rsc_id); rsc 781 pengine/clone.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 811 pengine/clone.c clone_create_actions(resource_t * rsc, pe_working_set_t * data_set) rsc 815 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 816 pengine/clone.c clone_create_pseudo_actions(rsc, rsc->children, &clone_data->start_notify, &clone_data->stop_notify,data_set); rsc 817 pengine/clone.c child_ordering_constraints(rsc, data_set); rsc 822 pengine/clone.c resource_t * rsc, GListPtr children, notify_data_t **start_notify, notify_data_t **stop_notify, pe_working_set_t * data_set) rsc 835 pengine/clone.c pe_rsc_trace(rsc, "Creating actions for %s", rsc->id); rsc 853 pengine/clone.c start = create_pseudo_resource_op(rsc, RSC_START, !child_starting, TRUE, data_set); rsc 854 pengine/clone.c started = create_pseudo_resource_op(rsc, RSC_STARTED, !child_starting, FALSE, data_set); rsc 862 pengine/clone.c *start_notify = create_notification_boundaries(rsc, RSC_START, start, started, data_set); rsc 866 pengine/clone.c stop = create_pseudo_resource_op(rsc, RSC_STOP, !child_stopping, TRUE, data_set); rsc 867 pengine/clone.c stopped = create_pseudo_resource_op(rsc, RSC_STOPPED, !child_stopping, TRUE, data_set); rsc 874 pengine/clone.c *stop_notify = create_notification_boundaries(rsc, RSC_STOP, stop, stopped, data_set); rsc 883 pengine/clone.c clone_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 889 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 891 pengine/clone.c pe_rsc_trace(rsc, "Internal constraints for %s", rsc->id); rsc 892 pengine/clone.c new_rsc_order(rsc, RSC_STOPPED, rsc, RSC_START, pe_order_optional, data_set); rsc 893 pengine/clone.c new_rsc_order(rsc, RSC_START, rsc, RSC_STARTED, pe_order_runnable_left, data_set); rsc 894 pengine/clone.c new_rsc_order(rsc, RSC_STOP, rsc, RSC_STOPPED, pe_order_runnable_left, data_set); rsc 896 pengine/clone.c if (rsc->variant == pe_master) { rsc 897 pengine/clone.c new_rsc_order(rsc, RSC_DEMOTED, rsc, RSC_STOP, pe_order_optional, data_set); rsc 898 pengine/clone.c new_rsc_order(rsc, RSC_STARTED, rsc, RSC_PROMOTE, pe_order_runnable_left, data_set); rsc 903 pengine/clone.c rsc->children = g_list_sort(rsc->children, sort_rsc_id); rsc 905 pengine/clone.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 910 pengine/clone.c order_start_start(rsc, child_rsc, pe_order_runnable_left | pe_order_implies_first_printed); rsc 911 pengine/clone.c new_rsc_order(child_rsc, RSC_START, rsc, RSC_STARTED, pe_order_implies_then_printed, rsc 917 pengine/clone.c order_stop_stop(rsc, child_rsc, pe_order_implies_first_printed); rsc 918 pengine/clone.c new_rsc_order(child_rsc, RSC_STOP, rsc, RSC_STOPPED, pe_order_implies_then_printed, rsc 929 pengine/clone.c assign_node(resource_t * rsc, node_t * node, gboolean force) rsc 933 pengine/clone.c if (rsc->children) { rsc 935 pengine/clone.c for (GListPtr gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 944 pengine/clone.c if (rsc->allocated_to != NULL) { rsc 948 pengine/clone.c native_assign_node(rsc, NULL, node, force); rsc 982 pengine/clone.c find_compatible_child(resource_t * local_child, resource_t * rsc, enum rsc_role_e filter, gboolean current) rsc 991 pengine/clone.c return find_compatible_child_by_node(local_child, local_node, rsc, filter, current); rsc 1001 pengine/clone.c pair = find_compatible_child_by_node(local_child, node, rsc, filter, current); rsc 1007 pengine/clone.c pe_rsc_debug(rsc, "Can't pair %s with %s", local_child->id, rsc->id); rsc 1106 pengine/clone.c resource_t *child = (resource_t *) action->rsc->children->data; rsc 1156 pengine/clone.c pe_rsc_trace(action->rsc, "Checking for %s in %s on %s (%s)", task_s, child->id, rsc 1165 pengine/clone.c flags = crm_clear_bit(__FUNCTION__, __LINE__, action->rsc->id, flags, pe_action_optional); rsc 1175 pengine/clone.c pe_rsc_trace(action->rsc, "%s is not runnable because no children are", action->uuid); rsc 1176 pengine/clone.c flags = crm_clear_bit(__FUNCTION__, __LINE__, action->rsc->id, flags, pe_action_runnable); rsc 1188 pengine/clone.c return summary_action_flags(action, action->rsc->children, node); rsc 1192 pengine/clone.c clone_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) rsc 1194 pengine/clone.c GListPtr gIter = rsc->children; rsc 1196 pengine/clone.c pe_rsc_trace(rsc, "Processing location constraint %s for %s", constraint->id, rsc->id); rsc 1198 pengine/clone.c native_rsc_location(rsc, constraint); rsc 1208 pengine/clone.c clone_expand(resource_t * rsc, pe_working_set_t * data_set) rsc 1213 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 1215 pengine/clone.c gIter = rsc->actions; rsc 1219 pengine/clone.c rsc->cmds->action_flags(op, NULL); rsc 1223 pengine/clone.c collect_notification_data(rsc, TRUE, TRUE, clone_data->start_notify); rsc 1224 pengine/clone.c expand_notification_data(rsc, clone_data->start_notify, data_set); rsc 1225 pengine/clone.c create_notifications(rsc, clone_data->start_notify, data_set); rsc 1229 pengine/clone.c collect_notification_data(rsc, TRUE, TRUE, clone_data->stop_notify); rsc 1230 pengine/clone.c expand_notification_data(rsc, clone_data->stop_notify, data_set); rsc 1231 pengine/clone.c create_notifications(rsc, clone_data->stop_notify, data_set); rsc 1235 pengine/clone.c collect_notification_data(rsc, TRUE, TRUE, clone_data->promote_notify); rsc 1236 pengine/clone.c expand_notification_data(rsc, clone_data->promote_notify, data_set); rsc 1237 pengine/clone.c create_notifications(rsc, clone_data->promote_notify, data_set); rsc 1241 pengine/clone.c collect_notification_data(rsc, TRUE, TRUE, clone_data->demote_notify); rsc 1242 pengine/clone.c expand_notification_data(rsc, clone_data->demote_notify, data_set); rsc 1243 pengine/clone.c create_notifications(rsc, clone_data->demote_notify, data_set); rsc 1248 pengine/clone.c gIter = rsc->children; rsc 1255 pengine/clone.c native_expand(rsc, data_set); rsc 1269 pengine/clone.c rsc_known_on(resource_t * rsc, GListPtr * list) rsc 1275 pengine/clone.c if (rsc->children) { rsc 1277 pengine/clone.c gIter = rsc->children; rsc 1284 pengine/clone.c } else if (rsc->known_on) { rsc 1285 pengine/clone.c result = g_hash_table_get_values(rsc->known_on); rsc 1310 pengine/clone.c find_instance_on(resource_t * rsc, node_t * node) rsc 1314 pengine/clone.c gIter = rsc->children; rsc 1338 pengine/clone.c clone_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 1345 pengine/clone.c CRM_ASSERT(rsc); rsc 1346 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 1348 pengine/clone.c rsc->children = g_list_sort(rsc->children, sort_rsc_id); rsc 1349 pengine/clone.c if (rsc->children == NULL) { rsc 1350 pengine/clone.c pe_warn("Clone %s has no children", rsc->id); rsc 1354 pengine/clone.c if (rsc->exclusive_discover) { rsc 1355 pengine/clone.c node_t *allowed = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 1364 pengine/clone.c g_hash_table_remove(rsc->allowed_nodes, node->details->id); rsc 1371 pengine/clone.c if (is_not_set(rsc->flags, pe_rsc_unique) rsc 1377 pengine/clone.c child = find_instance_on(rsc, node); rsc 1383 pengine/clone.c gIter = rsc->children; rsc 1400 pengine/clone.c CRM_ASSERT(rsc->children); rsc 1401 pengine/clone.c child = rsc->children->data; rsc 1405 pengine/clone.c gIter = rsc->children; rsc 1413 pengine/clone.c if (any_created && is_not_set(rsc->flags, pe_rsc_unique) rsc 1424 pengine/clone.c clone_append_meta(resource_t * rsc, xmlNode * xml) rsc 1429 pengine/clone.c get_clone_variant_data(clone_data, rsc); rsc 1432 pengine/clone.c crm_xml_add(xml, name, is_set(rsc->flags, pe_rsc_unique) ? "true" : "false"); rsc 1436 pengine/clone.c crm_xml_add(xml, name, is_set(rsc->flags, pe_rsc_notify) ? "true" : "false"); rsc 1449 pengine/clone.c clone_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 1452 pengine/clone.c return rsc_merge_weights(rsc, rhs, nodes, attr, factor, flags); rsc 55 pengine/constraints.c static rsc_to_node_t *generate_location_rule(resource_t * rsc, xmlNode * rule_xml, rsc 232 pengine/constraints.c resource_t ** rsc, tag_t ** tag) rsc 236 pengine/constraints.c if (rsc) { rsc 237 pengine/constraints.c *rsc = NULL; rsc 238 pengine/constraints.c *rsc = pe_find_constraint_resource(data_set->resources, id); rsc 239 pengine/constraints.c if (*rsc) { rsc 477 pengine/constraints.c resource_t *rsc = NULL; rsc 485 pengine/constraints.c if (valid_resource_or_tag(data_set, id, &rsc, &tag) == FALSE) { rsc 490 pengine/constraints.c } else if (rsc) { rsc 575 pengine/constraints.c resource_t *rsc = NULL; rsc 601 pengine/constraints.c if (valid_resource_or_tag(data_set, id, &rsc, &tag) == FALSE) { rsc 625 pengine/constraints.c } else if (rsc && convert_rsc) { rsc 959 pengine/constraints.c get_node_score(const char *rule, const char *score, gboolean raw, node_t * node, resource_t *rsc) rsc 970 pengine/constraints.c const char *attr_score = pe_node_attribute_calculated(node, score, rsc); rsc 987 pengine/constraints.c generate_location_rule(resource_t * rsc, xmlNode * rule_xml, const char *discovery, pe_working_set_t * data_set, rsc 1028 pengine/constraints.c location_rule = rsc2node_new(rule_id, rsc, 0, discovery, NULL, data_set); rsc 1062 pengine/constraints.c node->weight = get_node_score(rule_id, score, raw_score, node, rsc); rsc 1075 pengine/constraints.c score_f = get_node_score(rule_id, score, raw_score, node, rsc); rsc 1475 pengine/constraints.c lh_rsc = lh_action->rsc; rsc 1478 pengine/constraints.c rh_rsc = rh_action->rsc; rsc 1515 pengine/constraints.c order->lh_rsc = lh_action->rsc; rsc 1519 pengine/constraints.c order->rh_rsc = rh_action->rsc; rsc 1568 pengine/constraints.c unpack_order_set(xmlNode * set, enum pe_order_kind kind, resource_t ** rsc, rsc 1622 pengine/constraints.c *rsc = resource; rsc 1636 pengine/constraints.c *rsc = NULL; rsc 2029 pengine/constraints.c resource_t *rsc = NULL; rsc 2080 pengine/constraints.c if (unpack_order_set(set, kind, &rsc, &set_begin, &set_end, rsc 42 pengine/container.c void distribute_children(resource_t *rsc, GListPtr children, GListPtr nodes, rsc 45 pengine/container.c static GListPtr get_container_list(resource_t *rsc) rsc 50 pengine/container.c if(rsc->variant == pe_container) { rsc 51 pengine/container.c get_container_variant_data(data, rsc); rsc 60 pengine/container.c static GListPtr get_containers_or_children(resource_t *rsc) rsc 65 pengine/container.c if(rsc->variant == pe_container) { rsc 66 pengine/container.c get_container_variant_data(data, rsc); rsc 73 pengine/container.c return rsc->children; rsc 78 pengine/container.c migration_threshold_reached(resource_t *rsc, node_t *node, rsc 84 pengine/container.c if (rsc->migration_threshold == 0) { rsc 89 pengine/container.c if (is_set(rsc->flags, pe_rsc_failure_ignored)) { rsc 94 pengine/container.c fail_count = pe_get_failcount(node, rsc, NULL, rsc 102 pengine/container.c countdown = QB_MAX(rsc->migration_threshold - fail_count, 0); rsc 106 pengine/container.c rsc->id, node->details->uname, fail_count, rsc 107 pengine/container.c rsc->migration_threshold); rsc 112 pengine/container.c rsc->id, countdown, node->details->uname); rsc 117 pengine/container.c container_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 123 pengine/container.c CRM_CHECK(rsc != NULL, return NULL); rsc 125 pengine/container.c get_container_variant_data(container_data, rsc); rsc 127 pengine/container.c set_bit(rsc->flags, pe_rsc_allocating); rsc 128 pengine/container.c containers = get_container_list(rsc); rsc 130 pengine/container.c dump_node_scores(show_scores ? 0 : scores_log_level, rsc, __FUNCTION__, rsc->allowed_nodes); rsc 132 pengine/container.c nodes = g_hash_table_get_values(rsc->allowed_nodes); rsc 135 pengine/container.c distribute_children(rsc, containers, nodes, rsc 195 pengine/container.c clear_bit(rsc->flags, pe_rsc_allocating); rsc 196 pengine/container.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 202 pengine/container.c container_create_actions(resource_t * rsc, pe_working_set_t * data_set) rsc 208 pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 210 pengine/container.c containers = get_container_list(rsc); rsc 211 pengine/container.c get_container_variant_data(container_data, rsc); rsc 227 pengine/container.c clone_create_pseudo_actions(rsc, containers, NULL, NULL, data_set); rsc 234 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_PROMOTE, TRUE, TRUE, data_set); rsc 235 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_PROMOTED, TRUE, TRUE, data_set); rsc 239 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_DEMOTE, TRUE, TRUE, data_set); rsc 240 pengine/container.c action = create_pseudo_resource_op(rsc, RSC_DEMOTED, TRUE, TRUE, data_set); rsc 249 pengine/container.c container_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 253 pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 255 pengine/container.c get_container_variant_data(container_data, rsc); rsc 258 pengine/container.c new_rsc_order(rsc, RSC_START, container_data->child, RSC_START, pe_order_implies_first_printed, data_set); rsc 259 pengine/container.c new_rsc_order(rsc, RSC_STOP, container_data->child, RSC_STOP, pe_order_implies_first_printed, data_set); rsc 262 pengine/container.c new_rsc_order(container_data->child, RSC_STARTED, rsc, RSC_STARTED, pe_order_implies_then_printed, data_set); rsc 263 pengine/container.c new_rsc_order(container_data->child, RSC_STOPPED, rsc, RSC_STOPPED, pe_order_implies_then_printed, data_set); rsc 265 pengine/container.c new_rsc_order(container_data->child, RSC_START, rsc, RSC_STARTED, pe_order_implies_then_printed, data_set); rsc 266 pengine/container.c new_rsc_order(container_data->child, RSC_STOP, rsc, RSC_STOPPED, pe_order_implies_then_printed, data_set); rsc 278 pengine/container.c order_start_start(rsc, tuple->docker, pe_order_runnable_left | pe_order_implies_first_printed); rsc 281 pengine/container.c order_stop_stop(rsc, tuple->child, pe_order_implies_first_printed); rsc 283 pengine/container.c order_stop_stop(rsc, tuple->docker, pe_order_implies_first_printed); rsc 284 pengine/container.c new_rsc_order(tuple->docker, RSC_START, rsc, RSC_STARTED, pe_order_implies_then_printed, data_set); rsc 285 pengine/container.c new_rsc_order(tuple->docker, RSC_STOP, rsc, RSC_STOPPED, pe_order_implies_then_printed, data_set); rsc 319 pengine/container.c master_promotion_constraints(rsc, data_set); rsc 322 pengine/container.c new_rsc_order(container_data->child, RSC_DEMOTED, rsc, RSC_DEMOTED, pe_order_implies_then_printed, data_set); rsc 325 pengine/container.c new_rsc_order(rsc, RSC_DEMOTE, container_data->child, RSC_DEMOTE, pe_order_implies_first_printed, data_set); rsc 328 pengine/container.c new_rsc_order(container_data->child, RSC_PROMOTED, rsc, RSC_PROMOTED, pe_order_implies_then_printed, data_set); rsc 331 pengine/container.c new_rsc_order(rsc, RSC_PROMOTE, container_data->child, RSC_PROMOTE, pe_order_implies_first_printed, data_set); rsc 344 pengine/container.c find_compatible_tuple_by_node(resource_t * rsc_lh, node_t * candidate, resource_t * rsc, rsc 350 pengine/container.c get_container_variant_data(container_data, rsc); rsc 353 pengine/container.c rsc_lh->id, rsc->id, candidate->details->uname); rsc 365 pengine/container.c crm_trace("Can't pair %s with %s", rsc_lh->id, rsc->id); rsc 370 pengine/container.c find_compatible_tuple(resource_t *rsc_lh, resource_t * rsc, enum rsc_role_e filter, rsc 379 pengine/container.c return find_compatible_tuple_by_node(rsc_lh, active_node_lh, rsc, filter, current); rsc 388 pengine/container.c pair = find_compatible_tuple_by_node(rsc_lh, node, rsc, filter, current); rsc 394 pengine/container.c pe_rsc_debug(rsc, "Can't pair %s with %s", rsc_lh->id, rsc->id); rsc 401 pengine/container.c container_rsc_colocation_lh(resource_t * rsc, resource_t * rsc_rh, rsc_colocation_t * constraint) rsc 410 pengine/container.c int copies_per_node(resource_t * rsc) rsc 421 pengine/container.c switch(rsc->variant) { rsc 430 pengine/container.c const char *max_clones_node = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INCARNATION_NODEMAX); rsc 436 pengine/container.c get_container_variant_data(data, rsc); rsc 444 pengine/container.c container_rsc_colocation_rh(resource_t * rsc_lh, resource_t * rsc, rsc_colocation_t * constraint) rsc 451 pengine/container.c CRM_CHECK(rsc != NULL, pe_err("rsc was NULL for %s", constraint->id); return); rsc 454 pengine/container.c if (is_set(rsc->flags, pe_rsc_provisional)) { rsc 455 pengine/container.c pe_rsc_trace(rsc, "%s is still provisional", rsc->id); rsc 459 pengine/container.c resource_t *rh_child = find_compatible_tuple(rsc_lh, rsc, RSC_ROLE_UNKNOWN, FALSE); rsc 462 pengine/container.c pe_rsc_debug(rsc, "Pairing %s with %s", rsc_lh->id, rh_child->id); rsc 466 pengine/container.c crm_notice("Cannot pair %s with instance of %s", rsc_lh->id, rsc->id); rsc 470 pengine/container.c pe_rsc_debug(rsc, "Cannot pair %s with instance of %s", rsc_lh->id, rsc->id); rsc 476 pengine/container.c get_container_variant_data(container_data, rsc); rsc 477 pengine/container.c pe_rsc_trace(rsc, "Processing constraint %s: %s -> %s %d", rsc 478 pengine/container.c constraint->id, rsc_lh->id, rsc->id, constraint->score); rsc 490 pengine/container.c pe_rsc_trace(rsc, "Allowing %s: %s %d", constraint->id, chosen->details->uname, chosen->weight); rsc 509 pengine/container.c get_container_variant_data(data, action->rsc); rsc 526 pengine/container.c containers = get_container_list(action->rsc); rsc 533 pengine/container.c find_compatible_child_by_node(resource_t * local_child, node_t * local_node, resource_t * rsc, rsc 540 pengine/container.c crm_err("Can't colocate unrunnable child %s with %s", local_child->id, rsc->id); rsc 545 pengine/container.c local_child->id, rsc->id, local_node->details->uname); rsc 547 pengine/container.c children = get_containers_or_children(rsc); rsc 558 pengine/container.c crm_trace("Can't pair %s with %s", local_child->id, rsc->id); rsc 559 pengine/container.c if(children != rsc->children) { rsc 566 pengine/container.c tuple_for_docker(resource_t *rsc, resource_t *docker, node_t *node) rsc 568 pengine/container.c if(rsc->variant == pe_container) { rsc 570 pengine/container.c get_container_variant_data(data, rsc); rsc 598 pengine/container.c children = get_containers_or_children(then->rsc); rsc 601 pengine/container.c resource_t *first_child = find_compatible_child(then_child, first->rsc, RSC_ROLE_UNKNOWN, current); rsc 615 pengine/container.c pe_rsc_info(then->rsc, "Inhibiting %s from being active", then_child->id); rsc 628 pengine/container.c container_grouping_t *first_tuple = tuple_for_docker(first->rsc, first_child, node); rsc 629 pengine/container.c container_grouping_t *then_tuple = tuple_for_docker(then->rsc, then_child, node); rsc 704 pengine/container.c if(children != then->rsc->children) { rsc 713 pengine/container.c resource_t *rsc = NULL; rsc 716 pengine/container.c if(first->rsc == NULL || then->rsc == NULL) { rsc 719 pengine/container.c } else if(first->rsc == then->rsc) { rsc 722 pengine/container.c } else if(first->rsc->variant < pe_clone || then->rsc->variant < pe_clone) { rsc 728 pengine/container.c rsc = first->rsc; rsc 730 pengine/container.c rsc = then->rsc; rsc 733 pengine/container.c interleave_s = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INTERLEAVE); rsc 736 pengine/container.c first->uuid, then->uuid, interleave ? "yes" : "no", rsc->id); rsc 752 pengine/container.c } else if(then->rsc) { rsc 760 pengine/container.c children = get_containers_or_children(then->rsc); rsc 783 pengine/container.c if(children != then->rsc->children) { rsc 791 pengine/container.c container_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) rsc 794 pengine/container.c get_container_variant_data(container_data, rsc); rsc 796 pengine/container.c pe_rsc_trace(rsc, "Processing location constraint %s for %s", constraint->id, rsc->id); rsc 798 pengine/container.c native_rsc_location(rsc, constraint); rsc 818 pengine/container.c container_expand(resource_t * rsc, pe_working_set_t * data_set) rsc 822 pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 824 pengine/container.c get_container_variant_data(container_data, rsc); rsc 859 pengine/container.c container_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 865 pengine/container.c CRM_CHECK(rsc != NULL, return FALSE); rsc 867 pengine/container.c get_container_variant_data(container_data, rsc); rsc 935 pengine/container.c container_append_meta(resource_t * rsc, xmlNode * xml) rsc 940 pengine/container.c container_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 943 pengine/container.c return rsc_merge_weights(rsc, rhs, nodes, attr, factor, flags); rsc 947 pengine/container.c resource_t * rsc, pe_working_set_t * data_set, gboolean terminal) rsc 951 pengine/container.c CRM_CHECK(rsc != NULL, return); rsc 953 pengine/container.c get_container_variant_data(container_data, rsc); rsc 40 pengine/graph.c if (action->rsc) { rsc 41 pengine/graph.c flags = action->rsc->cmds->action_flags(action, NULL); rsc 43 pengine/graph.c if (pe_rsc_is_clone(action->rsc) && node) { rsc 46 pengine/graph.c enum pe_action_flags clone_flags = action->rsc->cmds->action_flags(action, node); rsc 60 pengine/graph.c pe_rsc_trace(action->rsc, "Fixing up runnable flag for %s", action->uuid); rsc 70 pengine/graph.c convert_non_atomic_uuid(char *old_uuid, resource_t * rsc, gboolean allow_notify, rsc 79 pengine/graph.c CRM_ASSERT(rsc); rsc 80 pengine/graph.c pe_rsc_trace(rsc, "Processing %s", old_uuid); rsc 87 pengine/graph.c } else if (rsc->variant < pe_group) { rsc 123 pengine/graph.c if (is_set(rsc->flags, pe_rsc_notify) && allow_notify) { rsc 129 pengine/graph.c pe_rsc_trace(rsc, "Converted %s -> %s", old_uuid, uuid); rsc 151 pengine/graph.c resource_t *rsc = action->rsc; rsc 153 pengine/graph.c if (rsc == NULL) { rsc 157 pengine/graph.c if ((rsc->parent == NULL) rsc 158 pengine/graph.c || (pe_rsc_is_clone(rsc) && (rsc->parent->variant == pe_container))) { rsc 162 pengine/graph.c notify = is_set(rsc->flags, pe_rsc_notify); rsc 165 pengine/graph.c if (rsc->variant >= pe_group) { rsc 169 pengine/graph.c uuid = convert_non_atomic_uuid(action->uuid, rsc, notify, FALSE); rsc 171 pengine/graph.c pe_rsc_trace(rsc, "Converting %s to %s %d", action->uuid, uuid, rsc 172 pengine/graph.c is_set(rsc->flags, pe_rsc_notify)); rsc 173 pengine/graph.c result = find_first_action(rsc->actions, uuid, NULL, NULL); rsc 175 pengine/graph.c crm_err("Couldn't expand %s to %s in %s", action->uuid, uuid, rsc->id); rsc 217 pengine/graph.c if (then->rsc) { rsc 219 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags & pe_action_optional, rsc 228 pengine/graph.c pe_rsc_trace(then->rsc, "implies right: %s then %s: changed", first->uuid, then->uuid); rsc 230 pengine/graph.c crm_trace("implies right: %s then %s %p", first->uuid, then->uuid, then->rsc); rsc 234 pengine/graph.c if ((type & pe_order_restart) && then->rsc) { rsc 239 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, restart, pe_order_restart); rsc 241 pengine/graph.c pe_rsc_trace(then->rsc, "restart: %s then %s: changed", first->uuid, then->uuid); rsc 249 pengine/graph.c if (first->rsc) { rsc 251 pengine/graph.c first->rsc->cmds->update_actions(first, then, node, first_flags, rsc 255 pengine/graph.c pe_rsc_trace(first->rsc, "first unrunnable: %s (%d) then %s (%d)", rsc 264 pengine/graph.c pe_rsc_trace(then->rsc, "implies left: %s then %s: changed", first->uuid, then->uuid); rsc 274 pengine/graph.c if (then->rsc) { rsc 276 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags & pe_action_optional, rsc 281 pengine/graph.c pe_rsc_trace(then->rsc, rsc 292 pengine/graph.c if (then->rsc) { rsc 294 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 311 pengine/graph.c pe_rsc_trace(then->rsc, "runnable_one_or_more: %s then %s: changed", first->uuid, rsc 318 pengine/graph.c if (then->rsc && is_set(type, pe_order_probe)) { rsc 321 pengine/graph.c if (is_not_set(first_flags, pe_action_runnable) && first->rsc->running_on != NULL) { rsc 322 pengine/graph.c pe_rsc_trace(then->rsc, "Ignoring %s then %s - %s is about to be stopped", rsc 323 pengine/graph.c first->uuid, then->uuid, first->rsc->id); rsc 328 pengine/graph.c pe_rsc_trace(then->rsc, "Enforcing %s then %s", first->uuid, then->uuid); rsc 329 pengine/graph.c changed |= then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 334 pengine/graph.c pe_rsc_trace(then->rsc, "runnable: %s then %s: changed", first->uuid, then->uuid); rsc 342 pengine/graph.c if (then->rsc) { rsc 344 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 348 pengine/graph.c pe_rsc_trace(then->rsc, "then unrunnable: %s then %s", first->uuid, then->uuid); rsc 354 pengine/graph.c pe_rsc_trace(then->rsc, "runnable: %s then %s: changed", first->uuid, then->uuid); rsc 362 pengine/graph.c if (then->rsc) { rsc 364 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 368 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); rsc 376 pengine/graph.c if (then->rsc) { rsc 378 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 382 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); rsc 390 pengine/graph.c if (then->rsc) { rsc 392 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 396 pengine/graph.c pe_rsc_trace(then->rsc, "optional: %s then %s: changed", first->uuid, then->uuid); rsc 404 pengine/graph.c if (then->rsc) { rsc 406 pengine/graph.c then->rsc->cmds->update_actions(first, then, node, first_flags, rsc 411 pengine/graph.c pe_rsc_trace(then->rsc, "asymmetrical: %s then %s: changed", first->uuid, then->uuid); rsc 434 pengine/graph.c && first->rsc rsc 436 pengine/graph.c && is_not_set(first->rsc->flags, pe_rsc_managed) rsc 437 pengine/graph.c && is_set(first->rsc->flags, pe_rsc_block) rsc 445 pengine/graph.c pe_rsc_trace(then->rsc, "unmanaged left: %s then %s: changed", first->uuid, then->uuid); rsc 459 pengine/graph.c mark_start_blocked(resource_t *rsc, resource_t *reason) rsc 461 pengine/graph.c GListPtr gIter = rsc->actions; rsc 483 pengine/graph.c resource_t *rsc = NULL; rsc 486 pengine/graph.c rsc = uber_parent(action->rsc); rsc 487 pengine/graph.c if (rsc->parent) { rsc 493 pengine/graph.c rsc = rsc->parent; rsc 497 pengine/graph.c if (rsc == NULL || rsc->rsc_cons_lhs == NULL) { rsc 503 pengine/graph.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 511 pengine/graph.c for (gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { rsc 514 pengine/graph.c mark_start_blocked(colocate_with->rsc_lh, action->rsc); rsc 566 pengine/graph.c if (first->rsc && first->rsc->variant == pe_group && safe_str_eq(first->task, RSC_START)) { rsc 567 pengine/graph.c first_node = first->rsc->fns->location(first->rsc, NULL, FALSE); rsc 573 pengine/graph.c if (then->rsc && then->rsc->variant == pe_group && safe_str_eq(then->task, RSC_START)) { rsc 574 pengine/graph.c then_node = then->rsc->fns->location(then->rsc, NULL, FALSE); rsc 592 pengine/graph.c if (first->rsc && is_set(other->type, pe_order_then_cancels_first) rsc 600 pengine/graph.c clear_bit(first->rsc->flags, pe_rsc_reload); rsc 603 pengine/graph.c if (first->rsc && then->rsc && (first->rsc != then->rsc) rsc 604 pengine/graph.c && (is_parent(then->rsc, first->rsc) == FALSE)) { rsc 723 pengine/graph.c if (action->rsc == NULL || action->node == NULL) { rsc 727 pengine/graph.c } else if (is_set(action->rsc->flags, pe_rsc_maintenance)) { rsc 728 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: maintenance mode", action->uuid); rsc 731 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: node %s is in maintenance mode", rsc 736 pengine/graph.c } else if (is_not_set(action->rsc->flags, pe_rsc_managed) rsc 737 pengine/graph.c && is_not_set(action->rsc->flags, pe_rsc_block)) { rsc 741 pengine/graph.c pe_rsc_trace(action->rsc, "Skipping %s: unmanaged", action->uuid); rsc 745 pengine/graph.c pe_rsc_trace(action->rsc, "Ordering %s before shutdown on %s", action->uuid, rsc 748 pengine/graph.c custom_action_order(action->rsc, NULL, action, rsc 963 pengine/graph.c } else if (action->rsc && action->rsc->is_remote_node rsc 975 pengine/graph.c if (input->rsc && safe_str_eq(action->rsc->id, input->rsc->id) rsc 983 pengine/graph.c add_node_to_xml_by_id(action->rsc->id, downed); rsc 1038 pengine/graph.c if (action->rsc != NULL && action->rsc->clone_name != NULL) { rsc 1050 pengine/graph.c clone_key = generate_notify_key(action->rsc->clone_name, n_type, n_task); rsc 1053 pengine/graph.c clone_key = generate_op_key(action->rsc->clone_name, action->cancel_task, interval); rsc 1055 pengine/graph.c clone_key = generate_op_key(action->rsc->clone_name, action->task, interval); rsc 1086 pengine/graph.c if (action->rsc) { rsc 1090 pengine/graph.c xmlNode *rsc_xml = create_xml_node(action_xml, crm_element_name(action->rsc->xml)); rsc 1098 pengine/graph.c if (is_set(action->rsc->flags, pe_rsc_orphan) && action->rsc->clone_name) { rsc 1110 pengine/graph.c crm_debug("Using orphan clone name %s instead of %s", action->rsc->id, rsc 1111 pengine/graph.c action->rsc->clone_name); rsc 1112 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->clone_name); rsc 1113 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); rsc 1115 pengine/graph.c } else if (is_not_set(action->rsc->flags, pe_rsc_unique)) { rsc 1116 pengine/graph.c const char *xml_id = ID(action->rsc->xml); rsc 1118 pengine/graph.c crm_debug("Using anonymous clone name %s for %s (aka. %s)", xml_id, action->rsc->id, rsc 1119 pengine/graph.c action->rsc->clone_name); rsc 1135 pengine/graph.c if (action->rsc->clone_name && safe_str_neq(xml_id, action->rsc->clone_name)) { rsc 1136 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->clone_name); rsc 1138 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID_LONG, action->rsc->id); rsc 1142 pengine/graph.c CRM_ASSERT(action->rsc->clone_name == NULL); rsc 1143 pengine/graph.c crm_xml_add(rsc_xml, XML_ATTR_ID, action->rsc->id); rsc 1148 pengine/graph.c g_hash_table_lookup(action->rsc->meta, attr_list[lpc])); rsc 1158 pengine/graph.c if (action->rsc != NULL && action->node) { rsc 1161 pengine/graph.c get_rsc_attributes(p, action->rsc, action->node, data_set); rsc 1169 pengine/graph.c pe_get_versioned_attributes(versioned_parameters, action->rsc, rsc 1178 pengine/graph.c } else if(action->rsc && action->rsc->variant <= pe_native) { rsc 1179 pengine/graph.c g_hash_table_foreach(action->rsc->parameters, hash2smartfield, args_xml); rsc 1182 pengine/graph.c if (xml_has_children(action->rsc->versioned_parameters)) { rsc 1183 pengine/graph.c add_node_copy(action_xml, action->rsc->versioned_parameters); rsc 1201 pengine/graph.c if (action->rsc != NULL) { rsc 1203 pengine/graph.c const char *value = g_hash_table_lookup(action->rsc->meta, "external-ip"); rsc 1204 pengine/graph.c resource_t *parent = action->rsc; rsc 1256 pengine/graph.c (gpointer)g_hash_table_lookup(action->rsc->meta, XML_RSC_ATTR_TARGET), (gpointer)args_xml); rsc 1343 pengine/graph.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { rsc 1351 pengine/graph.c action->id, action->uuid, action->rsc->id); rsc 1429 pengine/graph.c && action->rsc && action->rsc->fillers rsc 1430 pengine/graph.c && wrapper->action->rsc && wrapper->action->node rsc 1432 pengine/graph.c && (wrapper->action->node->details->remote_rsc->container == action->rsc)) { rsc 1437 pengine/graph.c wrapper->action->rsc->id, action->rsc->id); rsc 1492 pengine/graph.c if (action->rsc && safe_str_eq(action->task, RSC_MIGRATE)) { rsc 1502 pengine/graph.c if (wrapper->action->node == NULL || action->rsc->allocated_to == NULL rsc 1503 pengine/graph.c || wrapper->action->node->details != action->rsc->allocated_to->details) { rsc 1545 pengine/graph.c } else if (wrapper->action->rsc rsc 1546 pengine/graph.c && wrapper->action->rsc != action->rsc rsc 1547 pengine/graph.c && is_set(wrapper->action->rsc->flags, pe_rsc_failed) rsc 1548 pengine/graph.c && is_not_set(wrapper->action->rsc->flags, pe_rsc_managed) rsc 1550 pengine/graph.c && action->rsc && pe_rsc_is_clone(action->rsc)) { rsc 1565 pengine/graph.c && wrapper->action->rsc->variant != pe_native) { rsc 1660 pengine/graph.c && action->rsc rsc 1721 pengine/graph.c if (action->rsc != NULL) { rsc 1722 pengine/graph.c synapse_priority = action->rsc->priority; rsc 31 pengine/group.c group_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 38 pengine/group.c get_group_variant_data(group_data, rsc); rsc 40 pengine/group.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 41 pengine/group.c return rsc->allocated_to; rsc 43 pengine/group.c pe_rsc_trace(rsc, "Processing %s", rsc->id); rsc 44 pengine/group.c if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 45 pengine/group.c pe_rsc_debug(rsc, "Dependency loop detected involving %s", rsc->id); rsc 51 pengine/group.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 55 pengine/group.c set_bit(rsc->flags, pe_rsc_allocating); rsc 56 pengine/group.c rsc->role = group_data->first_child->role; rsc 59 pengine/group.c g_list_concat(group_data->first_child->rsc_cons, rsc->rsc_cons); rsc 60 pengine/group.c rsc->rsc_cons = NULL; rsc 63 pengine/group.c g_list_concat(group_data->last_child->rsc_cons_lhs, rsc->rsc_cons_lhs); rsc 64 pengine/group.c rsc->rsc_cons_lhs = NULL; rsc 66 pengine/group.c dump_node_scores(show_scores ? 0 : scores_log_level, rsc, __FUNCTION__, rsc 67 pengine/group.c rsc->allowed_nodes); rsc 69 pengine/group.c gIter = rsc->children; rsc 79 pengine/group.c rsc->next_role = group_data->first_child->next_role; rsc 80 pengine/group.c clear_bit(rsc->flags, pe_rsc_allocating); rsc 81 pengine/group.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 92 pengine/group.c group_create_actions(resource_t * rsc, pe_working_set_t * data_set) rsc 96 pengine/group.c GListPtr gIter = rsc->children; rsc 98 pengine/group.c pe_rsc_trace(rsc, "Creating actions for %s", rsc->id); rsc 104 pengine/group.c group_update_pseudo_status(rsc, child_rsc); rsc 107 pengine/group.c op = start_action(rsc, NULL, TRUE /* !group_data->child_starting */ ); rsc 110 pengine/group.c op = custom_action(rsc, started_key(rsc), rsc 114 pengine/group.c op = stop_action(rsc, NULL, TRUE /* !group_data->child_stopping */ ); rsc 117 pengine/group.c op = custom_action(rsc, stopped_key(rsc), rsc 121 pengine/group.c value = g_hash_table_lookup(rsc->meta, "stateful"); rsc 123 pengine/group.c op = custom_action(rsc, demote_key(rsc), RSC_DEMOTE, NULL, TRUE, TRUE, data_set); rsc 126 pengine/group.c op = custom_action(rsc, demoted_key(rsc), RSC_DEMOTED, NULL, TRUE, TRUE, data_set); rsc 130 pengine/group.c op = custom_action(rsc, promote_key(rsc), RSC_PROMOTE, NULL, TRUE, TRUE, data_set); rsc 133 pengine/group.c op = custom_action(rsc, promoted_key(rsc), RSC_PROMOTED, NULL, TRUE, TRUE, data_set); rsc 164 pengine/group.c pe_rsc_trace(action->rsc, "Based on %s the group is stopping", action->uuid); rsc 169 pengine/group.c pe_rsc_trace(action->rsc, "Based on %s the group is starting", action->uuid); rsc 175 pengine/group.c group_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 177 pengine/group.c GListPtr gIter = rsc->children; rsc 180 pengine/group.c resource_t *top = uber_parent(rsc); rsc 183 pengine/group.c get_group_variant_data(group_data, rsc); rsc 185 pengine/group.c new_rsc_order(rsc, RSC_STOPPED, rsc, RSC_START, pe_order_optional, data_set); rsc 186 pengine/group.c new_rsc_order(rsc, RSC_START, rsc, RSC_STARTED, pe_order_runnable_left, data_set); rsc 187 pengine/group.c new_rsc_order(rsc, RSC_STOP, rsc, RSC_STOPPED, pe_order_runnable_left, data_set); rsc 211 pengine/group.c new_rsc_order(rsc, RSC_DEMOTE, child_rsc, RSC_DEMOTE, rsc 214 pengine/group.c new_rsc_order(child_rsc, RSC_DEMOTE, rsc, RSC_DEMOTED, stopped, data_set); rsc 216 pengine/group.c new_rsc_order(child_rsc, RSC_PROMOTE, rsc, RSC_PROMOTED, started, data_set); rsc 218 pengine/group.c new_rsc_order(rsc, RSC_PROMOTE, child_rsc, RSC_PROMOTE, rsc 223 pengine/group.c order_start_start(rsc, child_rsc, pe_order_implies_first_printed); rsc 224 pengine/group.c order_stop_stop(rsc, child_rsc, stop | pe_order_implies_first_printed); rsc 226 pengine/group.c new_rsc_order(child_rsc, RSC_STOP, rsc, RSC_STOPPED, stopped, data_set); rsc 228 pengine/group.c new_rsc_order(child_rsc, RSC_START, rsc, RSC_STARTED, started, data_set); rsc 231 pengine/group.c order_start_start(rsc, child_rsc, start | pe_order_implies_first_printed); rsc 233 pengine/group.c new_rsc_order(rsc, RSC_PROMOTE, child_rsc, RSC_PROMOTE, rsc 258 pengine/group.c order_start_start(rsc, child_rsc, flags); rsc 260 pengine/group.c new_rsc_order(rsc, RSC_PROMOTE, child_rsc, RSC_PROMOTE, flags, data_set); rsc 284 pengine/group.c order_stop_stop(rsc, last_rsc, stop_stop_flags); rsc 285 pengine/group.c new_rsc_order(last_rsc, RSC_STOP, rsc, RSC_STOPPED, stop_stopped_flags, data_set); rsc 288 pengine/group.c new_rsc_order(rsc, RSC_DEMOTE, last_rsc, RSC_DEMOTE, stop_stop_flags, data_set); rsc 289 pengine/group.c new_rsc_order(last_rsc, RSC_DEMOTE, rsc, RSC_DEMOTED, stop_stopped_flags, data_set); rsc 379 pengine/group.c for (gIter = action->rsc->children; gIter != NULL; gIter = gIter->next) { rsc 390 pengine/group.c pe_rsc_trace(action->rsc, "%s is mandatory because of %s", action->uuid, rsc 398 pengine/group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s", action->uuid, rsc 405 pengine/group.c pe_rsc_trace(action->rsc, "%s is not runnable because of %s (not found in %s)", rsc 418 pengine/group.c GListPtr gIter = then->rsc->children; rsc 421 pengine/group.c CRM_ASSERT(then->rsc != NULL); rsc 437 pengine/group.c group_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) rsc 439 pengine/group.c GListPtr gIter = rsc->children; rsc 445 pengine/group.c get_group_variant_data(group_data, rsc); rsc 447 pengine/group.c pe_rsc_debug(rsc, "Processing rsc_location %s for %s", constraint->id, rsc->id); rsc 449 pengine/group.c native_rsc_location(rsc, constraint); rsc 466 pengine/group.c group_expand(resource_t * rsc, pe_working_set_t * data_set) rsc 468 pengine/group.c GListPtr gIter = rsc->children; rsc 470 pengine/group.c pe_rsc_trace(rsc, "Processing actions from %s", rsc->id); rsc 472 pengine/group.c CRM_CHECK(rsc != NULL, return); rsc 473 pengine/group.c native_expand(rsc, data_set); rsc 483 pengine/group.c group_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 486 pengine/group.c GListPtr gIter = rsc->rsc_cons_lhs; rsc 489 pengine/group.c get_group_variant_data(group_data, rsc); rsc 491 pengine/group.c if (is_set(rsc->flags, pe_rsc_merging)) { rsc 492 pengine/group.c pe_rsc_info(rsc, "Breaking dependency loop with %s at %s", rsc->id, rhs); rsc 496 pengine/group.c set_bit(rsc->flags, pe_rsc_merging); rsc 505 pengine/group.c nodes = native_merge_weights(constraint->rsc_lh, rsc->id, nodes, rsc 510 pengine/group.c clear_bit(rsc->flags, pe_rsc_merging); rsc 515 pengine/group.c group_append_meta(resource_t * rsc, xmlNode * xml) rsc 33 pengine/master.c resource_t * rsc, resource_t * child, resource_t * last, rsc 38 pengine/master.c pe_rsc_trace(rsc, "Ordered version (last node)"); rsc 40 pengine/master.c new_rsc_order(last, RSC_PROMOTE, rsc, RSC_PROMOTED, type, data_set); rsc 46 pengine/master.c new_rsc_order(child, RSC_PROMOTE, rsc, RSC_PROMOTED, type, data_set); rsc 49 pengine/master.c new_rsc_order(rsc, RSC_PROMOTE, child, RSC_PROMOTE, type, data_set); rsc 52 pengine/master.c pe_rsc_trace(rsc, "Ordered version"); rsc 55 pengine/master.c last = rsc; rsc 63 pengine/master.c pe_rsc_trace(rsc, "Un-ordered version"); rsc 69 pengine/master.c resource_t * rsc, resource_t * child, resource_t * last, rsc 74 pengine/master.c pe_rsc_trace(rsc, "Ordered version (last node)"); rsc 76 pengine/master.c new_rsc_order(rsc, RSC_DEMOTE, last, RSC_DEMOTE, pe_order_optional, data_set); rsc 82 pengine/master.c new_rsc_order(child, RSC_DEMOTE, rsc, RSC_DEMOTED, pe_order_implies_then_printed, data_set); rsc 85 pengine/master.c new_rsc_order(rsc, RSC_DEMOTE, child, RSC_DEMOTE, pe_order_implies_first_printed, data_set); rsc 88 pengine/master.c pe_rsc_trace(rsc, "Ordered version"); rsc 94 pengine/master.c pe_rsc_trace(rsc, "Ordered version (1st node)"); rsc 96 pengine/master.c new_rsc_order(child, RSC_DEMOTE, rsc, RSC_DEMOTED, type, data_set); rsc 99 pengine/master.c pe_rsc_trace(rsc, "Un-ordered version"); rsc 104 pengine/master.c master_update_pseudo_status(resource_t * rsc, gboolean * demoting, gboolean * promoting) rsc 108 pengine/master.c if (rsc->children) { rsc 109 pengine/master.c gIter = rsc->children; rsc 121 pengine/master.c gIter = rsc->actions; rsc 163 pengine/master.c can_be_master(resource_t * rsc) rsc 167 pengine/master.c resource_t *parent = uber_parent(rsc); rsc 173 pengine/master.c role = rsc->fns->state(rsc, FALSE); rsc 174 pengine/master.c crm_info("%s role: %s", rsc->id, role2text(role)); rsc 177 pengine/master.c if (rsc->children) { rsc 178 pengine/master.c GListPtr gIter = rsc->children; rsc 184 pengine/master.c pe_rsc_trace(rsc, "Child %s of %s can't be promoted", child->id, rsc->id); rsc 190 pengine/master.c node = rsc->fns->location(rsc, NULL, FALSE); rsc 192 pengine/master.c pe_rsc_trace(rsc, "%s cannot be master: not allocated", rsc->id); rsc 195 pengine/master.c } else if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 196 pengine/master.c if (rsc->fns->state(rsc, TRUE) == RSC_ROLE_MASTER) { rsc 198 pengine/master.c rsc->id, node->details->uname); rsc 204 pengine/master.c } else if (rsc->priority < 0) { rsc 205 pengine/master.c pe_rsc_trace(rsc, "%s cannot be master: preference: %d", rsc->id, rsc->priority); rsc 217 pengine/master.c crm_err("%s cannot run on %s: node not allowed", rsc->id, node->details->uname); rsc 221 pengine/master.c || is_not_set(rsc->flags, pe_rsc_managed)) { rsc 225 pengine/master.c pe_rsc_trace(rsc, "%s cannot be master on %s: node full", rsc->id, node->details->uname); rsc 266 pengine/master.c master_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 269 pengine/master.c return rsc_merge_weights(rsc, rhs, nodes, attr, factor, flags); rsc 273 pengine/master.c master_promotion_order(resource_t * rsc, pe_working_set_t * data_set) rsc 282 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 288 pengine/master.c pe_rsc_trace(rsc, "Merging weights for %s", rsc->id); rsc 289 pengine/master.c set_bit(rsc->flags, pe_rsc_merging); rsc 291 pengine/master.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 294 pengine/master.c pe_rsc_trace(rsc, "Sort index: %s = %d", child->id, child->sort_index); rsc 296 pengine/master.c dump_node_scores(LOG_DEBUG_3, rsc, "Before", rsc->allowed_nodes); rsc 298 pengine/master.c gIter = rsc->children; rsc 304 pengine/master.c pe_rsc_trace(rsc, "Skipping %s", child->id); rsc 308 pengine/master.c node = (node_t *) pe_hash_table_lookup(rsc->allowed_nodes, chosen->details->id); rsc 312 pengine/master.c pe_rsc_trace(rsc, "Adding %s to %s from %s", score, rsc 317 pengine/master.c dump_node_scores(LOG_DEBUG_3, rsc, "Middle", rsc->allowed_nodes); rsc 319 pengine/master.c gIter = rsc->rsc_cons; rsc 329 pengine/master.c pe_rsc_trace(rsc, "RHS: %s with %s: %d", constraint->rsc_lh->id, constraint->rsc_rh->id, rsc 331 pengine/master.c rsc->allowed_nodes = rsc 332 pengine/master.c constraint->rsc_rh->cmds->merge_weights(constraint->rsc_rh, rsc->id, rsc 333 pengine/master.c rsc->allowed_nodes, rsc 339 pengine/master.c gIter = rsc->rsc_cons_lhs; rsc 347 pengine/master.c pe_rsc_trace(rsc, "LHS: %s with %s: %d", constraint->rsc_lh->id, constraint->rsc_rh->id, rsc 349 pengine/master.c rsc->allowed_nodes = rsc 350 pengine/master.c constraint->rsc_lh->cmds->merge_weights(constraint->rsc_lh, rsc->id, rsc 351 pengine/master.c rsc->allowed_nodes, rsc 359 pengine/master.c gIter = rsc->rsc_tickets; rsc 365 pengine/master.c resource_location(rsc, NULL, -INFINITY, "__stateful_without_ticket__", data_set); rsc 369 pengine/master.c dump_node_scores(LOG_DEBUG_3, rsc, "After", rsc->allowed_nodes); rsc 373 pengine/master.c gIter = rsc->children; rsc 382 pengine/master.c pe_rsc_trace(rsc, "%s: %d", child->id, child->sort_index); rsc 385 pengine/master.c node = (node_t *) pe_hash_table_lookup(rsc->allowed_nodes, chosen->details->id); rsc 390 pengine/master.c pe_rsc_trace(rsc, "Set sort index: %s = %d", child->id, child->sort_index); rsc 393 pengine/master.c rsc->children = g_list_sort_with_data(rsc->children, sort_master_instance, data_set); rsc 394 pengine/master.c clear_bit(rsc->flags, pe_rsc_merging); rsc 398 pengine/master.c filter_anonymous_instance(resource_t * rsc, node_t * node) rsc 401 pengine/master.c char *key = clone_strip(rsc->id); rsc 402 pengine/master.c resource_t *parent = uber_parent(rsc); rsc 412 pengine/master.c if(rsc == active) { rsc 413 pengine/master.c pe_rsc_trace(rsc, "Found %s for %s active on %s: done", active->id, key, node->details->uname); rsc 417 pengine/master.c pe_rsc_trace(rsc, "Found %s for %s on %s: not %s", active->id, key, node->details->uname, rsc->id); rsc 421 pengine/master.c pe_rsc_trace(rsc, "%s on %s: not active", key, node->details->uname); rsc 436 pengine/master.c rsc = parent->fns->find_rsc(child, key, NULL, pe_find_clone); rsc 437 pengine/master.c CRM_LOG_ASSERT(rsc); rsc 438 pengine/master.c if(rsc) { rsc 439 pengine/master.c pe_rsc_trace(rsc, "Checking %s for %s on %s", rsc->id, key, node->details->uname); rsc 440 pengine/master.c if (g_hash_table_lookup(rsc->known_on, node->details->id)) { rsc 451 pengine/master.c lookup_master_score(resource_t * rsc, node_t *node, const char *name) rsc 458 pengine/master.c attr_value = pe_node_attribute_calculated(node, attr_name, rsc); rsc 465 pengine/master.c master_score(resource_t * rsc, node_t * node, int not_set_value) rsc 467 pengine/master.c char *name = rsc->id; rsc 474 pengine/master.c if (rsc->children) { rsc 475 pengine/master.c GListPtr gIter = rsc->children; rsc 490 pengine/master.c if (is_not_set(rsc->flags, pe_rsc_unique) && filter_anonymous_instance(rsc, node)) { rsc 491 pengine/master.c pe_rsc_trace(rsc, "Anonymous clone %s is allowed on %s", rsc->id, node->details->uname); rsc 493 pengine/master.c } else if (rsc->running_on || g_hash_table_size(rsc->known_on)) { rsc 500 pengine/master.c node_t *known = pe_hash_table_lookup(rsc->known_on, node->details->id); rsc 502 pengine/master.c match = pe_find_node_id(rsc->running_on, node->details->id); rsc 504 pengine/master.c pe_rsc_trace(rsc, "skipping %s (aka. %s) master score on %s because inactive", rsc 505 pengine/master.c rsc->id, rsc->clone_name, node->details->uname); rsc 510 pengine/master.c match = pe_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 515 pengine/master.c pe_rsc_trace(rsc, "%s on %s has score: %d - ignoring", rsc 516 pengine/master.c rsc->id, match->details->uname, match->weight); rsc 520 pengine/master.c if (rsc->clone_name) { rsc 524 pengine/master.c name = rsc->clone_name; rsc 527 pengine/master.c attr_value = lookup_master_score(rsc, node, name); rsc 528 pengine/master.c pe_rsc_trace(rsc, "master score for %s on %s = %s", rsc 531 pengine/master.c if ((attr_value == NULL) && is_not_set(rsc->flags, pe_rsc_unique)) { rsc 536 pengine/master.c name = clone_strip(rsc->id); rsc 537 pengine/master.c if (strcmp(rsc->id, name)) { rsc 538 pengine/master.c attr_value = lookup_master_score(rsc, node, name); rsc 539 pengine/master.c pe_rsc_trace(rsc, "stripped master score for %s on %s = %s", rsc 553 pengine/master.c apply_master_prefs(resource_t * rsc) rsc 556 pengine/master.c GListPtr gIter = rsc->children; rsc 559 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 587 pengine/master.c pe_rsc_trace(rsc, "\t%s: Updating preference for %s (%d->%d)", rsc 595 pengine/master.c pe_rsc_trace(rsc, "\t%s: Updating priority (%d->%d)", rsc 604 pengine/master.c set_role_slave(resource_t * rsc, gboolean current) rsc 606 pengine/master.c GListPtr gIter = rsc->children; rsc 609 pengine/master.c if (rsc->role == RSC_ROLE_STARTED) { rsc 610 pengine/master.c rsc->role = RSC_ROLE_SLAVE; rsc 616 pengine/master.c rsc->fns->location(rsc, &allocated, FALSE); rsc 619 pengine/master.c rsc->next_role = RSC_ROLE_SLAVE; rsc 622 pengine/master.c rsc->next_role = RSC_ROLE_STOPPED; rsc 635 pengine/master.c set_role_master(resource_t * rsc) rsc 637 pengine/master.c GListPtr gIter = rsc->children; rsc 639 pengine/master.c if (rsc->next_role == RSC_ROLE_UNKNOWN) { rsc 640 pengine/master.c rsc->next_role = RSC_ROLE_MASTER; rsc 651 pengine/master.c master_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 667 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 669 pengine/master.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 672 pengine/master.c } else if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 673 pengine/master.c pe_rsc_debug(rsc, "Dependency loop detected involving %s", rsc->id); rsc 677 pengine/master.c apply_master_prefs(rsc); rsc 679 pengine/master.c clone_color(rsc, prefer, data_set); rsc 681 pengine/master.c set_bit(rsc->flags, pe_rsc_allocating); rsc 684 pengine/master.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 692 pengine/master.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 696 pengine/master.c pe_rsc_trace(rsc, "Assigning priority for %s: %s", child_rsc->id, rsc 742 pengine/master.c apply_master_location(child_rsc, rsc->rsc_location, chosen); rsc 751 pengine/master.c pe_rsc_trace(rsc, "Assigning priority for %s: %d", child_rsc->id, child_rsc->priority); rsc 758 pengine/master.c dump_node_scores(LOG_DEBUG_3, rsc, "Pre merge", rsc->allowed_nodes); rsc 759 pengine/master.c master_promotion_order(rsc, data_set); rsc 763 pengine/master.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 785 pengine/master.c pe_rsc_trace(rsc, "Not supposed to promote child: %s", child_rsc->id); rsc 787 pengine/master.c } else if (promoted < clone_data->master_max || is_not_set(rsc->flags, pe_rsc_managed)) { rsc 791 pengine/master.c pe_rsc_debug(rsc, "%s master score: %d", child_rsc->id, child_rsc->priority); rsc 807 pengine/master.c pe_rsc_info(rsc, "Promoting %s (%s %s)", rsc 814 pengine/master.c pe_rsc_info(rsc, "%s: Promoted %d instances of a possible %d to master", rsc 815 pengine/master.c rsc->id, promoted, clone_data->master_max); rsc 817 pengine/master.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 818 pengine/master.c clear_bit(rsc->flags, pe_rsc_allocating); rsc 824 pengine/master.c master_create_actions(resource_t * rsc, pe_working_set_t * data_set) rsc 827 pengine/master.c GListPtr gIter = rsc->children; rsc 836 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 838 pengine/master.c pe_rsc_debug(rsc, "Creating actions for %s", rsc->id); rsc 841 pengine/master.c clone_create_actions(rsc, data_set); rsc 848 pengine/master.c pe_rsc_trace(rsc, "Creating actions for %s", child_rsc->id); rsc 854 pengine/master.c pe_rsc_trace(rsc, "Created actions for %s: %d %d", child_rsc->id, child_promoting, rsc 859 pengine/master.c action = create_pseudo_resource_op(rsc, RSC_PROMOTE, !any_promoting, TRUE, data_set); rsc 860 pengine/master.c action_complete = create_pseudo_resource_op(rsc, RSC_PROMOTED, !any_promoting, TRUE, data_set); rsc 864 pengine/master.c rsc, NULL, last_promote_rsc, data_set); rsc 868 pengine/master.c create_notification_boundaries(rsc, RSC_PROMOTE, action, action_complete, data_set); rsc 872 pengine/master.c action = create_pseudo_resource_op(rsc, RSC_DEMOTE, !any_demoting, TRUE, data_set); rsc 873 pengine/master.c action_complete = create_pseudo_resource_op(rsc, RSC_DEMOTED, !any_demoting, TRUE, data_set); rsc 876 pengine/master.c child_demoting_constraints(clone_data, pe_order_optional, rsc, NULL, last_demote_rsc, data_set); rsc 880 pengine/master.c create_notification_boundaries(rsc, RSC_DEMOTE, action, action_complete, data_set); rsc 901 pengine/master.c gIter = rsc->children; rsc 905 pengine/master.c child_rsc->priority = rsc->priority; rsc 910 pengine/master.c master_promotion_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 913 pengine/master.c new_rsc_order(rsc, RSC_STOPPED, rsc, RSC_START, pe_order_optional, data_set); rsc 916 pengine/master.c new_rsc_order(rsc, RSC_STOPPED, rsc, RSC_PROMOTE, pe_order_optional, data_set); rsc 919 pengine/master.c new_rsc_order(rsc, RSC_DEMOTED, rsc, RSC_START, pe_order_optional, data_set); rsc 922 pengine/master.c new_rsc_order(rsc, RSC_STARTED, rsc, RSC_PROMOTE, pe_order_optional, data_set); rsc 925 pengine/master.c new_rsc_order(rsc, RSC_DEMOTED, rsc, RSC_STOP, pe_order_optional, data_set); rsc 928 pengine/master.c new_rsc_order(rsc, RSC_DEMOTE, rsc, RSC_DEMOTED, pe_order_optional, data_set); rsc 931 pengine/master.c new_rsc_order(rsc, RSC_DEMOTED, rsc, RSC_PROMOTE, pe_order_optional, data_set); rsc 936 pengine/master.c master_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 938 pengine/master.c GListPtr gIter = rsc->children; rsc 942 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 944 pengine/master.c clone_internal_constraints(rsc, data_set); rsc 945 pengine/master.c master_promotion_constraints(rsc, data_set); rsc 954 pengine/master.c rsc, child_rsc, last_rsc, data_set); rsc 957 pengine/master.c rsc, child_rsc, last_rsc, data_set); rsc 1067 pengine/master.c master_append_meta(resource_t * rsc, xmlNode * xml) rsc 1072 pengine/master.c get_clone_variant_data(clone_data, rsc); rsc 1074 pengine/master.c clone_append_meta(rsc, xml); rsc 42 pengine/native.c void Recurring(resource_t * rsc, action_t * start, node_t * node, pe_working_set_t * data_set); rsc 43 pengine/native.c void RecurringOp(resource_t * rsc, action_t * start, node_t * node, rsc 45 pengine/native.c void Recurring_Stopped(resource_t * rsc, action_t * start, node_t * node, rsc 47 pengine/native.c void RecurringOp_Stopped(resource_t * rsc, action_t * start, node_t * node, rsc 50 pengine/native.c void ReloadRsc(resource_t * rsc, node_t *node, pe_working_set_t * data_set); rsc 51 pengine/native.c gboolean DeleteRsc(resource_t * rsc, node_t * node, gboolean optional, pe_working_set_t * data_set); rsc 52 pengine/native.c gboolean StopRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set); rsc 53 pengine/native.c gboolean StartRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set); rsc 54 pengine/native.c gboolean DemoteRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set); rsc 55 pengine/native.c gboolean PromoteRsc(resource_t * rsc, node_t * next, gboolean optional, rsc 57 pengine/native.c gboolean RoleError(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set); rsc 58 pengine/native.c gboolean NullOp(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set); rsc 83 pengine/native.c native_choose_node(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 92 pengine/native.c process_utilization(rsc, &prefer, data_set); rsc 94 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 95 pengine/native.c return rsc->allocated_to ? TRUE : FALSE; rsc 99 pengine/native.c if (rsc->allowed_nodes) { rsc 100 pengine/native.c length = g_hash_table_size(rsc->allowed_nodes); rsc 103 pengine/native.c nodes = g_hash_table_get_values(rsc->allowed_nodes); rsc 105 pengine/native.c g_list_nth_data(rsc->running_on, 0)); rsc 112 pengine/native.c chosen = g_hash_table_lookup(rsc->allowed_nodes, prefer->details->id); rsc 115 pengine/native.c pe_rsc_trace(rsc, "Preferred node %s for %s was unknown", rsc 116 pengine/native.c prefer->details->uname, rsc->id); rsc 125 pengine/native.c pe_rsc_trace(rsc, "Preferred node %s for %s was unsuitable", rsc 126 pengine/native.c chosen->details->uname, rsc->id); rsc 130 pengine/native.c pe_rsc_trace(rsc, "Preferred node %s for %s was unavailable", rsc 131 pengine/native.c chosen->details->uname, rsc->id); rsc 135 pengine/native.c pe_rsc_trace(rsc, rsc 137 pengine/native.c chosen->details->uname, rsc->id, length); rsc 147 pengine/native.c pe_rsc_trace(rsc, "Chose node %s for %s from %d candidates", rsc 148 pengine/native.c chosen ? chosen->details->uname : "<none>", rsc->id, length); rsc 150 pengine/native.c if (!pe_rsc_is_unique_clone(rsc->parent) rsc 161 pengine/native.c node_t *running = g_list_nth_data(rsc->running_on, 0); rsc 164 pengine/native.c pe_rsc_trace(rsc, "Current node for %s (%s) can't run resources", rsc 165 pengine/native.c rsc->id, running->details->uname); rsc 191 pengine/native.c chosen->details->uname, rsc->id, multiple, score); rsc 194 pengine/native.c result = native_assign_node(rsc, nodes, chosen, FALSE); rsc 308 pengine/native.c native_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 311 pengine/native.c return rsc_merge_weights(rsc, rhs, nodes, attr, factor, flags); rsc 315 pengine/native.c rsc_merge_weights(resource_t * rsc, const char *rhs, GHashTable * nodes, const char *attr, rsc 325 pengine/native.c if (is_set(rsc->flags, pe_rsc_merging)) { rsc 326 pengine/native.c pe_rsc_info(rsc, "%s: Breaking dependency loop at %s", rhs, rsc->id); rsc 330 pengine/native.c set_bit(rsc->flags, pe_rsc_merging); rsc 333 pengine/native.c if (rsc->variant == pe_group && rsc->children) { rsc 334 pengine/native.c GListPtr last = rsc->children; rsc 340 pengine/native.c pe_rsc_trace(rsc, "Merging %s as a group %p %p", rsc->id, rsc->children, last); rsc 344 pengine/native.c work = node_hash_dup(rsc->allowed_nodes); rsc 348 pengine/native.c } else if (rsc->variant == pe_group && rsc->children) { rsc 349 pengine/native.c GListPtr iter = rsc->children; rsc 351 pengine/native.c pe_rsc_trace(rsc, "%s: Combining scores from %d children of %s", rhs, g_list_length(iter), rsc->id); rsc 353 pengine/native.c for(iter = rsc->children; iter->next != NULL; iter = iter->next) { rsc 358 pengine/native.c pe_rsc_trace(rsc, "%s: Combining scores from %s", rhs, rsc->id); rsc 360 pengine/native.c node_hash_update(work, rsc->allowed_nodes, attr, factor, rsc 365 pengine/native.c pe_rsc_info(rsc, "%s: Rolling back scores from %s", rhs, rsc->id); rsc 367 pengine/native.c clear_bit(rsc->flags, pe_rsc_merging); rsc 375 pengine/native.c gIter = rsc->rsc_cons; rsc 378 pengine/native.c } else if(rsc->variant == pe_group && rsc->children) { rsc 379 pengine/native.c GListPtr last = rsc->children; rsc 390 pengine/native.c gIter = rsc->rsc_cons_lhs; rsc 391 pengine/native.c crm_trace("Checking %d additional optional colocation constraints %s", g_list_length(gIter), rsc->id); rsc 404 pengine/native.c pe_rsc_trace(rsc, "Applying %s (%s)", constraint->id, other->id); rsc 428 pengine/native.c clear_bit(rsc->flags, pe_rsc_merging); rsc 433 pengine/native.c native_color(resource_t * rsc, node_t * prefer, pe_working_set_t * data_set) rsc 438 pengine/native.c if (rsc->parent && is_not_set(rsc->parent->flags, pe_rsc_allocating)) { rsc 440 pengine/native.c pe_rsc_debug(rsc, "Escalating allocation of %s to its parent: %s", rsc->id, rsc 441 pengine/native.c rsc->parent->id); rsc 442 pengine/native.c rsc->parent->cmds->allocate(rsc->parent, prefer, data_set); rsc 445 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_provisional)) { rsc 446 pengine/native.c return rsc->allocated_to; rsc 449 pengine/native.c if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 450 pengine/native.c pe_rsc_debug(rsc, "Dependency loop detected involving %s", rsc->id); rsc 454 pengine/native.c set_bit(rsc->flags, pe_rsc_allocating); rsc 455 pengine/native.c print_resource(alloc_details, "Allocating: ", rsc, FALSE); rsc 456 pengine/native.c dump_node_scores(alloc_details, rsc, "Pre-alloc", rsc->allowed_nodes); rsc 458 pengine/native.c for (gIter = rsc->rsc_cons; gIter != NULL; gIter = gIter->next) { rsc 464 pengine/native.c pe_rsc_trace(rsc, "%s: Pre-Processing %s (%s, %d, %s)", rsc 465 pengine/native.c rsc->id, constraint->id, rsc_rh->id, rsc 469 pengine/native.c archive = node_hash_dup(rsc->allowed_nodes); rsc 472 pengine/native.c rsc->cmds->rsc_colocation_lh(rsc, rsc_rh, constraint); rsc 473 pengine/native.c if (archive && can_run_any(rsc->allowed_nodes) == FALSE) { rsc 474 pengine/native.c pe_rsc_info(rsc, "%s: Rolling back scores from %s", rsc->id, rsc_rh->id); rsc 475 pengine/native.c g_hash_table_destroy(rsc->allowed_nodes); rsc 476 pengine/native.c rsc->allowed_nodes = archive; rsc 484 pengine/native.c dump_node_scores(alloc_details, rsc, "Post-coloc", rsc->allowed_nodes); rsc 486 pengine/native.c for (gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { rsc 489 pengine/native.c rsc->allowed_nodes = rsc 490 pengine/native.c constraint->rsc_lh->cmds->merge_weights(constraint->rsc_lh, rsc->id, rsc->allowed_nodes, rsc 496 pengine/native.c print_resource(LOG_DEBUG_2, "Allocating: ", rsc, FALSE); rsc 497 pengine/native.c if (rsc->next_role == RSC_ROLE_STOPPED) { rsc 498 pengine/native.c pe_rsc_trace(rsc, "Making sure %s doesn't get allocated", rsc->id); rsc 500 pengine/native.c resource_location(rsc, NULL, -INFINITY, XML_RSC_ATTR_TARGET_ROLE, data_set); rsc 502 pengine/native.c } else if(rsc->next_role > rsc->role rsc 506 pengine/native.c rsc->id, role2text(rsc->role), role2text(rsc->next_role)); rsc 507 pengine/native.c rsc->next_role = rsc->role; rsc 510 pengine/native.c dump_node_scores(show_scores ? 0 : scores_log_level, rsc, __FUNCTION__, rsc 511 pengine/native.c rsc->allowed_nodes); rsc 514 pengine/native.c clear_bit(rsc->flags, pe_rsc_managed); rsc 517 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 521 pengine/native.c rsc->next_role = rsc->role; rsc 522 pengine/native.c if (rsc->running_on == NULL) { rsc 524 pengine/native.c } else if (rsc->role == RSC_ROLE_MASTER) { rsc 525 pengine/native.c assign_to = rsc->running_on->data; rsc 527 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failed)) { rsc 528 pengine/native.c assign_to = rsc->running_on->data; rsc 531 pengine/native.c assign_to = rsc->running_on->data; rsc 534 pengine/native.c pe_rsc_info(rsc, "Unmanaged resource %s allocated to %s: %s", rsc->id, rsc 536 pengine/native.c native_assign_node(rsc, NULL, assign_to, TRUE); rsc 539 pengine/native.c pe_rsc_debug(rsc, "Forcing %s to stop", rsc->id); rsc 540 pengine/native.c native_assign_node(rsc, NULL, NULL, TRUE); rsc 542 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_provisional) rsc 543 pengine/native.c && native_choose_node(rsc, prefer, data_set)) { rsc 544 pengine/native.c pe_rsc_trace(rsc, "Allocated resource %s to %s", rsc->id, rsc 545 pengine/native.c rsc->allocated_to->details->uname); rsc 547 pengine/native.c } else if (rsc->allocated_to == NULL) { rsc 548 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_orphan)) { rsc 549 pengine/native.c pe_rsc_info(rsc, "Resource %s cannot run anywhere", rsc->id); rsc 550 pengine/native.c } else if (rsc->running_on != NULL) { rsc 551 pengine/native.c pe_rsc_info(rsc, "Stopping orphan resource %s", rsc->id); rsc 555 pengine/native.c pe_rsc_debug(rsc, "Pre-Allocated resource %s to %s", rsc->id, rsc 556 pengine/native.c rsc->allocated_to->details->uname); rsc 559 pengine/native.c clear_bit(rsc->flags, pe_rsc_allocating); rsc 560 pengine/native.c print_resource(LOG_DEBUG_3, "Allocated ", rsc, TRUE); rsc 562 pengine/native.c if (rsc->is_remote_node) { rsc 563 pengine/native.c node_t *remote_node = pe_find_node(data_set->nodes, rsc->id); rsc 566 pengine/native.c if (rsc->allocated_to && rsc->next_role != RSC_ROLE_STOPPED) { rsc 578 pengine/native.c remote_node->details->id, role2text(rsc->next_role), rsc 579 pengine/native.c (rsc->allocated_to? "" : "un")); rsc 584 pengine/native.c return rsc->allocated_to; rsc 588 pengine/native.c is_op_dup(resource_t * rsc, const char *name, const char *interval) rsc 595 pengine/native.c CRM_ASSERT(rsc); rsc 596 pengine/native.c for (operation = __xml_first_child(rsc->ops_xml); operation != NULL; rsc 629 pengine/native.c RecurringOp(resource_t * rsc, action_t * start, node_t * node, rsc 649 pengine/native.c CRM_ASSERT(rsc); rsc 650 pengine/native.c pe_rsc_trace(rsc, "Creating recurring action %s for %s in role %s on %s", rsc 651 pengine/native.c ID(operation), rsc->id, role2text(rsc->next_role), rsc 666 pengine/native.c if (is_op_dup(rsc, name, interval)) { rsc 679 pengine/native.c key = generate_op_key(rsc->id, name, interval_ms); rsc 680 pengine/native.c if (find_rsc_op_entry(rsc, key) == NULL) { rsc 687 pengine/native.c pe_rsc_trace(rsc, "Marking %s %s due to %s", rsc 690 pengine/native.c is_optional = (rsc->cmds->action_flags(start, NULL) & pe_action_optional); rsc 692 pengine/native.c pe_rsc_trace(rsc, "Marking %s optional", key); rsc 697 pengine/native.c possible_matches = find_actions_exact(rsc->actions, key, node); rsc 700 pengine/native.c pe_rsc_trace(rsc, "Marking %s mandatory: not active", key); rsc 716 pengine/native.c if ((rsc->next_role == RSC_ROLE_MASTER && value == NULL) rsc 717 pengine/native.c || (value != NULL && text2role(value) != rsc->next_role)) { rsc 728 pengine/native.c mon = custom_action(rsc, local_key, RSC_CANCEL, node, FALSE, TRUE, data_set); rsc 739 pengine/native.c switch (rsc->role) { rsc 742 pengine/native.c if (rsc->next_role == RSC_ROLE_MASTER) { rsc 743 pengine/native.c local_key = promote_key(rsc); rsc 745 pengine/native.c } else if (rsc->next_role == RSC_ROLE_STOPPED) { rsc 746 pengine/native.c local_key = stop_key(rsc); rsc 751 pengine/native.c local_key = demote_key(rsc); rsc 758 pengine/native.c custom_action_order(rsc, NULL, mon, rsc, local_key, NULL, rsc 767 pengine/native.c role2text(rsc->next_role)); rsc 773 pengine/native.c mon = custom_action(rsc, key, name, node, is_optional, TRUE, data_set); rsc 776 pengine/native.c pe_rsc_trace(rsc, "%s\t %s (optional)", crm_str(node_uname), mon->uuid); rsc 780 pengine/native.c pe_rsc_debug(rsc, "%s\t %s (cancelled : start un-runnable)", crm_str(node_uname), rsc 785 pengine/native.c pe_rsc_debug(rsc, "%s\t %s (cancelled : no node available)", crm_str(node_uname), rsc 790 pengine/native.c pe_rsc_info(rsc, " Start recurring %s (%llus) for %s on %s", mon->task, interval_ms / 1000, rsc 791 pengine/native.c rsc->id, crm_str(node_uname)); rsc 794 pengine/native.c if (rsc->next_role == RSC_ROLE_MASTER) { rsc 801 pengine/native.c if (node == NULL || is_set(rsc->flags, pe_rsc_managed)) { rsc 802 pengine/native.c custom_action_order(rsc, start_key(rsc), NULL, rsc 806 pengine/native.c custom_action_order(rsc, reload_key(rsc), NULL, rsc 810 pengine/native.c if (rsc->next_role == RSC_ROLE_MASTER) { rsc 811 pengine/native.c custom_action_order(rsc, promote_key(rsc), NULL, rsc 812 pengine/native.c rsc, NULL, mon, rsc 815 pengine/native.c } else if (rsc->role == RSC_ROLE_MASTER) { rsc 816 pengine/native.c custom_action_order(rsc, demote_key(rsc), NULL, rsc 817 pengine/native.c rsc, NULL, mon, rsc 824 pengine/native.c Recurring(resource_t * rsc, action_t * start, node_t * node, pe_working_set_t * data_set) rsc 826 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_maintenance) && rsc 830 pengine/native.c for (operation = __xml_first_child(rsc->ops_xml); operation != NULL; rsc 833 pengine/native.c RecurringOp(rsc, start, node, operation, data_set); rsc 840 pengine/native.c RecurringOp_Stopped(resource_t * rsc, action_t * start, node_t * node, rsc 854 pengine/native.c if (is_set(rsc->flags, pe_rsc_unique) == FALSE) { rsc 864 pengine/native.c pe_rsc_trace(rsc, rsc 866 pengine/native.c ID(operation), rsc->id, role2text(rsc->next_role)); rsc 880 pengine/native.c if (is_op_dup(rsc, name, interval)) { rsc 893 pengine/native.c key = generate_op_key(rsc->id, name, interval_ms); rsc 894 pengine/native.c if (find_rsc_op_entry(rsc, key) == NULL) { rsc 902 pengine/native.c possible_matches = find_actions_exact(rsc->actions, key, node); rsc 909 pengine/native.c cancel_op = custom_action(rsc, local_key, RSC_CANCEL, node, FALSE, TRUE, data_set); rsc 920 pengine/native.c if (rsc->next_role == RSC_ROLE_STARTED || rsc->next_role == RSC_ROLE_SLAVE) { rsc 923 pengine/native.c custom_action_order(rsc, NULL, cancel_op, rsc, start_key(rsc), NULL, rsc 927 pengine/native.c pe_rsc_info(rsc, "Cancel action %s (%s vs. %s) on %s", rsc 928 pengine/native.c key, role, role2text(rsc->next_role), crm_str(node_uname)); rsc 949 pengine/native.c pe_rsc_trace(rsc, "Creating recurring action %s for %s on %s", rsc 950 pengine/native.c ID(operation), rsc->id, crm_str(stop_node_uname)); rsc 953 pengine/native.c possible_matches = find_actions_exact(rsc->actions, key, stop_node); rsc 955 pengine/native.c pe_rsc_trace(rsc, "Marking %s mandatory on %s: not active", key, rsc 959 pengine/native.c pe_rsc_trace(rsc, "Marking %s optional on %s: already active", key, rsc 965 pengine/native.c stopped_mon = custom_action(rsc, strdup(key), name, stop_node, is_optional, TRUE, data_set); rsc 971 pengine/native.c if (is_set(rsc->flags, pe_rsc_managed)) { rsc 972 pengine/native.c char *probe_key = generate_op_key(rsc->id, CRMD_ACTION_STATUS, 0); rsc 973 pengine/native.c GListPtr probes = find_actions(rsc->actions, probe_key, stop_node); rsc 991 pengine/native.c stop_op_key = stop_key(rsc); rsc 992 pengine/native.c stop_ops = find_actions_exact(rsc->actions, stop_op_key, stop_node); rsc 1007 pengine/native.c if (is_set(rsc->flags, pe_rsc_managed)) { rsc 1008 pengine/native.c custom_action_order(rsc, strdup(stop_op_key), stop, rsc 1021 pengine/native.c && is_set(rsc->flags, pe_rsc_managed) == FALSE) { rsc 1022 pengine/native.c pe_rsc_trace(rsc, "Marking %s optional on %s due to unmanaged", rsc 1028 pengine/native.c pe_rsc_trace(rsc, "%s\t %s (optional)", crm_str(stop_node_uname), stopped_mon->uuid); rsc 1032 pengine/native.c pe_rsc_debug(rsc, "%s\t %s (cancelled : no node available)", rsc 1040 pengine/native.c interval_ms / 1000, rsc->id, crm_str(stop_node_uname)); rsc 1048 pengine/native.c Recurring_Stopped(resource_t * rsc, action_t * start, node_t * node, pe_working_set_t * data_set) rsc 1050 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_maintenance) && rsc 1054 pengine/native.c for (operation = __xml_first_child(rsc->ops_xml); operation != NULL; rsc 1057 pengine/native.c RecurringOp_Stopped(rsc, start, node, operation, data_set); rsc 1064 pengine/native.c handle_migration_actions(resource_t * rsc, node_t *current, node_t *chosen, pe_working_set_t * data_set) rsc 1070 pengine/native.c gboolean partial = rsc->partial_migration_target ? TRUE : FALSE; rsc 1072 pengine/native.c pe_rsc_trace(rsc, "Processing migration actions %s moving from %s to %s . partial migration = %s", rsc 1073 pengine/native.c rsc->id, current->details->id, chosen->details->id, partial ? "TRUE" : "FALSE"); rsc 1074 pengine/native.c start = start_action(rsc, chosen, TRUE); rsc 1075 pengine/native.c stop = stop_action(rsc, current, TRUE); rsc 1078 pengine/native.c migrate_to = custom_action(rsc, generate_op_key(rsc->id, RSC_MIGRATE, 0), RSC_MIGRATE, current, TRUE, TRUE, data_set); rsc 1081 pengine/native.c migrate_from = custom_action(rsc, generate_op_key(rsc->id, RSC_MIGRATED, 0), RSC_MIGRATED, chosen, TRUE, TRUE, data_set); rsc 1095 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_STATUS, 0), NULL, rsc 1096 pengine/native.c rsc, generate_op_key(rsc->id, RSC_MIGRATED, 0), NULL, pe_order_optional, data_set); rsc 1103 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_STATUS, 0), NULL, rsc 1104 pengine/native.c rsc, generate_op_key(rsc->id, RSC_MIGRATE, 0), NULL, pe_order_optional, data_set); rsc 1105 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_MIGRATE, 0), NULL, rsc 1106 pengine/native.c rsc, generate_op_key(rsc->id, RSC_MIGRATED, 0), NULL, pe_order_optional | pe_order_implies_first_migratable, data_set); rsc 1109 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_MIGRATED, 0), NULL, rsc 1110 pengine/native.c rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, pe_order_optional | pe_order_implies_first_migratable, data_set); rsc 1111 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_MIGRATED, 0), NULL, rsc 1112 pengine/native.c rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, pe_order_optional | pe_order_implies_first_migratable | pe_order_pseudo_left, data_set); rsc 1123 pengine/native.c if (rsc->is_remote_node == FALSE) { rsc 1141 pengine/native.c native_create_actions(resource_t * rsc, pe_working_set_t * data_set) rsc 1148 pengine/native.c gboolean allow_migrate = is_set(rsc->flags, pe_rsc_allow_migrate) ? TRUE : FALSE; rsc 1155 pengine/native.c CRM_ASSERT(rsc); rsc 1156 pengine/native.c chosen = rsc->allocated_to; rsc 1157 pengine/native.c if (chosen != NULL && rsc->next_role == RSC_ROLE_UNKNOWN) { rsc 1158 pengine/native.c rsc->next_role = RSC_ROLE_STARTED; rsc 1159 pengine/native.c pe_rsc_trace(rsc, "Fixed next_role: unknown -> %s", role2text(rsc->next_role)); rsc 1161 pengine/native.c } else if (rsc->next_role == RSC_ROLE_UNKNOWN) { rsc 1162 pengine/native.c rsc->next_role = RSC_ROLE_STOPPED; rsc 1163 pengine/native.c pe_rsc_trace(rsc, "Fixed next_role: unknown -> %s", role2text(rsc->next_role)); rsc 1166 pengine/native.c pe_rsc_trace(rsc, "Processing state transition for %s %p: %s->%s", rsc->id, rsc, rsc 1167 pengine/native.c role2text(rsc->role), role2text(rsc->next_role)); rsc 1169 pengine/native.c if (rsc->running_on) { rsc 1170 pengine/native.c current = rsc->running_on->data; rsc 1173 pengine/native.c for (gIter = rsc->running_on; gIter != NULL; gIter = gIter->next) { rsc 1175 pengine/native.c if (rsc->partial_migration_source && rsc 1176 pengine/native.c (n->details == rsc->partial_migration_source->details)) { rsc 1177 pengine/native.c current = rsc->partial_migration_source; rsc 1182 pengine/native.c for (gIter = rsc->dangling_migrations; gIter != NULL; gIter = gIter->next) { rsc 1185 pengine/native.c action_t *stop = stop_action(rsc, current, FALSE); rsc 1188 pengine/native.c pe_rsc_trace(rsc, "Forcing a cleanup of %s on %s", rsc->id, current->details->uname); rsc 1191 pengine/native.c DeleteRsc(rsc, current, FALSE, data_set); rsc 1199 pengine/native.c && rsc->partial_migration_target rsc 1200 pengine/native.c && rsc->partial_migration_source rsc 1201 pengine/native.c && (current->details == rsc->partial_migration_source->details) rsc 1202 pengine/native.c && (chosen->details == rsc->partial_migration_target->details)) { rsc 1206 pengine/native.c pe_rsc_trace(rsc, rsc 1208 pengine/native.c rsc->partial_migration_target->details->id, rsc 1209 pengine/native.c rsc->partial_migration_source->details->id); rsc 1211 pengine/native.c const char *type = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 1212 pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 1214 pengine/native.c if(rsc->partial_migration_target && rsc->partial_migration_source) { rsc 1215 pengine/native.c crm_notice("Resource %s can no longer migrate to %s. Stopping on %s too", rsc->id, rsc 1216 pengine/native.c rsc->partial_migration_target->details->uname, rsc 1217 pengine/native.c rsc->partial_migration_source->details->uname); rsc 1221 pengine/native.c rsc->id, class, type, num_active_nodes, recovery2text(rsc->recovery_type)); rsc 1226 pengine/native.c if (rsc->recovery_type == recovery_stop_start) { rsc 1233 pengine/native.c rsc->partial_migration_source = rsc->partial_migration_target = NULL; rsc 1238 pengine/native.c if (is_set(rsc->flags, pe_rsc_start_pending)) { rsc 1239 pengine/native.c start = start_action(rsc, chosen, TRUE); rsc 1244 pengine/native.c pe_rsc_trace(rsc, "Moving %s", rsc->id); rsc 1248 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failed)) { rsc 1249 pengine/native.c pe_rsc_trace(rsc, "Recovering %s", rsc->id); rsc 1252 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_block)) { rsc 1253 pengine/native.c pe_rsc_trace(rsc, "Block %s", rsc->id); rsc 1256 pengine/native.c } else if (rsc->role > RSC_ROLE_STARTED && current != NULL && chosen != NULL) { rsc 1258 pengine/native.c start = start_action(rsc, chosen, TRUE); rsc 1260 pengine/native.c pe_rsc_trace(rsc, "Forced start %s", rsc->id); rsc 1265 pengine/native.c pe_rsc_trace(rsc, "Creating actions for %s: %s->%s", rsc->id, rsc 1266 pengine/native.c role2text(rsc->role), role2text(rsc->next_role)); rsc 1271 pengine/native.c role = rsc->role; rsc 1274 pengine/native.c pe_rsc_trace(rsc, "Down: Executing: %s->%s (%s)%s", role2text(role), role2text(next_role), rsc 1275 pengine/native.c rsc->id, need_stop ? " required" : ""); rsc 1276 pengine/native.c if (rsc_action_matrix[role][next_role] (rsc, current, !need_stop, data_set) == FALSE) { rsc 1283 pengine/native.c while (rsc->role <= rsc->next_role && role != rsc->role && is_not_set(rsc->flags, pe_rsc_block)) { rsc 1284 pengine/native.c next_role = rsc_state_matrix[role][rsc->role]; rsc 1285 pengine/native.c pe_rsc_trace(rsc, "Up: Executing: %s->%s (%s)%s", role2text(role), role2text(next_role), rsc 1286 pengine/native.c rsc->id, need_stop ? " required" : ""); rsc 1287 pengine/native.c if (rsc_action_matrix[role][next_role] (rsc, chosen, !need_stop, data_set) == FALSE) { rsc 1292 pengine/native.c role = rsc->role; rsc 1295 pengine/native.c while (role != rsc->next_role) { rsc 1296 pengine/native.c next_role = rsc_state_matrix[role][rsc->next_role]; rsc 1297 pengine/native.c pe_rsc_trace(rsc, "Role: Executing: %s->%s = (%s on %s)", role2text(role), role2text(next_role), rsc->id, chosen?chosen->details->uname:"NA"); rsc 1298 pengine/native.c if (rsc_action_matrix[role][next_role] (rsc, chosen, FALSE, data_set) == FALSE) { rsc 1304 pengine/native.c if(is_set(rsc->flags, pe_rsc_block)) { rsc 1305 pengine/native.c pe_rsc_trace(rsc, "No monitor additional ops for blocked resource"); rsc 1307 pengine/native.c } else if (rsc->next_role != RSC_ROLE_STOPPED || is_set(rsc->flags, pe_rsc_managed) == FALSE) { rsc 1308 pengine/native.c pe_rsc_trace(rsc, "Monitor ops for active resource"); rsc 1309 pengine/native.c start = start_action(rsc, chosen, TRUE); rsc 1310 pengine/native.c Recurring(rsc, start, chosen, data_set); rsc 1311 pengine/native.c Recurring_Stopped(rsc, start, chosen, data_set); rsc 1313 pengine/native.c pe_rsc_trace(rsc, "Monitor ops for in-active resource"); rsc 1314 pengine/native.c Recurring_Stopped(rsc, NULL, NULL, data_set); rsc 1320 pengine/native.c if (rsc->partial_migration_target && (chosen == NULL || rsc->partial_migration_target->details != chosen->details)) { rsc 1321 pengine/native.c pe_rsc_trace(rsc, "Not allowing partial migration to continue. %s", rsc->id); rsc 1325 pengine/native.c is_not_set(rsc->flags, pe_rsc_managed) || rsc 1326 pengine/native.c is_set(rsc->flags, pe_rsc_failed) || rsc 1327 pengine/native.c is_set(rsc->flags, pe_rsc_start_pending) || rsc 1329 pengine/native.c rsc->next_role < RSC_ROLE_STARTED) { rsc 1335 pengine/native.c handle_migration_actions(rsc, current, chosen, data_set); rsc 1340 pengine/native.c rsc_avoids_remote_nodes(resource_t *rsc) rsc 1344 pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 1353 pengine/native.c native_internal_constraints(resource_t * rsc, pe_working_set_t * data_set) rsc 1357 pengine/native.c resource_t *top = uber_parent(rsc); rsc 1359 pengine/native.c gboolean is_stonith = is_set(rsc->flags, pe_rsc_fence_device); rsc 1361 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, rsc 1362 pengine/native.c rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, type, data_set); rsc 1364 pengine/native.c if (top->variant == pe_master || rsc->role > RSC_ROLE_SLAVE) { rsc 1365 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_DEMOTE, 0), NULL, rsc 1366 pengine/native.c rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, rsc 1369 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, rsc 1370 pengine/native.c rsc, generate_op_key(rsc->id, RSC_PROMOTE, 0), NULL, rsc 1376 pengine/native.c && is_set(rsc->flags, pe_rsc_needs_unfencing)) { rsc 1381 pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 1386 pengine/native.c rsc->id, unfence->uuid); rsc 1403 pengine/native.c custom_action_order(rsc, stop_key(rsc), NULL, rsc 1408 pengine/native.c rsc, start_key(rsc), NULL, rsc 1414 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 1415 pengine/native.c pe_rsc_trace(rsc, "Skipping fencing constraints for unmanaged resource: %s", rsc->id); rsc 1422 pengine/native.c custom_action_order(rsc, stop_key(rsc), NULL, rsc 1427 pengine/native.c if (g_hash_table_size(rsc->utilization) > 0 rsc 1433 pengine/native.c pe_rsc_trace(rsc, "Creating utilization constraints for %s - strategy: %s", rsc 1434 pengine/native.c rsc->id, data_set->placement_strategy); rsc 1436 pengine/native.c for (gIter = rsc->running_on; gIter != NULL; gIter = gIter->next) { rsc 1447 pengine/native.c custom_action_order(rsc, stop_key(rsc), NULL, rsc 1451 pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 1462 pengine/native.c rsc, start_key(rsc), NULL, pe_order_load, data_set); rsc 1465 pengine/native.c rsc, generate_op_key(rsc->id, RSC_MIGRATE, 0), NULL, rsc 1472 pengine/native.c if (rsc->container) { rsc 1482 pengine/native.c if (rsc->container->is_remote_node) { rsc 1483 pengine/native.c remote_rsc = rsc->container; rsc 1484 pengine/native.c } else if (rsc->is_remote_node == FALSE) { rsc 1485 pengine/native.c remote_rsc = rsc_contains_remote_node(data_set, rsc->container); rsc 1495 pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 1509 pengine/native.c rsc->id, rsc->container->id); rsc 1511 pengine/native.c custom_action_order(rsc->container, generate_op_key(rsc->container->id, RSC_START, 0), NULL, rsc 1512 pengine/native.c rsc, generate_op_key(rsc->id, RSC_START, 0), NULL, rsc 1515 pengine/native.c custom_action_order(rsc, generate_op_key(rsc->id, RSC_STOP, 0), NULL, rsc 1516 pengine/native.c rsc->container, generate_op_key(rsc->container->id, RSC_STOP, 0), NULL, rsc 1519 pengine/native.c if (is_set(rsc->flags, pe_rsc_allow_remote_remotes)) { rsc 1524 pengine/native.c rsc_colocation_new("resource-with-container", NULL, score, rsc, rsc 1525 pengine/native.c rsc->container, NULL, NULL, data_set); rsc 1529 pengine/native.c if (rsc->is_remote_node || is_stonith) { rsc 1532 pengine/native.c rsc_avoids_remote_nodes(rsc); rsc 1539 pengine/native.c if (rsc->is_remote_node && rsc->container rsc 1540 pengine/native.c && is_not_set(rsc->flags, pe_rsc_allow_remote_remotes)) { rsc 1541 pengine/native.c rsc_avoids_remote_nodes(rsc->container); rsc 1895 pengine/native.c resource_t *then_rsc = then->rsc; rsc 1917 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional and runnable on %s", then->uuid); rsc 1926 pengine/native.c pe_rsc_trace(first->rsc, "Unset optional on %s because of %s", first->uuid, then->uuid); rsc 1934 pengine/native.c pe_rsc_trace(first->rsc, "Unset migrate runnable on %s because of %s", rsc 1943 pengine/native.c then->rsc && (then->rsc->role == RSC_ROLE_MASTER)) { rsc 1949 pengine/native.c pe_rsc_trace(first->rsc, "Unset migrate runnable on %s because of %s", first->uuid, then->uuid); rsc 1952 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because of %s", first->uuid, then->uuid); rsc 1962 pengine/native.c pe_rsc_trace(then->rsc, "Unset runnable on %s because %s is neither runnable or migratable", first->uuid, then->uuid); rsc 1967 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because %s is not optional", first->uuid, then->uuid); rsc 1978 pengine/native.c pe_rsc_trace(then->rsc, "Unset pseudo on %s because %s is not runnable", then->uuid, first->uuid); rsc 1987 pengine/native.c pe_rsc_trace(then->rsc, "Unset runnable on %s because of %s", then->uuid, first->uuid); rsc 1999 pengine/native.c pe_rsc_trace(then->rsc, "Unset optional on %s because of %s", then->uuid, first->uuid); rsc 2007 pengine/native.c CRM_ASSERT(first->rsc && first->rsc->variant == pe_native); rsc 2008 pengine/native.c CRM_ASSERT(then->rsc && then->rsc->variant == pe_native); rsc 2012 pengine/native.c && (then->rsc->flags & pe_rsc_managed)) { rsc 2023 pengine/native.c pe_rsc_trace(first->rsc, "Handling %s: %s -> %s", reason, first->uuid, then->uuid); rsc 2030 pengine/native.c pe_rsc_trace(then->rsc, "Handling %s: %s -> %s", reason, first->uuid, then->uuid); rsc 2046 pengine/native.c pe_rsc_trace(then->rsc, rsc 2051 pengine/native.c if(then->rsc && then->rsc->parent) { rsc 2059 pengine/native.c pe_rsc_trace(first->rsc, rsc 2069 pengine/native.c native_rsc_location(resource_t * rsc, rsc_to_node_t * constraint) rsc 2079 pengine/native.c } else if (rsc == NULL) { rsc 2084 pengine/native.c pe_rsc_trace(rsc, "Applying %s (%s) to %s", constraint->id, rsc 2085 pengine/native.c role2text(constraint->role_filter), rsc->id); rsc 2088 pengine/native.c if (constraint->role_filter > RSC_ROLE_UNKNOWN && constraint->role_filter != rsc->next_role) { rsc 2089 pengine/native.c pe_rsc_debug(rsc, "Constraint (%s) is not active (role : %s vs. %s)", rsc 2090 pengine/native.c constraint->id, role2text(constraint->role_filter), role2text(rsc->next_role)); rsc 2094 pengine/native.c pe_rsc_trace(rsc, "Constraint (%s) is not active", constraint->id); rsc 2099 pengine/native.c pe_rsc_trace(rsc, "RHS of constraint %s is NULL", constraint->id); rsc 2107 pengine/native.c other_node = (node_t *) pe_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 2110 pengine/native.c pe_rsc_trace(rsc, "%s + %s: %d + %d", rsc 2118 pengine/native.c pe_rsc_trace(rsc, "%s: %d (insert %d)", other_node->details->uname, other_node->weight, constraint->discover_mode); rsc 2119 pengine/native.c g_hash_table_insert(rsc->allowed_nodes, (gpointer) other_node->details->id, other_node); rsc 2124 pengine/native.c rsc->exclusive_discover = TRUE; rsc 2131 pengine/native.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 2133 pengine/native.c pe_rsc_trace(rsc, "%s + %s : %d", rsc->id, node->details->uname, node->weight); rsc 2138 pengine/native.c native_expand(resource_t * rsc, pe_working_set_t * data_set) rsc 2142 pengine/native.c CRM_ASSERT(rsc); rsc 2143 pengine/native.c pe_rsc_trace(rsc, "Processing actions from %s", rsc->id); rsc 2145 pengine/native.c for (gIter = rsc->actions; gIter != NULL; gIter = gIter->next) { rsc 2148 pengine/native.c crm_trace("processing action %d for rsc=%s", action->id, rsc->id); rsc 2152 pengine/native.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 2175 pengine/native.c crm_err("%s:%d: No stop action exists for %s", __FUNCTION__, lineno, rsc->id); \ rsc 2186 pengine/native.c LogAction(const char *change, resource_t *rsc, pe_node_t *origin, pe_node_t *destination, pe_action_t *action, pe_action_t *source, gboolean terminal) rsc 2202 pengine/native.c len = strlen(rsc->id); rsc 2207 pengine/native.c if(rsc->role > RSC_ROLE_STARTED || rsc->next_role > RSC_ROLE_SLAVE) { rsc 2215 pengine/native.c if(rsc->role == rsc->next_role) { rsc 2221 pengine/native.c details = crm_strdup_printf("%s -> %s %s", role2text(rsc->role), role2text(rsc->next_role), destination->details->uname); rsc 2225 pengine/native.c details = crm_strdup_printf("%s %s", role2text(rsc->role), origin->details->uname); rsc 2233 pengine/native.c details = crm_strdup_printf("%s %s", role2text(rsc->role), origin->details->uname); rsc 2241 pengine/native.c details = crm_strdup_printf("%s -> %s %s", origin->details->uname, destination->details->uname, role2text(rsc->role)); rsc 2249 pengine/native.c details = crm_strdup_printf("%s -> %s %s", role2text(rsc->role), role2text(rsc->next_role), origin->details->uname); rsc 2253 pengine/native.c details = crm_strdup_printf("%s %s -> %s %s", role2text(rsc->role), origin->details->uname, role2text(rsc->next_role), destination->details->uname); rsc 2275 pengine/native.c printf(" * %-8s %-*s ( %*s ) %s\n", change, rsc_width, rsc->id, detail_width, details, reason); rsc 2277 pengine/native.c crm_notice(" * %-8s %-*s ( %*s ) %s", change, rsc_width, rsc->id, detail_width, details, reason); rsc 2286 pengine/native.c LogActions(resource_t * rsc, pe_working_set_t * data_set, gboolean terminal) rsc 2300 pengine/native.c if(rsc->variant == pe_container) { rsc 2301 pengine/native.c container_LogActions(rsc, data_set, terminal); rsc 2305 pengine/native.c if (rsc->children) { rsc 2308 pengine/native.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 2316 pengine/native.c next = rsc->allocated_to; rsc 2317 pengine/native.c if (rsc->running_on) { rsc 2318 pengine/native.c if (g_list_length(rsc->running_on) > 1 && rsc->partial_migration_source) { rsc 2319 pengine/native.c current = rsc->partial_migration_source; rsc 2321 pengine/native.c current = rsc->running_on->data; rsc 2324 pengine/native.c if (rsc->role == RSC_ROLE_STOPPED) { rsc 2329 pengine/native.c rsc->role = RSC_ROLE_STARTED; rsc 2333 pengine/native.c if (current == NULL && is_set(rsc->flags, pe_rsc_orphan)) { rsc 2338 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed) rsc 2340 pengine/native.c pe_rsc_info(rsc, "Leave %s\t(%s%s)", rsc 2341 pengine/native.c rsc->id, role2text(rsc->role), is_not_set(rsc->flags, rsc 2350 pengine/native.c key = start_key(rsc); rsc 2351 pengine/native.c possible_matches = find_actions(rsc->actions, key, next); rsc 2358 pengine/native.c key = stop_key(rsc); rsc 2360 pengine/native.c possible_matches = find_actions(rsc->actions, key, NULL); rsc 2362 pengine/native.c possible_matches = find_actions(rsc->actions, key, current); rsc 2370 pengine/native.c key = promote_key(rsc); rsc 2371 pengine/native.c possible_matches = find_actions(rsc->actions, key, next); rsc 2378 pengine/native.c key = demote_key(rsc); rsc 2379 pengine/native.c possible_matches = find_actions(rsc->actions, key, next); rsc 2386 pengine/native.c if (rsc->role == rsc->next_role) { rsc 2389 pengine/native.c key = generate_op_key(rsc->id, RSC_MIGRATED, 0); rsc 2390 pengine/native.c possible_matches = find_actions(rsc->actions, key, next); rsc 2400 pengine/native.c LogAction("Migrate", rsc, current, next, start, NULL, terminal); rsc 2402 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_reload)) { rsc 2403 pengine/native.c LogAction("Reload", rsc, current, next, start, NULL, terminal); rsc 2406 pengine/native.c pe_rsc_info(rsc, "Leave %s\t(%s %s)", rsc->id, role2text(rsc->role), rsc 2410 pengine/native.c LogAction("Stop", rsc, current, NULL, stop, rsc 2415 pengine/native.c LogAction(is_set(rsc->flags, pe_rsc_failed) ? "Recover" : "Move", rsc 2416 pengine/native.c rsc, current, next, stop, NULL, terminal); rsc 2418 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failed)) { rsc 2419 pengine/native.c LogAction("Recover", rsc, current, NULL, stop, NULL, terminal); rsc 2423 pengine/native.c LogAction("Restart", rsc, current, next, start, NULL, terminal); rsc 2432 pengine/native.c && (rsc->next_role == RSC_ROLE_STOPPED rsc 2437 pengine/native.c key = stop_key(rsc); rsc 2438 pengine/native.c for (gIter = rsc->running_on; gIter != NULL; gIter = gIter->next) { rsc 2442 pengine/native.c possible_matches = find_actions(rsc->actions, key, node); rsc 2452 pengine/native.c LogAction("Stop", rsc, node, NULL, stop_op, rsc 2458 pengine/native.c } else if (stop && is_set(rsc->flags, pe_rsc_failed)) { rsc 2460 pengine/native.c LogAction("Recover", rsc, current, next, stop, start, terminal); rsc 2464 pengine/native.c LogAction("Move", rsc, current, next, stop, NULL, terminal); rsc 2467 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_reload)) { rsc 2468 pengine/native.c LogAction("Reload", rsc, current, next, start, NULL, terminal); rsc 2471 pengine/native.c LogAction("Restart", rsc, current, next, start, NULL, terminal); rsc 2474 pengine/native.c } else if (rsc->role == RSC_ROLE_MASTER) { rsc 2476 pengine/native.c LogAction("Demote", rsc, current, next, demote, NULL, terminal); rsc 2478 pengine/native.c } else if(rsc->next_role == RSC_ROLE_MASTER) { rsc 2480 pengine/native.c LogAction("Promote", rsc, current, next, promote, NULL, terminal); rsc 2482 pengine/native.c } else if (rsc->role == RSC_ROLE_STOPPED && rsc->next_role > RSC_ROLE_STOPPED) { rsc 2483 pengine/native.c LogAction("Start", rsc, current, next, start, NULL, terminal); rsc 2488 pengine/native.c StopRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2492 pengine/native.c CRM_ASSERT(rsc); rsc 2493 pengine/native.c pe_rsc_trace(rsc, "%s", rsc->id); rsc 2495 pengine/native.c for (gIter = rsc->running_on; gIter != NULL; gIter = gIter->next) { rsc 2499 pengine/native.c if (rsc->partial_migration_target) { rsc 2500 pengine/native.c if (rsc->partial_migration_target->details == current->details) { rsc 2501 pengine/native.c pe_rsc_trace(rsc, "Filtered %s -> %s %s", current->details->uname, rsc 2502 pengine/native.c next->details->uname, rsc->id); rsc 2505 pengine/native.c pe_rsc_trace(rsc, "Forced on %s %s", current->details->uname, rsc->id); rsc 2510 pengine/native.c pe_rsc_trace(rsc, "%s on %s", rsc->id, current->details->uname); rsc 2511 pengine/native.c stop = stop_action(rsc, current, optional); rsc 2513 pengine/native.c if(rsc->allocated_to == NULL) { rsc 2517 pengine/native.c if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 2522 pengine/native.c DeleteRsc(rsc, current, optional, data_set); rsc 2525 pengine/native.c if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { rsc 2531 pengine/native.c pe_proc_err("Stopping %s until %s can be unfenced", rsc->id, current->details->uname); rsc 2540 pengine/native.c StartRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2544 pengine/native.c CRM_ASSERT(rsc); rsc 2545 pengine/native.c pe_rsc_trace(rsc, "%s on %s %d %d", rsc->id, next ? next->details->uname : "N/A", optional, next ? next->weight : 0); rsc 2546 pengine/native.c start = start_action(rsc, next, TRUE); rsc 2548 pengine/native.c if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { rsc 2555 pengine/native.c char *reason = crm_strdup_printf("Required by %s", rsc->id); rsc 2570 pengine/native.c PromoteRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2577 pengine/native.c CRM_ASSERT(rsc); rsc 2579 pengine/native.c pe_rsc_trace(rsc, "%s on %s", rsc->id, next->details->uname); rsc 2581 pengine/native.c key = start_key(rsc); rsc 2582 pengine/native.c action_list = find_actions_exact(rsc->actions, key, next); rsc 2595 pengine/native.c promote_action(rsc, next, optional); rsc 2599 pengine/native.c pe_rsc_debug(rsc, "%s\tPromote %s (canceled)", next->details->uname, rsc->id); rsc 2601 pengine/native.c key = promote_key(rsc); rsc 2602 pengine/native.c action_list = find_actions_exact(rsc->actions, key, next); rsc 2616 pengine/native.c DemoteRsc(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2620 pengine/native.c CRM_ASSERT(rsc); rsc 2621 pengine/native.c pe_rsc_trace(rsc, "%s", rsc->id); rsc 2624 pengine/native.c for (gIter = rsc->running_on; gIter != NULL; gIter = gIter->next) { rsc 2627 pengine/native.c pe_rsc_trace(rsc, "%s on %s", rsc->id, next ? next->details->uname : "N/A"); rsc 2628 pengine/native.c demote_action(rsc, current, optional); rsc 2634 pengine/native.c RoleError(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2636 pengine/native.c CRM_ASSERT(rsc); rsc 2637 pengine/native.c crm_err("%s on %s", rsc->id, next ? next->details->uname : "N/A"); rsc 2643 pengine/native.c NullOp(resource_t * rsc, node_t * next, gboolean optional, pe_working_set_t * data_set) rsc 2645 pengine/native.c CRM_ASSERT(rsc); rsc 2646 pengine/native.c pe_rsc_trace(rsc, "%s", rsc->id); rsc 2651 pengine/native.c DeleteRsc(resource_t * rsc, node_t * node, gboolean optional, pe_working_set_t * data_set) rsc 2653 pengine/native.c if (is_set(rsc->flags, pe_rsc_failed)) { rsc 2654 pengine/native.c pe_rsc_trace(rsc, "Resource %s not deleted from %s: failed", rsc->id, node->details->uname); rsc 2658 pengine/native.c pe_rsc_trace(rsc, "Resource %s not deleted: NULL node", rsc->id); rsc 2662 pengine/native.c pe_rsc_trace(rsc, "Resource %s not deleted from %s: unrunnable", rsc->id, rsc 2667 pengine/native.c crm_notice("Removing %s from %s", rsc->id, node->details->uname); rsc 2669 pengine/native.c delete_action(rsc, node, optional); rsc 2671 pengine/native.c new_rsc_order(rsc, RSC_STOP, rsc, RSC_DELETE, rsc 2674 pengine/native.c new_rsc_order(rsc, RSC_DELETE, rsc, RSC_START, rsc 2752 pengine/native.c probe_anon_group_member(resource_t *rsc, node_t *node, rsc 2755 pengine/native.c resource_t *top = uber_parent(rsc); rsc 2776 pengine/native.c char *clone_id = clone_zero(rsc->id); rsc 2784 pengine/native.c pe_rsc_trace(rsc, "Skipping active clone: %s", rsc->id); rsc 2798 pengine/native.c native_create_probe(resource_t * rsc, node_t * node, action_t * complete, rsc 2806 pengine/native.c resource_t *top = uber_parent(rsc); rsc 2818 pengine/native.c pe_rsc_trace(rsc, "Skipping active resource detection for %s", rsc->id); rsc 2823 pengine/native.c const char *class = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 2826 pengine/native.c pe_rsc_trace(rsc, rsc 2828 pengine/native.c rsc->id, node->details->id); rsc 2830 pengine/native.c } else if (is_container_remote_node(node) && rsc_contains_remote_node(data_set, rsc)) { rsc 2831 pengine/native.c pe_rsc_trace(rsc, rsc 2833 pengine/native.c rsc->id, node->details->id); rsc 2835 pengine/native.c } else if (rsc->is_remote_node) { rsc 2836 pengine/native.c pe_rsc_trace(rsc, rsc 2838 pengine/native.c rsc->id, node->details->id); rsc 2843 pengine/native.c if (rsc->children) { rsc 2847 pengine/native.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 2856 pengine/native.c } else if ((rsc->container) && (!rsc->is_remote_node)) { rsc 2857 pengine/native.c pe_rsc_trace(rsc, "Skipping %s: it is within container %s", rsc->id, rsc->container->id); rsc 2861 pengine/native.c if (is_set(rsc->flags, pe_rsc_orphan)) { rsc 2862 pengine/native.c pe_rsc_trace(rsc, "Skipping orphan: %s", rsc->id); rsc 2866 pengine/native.c running = g_hash_table_lookup(rsc->known_on, node->details->id); rsc 2867 pengine/native.c if (running == NULL && is_set(rsc->flags, pe_rsc_unique) == FALSE) { rsc 2869 pengine/native.c if (rsc->parent == top) { rsc 2870 pengine/native.c running = g_hash_table_lookup(rsc->parent->known_on, node->details->id); rsc 2874 pengine/native.c running = probe_anon_group_member(rsc, node, data_set); rsc 2880 pengine/native.c pe_rsc_trace(rsc, "Skipping known: %s on %s", rsc->id, node->details->uname); rsc 2884 pengine/native.c allowed = g_hash_table_lookup(rsc->allowed_nodes, node->details->id); rsc 2886 pengine/native.c if (rsc->exclusive_discover || top->exclusive_discover) { rsc 2889 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, A", rsc->id, node->details->id); rsc 2894 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, B", rsc->id, node->details->id); rsc 2905 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, C", rsc->id, node->details->id); rsc 2911 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, discovery mode", rsc->id, node->details->id); rsc 2946 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, %s is stopped", rsc 2947 pengine/native.c rsc->id, node->details->id, remote->id); rsc 2967 pengine/native.c pe_rsc_trace(rsc, "Skipping probe for %s on node %s, %s is stopping, restarting or moving", rsc 2968 pengine/native.c rsc->id, node->details->id, remote->id); rsc 2976 pengine/native.c key = generate_op_key(rsc->id, RSC_STATUS, 0); rsc 2977 pengine/native.c probe = custom_action(rsc, key, RSC_STATUS, node, FALSE, TRUE, data_set); rsc 2993 pengine/native.c if(is_set(rsc->flags, pe_rsc_needs_unfencing)) { rsc 3002 pengine/native.c running = pe_find_node_id(rsc->running_on, node->details->id); rsc 3006 pengine/native.c } else if (rsc->role == RSC_ROLE_MASTER) { rsc 3010 pengine/native.c crm_debug("Probing %s on %s (%s) %d %p", rsc->id, node->details->uname, role2text(rsc->role), rsc 3011 pengine/native.c is_set(probe->flags, pe_action_runnable), rsc->running_on); rsc 3013 pengine/native.c if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { rsc 3014 pengine/native.c top = rsc; rsc 3017 pengine/native.c top = rsc; rsc 3020 pengine/native.c crm_trace("Probing %s on %s (%s) as %s", rsc->id, node->details->uname, role2text(rsc->role), top->id); rsc 3023 pengine/native.c if(is_not_set(probe->flags, pe_action_runnable) && rsc->running_on == NULL) { rsc 3030 pengine/native.c custom_action_order(rsc, NULL, probe, rsc 3035 pengine/native.c custom_action_order(rsc, NULL, probe, rsc 3036 pengine/native.c top, reload_key(rsc), NULL, rsc 3039 pengine/native.c if(is_set(rsc->flags, pe_rsc_fence_device) && is_set(data_set->flags, pe_flag_enable_unfencing)) { rsc 3054 pengine/native.c native_start_constraints(resource_t * rsc, action_t * stonith_op, pe_working_set_t * data_set) rsc 3064 pengine/native.c for (gIter = rsc->actions; gIter != NULL; gIter = gIter->next) { rsc 3074 pengine/native.c && NULL == pe_hash_table_lookup(rsc->known_on, target->details->id)) { rsc 3091 pengine/native.c pe_rsc_debug(rsc, "Ordering %s after %s recovery", action->uuid, rsc 3099 pengine/native.c native_stop_constraints(resource_t * rsc, action_t * stonith_op, pe_working_set_t * data_set) rsc 3106 pengine/native.c resource_t *top = uber_parent(rsc); rsc 3113 pengine/native.c start = find_first_action(rsc->actions, NULL, CRMD_ACTION_START, NULL); rsc 3116 pengine/native.c key = stop_key(rsc); rsc 3117 pengine/native.c action_list = find_actions(rsc->actions, key, target); rsc 3123 pengine/native.c if (is_set(rsc->flags, pe_rsc_failed)) { rsc 3125 pengine/native.c rsc->id, target->details->uname); rsc 3154 pengine/native.c if (is_set(rsc->flags, pe_rsc_notify)) { rsc 3175 pengine/native.c create_secondary_notification(action, rsc, stonith_op, data_set); rsc 3213 pengine/native.c key = demote_key(rsc); rsc 3214 pengine/native.c action_list = find_actions(rsc->actions, key, target); rsc 3221 pengine/native.c || is_set(rsc->flags, pe_rsc_failed)) { rsc 3223 pengine/native.c if (is_set(rsc->flags, pe_rsc_failed)) { rsc 3224 pengine/native.c pe_rsc_info(rsc, rsc 3226 pengine/native.c rsc->id, target->details->uname); rsc 3228 pengine/native.c pe_rsc_info(rsc, "%s is implicit after %s is fenced", rsc 3248 pengine/native.c rsc_stonith_ordering(resource_t * rsc, action_t * stonith_op, pe_working_set_t * data_set) rsc 3250 pengine/native.c if (rsc->children) { rsc 3253 pengine/native.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 3259 pengine/native.c } else if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 3260 pengine/native.c pe_rsc_trace(rsc, "Skipping fencing constraints for unmanaged resource: %s", rsc->id); rsc 3263 pengine/native.c native_start_constraints(rsc, stonith_op, data_set); rsc 3264 pengine/native.c native_stop_constraints(rsc, stonith_op, data_set); rsc 3276 pengine/native.c ReloadRsc(resource_t * rsc, node_t *node, pe_working_set_t * data_set) rsc 3281 pengine/native.c if (rsc->children) { rsc 3282 pengine/native.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 3289 pengine/native.c } else if (rsc->variant > pe_native) { rsc 3293 pengine/native.c } else if (is_not_set(rsc->flags, pe_rsc_managed)) { rsc 3294 pengine/native.c pe_rsc_trace(rsc, "%s: unmanaged", rsc->id); rsc 3297 pengine/native.c } else if (is_set(rsc->flags, pe_rsc_failed) || is_set(rsc->flags, pe_rsc_start_pending)) { rsc 3298 pengine/native.c pe_rsc_trace(rsc, "%s: general resource state: flags=0x%.16llx", rsc->id, rsc->flags); rsc 3299 pengine/native.c stop_action(rsc, node, FALSE); /* Force a full restart, overkill? */ rsc 3303 pengine/native.c pe_rsc_trace(rsc, "%s: not active", rsc->id); rsc 3307 pengine/native.c pe_rsc_trace(rsc, "Processing %s", rsc->id); rsc 3308 pengine/native.c set_bit(rsc->flags, pe_rsc_reload); rsc 3311 pengine/native.c rsc, reload_key(rsc), CRMD_ACTION_RELOAD, node, FALSE, TRUE, data_set); rsc 3314 pengine/native.c custom_action_order(NULL, NULL, reload, rsc, stop_key(rsc), NULL, rsc 3317 pengine/native.c custom_action_order(NULL, NULL, reload, rsc, demote_key(rsc), NULL, rsc 3323 pengine/native.c native_append_meta(resource_t * rsc, xmlNode * xml) rsc 3325 pengine/native.c char *value = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_INCARNATION); rsc 3336 pengine/native.c value = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_REMOTE_NODE); rsc 3345 pengine/native.c for (parent = rsc; parent != NULL; parent = parent->parent) { rsc 3351 pengine/native.c last_parent = iso_parent = rsc; rsc 26 pengine/notif.c resource_t *rsc; rsc 47 pengine/notif.c if (entry_a->rsc == NULL && entry_b->rsc == NULL) { rsc 50 pengine/notif.c if (entry_a->rsc == NULL) { rsc 53 pengine/notif.c if (entry_b->rsc == NULL) { rsc 57 pengine/notif.c tmp = strcmp(entry_a->rsc->id, entry_b->rsc->id); rsc 80 pengine/notif.c dup->rsc = entry->rsc; rsc 175 pengine/notif.c CRM_LOG_ASSERT(entry && entry->rsc != NULL); rsc 177 pengine/notif.c if(entry == NULL || entry->rsc == NULL) { rsc 188 pengine/notif.c rsc_id = entry->rsc->id; rsc 237 pengine/notif.c pe_notify(resource_t * rsc, node_t * node, action_t * op, action_t * confirm, rsc 246 pengine/notif.c pe_rsc_trace(rsc, "Op=%p confirm=%p", op, confirm); rsc 250 pengine/notif.c CRM_CHECK(rsc != NULL, return NULL); rsc 254 pengine/notif.c pe_rsc_trace(rsc, "Skipping notification for %s: node offline", rsc->id); rsc 257 pengine/notif.c pe_rsc_trace(rsc, "Skipping notification for %s: not runnable", op->uuid); rsc 264 pengine/notif.c pe_rsc_trace(rsc, "Creating notify actions for %s: %s (%s-%s)", op->uuid, rsc->id, value, task); rsc 266 pengine/notif.c key = generate_notify_key(rsc->id, value, task); rsc 267 pengine/notif.c trigger = custom_action(rsc, key, op->task, node, rsc 273 pengine/notif.c pe_rsc_trace(rsc, "Ordering %s before %s (%d->%d)", op->uuid, trigger->uuid, trigger->id, rsc 282 pengine/notif.c pe_post_notify(resource_t * rsc, node_t * node, notify_data_t * n_data, pe_working_set_t * data_set) rsc 286 pengine/notif.c CRM_CHECK(rsc != NULL, return); rsc 292 pengine/notif.c notify = pe_notify(rsc, node, n_data->post, n_data->post_done, n_data, data_set); rsc 299 pengine/notif.c GListPtr gIter = rsc->actions; rsc 306 pengine/notif.c pe_rsc_trace(rsc, "Skipping %s: interval", mon->uuid); rsc 309 pengine/notif.c pe_rsc_trace(rsc, "Skipping %s: cancel", mon->uuid); rsc 319 pengine/notif.c create_notification_boundaries(resource_t * rsc, const char *action, action_t * start, rsc 334 pengine/notif.c if (is_not_set(rsc->flags, pe_rsc_notify)) { rsc 344 pengine/notif.c key = generate_notify_key(rsc->id, "pre", start->task); rsc 346 pengine/notif.c custom_action(rsc, key, RSC_NOTIFY, NULL, is_set(start->flags, pe_action_optional), rsc 359 pengine/notif.c key = generate_notify_key(rsc->id, "confirmed-pre", start->task); rsc 361 pengine/notif.c custom_action(rsc, key, RSC_NOTIFIED, NULL, is_set(start->flags, pe_action_optional), rsc 379 pengine/notif.c key = generate_notify_key(rsc->id, "post", end->task); rsc 381 pengine/notif.c custom_action(rsc, key, RSC_NOTIFY, NULL, is_set(end->flags, pe_action_optional), TRUE, rsc 399 pengine/notif.c key = generate_notify_key(rsc->id, "confirmed-post", end->task); rsc 401 pengine/notif.c custom_action(rsc, key, RSC_NOTIFIED, NULL, is_set(end->flags, pe_action_optional), rsc 436 pengine/notif.c collect_notification_data(resource_t * rsc, gboolean state, gboolean activity, rsc 441 pengine/notif.c n_data->allowed_nodes = rsc->allowed_nodes; rsc 444 pengine/notif.c if (rsc->children) { rsc 445 pengine/notif.c GListPtr gIter = rsc->children; rsc 459 pengine/notif.c entry->rsc = rsc; rsc 460 pengine/notif.c if (rsc->running_on) { rsc 462 pengine/notif.c entry->node = rsc->running_on->data; rsc 465 pengine/notif.c pe_rsc_trace(rsc, "%s state: %s", rsc->id, role2text(rsc->role)); rsc 467 pengine/notif.c switch (rsc->role) { rsc 495 pengine/notif.c GListPtr gIter = rsc->actions; rsc 504 pengine/notif.c entry->rsc = rsc; rsc 530 pengine/notif.c expand_notification_data(resource_t *rsc, notify_data_t * n_data, pe_working_set_t * data_set) rsc 617 pengine/notif.c source = g_hash_table_lookup(rsc->meta, XML_RSC_ATTR_TARGET); rsc 640 pengine/notif.c create_notifications(resource_t * rsc, notify_data_t * n_data, pe_working_set_t * data_set) rsc 647 pengine/notif.c if (rsc->children) { rsc 648 pengine/notif.c gIter = rsc->children; rsc 659 pengine/notif.c gIter = rsc->actions; rsc 679 pengine/notif.c pe_rsc_trace(rsc, "Creating notifications for: %s.%s (%s->%s)", rsc 680 pengine/notif.c n_data->action, rsc->id, role2text(rsc->role), role2text(rsc->next_role)); rsc 682 pengine/notif.c stop = find_first_action(rsc->actions, NULL, RSC_STOP, NULL); rsc 683 pengine/notif.c start = find_first_action(rsc->actions, NULL, RSC_START, NULL); rsc 686 pengine/notif.c if (rsc->role != RSC_ROLE_STOPPED) { rsc 688 pengine/notif.c gIter = rsc->running_on; rsc 702 pengine/notif.c pe_notify(rsc, current_node, n_data->pre, n_data->pre_done, n_data, data_set); rsc 705 pengine/notif.c pe_post_notify(rsc, current_node, n_data, data_set); rsc 712 pengine/notif.c if (rsc->next_role != RSC_ROLE_STOPPED) { rsc 713 pengine/notif.c if (rsc->allocated_to == NULL) { rsc 714 pengine/notif.c pe_proc_err("Next role '%s' but %s is not allocated", role2text(rsc->next_role), rsc 715 pengine/notif.c rsc->id); rsc 719 pengine/notif.c pe_notify(rsc, rsc->allocated_to, n_data->pre, n_data->pre_done, n_data, data_set); rsc 721 pengine/notif.c pe_post_notify(rsc, rsc->allocated_to, n_data, data_set); rsc 746 pengine/notif.c create_secondary_notification(pe_action_t *action, resource_t *rsc, rsc 753 pengine/notif.c n_data = create_notification_boundaries(rsc, RSC_STOP, NULL, stonith_op, rsc 755 pengine/notif.c collect_notification_data(rsc, TRUE, FALSE, n_data); rsc 757 pengine/notif.c strdup(rsc->id)); rsc 760 pengine/notif.c create_notifications(uber_parent(rsc), n_data, data_set); rsc 23 pengine/notif.h notify_data_t * create_notification_boundaries(resource_t *rsc, rsc 28 pengine/notif.h void collect_notification_data(resource_t *rsc, gboolean state, rsc 31 pengine/notif.h gboolean expand_notification_data(resource_t *rsc, notify_data_t *n_data, rsc 34 pengine/notif.h void create_notifications(resource_t *rsc, notify_data_t *n_data, rsc 39 pengine/notif.h void create_secondary_notification(pe_action_t *action, resource_t *rsc, rsc 251 pengine/pengine.c resource_t *rsc = (resource_t *) gIter->data; rsc 253 pengine/pengine.c if (is_set(rsc->flags, pe_rsc_orphan) && rsc->role == RSC_ROLE_STOPPED) { rsc 256 pengine/pengine.c rsc->fns->print(rsc, NULL, pe_print_log, &rsc_log_level); rsc 405 pengine/ptest.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { rsc 24 pengine/utilization.c static GListPtr find_colocated_rscs(GListPtr colocated_rscs, resource_t * rsc, rsc 27 pengine/utilization.c static GListPtr group_find_colocated_rscs(GListPtr colocated_rscs, resource_t * rsc, rsc 30 pengine/utilization.c static void group_add_unallocated_utilization(GHashTable * all_utilization, resource_t * rsc, rsc 177 pengine/utilization.c native_add_unallocated_utilization(GHashTable * all_utilization, resource_t * rsc) rsc 179 pengine/utilization.c if(is_set(rsc->flags, pe_rsc_provisional) == FALSE) { rsc 183 pengine/utilization.c calculate_utilization(all_utilization, rsc->utilization, TRUE); rsc 187 pengine/utilization.c add_unallocated_utilization(GHashTable * all_utilization, resource_t * rsc, rsc 190 pengine/utilization.c if(is_set(rsc->flags, pe_rsc_provisional) == FALSE) { rsc 194 pengine/utilization.c if (rsc->variant == pe_native) { rsc 196 pengine/utilization.c orig_rsc->id, rsc->id); rsc 197 pengine/utilization.c native_add_unallocated_utilization(all_utilization, rsc); rsc 199 pengine/utilization.c } else if (rsc->variant == pe_group) { rsc 201 pengine/utilization.c orig_rsc->id, rsc->id); rsc 202 pengine/utilization.c group_add_unallocated_utilization(all_utilization, rsc, all_rscs); rsc 204 pengine/utilization.c } else if (pe_rsc_is_clone(rsc)) { rsc 209 pengine/utilization.c gIter1 = rsc->children; rsc 235 pengine/utilization.c resource_t *first_child = (resource_t *) rsc->children->data; rsc 245 pengine/utilization.c sum_unallocated_utilization(resource_t * rsc, GListPtr colocated_rscs) rsc 252 pengine/utilization.c if (g_list_find(all_rscs, rsc) == FALSE) { rsc 253 pengine/utilization.c all_rscs = g_list_append(all_rscs, rsc); rsc 263 pengine/utilization.c pe_rsc_trace(rsc, "%s: Processing unallocated colocated %s", rsc->id, listed_rsc->id); rsc 264 pengine/utilization.c add_unallocated_utilization(all_utilization, listed_rsc, all_rscs, rsc); rsc 273 pengine/utilization.c find_colocated_rscs(GListPtr colocated_rscs, resource_t * rsc, resource_t * orig_rsc) rsc 277 pengine/utilization.c if (rsc == NULL) { rsc 280 pengine/utilization.c } else if (g_list_find(colocated_rscs, rsc)) { rsc 284 pengine/utilization.c crm_trace("%s: %s is supposed to be colocated with %s", orig_rsc->id, rsc->id, orig_rsc->id); rsc 285 pengine/utilization.c colocated_rscs = g_list_append(colocated_rscs, rsc); rsc 287 pengine/utilization.c for (gIter = rsc->rsc_cons; gIter != NULL; gIter = gIter->next) { rsc 297 pengine/utilization.c && filter_colocation_constraint(rsc, rsc_rh, constraint, TRUE) == influence_rsc_location) { rsc 309 pengine/utilization.c for (gIter = rsc->rsc_cons_lhs; gIter != NULL; gIter = gIter->next) { rsc 318 pengine/utilization.c if (pe_rsc_is_clone(rsc_lh) == FALSE && pe_rsc_is_clone(rsc)) { rsc 324 pengine/utilization.c && filter_colocation_constraint(rsc_lh, rsc, constraint, TRUE) == influence_rsc_location) { rsc 340 pengine/utilization.c process_utilization(resource_t * rsc, node_t ** prefer, pe_working_set_t * data_set) rsc 350 pengine/utilization.c colocated_rscs = find_colocated_rscs(colocated_rscs, rsc, rsc); rsc 353 pengine/utilization.c char *rscs_id = crm_concat(rsc->id, "and its colocated resources", ' '); rsc 356 pengine/utilization.c unallocated_utilization = sum_unallocated_utilization(rsc, colocated_rscs); rsc 358 pengine/utilization.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 376 pengine/utilization.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 383 pengine/utilization.c pe_rsc_debug(rsc, rsc 386 pengine/utilization.c rsc->id, node->details->uname); rsc 387 pengine/utilization.c resource_location(rsc, node, -INFINITY, "__limit_utilization__", data_set); rsc 404 pengine/utilization.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 410 pengine/utilization.c if (have_enough_capacity(node, rsc->id, rsc->utilization) == FALSE) { rsc 411 pengine/utilization.c pe_rsc_debug(rsc, rsc 414 pengine/utilization.c rsc->id, node->details->uname); rsc 415 pengine/utilization.c resource_location(rsc, node, -INFINITY, "__limit_utilization__", data_set); rsc 419 pengine/utilization.c dump_node_scores(alloc_details, rsc, "Post-utilization", rsc->allowed_nodes); rsc 427 pengine/utilization.c group_find_colocated_rscs(GListPtr colocated_rscs, resource_t * rsc, resource_t * orig_rsc) rsc 431 pengine/utilization.c get_group_variant_data(group_data, rsc); rsc 432 pengine/utilization.c if (group_data->colocated || pe_rsc_is_clone(rsc->parent)) { rsc 433 pengine/utilization.c GListPtr gIter = rsc->children; rsc 447 pengine/utilization.c colocated_rscs = find_colocated_rscs(colocated_rscs, rsc, orig_rsc); rsc 453 pengine/utilization.c group_add_unallocated_utilization(GHashTable * all_utilization, resource_t * rsc, rsc 458 pengine/utilization.c get_group_variant_data(group_data, rsc); rsc 459 pengine/utilization.c if (group_data->colocated || pe_rsc_is_clone(rsc->parent)) { rsc 460 pengine/utilization.c GListPtr gIter = rsc->children; rsc 63 pengine/utils.c rsc2node_new(const char *id, resource_t * rsc, rsc 69 pengine/utils.c if (rsc == NULL || id == NULL) { rsc 70 pengine/utils.c pe_err("Invalid constraint %s for rsc=%p", crm_str(id), rsc); rsc 80 pengine/utils.c new_con->rsc_lh = rsc; rsc 91 pengine/utils.c rsc->exclusive_discover = TRUE; rsc 104 pengine/utils.c rsc->rsc_location = g_list_prepend(rsc->rsc_location, new_con); rsc 229 pengine/utils.c native_deallocate(resource_t * rsc) rsc 231 pengine/utils.c if (rsc->allocated_to) { rsc 232 pengine/utils.c node_t *old = rsc->allocated_to; rsc 234 pengine/utils.c crm_info("Deallocating %s from %s", rsc->id, old->details->uname); rsc 235 pengine/utils.c set_bit(rsc->flags, pe_rsc_provisional); rsc 236 pengine/utils.c rsc->allocated_to = NULL; rsc 238 pengine/utils.c old->details->allocated_rsc = g_list_remove(old->details->allocated_rsc, rsc); rsc 241 pengine/utils.c calculate_utilization(old->details->utilization, rsc->utilization, TRUE); rsc 247 pengine/utils.c native_assign_node(resource_t * rsc, GListPtr nodes, node_t * chosen, gboolean force) rsc 249 pengine/utils.c CRM_ASSERT(rsc->variant == pe_native); rsc 265 pengine/utils.c rsc->id, chosen->details->uname, can_run_resources(chosen), chosen->weight); rsc 266 pengine/utils.c rsc->next_role = RSC_ROLE_STOPPED; rsc 275 pengine/utils.c native_deallocate(rsc); rsc 276 pengine/utils.c clear_bit(rsc->flags, pe_rsc_provisional); rsc 282 pengine/utils.c crm_debug("Could not allocate a node for %s", rsc->id); rsc 283 pengine/utils.c rsc->next_role = RSC_ROLE_STOPPED; rsc 285 pengine/utils.c for (gIter = rsc->actions; gIter != NULL; gIter = gIter->next) { rsc 312 pengine/utils.c crm_debug("Assigning %s to %s", chosen->details->uname, rsc->id); rsc 313 pengine/utils.c rsc->allocated_to = node_copy(chosen); rsc 315 pengine/utils.c chosen->details->allocated_rsc = g_list_prepend(chosen->details->allocated_rsc, rsc); rsc 318 pengine/utils.c calculate_utilization(chosen->details->utilization, rsc->utilization, FALSE); rsc 319 pengine/utils.c dump_rsc_utilization(show_utilization ? 0 : utilization_log_level, __FUNCTION__, rsc, chosen); rsc 375 pengine/utils.c action->uuid, action->rsc ? action->rsc->id : "<none>", rsc 433 pengine/utils.c create_pseudo_resource_op(resource_t * rsc, const char *task, bool optional, bool runnable, pe_working_set_t *data_set) rsc 435 pengine/utils.c pe_action_t *action = custom_action(rsc, generate_op_key(rsc->id, task, 0), task, NULL, optional, TRUE, data_set); rsc 26 pengine/utils.h extern rsc_to_node_t *rsc2node_new(const char *id, resource_t * rsc, int weight, rsc 45 pengine/utils.h extern gboolean native_assign_node(resource_t * rsc, GListPtr candidates, node_t * chosen, rsc 47 pengine/utils.h void native_deallocate(resource_t * rsc); rsc 54 pengine/utils.h resource_t *find_compatible_child(resource_t * local_child, resource_t * rsc, enum rsc_role_e filter, gboolean current); rsc 55 pengine/utils.h resource_t *find_compatible_child_by_node(resource_t * local_child, node_t * local_node, resource_t * rsc, rsc 58 pengine/utils.h bool assign_node(resource_t * rsc, node_t * node, gboolean force); rsc 61 pengine/utils.h int copies_per_node(resource_t * rsc); rsc 77 pengine/utils.h extern void process_utilization(resource_t * rsc, node_t ** prefer, pe_working_set_t * data_set); rsc 78 pengine/utils.h pe_action_t *create_pseudo_resource_op(resource_t * rsc, const char *task, bool optional, bool runnable, pe_working_set_t *data_set); rsc 855 tools/crm_mon.c count_resources(pe_working_set_t * data_set, resource_t * rsc) rsc 860 tools/crm_mon.c if (rsc == NULL) { rsc 862 tools/crm_mon.c } else if (rsc->children) { rsc 863 tools/crm_mon.c gIter = rsc->children; rsc 865 tools/crm_mon.c return is_not_set(rsc->flags, pe_rsc_orphan); rsc 1196 tools/crm_mon.c resource_t *rsc = (resource_t *) rsc_iter->data; rsc 1199 tools/crm_mon.c gboolean is_active = rsc->fns->active(rsc, TRUE); rsc 1200 tools/crm_mon.c gboolean partially_active = rsc->fns->active(rsc, FALSE); rsc 1203 tools/crm_mon.c if (is_set(rsc->flags, pe_rsc_orphan) && !is_active) { rsc 1213 tools/crm_mon.c } else if (brief_output && (rsc->variant == pe_native)) { rsc 1228 tools/crm_mon.c rsc->fns->print(rsc, prefix, print_opts, stream); rsc 1247 tools/crm_mon.c resource_t *rsc, const char *rsc_id, gboolean all) rsc 1250 tools/crm_mon.c int failcount = rsc? rsc 1251 tools/crm_mon.c pe_get_failcount(node, rsc, &last_failure, pe_fc_default, rsc 1280 tools/crm_mon.c if (rsc == NULL) { rsc 1307 tools/crm_mon.c print_as(" migration-threshold=%d", rsc->migration_threshold); rsc 1312 tools/crm_mon.c fprintf(stream, " migration-threshold=%d", rsc->migration_threshold); rsc 1317 tools/crm_mon.c rsc->migration_threshold); rsc 1517 tools/crm_mon.c resource_t *rsc = pe_find_resource(data_set->resources, rsc_id); rsc 1522 tools/crm_mon.c print_rsc_history_start(stream, data_set, node, rsc, rsc_id, FALSE); rsc 1556 tools/crm_mon.c print_rsc_history_start(stream, data_set, node, rsc, rsc_id, TRUE); rsc 1625 tools/crm_mon.c resource_t *rsc = (resource_t *) gIter->data; rsc 1626 tools/crm_mon.c const char *type = g_hash_table_lookup(rsc->meta, "type"); rsc 1628 tools/crm_mon.c if (rsc->children != NULL) { rsc 1629 tools/crm_mon.c if (print_attr_msg(stream, node, rsc->children, attrname, attrvalue)) { rsc 1635 tools/crm_mon.c const char *name = g_hash_table_lookup(rsc->parameters, "name"); rsc 1646 tools/crm_mon.c const char *hosts = g_hash_table_lookup(rsc->parameters, "host_list"); rsc 1647 tools/crm_mon.c const char *multiplier = g_hash_table_lookup(rsc->parameters, "multiplier"); rsc 2108 tools/crm_mon.c crm_mon_get_parameters(resource_t *rsc, pe_working_set_t * data_set) rsc 2110 tools/crm_mon.c get_rsc_attributes(rsc->parameters, rsc, NULL, data_set); rsc 2111 tools/crm_mon.c crm_trace("Beekhof: unpacked params for %s (%d)", rsc->id, g_hash_table_size(rsc->parameters)); rsc 2112 tools/crm_mon.c if(rsc->children) { rsc 2115 tools/crm_mon.c for (gIter = rsc->children; gIter != NULL; gIter = gIter->next) { rsc 3020 tools/crm_mon.c resource_t *rsc = (resource_t *) gIter2->data; rsc 3022 tools/crm_mon.c rsc->fns->print(rsc, "\t", print_opts | pe_print_rsconly, stdout); rsc 3147 tools/crm_mon.c resource_t *rsc = (resource_t *) lpc2->data; rsc 3149 tools/crm_mon.c rsc->fns->print(rsc, " ", print_opts | pe_print_rsconly, stream); rsc 3269 tools/crm_mon.c resource_t *rsc = (resource_t *) lpc2->data; rsc 3272 tools/crm_mon.c rsc->fns->print(rsc, NULL, print_opts | pe_print_rsconly, stream); rsc 3426 tools/crm_mon.c send_snmp_trap(const char *node, const char *rsc, const char *task, int target_rc, int rc, rsc 3463 tools/crm_mon.c if (rsc) { rsc 3464 tools/crm_mon.c add_snmp_field(trap_pdu, snmp_crm_oid_rsc, rsc); rsc 3599 tools/crm_mon.c send_custom_trap(const char *node, const char *rsc, const char *task, int target_rc, int rc, rsc 3611 tools/crm_mon.c if(rsc) { rsc 3612 tools/crm_mon.c setenv("CRM_notify_rsc", rsc, 1); rsc 3642 tools/crm_mon.c send_smtp_trap(const char *node, const char *rsc, const char *task, int target_rc, int rc, rsc 3662 tools/crm_mon.c if (rsc == NULL) { rsc 3663 tools/crm_mon.c rsc = "-"; rsc 3685 tools/crm_mon.c len += strlen(rsc); rsc 3693 tools/crm_mon.c rsc, node, desc); rsc 3700 tools/crm_mon.c "Completed operation %s for resource %s on %s\r\n", task, rsc, node); rsc 3703 tools/crm_mon.c "Operation %s for resource %s on %s failed: %s\r\n", task, rsc, node, desc); rsc 3801 tools/crm_mon.c char *rsc = NULL; rsc 3840 tools/crm_mon.c if (parse_op_key(id, &rsc, &task, &interval) == FALSE) { rsc 3871 tools/crm_mon.c crm_notice("%s of %s on %s completed: %s", task, rsc, node, desc); rsc 3878 tools/crm_mon.c crm_warn("%s of %s on %s failed: %s", task, rsc, node, desc); rsc 3882 tools/crm_mon.c crm_warn("%s of %s on %s failed: %s", task, rsc, node, desc); rsc 3886 tools/crm_mon.c send_snmp_trap(node, rsc, task, target_rc, rc, status, desc); rsc 3889 tools/crm_mon.c send_smtp_trap(node, rsc, task, target_rc, rc, status, desc); rsc 3892 tools/crm_mon.c send_custom_trap(node, rsc, task, target_rc, rc, status, desc); rsc 3896 tools/crm_mon.c free(rsc); rsc 438 tools/crm_resource.c resource_t *rsc = NULL; rsc 849 tools/crm_resource.c rsc = pe_find_resource_with_flags(data_set.resources, rsc_id, rsc 851 tools/crm_resource.c if (rsc == NULL) { rsc 887 tools/crm_resource.c rsc = (resource_t *) lpc->data; rsc 890 tools/crm_resource.c cli_resource_print_raw(rsc); rsc 899 tools/crm_resource.c rc = cli_resource_restart(rsc, host_uname, timeout_ms, cib_conn); rsc 906 tools/crm_resource.c rc = cli_resource_execute(rsc, rsc_id, rsc_long_cmd, override_params, rsc 919 tools/crm_resource.c rsc = uber_parent(rsc); rsc 927 tools/crm_resource.c cli_resource_print_colocation(rsc, TRUE, rsc_cmd == 'A', 1); rsc 929 tools/crm_resource.c fprintf(stdout, "* %s\n", rsc->id); rsc 930 tools/crm_resource.c cli_resource_print_location(rsc, NULL); rsc 938 tools/crm_resource.c cli_resource_print_colocation(rsc, FALSE, rsc_cmd == 'A', 1); rsc 945 tools/crm_resource.c rsc = (resource_t *) lpc->data; rsc 946 tools/crm_resource.c cli_resource_print_cts(rsc); rsc 963 tools/crm_resource.c rc = cli_resource_search(rsc, rsc_id, &data_set); rsc 969 tools/crm_resource.c rc = cli_resource_print(rsc, &data_set, TRUE); rsc 972 tools/crm_resource.c rc = cli_resource_print(rsc, &data_set, FALSE); rsc 985 tools/crm_resource.c cli_resource_why(cib_conn, data_set.resources, rsc, dest); rsc 1005 tools/crm_resource.c rc = cli_resource_move(rsc, rsc_id, host_uname, cib_conn, &data_set); rsc 1019 tools/crm_resource.c if (g_list_length(rsc->running_on) == 1) { rsc 1020 tools/crm_resource.c node_t *current = rsc->running_on->data; rsc 1023 tools/crm_resource.c } else if(rsc->variant == pe_master) { rsc 1028 tools/crm_resource.c for(iter = rsc->children; iter; iter = iter->next) { rsc 1042 tools/crm_resource.c CMD_ERR("Resource '%s' not moved: active in %d locations (promoted in %d).", rsc_id, g_list_length(rsc->running_on), count); rsc 1049 tools/crm_resource.c CMD_ERR("Resource '%s' not moved: active in %d locations.", rsc_id, g_list_length(rsc->running_on)); rsc 1054 tools/crm_resource.c rc = cli_resource_print_property(rsc, prop_name, &data_set); rsc 1080 tools/crm_resource.c rc = cli_resource_print_attribute(rsc, prop_name, &data_set); rsc 1090 tools/crm_resource.c rc = cli_resource_update_attribute(rsc, rsc_id, prop_set, prop_id, rsc 1096 tools/crm_resource.c rc = cli_resource_delete_attribute(rsc, rsc_id, prop_set, prop_id, rsc 1122 tools/crm_resource.c task, rsc->id, resource_name, node); rsc 1123 tools/crm_resource.c rc = cli_resource_delete(crmd_channel, node, rsc, task, rsc 1127 tools/crm_resource.c if(rsc && (rc == pcmk_ok) && (BE_QUIET == FALSE)) { rsc 1129 tools/crm_resource.c cli_resource_check(cib_conn, rsc); rsc 1136 tools/crm_resource.c } else if ((rsc_cmd == 'C') && rsc) { rsc 1138 tools/crm_resource.c rsc = uber_parent(rsc); rsc 1142 tools/crm_resource.c rsc->id, rsc_id, host_uname); rsc 1144 tools/crm_resource.c rc = cli_resource_delete(crmd_channel, host_uname, rsc, operation, rsc 1149 tools/crm_resource.c cli_resource_check(cib_conn, rsc); rsc 1210 tools/crm_resource.c rsc = rIter->data; rsc 1211 tools/crm_resource.c cli_resource_delete(crmd_channel, host_uname, rsc, NULL, NULL, rsc 56 tools/crm_resource.h void cli_resource_print_cts(resource_t * rsc); rsc 57 tools/crm_resource.h void cli_resource_print_raw(resource_t * rsc); rsc 59 tools/crm_resource.h void cli_resource_print_location(resource_t * rsc, const char *prefix); rsc 60 tools/crm_resource.h void cli_resource_print_colocation(resource_t * rsc, bool dependents, bool recursive, int offset); rsc 62 tools/crm_resource.h int cli_resource_print(resource_t *rsc, pe_working_set_t *data_set, rsc 65 tools/crm_resource.h int cli_resource_print_attribute(resource_t *rsc, const char *attr, rsc 67 tools/crm_resource.h int cli_resource_print_property(resource_t *rsc, const char *attr, rsc 72 tools/crm_resource.h void cli_resource_check(cib_t * cib, resource_t *rsc); rsc 74 tools/crm_resource.h int cli_resource_search(resource_t *rsc, const char *requested_name, rsc 77 tools/crm_resource.h resource_t *rsc, const char *operation, rsc 79 tools/crm_resource.h int cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib); rsc 80 tools/crm_resource.h int cli_resource_move(resource_t *rsc, const char *rsc_id, rsc 83 tools/crm_resource.h int cli_resource_execute(resource_t *rsc, const char *requested_name, rsc 88 tools/crm_resource.h int cli_resource_update_attribute(resource_t *rsc, const char *requested_name, rsc 93 tools/crm_resource.h int cli_resource_delete_attribute(resource_t *rsc, const char *requested_name, rsc 100 tools/crm_resource.h void cli_resource_why(cib_t *cib_conn, GListPtr resources, resource_t *rsc, rsc 63 tools/crm_resource_print.c cli_resource_print_cts(resource_t * rsc) rsc 68 tools/crm_resource_print.c const char *rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 69 tools/crm_resource_print.c const char *rprov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 70 tools/crm_resource_print.c const char *rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 77 tools/crm_resource_print.c for (op = __xml_first_child(rsc->ops_xml); op != NULL; op = __xml_next(op)) { rsc 93 tools/crm_resource_print.c if (rsc->running_on != NULL && g_list_length(rsc->running_on) == 1) { rsc 94 tools/crm_resource_print.c node_t *tmp = rsc->running_on->data; rsc 100 tools/crm_resource_print.c crm_element_name(rsc->xml), rsc->id, rsc 101 tools/crm_resource_print.c rsc->clone_name ? rsc->clone_name : rsc->id, rsc->parent ? rsc->parent->id : "NA", rsc 102 tools/crm_resource_print.c rprov ? rprov : "NA", rclass, rtype, host ? host : "NA", needs_quorum, rsc->flags, rsc 103 tools/crm_resource_print.c rsc->flags); rsc 105 tools/crm_resource_print.c for (lpc = rsc->children; lpc != NULL; lpc = lpc->next) { rsc 114 tools/crm_resource_print.c cli_resource_print_raw(resource_t * rsc) rsc 117 tools/crm_resource_print.c GListPtr children = rsc->children; rsc 120 tools/crm_resource_print.c printf("%s\n", rsc->id); rsc 143 tools/crm_resource_print.c resource_t *rsc = (resource_t *) lpc->data; rsc 145 tools/crm_resource_print.c if (is_set(rsc->flags, pe_rsc_orphan) rsc 146 tools/crm_resource_print.c && rsc->fns->active(rsc, TRUE) == FALSE) { rsc 149 tools/crm_resource_print.c rsc->fns->print(rsc, NULL, opts, stdout); rsc 165 tools/crm_resource_print.c resource_t *rsc = NULL; rsc 183 tools/crm_resource_print.c rsc = pe_find_resource(data_set->resources, op_rsc); rsc 184 tools/crm_resource_print.c if(rsc) { rsc 185 tools/crm_resource_print.c rsc->fns->print(rsc, "", opts, stdout); rsc 207 tools/crm_resource_print.c cli_resource_print_location(resource_t * rsc, const char *prefix) rsc 210 tools/crm_resource_print.c GListPtr list = rsc->rsc_location; rsc 234 tools/crm_resource_print.c cli_resource_print_colocation(resource_t * rsc, bool dependents, bool recursive, int offset) rsc 238 tools/crm_resource_print.c GListPtr list = rsc->rsc_cons; rsc 244 tools/crm_resource_print.c list = rsc->rsc_cons_lhs; rsc 247 tools/crm_resource_print.c if (is_set(rsc->flags, pe_rsc_allocating)) { rsc 249 tools/crm_resource_print.c printf("loop %s\n", rsc->id); rsc 254 tools/crm_resource_print.c set_bit(rsc->flags, pe_rsc_allocating); rsc 297 tools/crm_resource_print.c cli_resource_print(resource_t *rsc, pe_working_set_t *data_set, bool expanded) rsc 305 tools/crm_resource_print.c rsc->fns->print(rsc, NULL, opts, stdout); rsc 307 tools/crm_resource_print.c rsc_xml = dump_xml_formatted((!expanded && rsc->orig_xml)? rsc 308 tools/crm_resource_print.c rsc->orig_xml : rsc->xml); rsc 315 tools/crm_resource_print.c cli_resource_print_attribute(resource_t *rsc, const char *attr, pe_working_set_t * data_set) rsc 322 tools/crm_resource_print.c if (g_list_length(rsc->running_on) == 1) { rsc 323 tools/crm_resource_print.c current = rsc->running_on->data; rsc 325 tools/crm_resource_print.c } else if (g_list_length(rsc->running_on) > 1) { rsc 327 tools/crm_resource_print.c " returning the default value for %s", rsc->id, crm_str(attr)); rsc 333 tools/crm_resource_print.c get_rsc_attributes(params, rsc, current, data_set); rsc 337 tools/crm_resource_print.c get_meta_attributes(params, rsc, current, data_set); rsc 340 tools/crm_resource_print.c unpack_instance_attributes(data_set->input, rsc->xml, rsc 345 tools/crm_resource_print.c crm_debug("Looking up %s in %s", attr, rsc->id); rsc 352 tools/crm_resource_print.c CMD_ERR("Attribute '%s' not found for '%s'", attr, rsc->id); rsc 361 tools/crm_resource_print.c cli_resource_print_property(resource_t *rsc, const char *attr, pe_working_set_t * data_set) rsc 363 tools/crm_resource_print.c const char *value = crm_element_value(rsc->xml, attr); rsc 29 tools/crm_resource_runtime.c do_find_resource(const char *rsc, resource_t * the_rsc, pe_working_set_t * data_set) rsc 45 tools/crm_resource_runtime.c fprintf(stdout, "resource %s is running on: %s %s\n", rsc, node->details->uname, state); rsc 52 tools/crm_resource_runtime.c fprintf(stderr, "resource %s is NOT running\n", rsc); rsc 59 tools/crm_resource_runtime.c cli_resource_search(resource_t *rsc, const char *requested_name, rsc 63 tools/crm_resource_runtime.c resource_t *parent = uber_parent(rsc); rsc 65 tools/crm_resource_runtime.c if (pe_rsc_is_clone(rsc)) { rsc 66 tools/crm_resource_runtime.c for (GListPtr iter = rsc->children; iter != NULL; iter = iter->next) { rsc 72 tools/crm_resource_runtime.c && is_not_set(rsc->flags, pe_rsc_unique) rsc 73 tools/crm_resource_runtime.c && rsc->clone_name rsc 74 tools/crm_resource_runtime.c && safe_str_eq(requested_name, rsc->clone_name) rsc 75 tools/crm_resource_runtime.c && safe_str_neq(requested_name, rsc->id)) { rsc 82 tools/crm_resource_runtime.c found += do_find_resource(requested_name, rsc, data_set); rsc 91 tools/crm_resource_runtime.c find_resource_attr(cib_t * the_cib, const char *attr, const char *rsc, const char *set_type, rsc 111 tools/crm_resource_runtime.c offset += snprintf(xpath_string + offset, XPATH_MAX - offset, "//*[@id=\"%s\"]", rsc); rsc 168 tools/crm_resource_runtime.c find_matching_attr_resource(resource_t * rsc, const char * rsc_id, const char * attr_set, const char * attr_id, rsc 176 tools/crm_resource_runtime.c return rsc; rsc 178 tools/crm_resource_runtime.c } else if(rsc->parent) { rsc 179 tools/crm_resource_runtime.c switch(rsc->parent->variant) { rsc 182 tools/crm_resource_runtime.c printf("Performing %s of '%s' for '%s' will not apply to its peers in '%s'\n", cmd, attr_name, rsc_id, rsc->parent->id); rsc 192 tools/crm_resource_runtime.c rsc = rsc->parent; rsc 194 tools/crm_resource_runtime.c printf("Performing %s of '%s' on '%s', the parent of '%s'\n", cmd, attr_name, rsc->id, rsc_id); rsc 202 tools/crm_resource_runtime.c } else if (rsc->parent && BE_QUIET == FALSE) { rsc 203 tools/crm_resource_runtime.c printf("Forcing %s of '%s' for '%s' instead of '%s'\n", cmd, attr_name, rsc_id, rsc->parent->id); rsc 205 tools/crm_resource_runtime.c } else if(rsc->parent == NULL && rsc->children) { rsc 206 tools/crm_resource_runtime.c resource_t *child = rsc->children->data; rsc 213 tools/crm_resource_runtime.c rsc = child; rsc 224 tools/crm_resource_runtime.c return rsc; rsc 228 tools/crm_resource_runtime.c cli_resource_update_attribute(resource_t *rsc, const char *requested_name, rsc 249 tools/crm_resource_runtime.c cib, XML_ATTR_ID, uber_parent(rsc)->id, NULL, NULL, NULL, attr_name, NULL)) { rsc 255 tools/crm_resource_runtime.c rc = find_resource_attr(cib, XML_ATTR_ID, uber_parent(rsc)->id, rsc 260 tools/crm_resource_runtime.c uber_parent(rsc)->id, attr_name, local_attr_id); rsc 270 tools/crm_resource_runtime.c rsc = find_matching_attr_resource(rsc, requested_name, attr_set, rsc 274 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); /* Could be a cloned group! */ rsc 290 tools/crm_resource_runtime.c const char *tag = crm_element_name(rsc->xml); rsc 366 tools/crm_resource_runtime.c crm_debug("Looking for dependencies %p", rsc->rsc_cons_lhs); rsc 367 tools/crm_resource_runtime.c set_bit(rsc->flags, pe_rsc_allocating); rsc 368 tools/crm_resource_runtime.c for (lpc = rsc->rsc_cons_lhs; lpc != NULL; lpc = lpc->next) { rsc 387 tools/crm_resource_runtime.c cli_resource_delete_attribute(resource_t *rsc, const char *requested_name, rsc 401 tools/crm_resource_runtime.c cib, XML_ATTR_ID, uber_parent(rsc)->id, NULL, NULL, NULL, attr_name, NULL) != pcmk_ok) { rsc 406 tools/crm_resource_runtime.c rsc = find_matching_attr_resource(rsc, requested_name, attr_set, rsc 410 tools/crm_resource_runtime.c lookup_id = clone_strip(rsc->id); rsc 459 tools/crm_resource_runtime.c resource_t *rsc = pe_find_resource(data_set->resources, rsc_id); rsc 461 tools/crm_resource_runtime.c if (rsc == NULL) { rsc 465 tools/crm_resource_runtime.c } else if (rsc->variant != pe_native) { rsc 497 tools/crm_resource_runtime.c if (rsc->clone_name) { rsc 498 tools/crm_resource_runtime.c crm_xml_add(xml_rsc, XML_ATTR_ID, rsc->clone_name); rsc 499 tools/crm_resource_runtime.c crm_xml_add(xml_rsc, XML_ATTR_ID_LONG, rsc->id); rsc 502 tools/crm_resource_runtime.c crm_xml_add(xml_rsc, XML_ATTR_ID, rsc->id); rsc 505 tools/crm_resource_runtime.c value = crm_copy_xml_element(rsc->xml, xml_rsc, XML_ATTR_TYPE); rsc 511 tools/crm_resource_runtime.c value = crm_copy_xml_element(rsc->xml, xml_rsc, XML_AGENT_ATTR_CLASS); rsc 517 tools/crm_resource_runtime.c crm_copy_xml_element(rsc->xml, xml_rsc, XML_AGENT_ATTR_PROVIDER); rsc 554 tools/crm_resource_runtime.c rsc_fail_name(resource_t *rsc) rsc 556 tools/crm_resource_runtime.c const char *name = (rsc->clone_name? rsc->clone_name : rsc->id); rsc 558 tools/crm_resource_runtime.c return is_set(rsc->flags, pe_rsc_unique)? strdup(name) : clone_strip(name); rsc 563 tools/crm_resource_runtime.c resource_t *rsc, const char *operation, rsc 571 tools/crm_resource_runtime.c if (rsc == NULL) { rsc 574 tools/crm_resource_runtime.c } else if (rsc->children) { rsc 577 tools/crm_resource_runtime.c for (lpc = rsc->children; lpc != NULL; lpc = lpc->next) { rsc 590 tools/crm_resource_runtime.c GListPtr nodes = g_hash_table_get_values(rsc->known_on); rsc 595 tools/crm_resource_runtime.c } else if(nodes == NULL && rsc->exclusive_discover) { rsc 599 tools/crm_resource_runtime.c g_hash_table_iter_init(&iter, rsc->allowed_nodes); rsc 607 tools/crm_resource_runtime.c nodes = g_hash_table_get_values(rsc->allowed_nodes); rsc 614 tools/crm_resource_runtime.c cli_resource_delete(crmd_channel, node->details->uname, rsc, rsc 627 tools/crm_resource_runtime.c rsc->id, host_uname); rsc 633 tools/crm_resource_runtime.c rsc->id, host_uname); rsc 639 tools/crm_resource_runtime.c rsc->id, host_uname); rsc 648 tools/crm_resource_runtime.c rc = send_lrm_rsc_op(crmd_channel, CRM_OP_LRM_DELETE, host_uname, rsc->id, rsc 652 tools/crm_resource_runtime.c rsc->id, host_uname, pcmk_strerror(rc)); rsc 667 tools/crm_resource_runtime.c rsc_name = rsc_fail_name(rsc); rsc 675 tools/crm_resource_runtime.c rsc->id, host_uname, pcmk_strerror(rc)); rsc 677 tools/crm_resource_runtime.c printf("Cleaned up %s on %s\n", rsc->id, host_uname); rsc 685 tools/crm_resource_runtime.c cli_resource_check(cib_t * cib_conn, resource_t *rsc) rsc 690 tools/crm_resource_runtime.c resource_t *parent = uber_parent(rsc); rsc 732 tools/crm_resource_runtime.c generate_resource_params(resource_t * rsc, pe_working_set_t * data_set) rsc 739 tools/crm_resource_runtime.c if (!rsc) { rsc 748 tools/crm_resource_runtime.c get_rsc_attributes(params, rsc, NULL /* TODO: Pass in local node */ , data_set); rsc 749 tools/crm_resource_runtime.c get_meta_attributes(meta, rsc, NULL /* TODO: Pass in local node */ , data_set); rsc 778 tools/crm_resource_runtime.c static bool resource_is_running_on(resource_t *rsc, const char *host) rsc 784 tools/crm_resource_runtime.c if(rsc == NULL) { rsc 788 tools/crm_resource_runtime.c rsc->fns->location(rsc, &hosts, TRUE); rsc 793 tools/crm_resource_runtime.c crm_trace("Resource %s is running on %s\n", rsc->id, host); rsc 796 tools/crm_resource_runtime.c crm_trace("Resource %s is running on %s\n", rsc->id, host); rsc 802 tools/crm_resource_runtime.c crm_trace("Resource %s is not running on: %s\n", rsc->id, host); rsc 806 tools/crm_resource_runtime.c crm_trace("Resource %s is not running\n", rsc->id); rsc 832 tools/crm_resource_runtime.c resource_t *rsc = (resource_t *) rIter->data; rsc 838 tools/crm_resource_runtime.c if (rsc->variant == pe_group) { rsc 840 tools/crm_resource_runtime.c get_active_resources(host, rsc->children)); rsc 841 tools/crm_resource_runtime.c } else if (resource_is_running_on(rsc, host)) { rsc 842 tools/crm_resource_runtime.c active = g_list_append(active, strdup(rsc->id)); rsc 1006 tools/crm_resource_runtime.c max_delay_for_resource(pe_working_set_t * data_set, resource_t *rsc) rsc 1011 tools/crm_resource_runtime.c if(rsc && rsc->children) { rsc 1014 tools/crm_resource_runtime.c for(iter = rsc->children; iter; iter = iter->next) { rsc 1025 tools/crm_resource_runtime.c } else if(rsc) { rsc 1026 tools/crm_resource_runtime.c char *key = crm_strdup_printf("%s_%s_0", rsc->id, RSC_STOP); rsc 1027 tools/crm_resource_runtime.c action_t *stop = custom_action(rsc, key, RSC_STOP, NULL, TRUE, FALSE, data_set); rsc 1046 tools/crm_resource_runtime.c resource_t *rsc = pe_find_resource(data_set->resources, (const char *)item->data); rsc 1048 tools/crm_resource_runtime.c delay = max_delay_for_resource(data_set, rsc); rsc 1052 tools/crm_resource_runtime.c crm_trace("Calculated new delay of %.1fs due to %s", seconds, rsc->id); rsc 1078 tools/crm_resource_runtime.c cli_resource_restart(resource_t * rsc, const char *host, int timeout_ms, cib_t * cib) rsc 1098 tools/crm_resource_runtime.c if(resource_is_running_on(rsc, host) == FALSE) { rsc 1099 tools/crm_resource_runtime.c const char *id = rsc->clone_name?rsc->clone_name:rsc->id; rsc 1111 tools/crm_resource_runtime.c rsc_id = strdup(rsc->id); rsc 1112 tools/crm_resource_runtime.c if ((pe_rsc_is_clone(rsc) || pe_bundle_replicas(rsc)) && host) { rsc 1158 tools/crm_resource_runtime.c char *lookup_id = clone_strip(rsc->id); rsc 1163 tools/crm_resource_runtime.c rc = cli_resource_update_attribute(rsc, rsc_id, NULL, NULL, rsc 1237 tools/crm_resource_runtime.c rc = cli_resource_update_attribute(rsc, rsc_id, NULL, NULL, rsc 1244 tools/crm_resource_runtime.c rc = cli_resource_delete_attribute(rsc, rsc_id, NULL, NULL, rsc 1267 tools/crm_resource_runtime.c while (waiting_for_starts(list_delta, rsc, host)) { rsc 1274 tools/crm_resource_runtime.c for (lpc = 0; (lpc < step_timeout_s) && waiting_for_starts(list_delta, rsc, host); lpc++) { rsc 1319 tools/crm_resource_runtime.c cli_resource_update_attribute(rsc, rsc_id, NULL, NULL, rsc 1324 tools/crm_resource_runtime.c cli_resource_delete_attribute(rsc, rsc_id, NULL, NULL, rsc 1459 tools/crm_resource_runtime.c cli_resource_execute(resource_t *rsc, const char *requested_name, rsc 1486 tools/crm_resource_runtime.c if(pe_rsc_is_clone(rsc)) { rsc 1487 tools/crm_resource_runtime.c rc = cli_resource_search(rsc, requested_name, data_set); rsc 1490 tools/crm_resource_runtime.c action, rsc->id); rsc 1497 tools/crm_resource_runtime.c if(pe_rsc_is_clone(rsc)) { rsc 1499 tools/crm_resource_runtime.c rsc = rsc->children->data; rsc 1502 tools/crm_resource_runtime.c if(rsc->variant == pe_group) { rsc 1507 tools/crm_resource_runtime.c rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 1508 tools/crm_resource_runtime.c rprov = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 1509 tools/crm_resource_runtime.c rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 1516 tools/crm_resource_runtime.c params = generate_resource_params(rsc, data_set); rsc 1520 tools/crm_resource_runtime.c timeout_ms = pe_get_configured_timeout(rsc, action, data_set); rsc 1528 tools/crm_resource_runtime.c rid = pe_rsc_is_anon_clone(rsc->parent)? requested_name : rsc->id; rsc 1558 tools/crm_resource_runtime.c rsc->id, name, value); rsc 1569 tools/crm_resource_runtime.c action, rsc->id, rclass, rprov ? rprov : "", rtype, rsc 1573 tools/crm_resource_runtime.c action, rsc->id, rclass, rprov ? rprov : "", rtype, rsc 1617 tools/crm_resource_runtime.c cli_resource_move(resource_t *rsc, const char *rsc_id, const char *host_name, rsc 1626 tools/crm_resource_runtime.c if (scope_master && rsc->variant != pe_master) { rsc 1627 tools/crm_resource_runtime.c resource_t *p = uber_parent(rsc); rsc 1629 tools/crm_resource_runtime.c CMD_ERR("Using parent '%s' for --move command instead of '%s'.", rsc->id, rsc_id); rsc 1631 tools/crm_resource_runtime.c rsc = p; rsc 1635 tools/crm_resource_runtime.c get_resource_typename(rsc->variant)); rsc 1640 tools/crm_resource_runtime.c if(rsc->variant == pe_master) { rsc 1643 tools/crm_resource_runtime.c for(iter = rsc->children; iter; iter = iter->next) { rsc 1648 tools/crm_resource_runtime.c rsc = child; rsc 1654 tools/crm_resource_runtime.c count = g_list_length(rsc->running_on); rsc 1657 tools/crm_resource_runtime.c } else if (pe_rsc_is_clone(rsc)) { rsc 1658 tools/crm_resource_runtime.c count = g_list_length(rsc->running_on); rsc 1660 tools/crm_resource_runtime.c } else if (g_list_length(rsc->running_on) > 1) { rsc 1670 tools/crm_resource_runtime.c if(g_list_length(rsc->running_on) == 1) { rsc 1671 tools/crm_resource_runtime.c current = rsc->running_on->data; rsc 1677 tools/crm_resource_runtime.c } else if(scope_master && rsc->fns->state(rsc, TRUE) != RSC_ROLE_MASTER) { rsc 1698 tools/crm_resource_runtime.c rsc->id, scope_master?" (master)":"", dest->details->uname, do_force?"(forced)":""); rsc 1729 tools/crm_resource_runtime.c resource_t *rsc = (resource_t *) lpc->data; rsc 1730 tools/crm_resource_runtime.c rsc->fns->location(rsc, &hosts, TRUE); rsc 1733 tools/crm_resource_runtime.c printf("Resource %s is not running\n", rsc->id); rsc 1735 tools/crm_resource_runtime.c printf("Resource %s is running\n", rsc->id); rsc 1738 tools/crm_resource_runtime.c cli_resource_check(cib_conn, rsc); rsc 1747 tools/crm_resource_runtime.c resource_t *rsc, const char *host_uname) rsc 1749 tools/crm_resource_runtime.c if (resource_is_running_on(rsc, host_uname)) { rsc 1750 tools/crm_resource_runtime.c printf("Resource %s is running on host %s\n",rsc->id,host_uname); rsc 1752 tools/crm_resource_runtime.c printf("Resource %s is not running on host %s\n", rsc->id, host_uname); rsc 1754 tools/crm_resource_runtime.c cli_resource_check(cib_conn, rsc); rsc 1767 tools/crm_resource_runtime.c resource_t *rsc = (resource_t *) lpc->data; rsc 1768 tools/crm_resource_runtime.c printf("Resource %s is running on host %s\n",rsc->id,host_uname); rsc 1769 tools/crm_resource_runtime.c cli_resource_check(cib_conn,rsc); rsc 1773 tools/crm_resource_runtime.c resource_t *rsc = (resource_t *) lpc->data; rsc 1775 tools/crm_resource_runtime.c rsc->id, host_uname); rsc 1776 tools/crm_resource_runtime.c cli_resource_check(cib_conn,rsc); rsc 1786 tools/crm_resource_runtime.c resource_t *rsc) rsc 1790 tools/crm_resource_runtime.c rsc->fns->location(rsc, &hosts, TRUE); rsc 1791 tools/crm_resource_runtime.c printf("Resource %s is %srunning\n", rsc->id, (hosts? "" : "not ")); rsc 1792 tools/crm_resource_runtime.c cli_resource_check(cib_conn, rsc); rsc 1796 tools/crm_resource_runtime.c void cli_resource_why(cib_t *cib_conn, GListPtr resources, resource_t *rsc, rsc 1801 tools/crm_resource_runtime.c if ((rsc == NULL) && (host_uname == NULL)) { rsc 1804 tools/crm_resource_runtime.c } else if ((rsc != NULL) && (host_uname != NULL)) { rsc 1805 tools/crm_resource_runtime.c cli_resource_why_with_rsc_and_host(cib_conn, resources, rsc, rsc 1808 tools/crm_resource_runtime.c } else if ((rsc == NULL) && (host_uname != NULL)) { rsc 1811 tools/crm_resource_runtime.c } else if ((rsc != NULL) && (host_uname == NULL)) { rsc 1812 tools/crm_resource_runtime.c cli_resource_why_with_rsc_without_host(cib_conn, resources, rsc); rsc 196 tools/crm_simulate.c resource_t *rsc = (resource_t *) gIter->data; rsc 198 tools/crm_simulate.c if (is_set(rsc->flags, pe_rsc_orphan) rsc 199 tools/crm_simulate.c && rsc->role == RSC_ROLE_STOPPED) { rsc 202 tools/crm_simulate.c rsc->fns->print(rsc, NULL, pe_print_printf | options, stdout); rsc 226 tools/crm_simulate.c if (action->rsc && action->rsc->clone_name) { rsc 228 tools/crm_simulate.c const char *name = action->rsc->clone_name; rsc 258 tools/crm_simulate.c } else if (action->rsc && action_host) { rsc 306 tools/crm_simulate.c } else if (action->rsc != NULL && is_not_set(action->rsc->flags, pe_rsc_managed)) { rsc 587 tools/crm_simulate.c count_resources(pe_working_set_t * data_set, resource_t * rsc) rsc 592 tools/crm_simulate.c if (rsc == NULL) { rsc 594 tools/crm_simulate.c } else if (rsc->children) { rsc 595 tools/crm_simulate.c gIter = rsc->children; rsc 597 tools/crm_simulate.c return is_not_set(rsc->flags, pe_rsc_orphan); rsc 897 tools/crm_simulate.c resource_t *rsc = (resource_t *) gIter->data; rsc 899 tools/crm_simulate.c LogActions(rsc, &data_set, TRUE); rsc 558 tools/fake_transition.c resource_t *rsc = NULL; rsc 574 tools/fake_transition.c rsc = pe_find_resource(data_set->resources, resource); rsc 575 tools/fake_transition.c if (rsc == NULL) { rsc 578 tools/fake_transition.c rclass = crm_element_value(rsc->xml, XML_AGENT_ATTR_CLASS); rsc 579 tools/fake_transition.c rtype = crm_element_value(rsc->xml, XML_ATTR_TYPE); rsc 580 tools/fake_transition.c rprovider = crm_element_value(rsc->xml, XML_AGENT_ATTR_PROVIDER); rsc 751 tools/fake_transition.c xmlNode *rsc = first_named_child(action->xml, XML_CIB_TAG_RESOURCE); rsc 755 tools/fake_transition.c if(rsc) { rsc 756 tools/fake_transition.c quiet_log(" * Cluster action: %s for %s on %s\n", task, ID(rsc), node);