op 271 attrd/attrd_common.c attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, op 281 attrd/attrd_common.c } else if (op == NULL) { op 285 attrd/attrd_common.c rsc, op, interval); op 51 attrd/attrd_common.h int attrd_failure_regex(regex_t *regex, const char *rsc, const char *op, op 32 attrd/attrd_common_alerts.c attrd_lrmd_callback(lrmd_event_data_t * op) op 34 attrd/attrd_common_alerts.c CRM_CHECK(op != NULL, return); op 35 attrd/attrd_common_alerts.c switch (op->type) { op 306 attrd/commands.c const char *op = crm_element_value(xml, F_ATTRD_OPERATION); op 317 attrd/commands.c if (op == NULL) { op 324 attrd/commands.c rsc, op, interval); op 494 attrd/commands.c const char *op = crm_element_value(xml, F_ATTRD_OPERATION); op 501 attrd/commands.c if (attrd_failure_regex(®ex, rsc, op, interval) != pcmk_ok) { op 531 attrd/commands.c const char *op = crm_element_value(xml, F_ATTRD_TASK); op 558 attrd/commands.c if (safe_str_eq(op, ATTRD_OP_UPDATE)) { op 564 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_FLUSH)) { op 569 attrd/commands.c crm_trace("Compatibility write-out of %s for %s from %s", a->id, op, peer->uname); op 573 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_REFRESH)) { op 579 attrd/commands.c crm_trace("Compatibility write-out of %s for %s from %s", a->id, op, peer->uname); op 604 attrd/commands.c if (safe_str_eq(op, ATTRD_OP_UPDATE) || safe_str_eq(op, ATTRD_OP_UPDATE_BOTH) || safe_str_eq(op, ATTRD_OP_UPDATE_DELAY)) { op 607 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_SYNC)) { op 610 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_PEER_REMOVE)) { op 613 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_CLEAR_FAILURE)) { op 619 attrd/commands.c } else if (safe_str_eq(op, ATTRD_OP_SYNC_RESPONSE) op 623 attrd/commands.c crm_info("Processing %s from %s", op, peer->uname); op 739 attrd/commands.c const char *op = crm_element_value(xml, F_ATTRD_TASK); op 748 attrd/commands.c update_both = ((op == NULL) // ATTRD_OP_SYNC_RESPONSE has no F_ATTRD_TASK op 749 attrd/commands.c || safe_str_eq(op, ATTRD_OP_UPDATE_BOTH)); op 754 attrd/commands.c if (update_both || safe_str_eq(op, ATTRD_OP_UPDATE)) { op 763 attrd/commands.c if (update_both || safe_str_eq(op, ATTRD_OP_UPDATE_DELAY)) { op 243 attrd/legacy.c const char *op = crm_element_value(xml, F_ATTRD_OPERATION); op 250 attrd/legacy.c if (attrd_failure_regex(®ex, rsc, op, interval) != pcmk_ok) { op 341 attrd/legacy.c const char *op = crm_element_value(xml, F_ATTRD_OPERATION); op 364 attrd/legacy.c } else if (op == NULL) { op 383 attrd/legacy.c rsc, rsc, rsc, op, interval, op 384 attrd/legacy.c rsc, op, interval); op 387 attrd/legacy.c host, rsc, rsc, rsc, op, interval, op 388 attrd/legacy.c rsc, op, interval); op 402 attrd/legacy.c const char *op = crm_element_value(xml, F_ATTRD_TASK); op 407 attrd/legacy.c crm_info("%s relayed from %s", (op? op : "Request"), from); op 410 attrd/legacy.c } else if (safe_str_eq(op, ATTRD_OP_PEER_REMOVE)) { op 416 attrd/legacy.c } else if (safe_str_eq(op, ATTRD_OP_CLEAR_FAILURE)) { op 420 attrd/legacy.c crm_trace("%s message from %s", op, from); op 1098 attrd/legacy.c const char *op = crm_element_value(msg, F_ATTRD_TASK); op 1107 attrd/legacy.c if (safe_str_eq(op, ATTRD_OP_REFRESH)) { op 1112 attrd/legacy.c } else if (safe_str_eq(op, ATTRD_OP_PEER_REMOVE)) { op 1119 attrd/legacy.c } else if (safe_str_eq(op, ATTRD_OP_CLEAR_FAILURE)) { op 1123 attrd/legacy.c } else if (op && safe_str_neq(op, ATTRD_OP_UPDATE)) { op 1124 attrd/legacy.c crm_notice("Ignoring unsupported %s request from %s", op, from); op 1157 attrd/legacy.c crm_debug("%s message from %s: %s=%s", op, from, attr, crm_str(value)); op 1175 attrd/legacy.c op, from, pattern, crm_str(value)); op 239 attrd/main.c const char *op; op 253 attrd/main.c op = crm_element_value(xml, F_ATTRD_TASK); op 260 attrd/main.c if (safe_str_eq(op, ATTRD_OP_PEER_REMOVE)) { op 264 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_CLEAR_FAILURE)) { op 268 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_UPDATE)) { op 272 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_UPDATE_BOTH)) { op 276 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_UPDATE_DELAY)) { op 280 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_REFRESH)) { op 284 attrd/main.c } else if (safe_str_eq(op, ATTRD_OP_QUERY)) { op 290 attrd/main.c client->name, op); op 191 cib/callbacks.c const char *op = crm_element_value(op_request, F_CIB_OPERATION); op 193 cib/callbacks.c if (crm_str_eq(op, CRM_OP_REGISTER, TRUE)) { op 205 cib/callbacks.c } else if (crm_str_eq(op, T_CIB_NOTIFY, TRUE)) { op 521 cib/callbacks.c const char *op, gboolean * local_notify, gboolean * needs_reply, op 533 cib/callbacks.c crm_trace("Processing locally scoped %s op from %s", op, cib_client->name); op 537 cib/callbacks.c crm_trace("Processing master %s op locally from %s", op, cib_client->name); op 541 cib/callbacks.c crm_trace("Processing locally addressed %s op from %s", op, cib_client->name); op 551 cib/callbacks.c op, cib_client->name, host ? host : "the master instance"); op 559 cib/callbacks.c const char *op, gboolean * local_notify, gboolean * needs_reply, op 563 cib/callbacks.c if(safe_str_eq(op, CIB_OP_MASTER) || safe_str_eq(op, CIB_OP_SLAVE)) { op 577 cib/callbacks.c op, cib_client->name, host ? host : "the master instance"); op 589 cib/callbacks.c crm_trace("Processing %s op from %s (stand-alone)", op, cib_client->name); op 592 cib/callbacks.c crm_trace("Processing unaddressed %s op from %s", op, cib_client->name); op 595 cib/callbacks.c crm_trace("Processing locally addressed %s op from %s", op, cib_client->name); op 598 cib/callbacks.c crm_trace("%s op from %s needs to be forwarded to %s", op, cib_client->name, host); op 606 cib/callbacks.c const char *op, gboolean * local_notify, gboolean * needs_reply, op 611 cib/callbacks.c op, local_notify, needs_reply, process, needs_forward); op 614 cib/callbacks.c op, local_notify, needs_reply, process, needs_forward); op 623 cib/callbacks.c const char *op = NULL; op 644 cib/callbacks.c crm_trace("Processing %s request sent by %s", op, originator); op 645 cib/callbacks.c op = crm_element_value(request, F_CIB_OPERATION); op 646 cib/callbacks.c if (safe_str_eq(op, "cib_shutdown_req")) { op 658 cib/callbacks.c if (is_reply && safe_str_eq(op, CRM_OP_PING)) { op 673 cib/callbacks.c crm_trace("Processing %s request sent to us from %s", op, originator); op 676 cib/callbacks.c } else if(is_reply == FALSE && safe_str_eq(op, CRM_OP_PING)) { op 677 cib/callbacks.c crm_trace("Processing %s request sent to %s by %s", op, host?host:"everyone", originator); op 682 cib/callbacks.c crm_trace("Processing %s request sent to master instance from %s", op, originator); op 698 cib/callbacks.c } else if (safe_str_eq(op, "cib_shutdown_req")) { op 700 cib/callbacks.c crm_debug("Processing %s from %s", op, host); op 704 cib/callbacks.c crm_debug("Processing %s reply from %s", op, host); op 723 cib/callbacks.c const char *op = crm_element_value(request, F_CIB_OPERATION); op 730 cib/callbacks.c if(safe_str_eq(op, CIB_OP_REPLACE)) { op 737 cib/callbacks.c } else if(safe_str_eq(op, CIB_OP_SYNC)) { op 739 cib/callbacks.c } else if (is_reply && safe_str_eq(op, CRM_OP_PING)) { op 743 cib/callbacks.c } else if (safe_str_eq(op, CIB_OP_UPGRADE)) { op 757 cib/callbacks.c op, is_reply?" reply":"", cib_is_master?"master":"slave", max); op 771 cib/callbacks.c crm_info("Detected legacy %s global update from %s", op, originator); op 777 cib/callbacks.c crm_trace("Ignoring legacy %s reply sent from %s to local clients", op, originator); op 780 cib/callbacks.c } else if (safe_str_eq(op, "cib_shutdown_req")) { op 782 cib/callbacks.c crm_debug("Legacy handling of %s message from %s", op, originator); op 791 cib/callbacks.c crm_trace("Handling %s reply sent from %s to local clients", op, originator); op 810 cib/callbacks.c crm_trace("Processing %s request sent to us from %s", op, originator); op 816 cib/callbacks.c crm_trace("Ignoring %s operation for instance on %s", op, crm_str(host)); op 819 cib/callbacks.c } else if(is_reply == FALSE && safe_str_eq(op, CRM_OP_PING)) { op 823 cib/callbacks.c crm_trace("Processing %s request sent to everyone by %s/%s on %s %s", op, op 851 cib/callbacks.c const char *op = crm_element_value(request, F_CIB_OPERATION); op 857 cib/callbacks.c crm_trace("Forwarding %s op to %s", op, host); op 861 cib/callbacks.c crm_trace("Forwarding %s op to master instance", op); op 948 cib/callbacks.c const char *op = crm_element_value(request, F_CIB_OPERATION); op 990 cib/callbacks.c op, client_name, call_id, originator, target, reply_to); op 993 cib/callbacks.c crm_trace("Processing local %s operation from %s/%s intended for %s", op, client_name, call_id, target); op 996 cib/callbacks.c rc = cib_get_operation_id(op, &call_type); op 1004 cib/callbacks.c parse_local_options(cib_client, call_type, call_options, host, op, op 1027 cib/callbacks.c if (safe_str_eq(op, CRM_OP_NOOP)) { op 1033 cib/callbacks.c op, op 1052 cib/callbacks.c crm_xml_add(op_reply, F_CIB_OPERATION, op); op 1097 cib/callbacks.c op, section ? section : "'all'", pcmk_strerror(rc), rc, op 1105 cib/callbacks.c crm_trace("%s operation took %lds to complete", op, (long)(finished - now)); op 1197 cib/callbacks.c const char *op = NULL; op 1222 cib/callbacks.c op = crm_element_value(request, F_CIB_OPERATION); op 1224 cib/callbacks.c rc = cib_get_operation_id(op, &call_type); op 1240 cib/callbacks.c rc = cib_perform_op(op, call_options, cib_op_func(call_type), TRUE, op 1276 cib/callbacks.c rc = cib_perform_op(op, call_options, cib_op_func(call_type), FALSE, op 1297 cib/callbacks.c if (crm_str_eq(CIB_OP_REPLACE, op, TRUE)) { op 1309 cib/callbacks.c rc = activateCibXml(result_cib, config_changed, op); op 1318 cib/callbacks.c if (crm_str_eq(CIB_OP_REPLACE, op, TRUE)) { op 1332 cib/callbacks.c } else if (crm_str_eq(CIB_OP_ERASE, op, TRUE)) { op 1360 cib/callbacks.c cib_diff_notify(call_options, client, call_id, op, input, rc, *cib_diff); op 1376 cib/callbacks.c crm_xml_add(*reply, F_CIB_OPERATION, op); op 1471 cib/callbacks.c const char *op = crm_element_value(msg, F_CIB_OPERATION); op 1473 cib/callbacks.c crm_warn("Discarding %s message (%s) from %s: %s", op, seq, originator, reason); op 44 cib/cibio.h extern int activateCibXml(xmlNode * doc, gboolean to_disk, const char *op); op 24 cib/cibmessages.h extern int cib_process_shutdown_req(const char *op, int options, const char *section, op 29 cib/cibmessages.h extern int cib_process_default(const char *op, int options, const char *section, op 33 cib/cibmessages.h extern int cib_process_quit(const char *op, int options, const char *section, op 37 cib/cibmessages.h extern int cib_process_ping(const char *op, int options, const char *section, op 41 cib/cibmessages.h extern int cib_process_readwrite(const char *op, int options, const char *section, op 45 cib/cibmessages.h extern int cib_process_replace_svr(const char *op, int options, const char *section, op 50 cib/cibmessages.h extern int cib_server_process_diff(const char *op, int options, const char *section, op 55 cib/cibmessages.h extern int cib_process_sync(const char *op, int options, const char *section, op 59 cib/cibmessages.h extern int cib_process_sync_one(const char *op, int options, const char *section, op 63 cib/cibmessages.h extern int cib_process_delete_absolute(const char *op, int options, const char *section, op 68 cib/cibmessages.h int cib_process_upgrade_server(const char *op, int options, const char *section, op 202 cib/cibmon.c const char *op = NULL; op 215 cib/cibmon.c op = crm_element_value(msg, F_CIB_OPERATION); op 220 cib/cibmon.c do_crm_log(log_level, "[%s] %s ABORTED: %s", event, op, pcmk_strerror(rc)); op 225 cib/cibmon.c xml_log_patchset(log_level, op, diff); op 235 cib/cibmon.c rc = cib_process_diff(op, cib_force_diff, NULL, NULL, diff, cib_last, &cib_copy, NULL); op 212 cib/common.c cib_get_operation_id(const char *op, int *operation) op 231 cib/common.c if (op != NULL) { op 232 cib/common.c int *value = g_hash_table_lookup(operation_hash, op); op 239 cib/common.c crm_err("Operation %s is not valid", op); op 23 cib/common.h extern int cib_get_operation_id(const char *op, int *operation); op 381 cib/io.c activateCibXml(xmlNode * new_cib, gboolean to_disk, const char *op) op 406 cib/io.c crm_debug("Triggering CIB write for %s op", op); op 68 cib/messages.c cib_process_shutdown_req(const char *op, int options, const char *section, xmlNode * req, op 95 cib/messages.c cib_process_default(const char *op, int options, const char *section, xmlNode * req, op 101 cib/messages.c crm_trace("Processing \"%s\" event", op); op 104 cib/messages.c if (op == NULL) { op 108 cib/messages.c } else if (strcasecmp(CRM_OP_NOOP, op) == 0) { op 113 cib/messages.c crm_err("Action [%s] is not supported by the CIB", op); op 119 cib/messages.c cib_process_quit(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 124 cib/messages.c crm_trace("Processing \"%s\" event", op); op 132 cib/messages.c cib_process_readwrite(const char *op, int options, const char *section, xmlNode * req, op 138 cib/messages.c crm_trace("Processing \"%s\" event", op); op 140 cib/messages.c if (safe_str_eq(op, CIB_OP_ISMASTER)) { op 149 cib/messages.c if (safe_str_eq(op, CIB_OP_MASTER)) { op 187 cib/messages.c cib_process_ping(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 196 cib/messages.c crm_trace("Processing \"%s\" event %s from %s", op, seq, host); op 234 cib/messages.c cib_process_sync(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 241 cib/messages.c cib_process_upgrade_server(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 250 cib/messages.c op, options, section, req, input, existing_cib, result_cib, answer); op 259 cib/messages.c crm_trace("Processing \"%s\" event", op); op 281 cib/messages.c op, options, section, up, input, existing_cib, result_cib, answer); op 299 cib/messages.c cib_process_sync_one(const char *op, int options, const char *section, xmlNode * req, op 307 cib/messages.c cib_server_process_diff(const char *op, int options, const char *section, xmlNode * req, op 341 cib/messages.c rc = cib_process_diff(op, options, section, req, input, existing_cib, result_cib, answer); op 368 cib/messages.c cib_process_replace_svr(const char *op, int options, const char *section, xmlNode * req, op 374 cib/messages.c cib_process_replace(op, options, section, req, input, existing_cib, result_cib, answer); op 439 cib/messages.c cib_process_delete_absolute(const char *op, int options, const char *section, xmlNode * req, op 447 cib/messages.c crm_trace("Processing \"%s\" event for section=%s", op, crm_str(section)); op 458 cib/messages.c CRM_CHECK(strcasecmp(CIB_OP_DELETE, op) == 0, return -EINVAL); op 469 cib/messages.c update_results(failed, input, op, result); op 503 cib/messages.c const char *op = crm_element_value(request, F_CIB_OPERATION); op 530 cib/messages.c crm_xml_add(replace_request, "original_" F_CIB_OPERATION, op); op 51 cib/notify.c void do_cib_notify(int options, const char *op, xmlNode * update, op 167 cib/notify.c cib_pre_notify(int options, const char *op, xmlNode * existing, xmlNode * update) op 188 cib/notify.c crm_xml_add(update_msg, F_CIB_OPERATION, op); op 213 cib/notify.c crm_trace("Performing operation %s (on section=%s)", op, type); op 216 cib/notify.c crm_trace("Performing %s on <%s%s%s>", op, type, id ? " id=" : "", id ? id : ""); op 223 cib/notify.c cib_post_notify(int options, const char *op, xmlNode * update, int result, xmlNode * new_obj) op 232 cib/notify.c do_cib_notify(options, op, update, result, new_obj, T_CIB_UPDATE_CONFIRM); op 236 cib/notify.c cib_diff_notify(int options, const char *client, const char *call_id, const char *op, op 274 cib/notify.c do_cib_notify(options, op, update, result, diff, T_CIB_DIFF_NOTIFY); op 278 cib/notify.c do_cib_notify(int options, const char *op, xmlNode * update, op 292 cib/notify.c crm_xml_add(update_msg, F_CIB_OPERATION, op); op 29 cib/notify.h extern void cib_pre_notify(int options, const char *op, xmlNode * existing, xmlNode * update); op 31 cib/notify.h extern void cib_post_notify(int options, const char *op, xmlNode * update, op 34 cib/notify.h extern void cib_diff_notify(int options, const char *client, const char *call_id, const char *op, op 125 crmd/attrd.c update_attrd_clear_failures(const char *host, const char *rsc, const char *op, op 129 crmd/attrd.c (op? op : "all operations"), op 132 crmd/attrd.c update_attrd_helper(host, rsc, op, interval, NULL, is_remote_node, 0); op 70 crmd/callbacks.c const char *op = crm_element_value(msg, F_CRM_TASK); op 82 crmd/callbacks.c do_crm_log(level, "Another DC detected: %s (op=%s)", from, op); op 28 crmd/crmd_alerts.h void crmd_alert_resource_op(const char *node, lrmd_event_data_t *op); op 25 crmd/crmd_lrm.h void lrm_op_callback(lrmd_event_data_t * op); op 158 crmd/crmd_lrm.h void remote_lrm_op_callback(lrmd_event_data_t * op); op 172 crmd/crmd_lrm.h gboolean process_lrm_event(lrm_state_t * lrm_state, lrmd_event_data_t * op, struct recurring_op_s *pending); op 95 crmd/crmd_messages.h const char *sys_to, const char *op, gboolean dc_mode); op 97 crmd/crmd_utils.h const char *op, const char *interval, op 476 crmd/heartbeat.c const char *op = crm_element_value(msg, F_CRM_TASK); op 481 crmd/heartbeat.c crm_trace("HA[inbound]: %s from %s", op, from); op 485 crmd/heartbeat.c " connected to the CCM (%s op from %s)", op, from); op 492 crmd/heartbeat.c if (safe_str_eq(op, CRM_OP_VOTE)) { op 495 crmd/heartbeat.c } else if (AM_I_DC && safe_str_eq(op, CRM_OP_JOIN_ANNOUNCE)) { op 503 crmd/heartbeat.c " membership list (size=%d)", op, from, crm_active_peers()); op 241 crmd/join_client.c const char *op = crm_element_value(input->msg, F_CRM_TASK); op 245 crmd/join_client.c if (safe_str_neq(op, CRM_OP_JOIN_ACKNAK)) { op 246 crmd/join_client.c crm_trace("Ignoring op=%s message", op); op 271 crmd/join_client.c op, welcome_from, fsa_our_dc); op 223 crmd/join_dc.c const char *op = NULL; op 248 crmd/join_dc.c op = crm_element_value(welcome->msg, F_CRM_TASK); op 259 crmd/join_dc.c current_join_id, op, join_to, fsa_state2string(cur_state)); op 515 crmd/join_dc.c const char *op = crm_element_value(join_ack->msg, F_CRM_TASK); op 519 crmd/join_dc.c if (safe_str_neq(op, CRM_OP_JOIN_CONFIRM) || peer == NULL) { op 520 crmd/join_dc.c crm_debug("Ignoring op=%s message from %s", op, join_from); op 62 crmd/lrm.c lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, const char *rsc_id); op 66 crmd/lrm.c static int do_update_resource(const char *node_name, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op); op 120 crmd/lrm.c history_remove_recurring_op(rsc_history_t *history, const lrmd_event_data_t *op) op 127 crmd/lrm.c if ((op->interval == existing->interval) op 128 crmd/lrm.c && crm_str_eq(op->rsc_id, existing->rsc_id, TRUE) op 129 crmd/lrm.c && safe_str_eq(op->op_type, existing->op_type)) { op 185 crmd/lrm.c update_history_cache(lrm_state_t * lrm_state, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op) op 190 crmd/lrm.c if (op->rsc_deleted) { op 191 crmd/lrm.c crm_debug("Purged history for '%s' after %s", op->rsc_id, op->op_type); op 192 crmd/lrm.c delete_rsc_status(lrm_state, op->rsc_id, cib_quorum_override, NULL); op 196 crmd/lrm.c if (safe_str_eq(op->op_type, RSC_NOTIFY)) { op 200 crmd/lrm.c crm_debug("Updating history for '%s' with %s op", op->rsc_id, op->op_type); op 202 crmd/lrm.c entry = g_hash_table_lookup(lrm_state->resource_history, op->rsc_id); op 205 crmd/lrm.c entry->id = strdup(op->rsc_id); op 218 crmd/lrm.c crm_info("Resource %s no longer exists, not updating cache", op->rsc_id); op 222 crmd/lrm.c entry->last_callid = op->call_id; op 223 crmd/lrm.c target_rc = rsc_op_expected_rc(op); op 224 crmd/lrm.c if (op->op_status == PCMK_LRM_OP_CANCELLED) { op 225 crmd/lrm.c if (op->interval > 0) { op 226 crmd/lrm.c crm_trace("Removing cancelled recurring op: %s_%s_%d", op->rsc_id, op->op_type, op 227 crmd/lrm.c op->interval); op 228 crmd/lrm.c history_remove_recurring_op(entry, op); op 231 crmd/lrm.c crm_trace("Skipping %s_%s_%d rc=%d, status=%d", op->rsc_id, op->op_type, op->interval, op 232 crmd/lrm.c op->rc, op->op_status); op 235 crmd/lrm.c } else if (did_rsc_op_fail(op, target_rc)) { op 242 crmd/lrm.c entry->failed = lrmd_copy_event(op); op 244 crmd/lrm.c } else if (op->interval == 0) { op 248 crmd/lrm.c entry->last = lrmd_copy_event(op); op 250 crmd/lrm.c if (op->params && op 251 crmd/lrm.c (safe_str_eq(CRMD_ACTION_START, op->op_type) || op 252 crmd/lrm.c safe_str_eq("reload", op->op_type) || op 253 crmd/lrm.c safe_str_eq(CRMD_ACTION_STATUS, op->op_type))) { op 260 crmd/lrm.c g_hash_table_foreach(op->params, copy_instance_keys, entry->stop_params); op 264 crmd/lrm.c if (op->interval > 0) { op 266 crmd/lrm.c history_remove_recurring_op(entry, op); op 268 crmd/lrm.c crm_trace("Adding recurring op: %s_%s_%d", op->rsc_id, op->op_type, op->interval); op 269 crmd/lrm.c entry->recurring_op_list = g_list_prepend(entry->recurring_op_list, lrmd_copy_event(op)); op 271 crmd/lrm.c } else if (entry->recurring_op_list && safe_str_eq(op->op_type, RSC_STATUS) == FALSE) { op 273 crmd/lrm.c g_list_length(entry->recurring_op_list), op->rsc_id, op 274 crmd/lrm.c op->op_type, op->interval); op 296 crmd/lrm.c lrmd_event_data_t *op = construct_op(lrm_state, input->xml, rsc_id, task); op 298 crmd/lrm.c CRM_ASSERT(op != NULL); op 299 crmd/lrm.c op->rc = PCMK_OCF_OK; op 300 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 301 crmd/lrm.c send_direct_ack(ack_host, ack_sys, rsc, op, rsc_id); op 302 crmd/lrm.c lrmd_free_event(op); op 306 crmd/lrm.c lrm_op_callback(lrmd_event_data_t * op) op 311 crmd/lrm.c CRM_CHECK(op != NULL, return); op 314 crmd/lrm.c nodename = op->remote_nodename ? op->remote_nodename : fsa_our_uname; op 316 crmd/lrm.c if (op->type == lrmd_event_disconnect && (safe_str_eq(nodename, fsa_our_uname))) { op 321 crmd/lrm.c } else if (op->type != lrmd_event_exec_complete) { op 329 crmd/lrm.c process_lrm_event(lrm_state, op, NULL); op 509 crmd/lrm.c build_parameter_list(const lrmd_event_data_t *op, op 567 crmd/lrm.c const char *v = g_hash_table_lookup(op->params, param->rap_name); op 580 crmd/lrm.c append_restart_list(lrmd_event_data_t *op, struct ra_metadata_s *metadata, op 587 crmd/lrm.c CRM_LOG_ASSERT(op->params != NULL); op 589 crmd/lrm.c if (op->interval > 0) { op 602 crmd/lrm.c list = build_parameter_list(op, metadata, restart, ra_param_unique, op 616 crmd/lrm.c crm_trace("%s: %s, %s", op->rsc_id, digest, list); op 625 crmd/lrm.c append_secure_list(lrmd_event_data_t *op, struct ra_metadata_s *metadata, op 632 crmd/lrm.c CRM_LOG_ASSERT(op->params != NULL); op 640 crmd/lrm.c list = build_parameter_list(op, metadata, secure, ra_param_private, TRUE); op 647 crmd/lrm.c crm_trace("%s: %s, %s", op->rsc_id, digest, list); op 650 crmd/lrm.c crm_trace("%s: no secure parameters", op->rsc_id); op 659 crmd/lrm.c build_operation_update(xmlNode * parent, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, op 668 crmd/lrm.c if (op == NULL) { op 672 crmd/lrm.c target_rc = rsc_op_expected_rc(op); op 680 crmd/lrm.c caller_version = g_hash_table_lookup(op->params, XML_ATTR_CRM_VERSION); op 687 crmd/lrm.c crm_trace("Building %s operation update with originator version: %s", op->rsc_id, caller_version); op 688 crmd/lrm.c xml_op = create_operation_update(parent, op, caller_version, target_rc, fsa_our_uname, src, LOG_DEBUG); op 693 crmd/lrm.c if ((rsc == NULL) || (op == NULL) || (op->params == NULL) op 694 crmd/lrm.c || !crm_op_needs_metadata(rsc->class, op->op_type)) { op 697 crmd/lrm.c op->op_type, op->rsc_id, op->params, rsc); op 704 crmd/lrm.c op->rsc_id, op->op_type, op->interval, node_name); op 749 crmd/lrm.c append_restart_list(op, metadata, xml_op, caller_version); op 750 crmd/lrm.c append_secure_list(op, metadata, xml_op, caller_version); op 880 crmd/lrm.c lrmd_event_data_t *op = NULL; op 888 crmd/lrm.c op = construct_op(lrm_state, input->xml, rsc_id, CRMD_ACTION_DELETE); op 889 crmd/lrm.c CRM_ASSERT(op != NULL); op 892 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 893 crmd/lrm.c op->rc = PCMK_OCF_OK; op 895 crmd/lrm.c op->op_status = PCMK_LRM_OP_ERROR; op 896 crmd/lrm.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 899 crmd/lrm.c send_direct_ack(from_host, from_sys, NULL, op, rsc_id); op 900 crmd/lrm.c lrmd_free_event(op); op 920 crmd/lrm.c struct pending_deletion_op_s *op = value; op 922 crmd/lrm.c if (crm_str_eq(event->rsc, op->rsc, TRUE)) { op 923 crmd/lrm.c notify_deleted(event->lrm_state, op->input, event->rsc, event->rc); op 1011 crmd/lrm.c erase_lrm_history_by_op(lrm_state_t *lrm_state, lrmd_event_data_t *op) op 1015 crmd/lrm.c CRM_CHECK(op != NULL, return); op 1018 crmd/lrm.c crm_xml_add_int(xml_top, XML_LRM_ATTR_CALLID, op->call_id); op 1019 crmd/lrm.c crm_xml_add(xml_top, XML_ATTR_TRANSITION_KEY, op->user_data); op 1021 crmd/lrm.c if (op->interval > 0) { op 1022 crmd/lrm.c char *op_id = generate_op_key(op->rsc_id, op->op_type, op->interval); op 1030 crmd/lrm.c op->rsc_id, op->op_type, op->interval, op->call_id); op 1099 crmd/lrm.c last_failed_matches_op(rsc_history_t *entry, const char *op, int interval) op 1104 crmd/lrm.c if (op == NULL) { op 1107 crmd/lrm.c return (safe_str_eq(op, entry->failed->op_type) op 1160 crmd/lrm.c cancel_op(lrm_state_t * lrm_state, const char *rsc_id, const char *key, int op, gboolean remove) op 1166 crmd/lrm.c CRM_CHECK(op != 0, return FALSE); op 1169 crmd/lrm.c local_key = make_stop_id(rsc_id, op); op 1194 crmd/lrm.c crm_debug("Cancelling op %d for %s (%s)", op, rsc_id, key); op 1197 crmd/lrm.c crm_debug("Op %d for %s (%s): cancelled", op, rsc_id, key); op 1202 crmd/lrm.c crm_debug("Op %d for %s (%s): Nothing to cancel", op, rsc_id, key); op 1229 crmd/lrm.c struct recurring_op_s *op = (struct recurring_op_s *)value; op 1231 crmd/lrm.c if (crm_str_eq(op->op_key, data->key, TRUE)) { op 1233 crmd/lrm.c remove = !cancel_op(data->lrm_state, data->rsc->id, key, op->call_id, data->remove); op 1328 crmd/lrm.c struct pending_deletion_op_s *op = NULL; op 1331 crmd/lrm.c op = calloc(1, sizeof(struct pending_deletion_op_s)); op 1332 crmd/lrm.c op->rsc = strdup(rsc->id); op 1333 crmd/lrm.c op->input = copy_ha_msg_input(request); op 1334 crmd/lrm.c g_hash_table_insert(lrm_state->deletion_ops, ref, op); op 1409 crmd/lrm.c lrmd_event_data_t *op = NULL; op 1427 crmd/lrm.c op = construct_op(lrm_state, action, ID(xml_rsc), operation); op 1428 crmd/lrm.c CRM_ASSERT(op != NULL); op 1430 crmd/lrm.c op->call_id = get_fake_call_id(lrm_state, op->rsc_id); op 1433 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 1434 crmd/lrm.c op->rc = PCMK_OCF_OK; op 1437 crmd/lrm.c op->op_status = PCMK_LRM_OP_ERROR; op 1438 crmd/lrm.c op->rc = rc; op 1440 crmd/lrm.c op->t_run = time(NULL); op 1441 crmd/lrm.c op->t_rcchange = op->t_run; op 1443 crmd/lrm.c crm_info("Faking result %d for %s_%s_%d on %s (%p)", op->rc, op->rsc_id, op->op_type, op->interval, target_node, lrm_state); op 1446 crmd/lrm.c process_lrm_event(lrm_state, op, NULL); op 1451 crmd/lrm.c rsc.id = strdup(op->rsc_id); op 1456 crmd/lrm.c do_update_resource(target_node, &rsc, op); op 1463 crmd/lrm.c lrmd_free_event(op); op 1531 crmd/lrm.c lrmd_event_data_t *op = NULL; op 1546 crmd/lrm.c op = construct_op(lrm_state, input->xml, ID(xml_rsc), "asyncmon"); op 1547 crmd/lrm.c CRM_ASSERT(op != NULL); op 1549 crmd/lrm.c free((char *)op->user_data); op 1550 crmd/lrm.c op->user_data = NULL; op 1551 crmd/lrm.c op->call_id = get_fake_call_id(lrm_state, op->rsc_id); op 1552 crmd/lrm.c op->interval = 0; op 1553 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 1554 crmd/lrm.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 1555 crmd/lrm.c op->t_run = time(NULL); op 1556 crmd/lrm.c op->t_rcchange = op->t_run; op 1561 crmd/lrm.c send_direct_ack(from_host, from_sys, NULL, op, ID(xml_rsc)); op 1562 crmd/lrm.c lrmd_free_event(op); op 1570 crmd/lrm.c process_lrm_event(lrm_state, op, NULL); op 1571 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 1572 crmd/lrm.c op->rc = PCMK_OCF_OK; op 1579 crmd/lrm.c send_direct_ack(from_host, from_sys, NULL, op, ID(xml_rsc)); op 1580 crmd/lrm.c lrmd_free_event(op); op 1762 crmd/lrm.c lrmd_event_data_t *op = NULL; op 1769 crmd/lrm.c op = construct_op(lrm_state, input->xml, rsc->id, operation); op 1770 crmd/lrm.c op->op_status = PCMK_LRM_OP_ERROR; op 1773 crmd/lrm.c op->rc = PCMK_OCF_INSUFFICIENT_PRIV; op 1775 crmd/lrm.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 1777 crmd/lrm.c send_direct_ack(from_host, from_sys, NULL, op, rsc->id); op 1778 crmd/lrm.c lrmd_free_event(op); op 1804 crmd/lrm.c lrmd_event_data_t *op = NULL; op 1814 crmd/lrm.c op = calloc(1, sizeof(lrmd_event_data_t)); op 1815 crmd/lrm.c op->type = lrmd_event_exec_complete; op 1816 crmd/lrm.c op->op_type = strdup(operation); op 1817 crmd/lrm.c op->op_status = PCMK_LRM_OP_PENDING; op 1818 crmd/lrm.c op->rc = -1; op 1819 crmd/lrm.c op->rsc_id = strdup(rsc_id); op 1820 crmd/lrm.c op->interval = 0; op 1821 crmd/lrm.c op->timeout = 0; op 1822 crmd/lrm.c op->start_delay = 0; op 1826 crmd/lrm.c op->user_data = NULL; op 1832 crmd/lrm.c op->params = crm_str_table_new(); op 1834 crmd/lrm.c g_hash_table_insert(op->params, strdup(XML_ATTR_CRM_VERSION), strdup(CRM_FEATURE_SET)); op 1837 crmd/lrm.c return op; op 1847 crmd/lrm.c op->interval = crm_parse_int(op_interval, "0"); op 1848 crmd/lrm.c op->timeout = crm_parse_int(op_timeout, "0"); op 1849 crmd/lrm.c op->start_delay = crm_parse_int(op_delay, "0"); op 1853 crmd/lrm.c if (safe_str_neq(op->op_type, RSC_METADATA) op 1854 crmd/lrm.c && safe_str_neq(op->op_type, CRMD_ACTION_DELETE) op 1888 crmd/lrm.c op->timeout = crm_parse_int(value, "0"); op 1890 crmd/lrm.c op->start_delay = crm_parse_int(value, "0"); op 1910 crmd/lrm.c op->params = params; op 1918 crmd/lrm.c op->params = params; op 1922 crmd/lrm.c op->params = crm_str_table_new(); op 1924 crmd/lrm.c g_hash_table_foreach(params, copy_meta_keys, op->params); op 1925 crmd/lrm.c g_hash_table_foreach(entry->stop_params, copy_instance_keys, op->params); op 1932 crmd/lrm.c if (op->interval < 0) { op 1933 crmd/lrm.c op->interval = 0; op 1935 crmd/lrm.c if (op->timeout <= 0) { op 1936 crmd/lrm.c op->timeout = op->interval; op 1938 crmd/lrm.c if (op->start_delay < 0) { op 1939 crmd/lrm.c op->start_delay = 0; op 1943 crmd/lrm.c CRM_CHECK(transition != NULL, return op); op 1945 crmd/lrm.c op->user_data = strdup(transition); op 1947 crmd/lrm.c if (op->interval != 0) { op 1950 crmd/lrm.c crm_err("Start and Stop actions cannot have an interval: %d", op->interval); op 1951 crmd/lrm.c op->interval = 0; op 1955 crmd/lrm.c crm_trace("Constructed %s op for %s: interval=%d", operation, rsc_id, op->interval); op 1957 crmd/lrm.c return op; op 1962 crmd/lrm.c lrmd_rsc_info_t * rsc, lrmd_event_data_t * op, const char *rsc_id) op 1968 crmd/lrm.c CRM_CHECK(op != NULL, return); op 1969 crmd/lrm.c if (op->rsc_id == NULL) { op 1971 crmd/lrm.c op->rsc_id = strdup(rsc_id); op 1986 crmd/lrm.c crm_xml_add(iter, XML_ATTR_ID, op->rsc_id); op 1988 crmd/lrm.c build_operation_update(iter, rsc, op, fsa_our_uname, __FUNCTION__); op 1994 crmd/lrm.c op->rsc_id, op->op_type, op->interval, op->user_data, op 2036 crmd/lrm.c struct recurring_op_s *op = (struct recurring_op_s *)value; op 2038 crmd/lrm.c if (op->interval != 0 && crm_str_eq(op->rsc_id, event->rsc->id, TRUE)) { op 2039 crmd/lrm.c crm_debug("Cancelling op %d for %s (%s)", op->call_id, op->rsc_id, (char*)key); op 2040 crmd/lrm.c remove = !cancel_op(event->lrm_state, event->rsc->id, key, op->call_id, FALSE); op 2051 crmd/lrm.c struct recurring_op_s *op = (struct recurring_op_s *)value; op 2053 crmd/lrm.c if (op->interval != 0) { op 2054 crmd/lrm.c crm_info("Cancelling op %d for %s (%s)", op->call_id, op->rsc_id, key); op 2055 crmd/lrm.c remove = !cancel_op(lrm_state, op->rsc_id, key, op->call_id, FALSE); op 2062 crmd/lrm.c record_pending_op(const char *node_name, lrmd_rsc_info_t *rsc, lrmd_event_data_t *op) op 2066 crmd/lrm.c CRM_CHECK(op != NULL, return); op 2068 crmd/lrm.c if (op->op_type == NULL op 2069 crmd/lrm.c || safe_str_eq(op->op_type, CRMD_ACTION_CANCEL) op 2070 crmd/lrm.c || safe_str_eq(op->op_type, CRMD_ACTION_DELETE)) { op 2074 crmd/lrm.c if (op->params == NULL) { op 2078 crmd/lrm.c const char *record_pending = crm_meta_value(op->params, XML_OP_ATTR_PENDING); op 2085 crmd/lrm.c op->call_id = -1; op 2086 crmd/lrm.c op->op_status = PCMK_LRM_OP_PENDING; op 2087 crmd/lrm.c op->rc = PCMK_OCF_UNKNOWN; op 2089 crmd/lrm.c op->t_run = time(NULL); op 2090 crmd/lrm.c op->t_rcchange = op->t_run; op 2094 crmd/lrm.c op->rsc_id, op->op_type, op->interval, node_name); op 2096 crmd/lrm.c do_update_resource(node_name, rsc, op); op 2105 crmd/lrm.c lrmd_event_data_t *op = NULL; op 2122 crmd/lrm.c op = construct_op(lrm_state, msg, rsc->id, operation); op 2123 crmd/lrm.c CRM_CHECK(op != NULL, return); op 2126 crmd/lrm.c && op->interval == 0 op 2135 crmd/lrm.c } else if (op->interval == 0 op 2154 crmd/lrm.c removed, s_if_plural(removed), rsc->id, operation, op->interval); op 2159 crmd/lrm.c crm_info("Performing key=%s op=%s_%s_%d", transition, rsc->id, operation, op->interval); op 2178 crmd/lrm.c op->rc = CRM_DIRECT_NACK_RC; op 2179 crmd/lrm.c op->op_status = PCMK_LRM_OP_ERROR; op 2180 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, rsc->id); op 2181 crmd/lrm.c lrmd_free_event(op); op 2186 crmd/lrm.c record_pending_op(lrm_state->node_name, rsc, op); op 2188 crmd/lrm.c op_id = generate_op_key(rsc->id, op->op_type, op->interval); op 2190 crmd/lrm.c if (op->interval > 0) { op 2195 crmd/lrm.c if (op->params) { op 2200 crmd/lrm.c g_hash_table_iter_init(&iter, op->params); op 2208 crmd/lrm.c op->op_type, op 2209 crmd/lrm.c op->user_data, op->interval, op->timeout, op->start_delay, params); op 2218 crmd/lrm.c op->call_id = get_fake_call_id(lrm_state, rsc->id); op 2219 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 2220 crmd/lrm.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 2221 crmd/lrm.c op->t_run = time(NULL); op 2222 crmd/lrm.c op->t_rcchange = op->t_run; op 2223 crmd/lrm.c process_lrm_event(lrm_state, op, NULL); op 2236 crmd/lrm.c pending->interval = op->interval; op 2241 crmd/lrm.c pending->user_data = strdup(op->user_data); op 2244 crmd/lrm.c if (op->interval > 0 && op->start_delay > START_DELAY_THRESHOLD) { op 2250 crmd/lrm.c decode_transition_key(op->user_data, &uuid, &dummy, &dummy, &target_rc); op 2253 crmd/lrm.c op->rc = target_rc; op 2254 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 2255 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, rsc->id); op 2258 crmd/lrm.c pending->params = op->params; op 2259 crmd/lrm.c op->params = NULL; op 2263 crmd/lrm.c lrmd_free_event(op); op 2289 crmd/lrm.c do_update_resource(const char *node_name, lrmd_rsc_info_t * rsc, lrmd_event_data_t * op) op 2304 crmd/lrm.c CRM_CHECK(op != NULL, return 0); op 2334 crmd/lrm.c crm_xml_add(iter, XML_ATTR_ID, op->rsc_id); op 2336 crmd/lrm.c build_operation_update(iter, rsc, op, node_name, __FUNCTION__); op 2345 crmd/lrm.c if (op->params) { op 2346 crmd/lrm.c container = g_hash_table_lookup(op->params, CRM_META"_"XML_RSC_ATTR_CONTAINER); op 2349 crmd/lrm.c crm_trace("Resource %s is a part of container resource %s", op->rsc_id, container); op 2354 crmd/lrm.c crm_warn("Resource %s no longer exists in the lrmd", op->rsc_id); op 2355 crmd/lrm.c send_direct_ack(NULL, NULL, rsc, op, op->rsc_id); op 2386 crmd/lrm.c op->op_type, op->interval, op->rsc_id); op 2424 crmd/lrm.c process_lrm_event(lrm_state_t * lrm_state, lrmd_event_data_t * op, struct recurring_op_s *pending) op 2434 crmd/lrm.c CRM_CHECK(op != NULL, return FALSE); op 2435 crmd/lrm.c CRM_CHECK(op->rsc_id != NULL, return FALSE); op 2437 crmd/lrm.c op_id = make_stop_id(op->rsc_id, op->call_id); op 2438 crmd/lrm.c op_key = generate_op_key(op->rsc_id, op->op_type, op->interval); op 2439 crmd/lrm.c rsc = lrm_state_get_rsc_info(lrm_state, op->rsc_id, 0); op 2445 crmd/lrm.c if (op->op_status == PCMK_LRM_OP_ERROR) { op 2446 crmd/lrm.c switch(op->rc) { op 2452 crmd/lrm.c op->op_status = PCMK_LRM_OP_DONE; op 2460 crmd/lrm.c if (op->op_status != PCMK_LRM_OP_CANCELLED) { op 2461 crmd/lrm.c if (safe_str_eq(op->op_type, RSC_NOTIFY) || safe_str_eq(op->op_type, RSC_METADATA)) { op 2463 crmd/lrm.c send_direct_ack(NULL, NULL, NULL, op, op->rsc_id); op 2465 crmd/lrm.c update_id = do_update_resource(lrm_state->node_name, rsc, op); op 2467 crmd/lrm.c } else if (op->interval == 0) { op 2469 crmd/lrm.c crm_err("Op %s (call=%d): Cancelled", op_key, op->call_id); op 2470 crmd/lrm.c send_direct_ack(NULL, NULL, NULL, op, op->rsc_id); op 2477 crmd/lrm.c } else if (op->user_data == NULL) { op 2480 crmd/lrm.c crm_err("Op %s (call=%d): No user data", op_key, op->call_id); op 2484 crmd/lrm.c erase_lrm_history_by_op(lrm_state, op); op 2486 crmd/lrm.c } else if (pending && op->rsc_deleted) { op 2492 crmd/lrm.c crm_trace("Op %s (call=%d): cancelled due to rsc deletion", op_key, op->call_id); op 2493 crmd/lrm.c send_direct_ack(NULL, NULL, NULL, op, op->rsc_id); op 2497 crmd/lrm.c crm_trace("Op %s (call=%d): no delete event required", op_key, op->call_id); op 2504 crmd/lrm.c } else if ((op->interval == 0) && g_hash_table_remove(lrm_state->pending_ops, op_id)) { op 2507 crmd/lrm.c op_key, op->call_id, op_id, g_hash_table_size(lrm_state->pending_ops)); op 2509 crmd/lrm.c } else if(op->interval != 0 && op->op_status == PCMK_LRM_OP_CANCELLED) { op 2514 crmd/lrm.c switch (op->op_status) { op 2518 crmd/lrm.c crm_action_str(op->op_type, op->interval), op 2519 crmd/lrm.c op->rsc_id, lrm_state->node_name, op 2520 crmd/lrm.c services_lrm_status_str(op->op_status), op 2521 crmd/lrm.c op->call_id, op_key, (removed? "true" : "false")); op 2525 crmd/lrm.c do_crm_log(op->interval?LOG_INFO:LOG_NOTICE, op 2528 crmd/lrm.c crm_action_str(op->op_type, op->interval), op 2529 crmd/lrm.c op->rsc_id, lrm_state->node_name, op 2530 crmd/lrm.c op->rc, services_ocf_exitcode_str(op->rc), op 2531 crmd/lrm.c op->call_id, op_key, (removed? "true" : "false"), op 2538 crmd/lrm.c crm_action_str(op->op_type, op->interval), op 2539 crmd/lrm.c op->rsc_id, lrm_state->node_name, op 2540 crmd/lrm.c services_lrm_status_str(op->op_status), op 2541 crmd/lrm.c op->call_id, op_key, op->timeout); op 2547 crmd/lrm.c crm_action_str(op->op_type, op->interval), op 2548 crmd/lrm.c op->rsc_id, lrm_state->node_name, op 2549 crmd/lrm.c services_lrm_status_str(op->op_status), op->call_id, op_key, op 2550 crmd/lrm.c (removed? "true" : "false"), op->op_status, update_id); op 2553 crmd/lrm.c if (op->output) { op 2555 crmd/lrm.c crm_strdup_printf("%s-%s_%s_%d:%d", lrm_state->node_name, op->rsc_id, op->op_type, op->interval, op->call_id); op 2557 crmd/lrm.c if (op->rc) { op 2558 crmd/lrm.c crm_log_output(LOG_NOTICE, prefix, op->output); op 2560 crmd/lrm.c crm_log_output(LOG_DEBUG, prefix, op->output); op 2565 crmd/lrm.c if (safe_str_neq(op->op_type, RSC_METADATA)) { op 2566 crmd/lrm.c crmd_alert_resource_op(lrm_state->node_name, op); op 2567 crmd/lrm.c } else if (op->rc == PCMK_OCF_OK) { op 2568 crmd/lrm.c char *metadata = unescape_newlines(op->output); op 2574 crmd/lrm.c if (op->rsc_deleted) { op 2575 crmd/lrm.c crm_info("Deletion of resource '%s' complete after %s", op->rsc_id, op_key); op 2576 crmd/lrm.c delete_rsc_entry(lrm_state, NULL, op->rsc_id, NULL, pcmk_ok, NULL); op 2583 crmd/lrm.c update_history_cache(lrm_state, rsc, op); op 51 crmd/lrm_state.c struct pending_deletion_op_s *op = value; op 53 crmd/lrm_state.c free(op->rsc); op 54 crmd/lrm_state.c delete_ha_msg_input(op->input); op 55 crmd/lrm_state.c free(op); op 61 crmd/lrm_state.c struct recurring_op_s *op = (struct recurring_op_s *)value; op 63 crmd/lrm_state.c free(op->user_data); op 64 crmd/lrm_state.c free(op->rsc_id); op 65 crmd/lrm_state.c free(op->op_type); op 66 crmd/lrm_state.c free(op->op_key); op 67 crmd/lrm_state.c if (op->params) { op 68 crmd/lrm_state.c g_hash_table_destroy(op->params); op 70 crmd/lrm_state.c free(op); op 78 crmd/lrm_state.c struct recurring_op_s *op = (struct recurring_op_s *)value; op 81 crmd/lrm_state.c op->rsc_id, op->op_type, op->interval, op 82 crmd/lrm_state.c lrm_state->node_name, (char*)key, op->user_data); op 85 crmd/lrm_state.c event.rsc_id = op->rsc_id; op 86 crmd/lrm_state.c event.op_type = op->op_type; op 87 crmd/lrm_state.c event.user_data = op->user_data; op 89 crmd/lrm_state.c event.interval = op->interval; op 92 crmd/lrm_state.c event.t_run = op->start_time; op 93 crmd/lrm_state.c event.t_rcchange = op->start_time; op 95 crmd/lrm_state.c event.call_id = op->call_id; op 97 crmd/lrm_state.c event.params = op->params; op 99 crmd/lrm_state.c process_lrm_event(lrm_state, &event, op); op 498 crmd/lrm_state.c const char *op = crm_element_value(msg, F_LRMD_IPC_OP); op 499 crmd/lrm_state.c if (safe_str_eq(op, LRMD_IPC_OP_NEW)) { op 510 crmd/lrm_state.c } else if (safe_str_eq(op, LRMD_IPC_OP_SHUTDOWN_REQ)) { op 534 crmd/lrm_state.c } else if (safe_str_eq(op, LRMD_IPC_OP_REQUEST) && proxy && proxy->is_local) { op 782 crmd/lrm_state.c crmd_alert_resource_op(const char *node, lrmd_event_data_t * op) op 796 crmd/lrm_state.c op); op 230 crmd/messages.c lrmd_event_data_t *op = NULL; op 250 crmd/messages.c op = (lrmd_event_data_t *) fsa_data->data; op 251 crmd/messages.c lrmd_free_event(op); op 542 crmd/messages.c const char *op = crm_element_value(client_msg, F_CRM_TASK); op 549 crmd/messages.c } else if (safe_str_neq(CRM_OP_HELLO, op)) { op 625 crmd/messages.c const char *op = NULL; op 639 crmd/messages.c op = crm_element_value(xml_attrs, op 656 crmd/messages.c update_attrd_clear_failures(uname, rsc, op, interval, is_remote_node); op 657 crmd/messages.c lrm_clear_last_failure(rsc, uname, op, interval_ms); op 691 crmd/messages.c const char *op = crm_element_value(stored_msg, F_CRM_TASK); op 695 crmd/messages.c if (op == NULL) { op 700 crmd/messages.c if (strcmp(op, CRM_OP_SHUTDOWN_REQ) == 0) { op 712 crmd/messages.c if (strcmp(op, CRM_OP_JOIN_ANNOUNCE) == 0) { op 715 crmd/messages.c } else if (strcmp(op, CRM_OP_JOIN_REQUEST) == 0) { op 718 crmd/messages.c } else if (strcmp(op, CRM_OP_JOIN_CONFIRM) == 0) { op 721 crmd/messages.c } else if (strcmp(op, CRM_OP_SHUTDOWN) == 0) { op 739 crmd/messages.c } else if (strcmp(op, CRM_OP_SHUTDOWN_REQ) == 0) { op 744 crmd/messages.c } else if (strcmp(op, CRM_OP_REMOTE_STATE) == 0) { op 751 crmd/messages.c if (strcmp(op, CRM_OP_NOVOTE) == 0) { op 758 crmd/messages.c } else if (strcmp(op, CRM_OP_THROTTLE) == 0) { op 768 crmd/messages.c } else if (strcmp(op, CRM_OP_CLEAR_FAILCOUNT) == 0) { op 771 crmd/messages.c } else if (strcmp(op, CRM_OP_VOTE) == 0) { op 790 crmd/messages.c } else if (strcmp(op, CRM_OP_JOIN_OFFER) == 0) { op 794 crmd/messages.c } else if (strcmp(op, CRM_OP_JOIN_ACKNAK) == 0) { op 798 crmd/messages.c } else if (strcmp(op, CRM_OP_LRM_DELETE) == 0 op 799 crmd/messages.c || strcmp(op, CRM_OP_LRM_FAIL) == 0 op 800 crmd/messages.c || strcmp(op, CRM_OP_LRM_REFRESH) == 0 || strcmp(op, CRM_OP_REPROBE) == 0) { op 805 crmd/messages.c } else if (strcmp(op, CRM_OP_NOOP) == 0) { op 808 crmd/messages.c } else if (strcmp(op, CRM_OP_LOCAL_SHUTDOWN) == 0) { op 815 crmd/messages.c } else if (AM_I_DC == FALSE && strcmp(op, CRM_OP_SHUTDOWN) == 0) { op 830 crmd/messages.c crm_warn("Discarding %s op from %s", op, host_from); op 833 crmd/messages.c } else if (strcmp(op, CRM_OP_PING) == 0) { op 855 crmd/messages.c } else if (strcmp(op, CRM_OP_RM_NODE_CACHE) == 0) { op 881 crmd/messages.c } else if (strcmp(op, CRM_OP_MAINTENANCE_NODES) == 0) { op 887 crmd/messages.c crm_err("Unexpected request (%s) sent to %s", op, AM_I_DC ? "the DC" : "non-DC node"); op 897 crmd/messages.c const char *op = crm_element_value(stored_msg, F_CRM_TASK); op 899 crmd/messages.c if (op == NULL) { op 902 crmd/messages.c } else if (AM_I_DC && strcmp(op, CRM_OP_PECALC) == 0) { op 907 crmd/messages.c crm_err("%s - Ignoring calculation with no reference", op); op 917 crmd/messages.c crm_info("%s calculation %s is obsolete", op, msg_ref); op 920 crmd/messages.c } else if (strcmp(op, CRM_OP_VOTE) == 0 op 921 crmd/messages.c || strcmp(op, CRM_OP_SHUTDOWN_REQ) == 0 || strcmp(op, CRM_OP_SHUTDOWN) == 0) { op 927 crmd/messages.c op, host_from, AM_I_DC ? "DC" : "CRMd"); op 349 crmd/remote_lrmd_ra.c lrmd_event_data_t op = { 0, }; op 353 crmd/remote_lrmd_ra.c op.type = lrmd_event_exec_complete; op 354 crmd/remote_lrmd_ra.c op.rsc_id = cmd->rsc_id; op 355 crmd/remote_lrmd_ra.c op.op_type = cmd->action; op 356 crmd/remote_lrmd_ra.c op.user_data = cmd->userdata; op 357 crmd/remote_lrmd_ra.c op.exit_reason = cmd->exit_reason; op 358 crmd/remote_lrmd_ra.c op.timeout = cmd->timeout; op 359 crmd/remote_lrmd_ra.c op.interval = cmd->interval; op 360 crmd/remote_lrmd_ra.c op.rc = cmd->rc; op 361 crmd/remote_lrmd_ra.c op.op_status = cmd->op_status; op 362 crmd/remote_lrmd_ra.c op.t_run = cmd->start_time; op 363 crmd/remote_lrmd_ra.c op.t_rcchange = cmd->start_time; op 365 crmd/remote_lrmd_ra.c op.t_rcchange = time(NULL); op 375 crmd/remote_lrmd_ra.c if (op.t_rcchange == op.t_run) { op 376 crmd/remote_lrmd_ra.c op.t_rcchange++; op 383 crmd/remote_lrmd_ra.c op.params = crm_str_table_new(); op 385 crmd/remote_lrmd_ra.c g_hash_table_insert(op.params, strdup(tmp->key), strdup(tmp->value)); op 389 crmd/remote_lrmd_ra.c op.call_id = cmd->call_id; op 390 crmd/remote_lrmd_ra.c op.remote_nodename = cmd->owner; op 392 crmd/remote_lrmd_ra.c lrm_op_callback(&op); op 394 crmd/remote_lrmd_ra.c if (op.params) { op 395 crmd/remote_lrmd_ra.c g_hash_table_destroy(op.params); op 497 crmd/remote_lrmd_ra.c lrmd_event_data_t op = { 0, }; op 505 crmd/remote_lrmd_ra.c op.type = lrmd_event_exec_complete; op 506 crmd/remote_lrmd_ra.c op.rsc_id = rsc_id; op 507 crmd/remote_lrmd_ra.c op.op_type = op_type; op 508 crmd/remote_lrmd_ra.c op.rc = PCMK_OCF_OK; op 509 crmd/remote_lrmd_ra.c op.op_status = PCMK_LRM_OP_DONE; op 510 crmd/remote_lrmd_ra.c op.t_run = time(NULL); op 511 crmd/remote_lrmd_ra.c op.t_rcchange = op.t_run; op 512 crmd/remote_lrmd_ra.c op.call_id = generate_callid(); op 513 crmd/remote_lrmd_ra.c process_lrm_event(lrm_state, &op, NULL); op 517 crmd/remote_lrmd_ra.c remote_lrm_op_callback(lrmd_event_data_t * op) op 525 crmd/remote_lrmd_ra.c lrmd_event_type2str(op->type), op 526 crmd/remote_lrmd_ra.c op->remote_nodename, op 527 crmd/remote_lrmd_ra.c op->op_type ? op->op_type : "none", op 528 crmd/remote_lrmd_ra.c services_ocf_exitcode_str(op->rc), services_lrm_status_str(op->op_status)); op 530 crmd/remote_lrmd_ra.c lrm_state = lrm_state_find(op->remote_nodename); op 539 crmd/remote_lrmd_ra.c if (op->type == lrmd_event_new_client) { op 544 crmd/remote_lrmd_ra.c crm_err("Unexpected pacemaker_remote client takeover for %s. Disconnecting", op->remote_nodename); op 554 crmd/remote_lrmd_ra.c if (op->type == lrmd_event_exec_complete) { op 558 crmd/remote_lrmd_ra.c lrm_op_callback(op); op 563 crmd/remote_lrmd_ra.c if ((op->type == lrmd_event_disconnect) && op 591 crmd/remote_lrmd_ra.c if (op->type == lrmd_event_connect && (safe_str_eq(cmd->action, "start") || op 594 crmd/remote_lrmd_ra.c if (op->connection_rc < 0) { op 597 crmd/remote_lrmd_ra.c if (op->connection_rc == -ENOKEY) { op 626 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_poke && safe_str_eq(cmd->action, "monitor")) { op 653 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_disconnect && safe_str_eq(cmd->action, "monitor")) { op 662 crmd/remote_lrmd_ra.c } else if (op->type == lrmd_event_new_client && safe_str_eq(cmd->action, "stop")) { op 311 crmd/te_actions.c lrmd_event_data_t *op = NULL; op 371 crmd/te_actions.c op = convert_graph_action(NULL, action, status, op_rc); op 372 crmd/te_actions.c op->call_id = -1; op 373 crmd/te_actions.c op->user_data = generate_transition_key(transition_graph->id, action->id, target_rc, te_uuid); op 375 crmd/te_actions.c xml_op = create_operation_update(rsc, op, CRM_FEATURE_SET, target_rc, target, __FUNCTION__, LOG_INFO); op 376 crmd/te_actions.c lrmd_free_event(op); op 245 crmd/te_callbacks.c const char *node, xmlNode *xml, xmlNode *change, const char *op, const char *xpath) op 336 crmd/te_callbacks.c abort_unless_down(const char *xpath, const char *op, xmlNode *change, op 342 crmd/te_callbacks.c if(safe_str_neq(op, "delete")) { op 370 crmd/te_callbacks.c const char *op = NULL; op 396 crmd/te_callbacks.c op = crm_element_value(msg, F_CIB_OPERATION); op 400 crmd/te_callbacks.c crm_debug("Processing (%s) diff: %d.%d.%d -> %d.%d.%d (%s)", op, op 420 crmd/te_callbacks.c const char *op = crm_element_value(change, XML_DIFF_OP); op 425 crmd/te_callbacks.c if(op == NULL) { op 428 crmd/te_callbacks.c } else if(strcmp(op, "create") == 0) { op 431 crmd/te_callbacks.c } else if(strcmp(op, "move") == 0) { op 434 crmd/te_callbacks.c } else if(strcmp(op, "modify") == 0) { op 443 crmd/te_callbacks.c crm_trace("Ignoring %s operation for comment at %s", op, xpath); op 450 crmd/te_callbacks.c op, (xpath? xpath : "CIB"), op 464 crmd/te_callbacks.c abort_unless_down(xpath, op, change, "Transient attribute change"); op 467 crmd/te_callbacks.c } else if(strstr(xpath, "/"XML_LRM_TAG_RSC_OP"[") && safe_str_eq(op, "delete")) { op 502 crmd/te_callbacks.c } else if(strstr(xpath, "/"XML_CIB_TAG_LRM"[") && safe_str_eq(op, "delete")) { op 503 crmd/te_callbacks.c abort_unless_down(xpath, op, change, "Resource state removal"); op 505 crmd/te_callbacks.c } else if(strstr(xpath, "/"XML_CIB_TAG_STATE"[") && safe_str_eq(op, "delete")) { op 506 crmd/te_callbacks.c abort_unless_down(xpath, op, change, "Node state removal"); op 509 crmd/te_callbacks.c crm_debug("No result for %s operation to %s", op, xpath); op 510 crmd/te_callbacks.c CRM_ASSERT(strcmp(op, "delete") == 0 || strcmp(op, "move") == 0); op 521 crmd/te_callbacks.c process_resource_updates(node, lrm, change, op, xpath); op 535 crmd/te_callbacks.c process_resource_updates(node, lrm, change, op, xpath); op 542 crmd/te_callbacks.c process_resource_updates(node, lrm, change, op, xpath); op 546 crmd/te_callbacks.c process_resource_updates(node, match, change, op, xpath); op 551 crmd/te_callbacks.c process_resource_updates(local_node, match, change, op, xpath); op 571 crmd/te_callbacks.c crm_err("Ignoring %s operation for %s %p, %s", op, xpath, match, name); op 584 crmd/te_callbacks.c const char *op = crm_element_value(msg, F_CRM_TASK); op 587 crmd/te_callbacks.c crm_trace("Processing %s (%s) message", op, ref); op 590 crmd/te_callbacks.c if (op == NULL) { op 597 crmd/te_callbacks.c } else if (safe_str_eq(op, CRM_OP_INVOKE_LRM) op 625 crmd/te_callbacks.c crm_err("Unknown command: %s::%s from %s", type, op, sys_from); op 794 crmd/te_callbacks.c const char *op = crm_meta_value(action->params, "stonith_action"); op 799 crmd/te_callbacks.c if (safe_str_eq("on", op)) { op 608 crmd/te_utils.c const char *op = crm_element_value(change, XML_DIFF_OP); op 612 crmd/te_utils.c if(strcmp(op, "create") == 0) { op 615 crmd/te_utils.c } else if(strcmp(op, "modify") == 0) { op 624 crmd/te_utils.c if(strcmp(op, "delete") == 0) { op 636 crmd/te_utils.c crm_element_value(reason, XML_ATTR_ID), op, op 647 crmd/te_utils.c crm_element_value(reason, XML_LRM_ATTR_TASK_KEY), op, op 658 crmd/te_utils.c kind, op, (uname? uname : ID(reason)), abort_text, op 665 crmd/te_utils.c TYPE(reason), ID(reason), (op? op : "change"), abort_text, op 97 fencing/commands.c char *op; op 237 fencing/commands.c free(cmd->op); op 245 fencing/commands.c xmlNode *op = get_xpath_object("//@" F_STONITH_ACTION, msg, LOG_ERR); op 246 fencing/commands.c const char *action = crm_element_value(op, F_STONITH_ACTION); op 261 fencing/commands.c cmd->op = crm_element_value_copy(msg, F_STONITH_OPERATION); op 263 fencing/commands.c cmd->victim = crm_element_value_copy(op, F_STONITH_TARGET); op 264 fencing/commands.c cmd->mode = crm_element_value_copy(op, F_STONITH_MODE); op 265 fencing/commands.c cmd->device = crm_element_value_copy(op, F_STONITH_DEVICE); op 267 fencing/commands.c CRM_CHECK(cmd->op != NULL, crm_log_xml_warn(msg, "NoOp"); free_async_command(cmd); return NULL); op 2050 fencing/commands.c crm_xml_add(notify_data, F_STONITH_OPERATION, cmd->op); op 2363 fencing/commands.c crm_xml_add(reply, F_STONITH_OPERATION, cmd->op); op 2369 fencing/commands.c crm_xml_add(reply, F_STONITH_ACTION, cmd->op); op 2458 fencing/commands.c const char *op = crm_element_value(request, F_STONITH_OPERATION); op 2467 fencing/commands.c if (crm_str_eq(op, CRM_OP_REGISTER, TRUE)) { op 2478 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_EXEC, TRUE)) { op 2481 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_TIMEOUT_UPDATE, TRUE)) { op 2490 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_QUERY, TRUE)) { op 2497 fencing/commands.c } else if (crm_str_eq(op, T_STONITH_NOTIFY, TRUE)) { op 2518 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_RELAY, TRUE)) { op 2531 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_FENCE, TRUE)) { op 2597 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_FENCE_HISTORY, TRUE)) { op 2600 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_DEVICE_ADD, TRUE)) { op 2604 fencing/commands.c do_stonith_notify_device(call_options, op, rc, device_id); op 2606 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_DEVICE_DEL, TRUE)) { op 2611 fencing/commands.c do_stonith_notify_device(call_options, op, rc, device_id); op 2613 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_LEVEL_ADD, TRUE)) { op 2617 fencing/commands.c do_stonith_notify_level(call_options, op, rc, device_id); op 2620 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_LEVEL_DEL, TRUE)) { op 2624 fencing/commands.c do_stonith_notify_level(call_options, op, rc, device_id); op 2626 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_CONFIRM, TRUE)) { op 2637 fencing/commands.c } else if(safe_str_eq(op, CRM_OP_RM_NODE_CACHE)) { op 2648 fencing/commands.c crm_err("Unknown %s from %s", op, client ? client->name : remote_peer); op 2679 fencing/commands.c const char *op = crm_element_value(request, F_STONITH_OPERATION); op 2681 fencing/commands.c if (crm_str_eq(op, STONITH_OP_QUERY, TRUE)) { op 2683 fencing/commands.c } else if (crm_str_eq(op, T_STONITH_NOTIFY, TRUE)) { op 2685 fencing/commands.c } else if (crm_str_eq(op, STONITH_OP_FENCE, TRUE)) { op 2689 fencing/commands.c crm_err("Unknown %s reply from %s", op, client ? client->name : remote_peer); op 2711 fencing/commands.c char *op = crm_element_value_copy(request, F_STONITH_OPERATION); op 2718 fencing/commands.c crm_debug("Processing %s%s %u from %s (%16x)", op, is_reply ? " reply" : "", op 2731 fencing/commands.c crm_debug("Processed %s%s from %s: %s (%d)", op, op 2735 fencing/commands.c free(op); op 200 fencing/internal.h void do_stonith_notify_device(int options, const char *op, int rc, const char *desc); op 201 fencing/internal.h void do_stonith_notify_level(int options, const char *op, int rc, const char *desc); op 220 fencing/internal.h int stonith_manual_ack(xmlNode * msg, remote_fencing_op_t * op); op 102 fencing/main.c const char *op = NULL; op 116 fencing/main.c op = crm_element_value(request, F_CRM_TASK); op 117 fencing/main.c if(safe_str_eq(op, CRM_OP_RM_NODE_CACHE)) { op 119 fencing/main.c crm_xml_add(request, F_STONITH_OPERATION, op); op 186 fencing/main.c const char *op = crm_element_value(msg, F_STONITH_OPERATION); op 188 fencing/main.c if (crm_str_eq(op, "poke", TRUE)) { op 399 fencing/main.c do_stonith_notify_config(int options, const char *op, int rc, op 402 fencing/main.c xmlNode *notify_data = create_xml_node(NULL, op); op 409 fencing/main.c do_stonith_notify(options, op, rc, notify_data); op 414 fencing/main.c do_stonith_notify_device(int options, const char *op, int rc, const char *desc) op 416 fencing/main.c do_stonith_notify_config(options, op, rc, desc, g_hash_table_size(device_list)); op 420 fencing/main.c do_stonith_notify_level(int options, const char *op, int rc, const char *desc) op 422 fencing/main.c do_stonith_notify_config(options, op, rc, desc, g_hash_table_size(topology)); op 754 fencing/main.c const char *op = crm_element_value(change, XML_DIFF_OP); op 758 fencing/main.c if(op == NULL || strcmp(op, "move") == 0) { op 761 fencing/main.c } else if(safe_str_eq(op, "delete") && strstr(xpath, XML_CIB_TAG_RESOURCE)) { op 786 fencing/main.c reason = crm_strdup_printf("%s %s", op, shortpath+1); op 792 fencing/main.c reason = crm_strdup_printf("%s %s", op, shortpath+1); op 960 fencing/main.c const char *op = crm_element_value(change, XML_DIFF_OP); op 963 fencing/main.c if(op == NULL) { op 969 fencing/main.c crm_trace("Handling %s operation %d.%d.%d for %s", op, add[0], add[1], add[2], xpath); op 970 fencing/main.c if(strcmp(op, "move") == 0) { op 973 fencing/main.c } else if(strcmp(op, "create") == 0) { op 976 fencing/main.c } else if(strcmp(op, "modify") == 0) { op 983 fencing/main.c } else if(strcmp(op, "delete") == 0) { op 986 fencing/main.c op, add[0], add[1], add[2], xpath); op 994 fencing/main.c op, add[0], add[1], add[2], xpath); op 1002 fencing/main.c op, add[0], add[1], add[2], xpath); op 1004 fencing/main.c } else if(strcmp(op, "delete") == 0 || strcmp(op, "create") == 0) { op 1006 fencing/main.c op, add[0], add[1], add[2], xpath); op 1013 fencing/main.c op, add[0], add[1], add[2], xpath); op 86 fencing/remote.c void call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer); op 87 fencing/remote.c static void remote_op_done(remote_fencing_op_t * op, xmlNode * data, int rc, int dup); op 88 fencing/remote.c extern xmlNode *stonith_create_op(int call_id, const char *token, const char *op, xmlNode * data, op 91 fencing/remote.c static void report_timeout_period(remote_fencing_op_t * op, int op_timeout); op 92 fencing/remote.c static int get_op_total_timeout(const remote_fencing_op_t *op, op 115 fencing/remote.c const remote_fencing_op_t *op; op 134 fencing/remote.c if (!props->executed[data->op->phase] op 151 fencing/remote.c count_peer_devices(const remote_fencing_op_t *op, const st_query_result_t *peer, op 156 fencing/remote.c data.op = op; op 176 fencing/remote.c find_peer_device(const remote_fencing_op_t *op, const st_query_result_t *peer, op 181 fencing/remote.c return (props && !props->executed[op->phase] op 182 fencing/remote.c && !props->disallowed[op->phase])? props : NULL; op 197 fencing/remote.c grab_peer_device(const remote_fencing_op_t *op, st_query_result_t *peer, op 200 fencing/remote.c device_properties_t *props = find_peer_device(op, peer, device); op 207 fencing/remote.c device, peer->host, count_peer_devices(op, peer, FALSE)); op 208 fencing/remote.c props->executed[op->phase] = TRUE; op 213 fencing/remote.c clear_remote_op_timers(remote_fencing_op_t * op) op 215 fencing/remote.c if (op->query_timer) { op 216 fencing/remote.c g_source_remove(op->query_timer); op 217 fencing/remote.c op->query_timer = 0; op 219 fencing/remote.c if (op->op_timer_total) { op 220 fencing/remote.c g_source_remove(op->op_timer_total); op 221 fencing/remote.c op->op_timer_total = 0; op 223 fencing/remote.c if (op->op_timer_one) { op 224 fencing/remote.c g_source_remove(op->op_timer_one); op 225 fencing/remote.c op->op_timer_one = 0; op 232 fencing/remote.c remote_fencing_op_t *op = data; op 234 fencing/remote.c crm_trace("Free'ing op %s for %s", op->id, op->target); op 235 fencing/remote.c crm_log_xml_debug(op->request, "Destroying"); op 237 fencing/remote.c clear_remote_op_timers(op); op 239 fencing/remote.c free(op->id); op 240 fencing/remote.c free(op->action); op 241 fencing/remote.c free(op->target); op 242 fencing/remote.c free(op->client_id); op 243 fencing/remote.c free(op->client_name); op 244 fencing/remote.c free(op->originator); op 246 fencing/remote.c if (op->query_results) { op 247 fencing/remote.c g_list_free_full(op->query_results, free_remote_query); op 249 fencing/remote.c if (op->request) { op 250 fencing/remote.c free_xml(op->request); op 251 fencing/remote.c op->request = NULL; op 253 fencing/remote.c if (op->devices_list) { op 254 fencing/remote.c g_list_free_full(op->devices_list, free); op 255 fencing/remote.c op->devices_list = NULL; op 257 fencing/remote.c g_list_free_full(op->automatic_list, free); op 258 fencing/remote.c free(op); op 270 fencing/remote.c op_requested_action(const remote_fencing_op_t *op) op 272 fencing/remote.c return ((op->phase > st_phase_requested)? "reboot" : op->action); op 282 fencing/remote.c op_phase_off(remote_fencing_op_t *op) op 285 fencing/remote.c op->target, op->id); op 286 fencing/remote.c op->phase = st_phase_off; op 291 fencing/remote.c strcpy(op->action, "off"); op 301 fencing/remote.c op_phase_on(remote_fencing_op_t *op) op 306 fencing/remote.c op->target, op->client_name, op->id); op 307 fencing/remote.c op->phase = st_phase_on; op 308 fencing/remote.c strcpy(op->action, "on"); op 313 fencing/remote.c for (iter = op->automatic_list; iter != NULL; iter = iter->next) { op 314 fencing/remote.c GListPtr match = g_list_find_custom(op->devices_list, iter->data, op 318 fencing/remote.c op->devices_list = g_list_remove(op->devices_list, match->data); op 321 fencing/remote.c g_list_free_full(op->automatic_list, free); op 322 fencing/remote.c op->automatic_list = NULL; op 325 fencing/remote.c op->devices = op->devices_list; op 335 fencing/remote.c undo_op_remap(remote_fencing_op_t *op) op 337 fencing/remote.c if (op->phase > 0) { op 339 fencing/remote.c op->target, op->client_name, op->id); op 340 fencing/remote.c op->phase = st_phase_requested; op 341 fencing/remote.c strcpy(op->action, "reboot"); op 346 fencing/remote.c create_op_done_notify(remote_fencing_op_t * op, int rc) op 350 fencing/remote.c crm_xml_add_int(notify_data, "state", op->state); op 352 fencing/remote.c crm_xml_add(notify_data, F_STONITH_TARGET, op->target); op 353 fencing/remote.c crm_xml_add(notify_data, F_STONITH_ACTION, op->action); op 354 fencing/remote.c crm_xml_add(notify_data, F_STONITH_DELEGATE, op->delegate); op 355 fencing/remote.c crm_xml_add(notify_data, F_STONITH_REMOTE_OP_ID, op->id); op 356 fencing/remote.c crm_xml_add(notify_data, F_STONITH_ORIGIN, op->originator); op 357 fencing/remote.c crm_xml_add(notify_data, F_STONITH_CLIENTID, op->client_id); op 358 fencing/remote.c crm_xml_add(notify_data, F_STONITH_CLIENTNAME, op->client_name); op 364 fencing/remote.c bcast_result_to_peers(remote_fencing_op_t * op, int rc) op 368 fencing/remote.c xmlNode *notify_data = create_op_done_notify(op, rc); op 385 fencing/remote.c handle_local_reply_and_notify(remote_fencing_op_t * op, xmlNode * data, int rc) op 390 fencing/remote.c if (op->notify_sent == TRUE) { op 396 fencing/remote.c notify_data = create_op_done_notify(op, rc); op 397 fencing/remote.c crm_xml_add_int(data, "state", op->state); op 398 fencing/remote.c crm_xml_add(data, F_STONITH_TARGET, op->target); op 399 fencing/remote.c crm_xml_add(data, F_STONITH_OPERATION, op->action); op 401 fencing/remote.c reply = stonith_construct_reply(op->request, NULL, data, rc); op 402 fencing/remote.c crm_xml_add(reply, F_STONITH_DELEGATE, op->delegate); op 405 fencing/remote.c do_local_reply(reply, op->client_id, op->call_options & st_opt_sync_call, FALSE); op 411 fencing/remote.c op->notify_sent = TRUE; op 417 fencing/remote.c handle_duplicates(remote_fencing_op_t * op, xmlNode * data, int rc) op 421 fencing/remote.c for (iter = op->duplicates; iter != NULL; iter = iter->next) { op 426 fencing/remote.c other->state = op->state; op 464 fencing/remote.c remote_op_done(remote_fencing_op_t * op, xmlNode * data, int rc, int dup) op 470 fencing/remote.c op->completed = time(NULL); op 471 fencing/remote.c clear_remote_op_timers(op); op 472 fencing/remote.c undo_op_remap(op); op 474 fencing/remote.c if (op->notify_sent == TRUE) { op 476 fencing/remote.c op->action, op->target, op->delegate ? op->delegate : "<no-one>", op 477 fencing/remote.c op->client_name, op->originator, op->id, op->state, pcmk_strerror(rc)); op 481 fencing/remote.c if (!op->delegate && data && rc != -ENODEV && rc != -EHOSTUNREACH) { op 484 fencing/remote.c op->delegate = crm_element_value_copy(ndata, F_STONITH_DELEGATE); op 486 fencing/remote.c op->delegate = crm_element_value_copy(data, F_ORIG); op 501 fencing/remote.c bcast_result_to_peers(op, rc); op 507 fencing/remote.c } else if (safe_str_neq(op->originator, stonith_our_uname)) { op 513 fencing/remote.c op->action, op->target, op->delegate ? op->delegate : "<no-one>", op 514 fencing/remote.c op->client_name, op->originator, op->id, pcmk_strerror(rc)); op 516 fencing/remote.c handle_local_reply_and_notify(op, data, rc); op 519 fencing/remote.c handle_duplicates(op, data, rc); op 525 fencing/remote.c if (op->query_results) { op 526 fencing/remote.c g_list_free_full(op->query_results, free_remote_query); op 527 fencing/remote.c op->query_results = NULL; op 530 fencing/remote.c if (op->request) { op 531 fencing/remote.c free_xml(op->request); op 532 fencing/remote.c op->request = NULL; op 542 fencing/remote.c remote_fencing_op_t *op = userdata; op 544 fencing/remote.c op->op_timer_one = 0; op 547 fencing/remote.c op->action, op->target, op->client_name, op->id); op 548 fencing/remote.c op->state = st_done; op 549 fencing/remote.c remote_op_done(op, NULL, pcmk_ok, FALSE); op 556 fencing/remote.c remote_fencing_op_t *op = userdata; op 558 fencing/remote.c op->op_timer_one = 0; op 561 fencing/remote.c op->action, op->target, op->client_name, op->id); op 562 fencing/remote.c call_remote_stonith(op, NULL); op 569 fencing/remote.c remote_fencing_op_t *op = userdata; op 571 fencing/remote.c op->op_timer_total = 0; op 573 fencing/remote.c if (op->state == st_done) { op 575 fencing/remote.c op->action, op->id, op->target, op->client_name); op 580 fencing/remote.c op->action, op->id, op->target, op->client_name); op 582 fencing/remote.c if (op->phase == st_phase_on) { op 587 fencing/remote.c remote_op_done(op, NULL, pcmk_ok, FALSE); op 591 fencing/remote.c op->state = st_failed; op 593 fencing/remote.c remote_op_done(op, NULL, -ETIME, FALSE); op 601 fencing/remote.c remote_fencing_op_t *op = data; op 603 fencing/remote.c op->query_timer = 0; op 604 fencing/remote.c if (op->state == st_done) { op 605 fencing/remote.c crm_debug("Operation %s for %s already completed", op->id, op->target); op 606 fencing/remote.c } else if (op->state == st_exec) { op 607 fencing/remote.c crm_debug("Operation %s for %s already in progress", op->id, op->target); op 608 fencing/remote.c } else if (op->query_results) { op 609 fencing/remote.c crm_debug("Query %s for %s complete: %d", op->id, op->target, op->state); op 610 fencing/remote.c call_remote_stonith(op, NULL); op 612 fencing/remote.c crm_debug("Query %s for %s timed out: %d", op->id, op->target, op->state); op 613 fencing/remote.c if (op->op_timer_total) { op 614 fencing/remote.c g_source_remove(op->op_timer_total); op 615 fencing/remote.c op->op_timer_total = 0; op 617 fencing/remote.c remote_op_timeout(op); op 648 fencing/remote.c add_required_device(remote_fencing_op_t *op, const char *device) op 650 fencing/remote.c GListPtr match = g_list_find_custom(op->automatic_list, device, op 654 fencing/remote.c op->automatic_list = g_list_prepend(op->automatic_list, strdup(device)); op 666 fencing/remote.c remove_required_device(remote_fencing_op_t *op, const char *device) op 668 fencing/remote.c GListPtr match = g_list_find_custom(op->automatic_list, device, op 672 fencing/remote.c op->automatic_list = g_list_remove(op->automatic_list, match->data); op 678 fencing/remote.c set_op_device_list(remote_fencing_op_t * op, GListPtr devices) op 682 fencing/remote.c if (op->devices_list) { op 683 fencing/remote.c g_list_free_full(op->devices_list, free); op 684 fencing/remote.c op->devices_list = NULL; op 687 fencing/remote.c op->devices_list = g_list_append(op->devices_list, strdup(lpc->data)); op 689 fencing/remote.c op->devices = op->devices_list; op 778 fencing/remote.c stonith_topology_next(remote_fencing_op_t * op) op 782 fencing/remote.c if (op->target) { op 784 fencing/remote.c tp = find_topology_for_host(op->target); op 790 fencing/remote.c set_bit(op->call_options, st_opt_topology); op 793 fencing/remote.c undo_op_remap(op); op 796 fencing/remote.c op->level++; op 798 fencing/remote.c } while (op->level < ST_LEVEL_MAX && tp->levels[op->level] == NULL); op 800 fencing/remote.c if (op->level < ST_LEVEL_MAX) { op 802 fencing/remote.c op->level, op->target, g_list_length(tp->levels[op->level]), op 803 fencing/remote.c op->client_name, op->originator, op->id); op 804 fencing/remote.c set_op_device_list(op, tp->levels[op->level]); op 806 fencing/remote.c if (g_list_next(op->devices_list) && safe_str_eq(op->action, "reboot")) { op 812 fencing/remote.c op_phase_off(op); op 818 fencing/remote.c op->target, op->client_name, op->originator, op->id); op 828 fencing/remote.c merge_duplicates(remote_fencing_op_t * op) op 843 fencing/remote.c } else if (safe_str_neq(op->target, other->target)) { op 846 fencing/remote.c } else if (safe_str_neq(op->action, other_action)) { op 848 fencing/remote.c op->action, other_action); op 850 fencing/remote.c } else if (safe_str_eq(op->client_name, other->client_name)) { op 851 fencing/remote.c crm_trace("Must be for different clients: %s", op->client_name); op 875 fencing/remote.c other->duplicates = g_list_append(other->duplicates, op); op 878 fencing/remote.c other->total_timeout = op->total_timeout = op 879 fencing/remote.c TIMEOUT_MULTIPLY_FACTOR * get_op_total_timeout(op, NULL); op 883 fencing/remote.c op->action, op->target, op->client_name, op->id, other->client_name, other->originator, op 885 fencing/remote.c report_timeout_period(op, other->total_timeout); op 886 fencing/remote.c op->state = st_duplicate; op 906 fencing/remote.c stonith_manual_ack(xmlNode * msg, remote_fencing_op_t * op) op 910 fencing/remote.c op->state = st_done; op 911 fencing/remote.c op->completed = time(NULL); op 912 fencing/remote.c op->delegate = strdup("a human"); op 917 fencing/remote.c remote_op_done(op, msg, pcmk_ok, FALSE); op 961 fencing/remote.c remote_fencing_op_t *op = NULL; op 976 fencing/remote.c op = g_hash_table_lookup(remote_op_list, op_id); op 977 fencing/remote.c if (op) { op 979 fencing/remote.c return op; op 983 fencing/remote.c op = calloc(1, sizeof(remote_fencing_op_t)); op 985 fencing/remote.c crm_element_value_int(request, F_STONITH_TIMEOUT, &(op->base_timeout)); op 988 fencing/remote.c op->id = crm_element_value_copy(dev, F_STONITH_REMOTE_OP_ID); op 990 fencing/remote.c op->id = crm_generate_uuid(); op 993 fencing/remote.c g_hash_table_replace(remote_op_list, op->id, op); op 994 fencing/remote.c CRM_LOG_ASSERT(g_hash_table_lookup(remote_op_list, op->id) != NULL); op 995 fencing/remote.c crm_trace("Created %s", op->id); op 997 fencing/remote.c op->state = st_query; op 998 fencing/remote.c op->replies_expected = fencing_active_peers(); op 999 fencing/remote.c op->action = crm_element_value_copy(dev, F_STONITH_ACTION); op 1000 fencing/remote.c op->originator = crm_element_value_copy(dev, F_STONITH_ORIGIN); op 1001 fencing/remote.c op->delegate = crm_element_value_copy(dev, F_STONITH_DELEGATE); /* May not be set */ op 1002 fencing/remote.c op->created = time(NULL); op 1004 fencing/remote.c if (op->originator == NULL) { op 1006 fencing/remote.c op->originator = strdup(stonith_our_uname); op 1011 fencing/remote.c op->client_id = strdup(client); op 1014 fencing/remote.c op->client_name = crm_element_value_copy(request, F_STONITH_CLIENTNAME); op 1016 fencing/remote.c op->target = crm_element_value_copy(dev, F_STONITH_TARGET); op 1017 fencing/remote.c op->request = copy_xml(request); /* TODO: Figure out how to avoid this */ op 1019 fencing/remote.c op->call_options = call_options; op 1021 fencing/remote.c crm_element_value_int(request, F_STONITH_CALLID, &(op->client_callid)); op 1025 fencing/remote.c && dev) ? "Recorded" : "Generated", op->id, op->action, op->target, op->client_name); op 1027 fencing/remote.c if (op->call_options & st_opt_cs_nodeid) { op 1028 fencing/remote.c int nodeid = crm_atoi(op->target, NULL); op 1032 fencing/remote.c op->call_options &= ~st_opt_cs_nodeid; op 1035 fencing/remote.c free(op->target); op 1036 fencing/remote.c op->target = nodename; op 1039 fencing/remote.c crm_warn("Could not expand nodeid '%s' into a host name", op->target); op 1044 fencing/remote.c merge_duplicates(op); op 1046 fencing/remote.c return op; op 1055 fencing/remote.c remote_fencing_op_t *op = NULL; op 1064 fencing/remote.c op = create_remote_stonith_op(client_id, request, FALSE); op 1065 fencing/remote.c op->owner = TRUE; op 1068 fencing/remote.c op->target, op->id); op 1069 fencing/remote.c return op; op 1072 fencing/remote.c CRM_CHECK(op->action, return NULL); op 1074 fencing/remote.c if (stonith_topology_next(op) != pcmk_ok) { op 1075 fencing/remote.c op->state = st_failed; op 1078 fencing/remote.c switch (op->state) { op 1081 fencing/remote.c CRM_XS " id=%s", op->action, op->target, op->id); op 1082 fencing/remote.c remote_op_done(op, NULL, -EINVAL, FALSE); op 1083 fencing/remote.c return op; op 1087 fencing/remote.c CRM_XS " id=%s", op->action, op->target, op->id); op 1088 fencing/remote.c return op; op 1093 fencing/remote.c op->action, op->target, op->id, op->state); op 1096 fencing/remote.c query = stonith_create_op(op->client_callid, op->id, STONITH_OP_QUERY, op 1097 fencing/remote.c NULL, op->call_options); op 1099 fencing/remote.c crm_xml_add(query, F_STONITH_REMOTE_OP_ID, op->id); op 1100 fencing/remote.c crm_xml_add(query, F_STONITH_TARGET, op->target); op 1101 fencing/remote.c crm_xml_add(query, F_STONITH_ACTION, op_requested_action(op)); op 1102 fencing/remote.c crm_xml_add(query, F_STONITH_ORIGIN, op->originator); op 1103 fencing/remote.c crm_xml_add(query, F_STONITH_CLIENTID, op->client_id); op 1104 fencing/remote.c crm_xml_add(query, F_STONITH_CLIENTNAME, op->client_name); op 1105 fencing/remote.c crm_xml_add_int(query, F_STONITH_TIMEOUT, op->base_timeout); op 1110 fencing/remote.c query_timeout = op->base_timeout * TIMEOUT_MULTIPLY_FACTOR; op 1111 fencing/remote.c op->query_timer = g_timeout_add((1000 * query_timeout), remote_op_query_timeout, op); op 1113 fencing/remote.c return op; op 1126 fencing/remote.c find_best_peer(const char *device, remote_fencing_op_t * op, enum find_best_peer_options options) op 1131 fencing/remote.c if (!device && is_set(op->call_options, st_opt_topology)) { op 1135 fencing/remote.c for (iter = op->query_results; iter != NULL; iter = iter->next) { op 1139 fencing/remote.c peer->host, op->target, peer->ndevices, peer->tried, options); op 1140 fencing/remote.c if ((options & FIND_PEER_SKIP_TARGET) && safe_str_eq(peer->host, op->target)) { op 1143 fencing/remote.c if ((options & FIND_PEER_TARGET_ONLY) && safe_str_neq(peer->host, op->target)) { op 1147 fencing/remote.c if (is_set(op->call_options, st_opt_topology)) { op 1149 fencing/remote.c if (grab_peer_device(op, peer, device, verified_devices_only)) { op 1154 fencing/remote.c && count_peer_devices(op, peer, verified_devices_only)) { op 1166 fencing/remote.c stonith_choose_peer(remote_fencing_op_t * op) op 1173 fencing/remote.c if (op->devices) { op 1174 fencing/remote.c device = op->devices->data; op 1176 fencing/remote.c op->action, op->target, device); op 1179 fencing/remote.c op->action, op->target); op 1183 fencing/remote.c peer = find_best_peer(device, op, FIND_PEER_SKIP_TARGET|FIND_PEER_VERIFIED_ONLY); op 1189 fencing/remote.c if(op->query_timer != 0 && op->replies < QB_MIN(op->replies_expected, active)) { op 1190 fencing/remote.c crm_trace("Waiting before looking for unverified devices to fence %s", op->target); op 1195 fencing/remote.c peer = find_best_peer(device, op, FIND_PEER_SKIP_TARGET); op 1204 fencing/remote.c if (op->phase != st_phase_on) { op 1205 fencing/remote.c peer = find_best_peer(device, op, FIND_PEER_TARGET_ONLY); op 1215 fencing/remote.c } while ((op->phase != st_phase_on) op 1216 fencing/remote.c && is_set(op->call_options, st_opt_topology) op 1217 fencing/remote.c && stonith_topology_next(op) == pcmk_ok); op 1220 fencing/remote.c op->action, op->target, (device? device : "any device")); op 1225 fencing/remote.c get_device_timeout(const remote_fencing_op_t *op, const st_query_result_t *peer, op 1231 fencing/remote.c return op->base_timeout; op 1236 fencing/remote.c return op->base_timeout; op 1239 fencing/remote.c return (props->custom_action_timeout[op->phase]? op 1240 fencing/remote.c props->custom_action_timeout[op->phase] : op->base_timeout) op 1241 fencing/remote.c + props->delay_max[op->phase]; op 1245 fencing/remote.c const remote_fencing_op_t *op; op 1265 fencing/remote.c if (!props->executed[timeout->op->phase] op 1266 fencing/remote.c && !props->disallowed[timeout->op->phase]) { op 1267 fencing/remote.c timeout->total_timeout += get_device_timeout(timeout->op, op 1273 fencing/remote.c get_peer_timeout(const remote_fencing_op_t *op, const st_query_result_t *peer) op 1277 fencing/remote.c timeout.op = op; op 1283 fencing/remote.c return (timeout.total_timeout? timeout.total_timeout : op->base_timeout); op 1287 fencing/remote.c get_op_total_timeout(const remote_fencing_op_t *op, op 1291 fencing/remote.c stonith_topology_t *tp = find_topology_for_host(op->target); op 1293 fencing/remote.c if (is_set(op->call_options, st_opt_topology) && tp) { op 1310 fencing/remote.c for (iter = op->query_results; iter != NULL; iter = iter->next) { op 1313 fencing/remote.c if (find_peer_device(op, peer, device_list->data)) { op 1314 fencing/remote.c total_timeout += get_device_timeout(op, peer, op 1323 fencing/remote.c total_timeout = get_peer_timeout(op, chosen_peer); op 1325 fencing/remote.c total_timeout = op->base_timeout; op 1328 fencing/remote.c return total_timeout ? total_timeout : op->base_timeout; op 1332 fencing/remote.c report_timeout_period(remote_fencing_op_t * op, int op_timeout) op 1340 fencing/remote.c if (op->call_options & st_opt_sync_call) { op 1346 fencing/remote.c } else if (!op->request) { op 1350 fencing/remote.c crm_trace("Reporting timeout for %s.%.8s", op->client_name, op->id); op 1351 fencing/remote.c client_node = crm_element_value(op->request, F_STONITH_CLIENTNODE); op 1352 fencing/remote.c call_id = crm_element_value(op->request, F_STONITH_CALLID); op 1353 fencing/remote.c client_id = crm_element_value(op->request, F_STONITH_CLIENTID); op 1365 fencing/remote.c update = stonith_create_op(op->client_callid, op->id, STONITH_OP_TIMEOUT_UPDATE, NULL, 0); op 1366 fencing/remote.c crm_xml_add(update, F_STONITH_REMOTE_OP_ID, op->id); op 1375 fencing/remote.c for (iter = op->duplicates; iter != NULL; iter = iter->next) { op 1393 fencing/remote.c advance_op_topology(remote_fencing_op_t *op, const char *device, xmlNode *msg, op 1397 fencing/remote.c if (op->devices) { op 1398 fencing/remote.c op->devices = op->devices->next; op 1402 fencing/remote.c if ((op->phase == st_phase_requested) && safe_str_eq(op->action, "on")) { op 1404 fencing/remote.c remove_required_device(op, device); op 1409 fencing/remote.c if (op->devices == NULL) { op 1410 fencing/remote.c op->devices = op->automatic_list; op 1414 fencing/remote.c if ((op->devices == NULL) && (op->phase == st_phase_off)) { op 1419 fencing/remote.c op_phase_on(op); op 1422 fencing/remote.c if (op->devices) { op 1425 fencing/remote.c op->target, op->originator, op->client_name, rc); op 1426 fencing/remote.c call_remote_stonith(op, NULL); op 1429 fencing/remote.c crm_trace("Marking complex fencing op for %s as complete", op->target); op 1430 fencing/remote.c op->state = st_done; op 1431 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 1436 fencing/remote.c call_remote_stonith(remote_fencing_op_t * op, st_query_result_t * peer) op 1439 fencing/remote.c int timeout = op->base_timeout; op 1441 fencing/remote.c crm_trace("State for %s.%.8s: %s %d", op->target, op->client_name, op->id, op->state); op 1442 fencing/remote.c if (peer == NULL && !is_set(op->call_options, st_opt_topology)) { op 1443 fencing/remote.c peer = stonith_choose_peer(op); op 1446 fencing/remote.c if (!op->op_timer_total) { op 1447 fencing/remote.c int total_timeout = get_op_total_timeout(op, peer); op 1449 fencing/remote.c op->total_timeout = TIMEOUT_MULTIPLY_FACTOR * total_timeout; op 1450 fencing/remote.c op->op_timer_total = g_timeout_add(1000 * op->total_timeout, remote_op_timeout, op); op 1451 fencing/remote.c report_timeout_period(op, op->total_timeout); op 1454 fencing/remote.c total_timeout, op->target, op->client_name, op->id); op 1457 fencing/remote.c if (is_set(op->call_options, st_opt_topology) && op->devices) { op 1461 fencing/remote.c peer = stonith_choose_peer(op); op 1463 fencing/remote.c device = op->devices->data; op 1464 fencing/remote.c timeout = get_device_timeout(op, peer, device); op 1469 fencing/remote.c xmlNode *remote_op = stonith_create_op(op->client_callid, op->id, STONITH_OP_FENCE, NULL, 0); op 1471 fencing/remote.c crm_xml_add(remote_op, F_STONITH_REMOTE_OP_ID, op->id); op 1472 fencing/remote.c crm_xml_add(remote_op, F_STONITH_TARGET, op->target); op 1473 fencing/remote.c crm_xml_add(remote_op, F_STONITH_ACTION, op->action); op 1474 fencing/remote.c crm_xml_add(remote_op, F_STONITH_ORIGIN, op->originator); op 1475 fencing/remote.c crm_xml_add(remote_op, F_STONITH_CLIENTID, op->client_id); op 1476 fencing/remote.c crm_xml_add(remote_op, F_STONITH_CLIENTNAME, op->client_name); op 1478 fencing/remote.c crm_xml_add_int(remote_op, F_STONITH_CALLOPTS, op->call_options); op 1482 fencing/remote.c get_device_timeout(op, peer, device); op 1484 fencing/remote.c op->target, op->action, device, op->client_name, timeout_one); op 1489 fencing/remote.c timeout_one = TIMEOUT_MULTIPLY_FACTOR * get_peer_timeout(op, peer); op 1491 fencing/remote.c peer->host, op->target, op->action, op->client_name, timeout_one, stonith_watchdog_timeout_ms); op 1496 fencing/remote.c op->state = st_exec; op 1497 fencing/remote.c if (op->op_timer_one) { op 1498 fencing/remote.c g_source_remove(op->op_timer_one); op 1503 fencing/remote.c stonith_watchdog_timeout_ms/1000, op->target, op 1504 fencing/remote.c op->action, op->client_name, op->id, device); op 1505 fencing/remote.c op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); op 1509 fencing/remote.c && safe_str_eq(peer->host, op->target) op 1510 fencing/remote.c && safe_str_neq(op->action, "on")) { op 1512 fencing/remote.c stonith_watchdog_timeout_ms/1000, op->target, op 1513 fencing/remote.c op->action, op->client_name, op->id, device); op 1514 fencing/remote.c op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); op 1517 fencing/remote.c op->op_timer_one = g_timeout_add((1000 * timeout_one), remote_op_timeout_one, op); op 1526 fencing/remote.c } else if (op->phase == st_phase_on) { op 1531 fencing/remote.c device, op->target); op 1532 fencing/remote.c advance_op_topology(op, device, NULL, pcmk_ok); op 1535 fencing/remote.c } else if (op->owner == FALSE) { op 1537 fencing/remote.c op->action, op->target, op->client_name); op 1539 fencing/remote.c } else if (op->query_timer == 0) { op 1542 fencing/remote.c op->target, op->action, op->client_name, op->state); op 1543 fencing/remote.c CRM_LOG_ASSERT(op->state < st_done); op 1544 fencing/remote.c remote_op_timeout(op); op 1546 fencing/remote.c } else if(op->replies >= op->replies_expected || op->replies >= fencing_active_peers()) { op 1555 fencing/remote.c stonith_watchdog_timeout_ms/1000, op->target, op 1556 fencing/remote.c op->action, op->client_name, op->id, device); op 1558 fencing/remote.c op->op_timer_one = g_timeout_add(stonith_watchdog_timeout_ms, remote_op_watchdog_done, op); op 1562 fencing/remote.c if (op->state == st_query) { op 1564 fencing/remote.c op->replies, op->action, op->target, op->client_name, op 1565 fencing/remote.c op->state); op 1570 fencing/remote.c op->replies, op->action, op->target, op->client_name, op 1571 fencing/remote.c op->state); op 1574 fencing/remote.c op->state = st_failed; op 1575 fencing/remote.c remote_op_done(op, NULL, rc, FALSE); op 1579 fencing/remote.c op->action, op->target, device, op->client_name, op->id); op 1582 fencing/remote.c op->action, op->target, op->client_name, op->id); op 1611 fencing/remote.c all_topology_devices_found(remote_fencing_op_t * op) op 1620 fencing/remote.c tp = find_topology_for_host(op->target); op 1624 fencing/remote.c if (safe_str_eq(op->action, "off") || safe_str_eq(op->action, "reboot")) { op 1633 fencing/remote.c for (iter = op->query_results; iter && !match; iter = iter->next) { op 1636 fencing/remote.c if (skip_target && safe_str_eq(peer->host, op->target)) { op 1639 fencing/remote.c match = find_peer_device(op, peer, device->data); op 1663 fencing/remote.c const char *action, remote_fencing_op_t *op, op 1696 fencing/remote.c add_required_device(op, device); op 1720 fencing/remote.c add_device_properties(xmlNode *xml, remote_fencing_op_t *op, op 1740 fencing/remote.c parse_action_specific(xml, result->host, device, op_requested_action(op), op 1741 fencing/remote.c op, st_phase_requested, props); op 1749 fencing/remote.c op, st_phase_off, props); op 1752 fencing/remote.c op, st_phase_on, props); op 1769 fencing/remote.c add_result(remote_fencing_op_t *op, const char *host, int ndevices, xmlNode *xml) op 1783 fencing/remote.c add_device_properties(child, op, result, device); op 1792 fencing/remote.c op->query_results = g_list_insert_sorted(op->query_results, result, sort_peers); op 1818 fencing/remote.c remote_fencing_op_t *op = NULL; op 1832 fencing/remote.c op = g_hash_table_lookup(remote_op_list, id); op 1833 fencing/remote.c if (op == NULL) { op 1839 fencing/remote.c replies_expected = QB_MIN(op->replies_expected, fencing_active_peers()); op 1840 fencing/remote.c if ((++op->replies >= replies_expected) && (op->state == st_query)) { op 1844 fencing/remote.c host_is_target = safe_str_eq(host, op->target); op 1847 fencing/remote.c op->replies, replies_expected, host, op 1848 fencing/remote.c op->target, op->action, ndevices, id); op 1850 fencing/remote.c result = add_result(op, host, ndevices, dev); op 1853 fencing/remote.c if (is_set(op->call_options, st_opt_topology)) { op 1857 fencing/remote.c if (op->state == st_query && all_topology_devices_found(op)) { op 1860 fencing/remote.c call_remote_stonith(op, result); op 1864 fencing/remote.c replies_expected, op->replies); op 1865 fencing/remote.c call_remote_stonith(op, NULL); op 1868 fencing/remote.c } else if (op->state == st_query) { op 1869 fencing/remote.c int nverified = count_peer_devices(op, result, TRUE); op 1876 fencing/remote.c call_remote_stonith(op, result); op 1880 fencing/remote.c replies_expected, op->replies); op 1881 fencing/remote.c call_remote_stonith(op, NULL); op 1887 fencing/remote.c } else if (result && (op->state == st_done)) { op 1889 fencing/remote.c result->host, result->ndevices, op->state); op 1912 fencing/remote.c remote_fencing_op_t *op = NULL; op 1928 fencing/remote.c op = g_hash_table_lookup(remote_op_list, id); op 1931 fencing/remote.c if (op == NULL && rc == pcmk_ok) { op 1935 fencing/remote.c op = create_remote_stonith_op(client_id, dev, TRUE); op 1938 fencing/remote.c if (op == NULL) { op 1945 fencing/remote.c if (op->devices && device && safe_str_neq(op->devices->data, device)) { op 1948 fencing/remote.c device, op->devices->data, op->action, op->target); op 1954 fencing/remote.c op->action, op->target, op->client_name, op->id, op->originator, op 1957 fencing/remote.c op->state = st_done; op 1959 fencing/remote.c op->state = st_failed; op 1961 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 1963 fencing/remote.c } else if (safe_str_neq(op->originator, stonith_our_uname)) { op 1968 fencing/remote.c stonith_our_uname, device, op->target); op 1972 fencing/remote.c if (is_set(op->call_options, st_opt_topology)) { op 1976 fencing/remote.c device, op->target, op->action, op->client_name, op->originator, op 1981 fencing/remote.c if (op->state == st_done) { op 1982 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 1986 fencing/remote.c if ((op->phase == 2) && (rc != pcmk_ok)) { op 1991 fencing/remote.c device, rc, op->target); op 1998 fencing/remote.c advance_op_topology(op, device, msg, rc); op 2003 fencing/remote.c if (stonith_topology_next(op) != pcmk_ok) { op 2004 fencing/remote.c op->state = st_failed; op 2005 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 2009 fencing/remote.c } else if (rc == pcmk_ok && op->devices == NULL) { op 2010 fencing/remote.c crm_trace("All done for %s", op->target); op 2012 fencing/remote.c op->state = st_done; op 2013 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 2015 fencing/remote.c } else if (rc == -ETIME && op->devices == NULL) { op 2017 fencing/remote.c op->state = st_failed; op 2018 fencing/remote.c remote_op_done(op, msg, rc, FALSE); op 2025 fencing/remote.c crm_trace("Next for %s on behalf of %s@%s (rc was %d)", op->target, op->originator, op 2026 fencing/remote.c op->client_name, rc); op 2027 fencing/remote.c call_remote_stonith(op, NULL); op 2059 fencing/remote.c remote_fencing_op_t *op = NULL; op 2062 fencing/remote.c while (g_hash_table_iter_next(&iter, NULL, (void **)&op)) { op 2065 fencing/remote.c if (target && strcmp(op->target, target) != 0) { op 2070 fencing/remote.c crm_trace("Attaching op %s", op->id); op 2072 fencing/remote.c crm_xml_add(entry, F_STONITH_TARGET, op->target); op 2073 fencing/remote.c crm_xml_add(entry, F_STONITH_ACTION, op->action); op 2074 fencing/remote.c crm_xml_add(entry, F_STONITH_ORIGIN, op->originator); op 2075 fencing/remote.c crm_xml_add(entry, F_STONITH_DELEGATE, op->delegate); op 2076 fencing/remote.c crm_xml_add(entry, F_STONITH_CLIENTNAME, op->client_name); op 2077 fencing/remote.c crm_xml_add_int(entry, F_STONITH_DATE, op->completed); op 2078 fencing/remote.c crm_xml_add_int(entry, F_STONITH_STATE, op->state); op 124 include/crm/cib/internal.h int cib_perform_op(const char *op, int call_options, cib_op_t * fn, gboolean is_query, op 130 include/crm/cib/internal.h xmlNode *cib_create_op(int call_id, const char *token, const char *op, const char *host, op 148 include/crm/cib/internal.h int cib_process_query(const char *op, int options, const char *section, xmlNode * req, op 152 include/crm/cib/internal.h int cib_process_erase(const char *op, int options, const char *section, xmlNode * req, op 156 include/crm/cib/internal.h int cib_process_bump(const char *op, int options, const char *section, xmlNode * req, op 160 include/crm/cib/internal.h int cib_process_replace(const char *op, int options, const char *section, xmlNode * req, op 164 include/crm/cib/internal.h int cib_process_create(const char *op, int options, const char *section, xmlNode * req, op 168 include/crm/cib/internal.h int cib_process_modify(const char *op, int options, const char *section, xmlNode * req, op 172 include/crm/cib/internal.h int cib_process_delete(const char *op, int options, const char *section, xmlNode * req, op 176 include/crm/cib/internal.h int cib_process_diff(const char *op, int options, const char *section, xmlNode * req, op 180 include/crm/cib/internal.h int cib_process_upgrade(const char *op, int options, const char *section, xmlNode * req, op 203 include/crm/cib/internal.h int cib_process_xpath(const char *op, int options, const char *section, xmlNode * req, op 211 include/crm/cib/internal.h int cib_internal_op(cib_t * cib, const char *op, const char *host, op 109 include/crm/common/internal.h crm_fail_attr_name(const char *prefix, const char *rsc_id, const char *op, op 112 include/crm/common/internal.h CRM_CHECK(prefix && rsc_id && op, return NULL); op 113 include/crm/common/internal.h return crm_strdup_printf("%s-%s#%s_%d", prefix, rsc_id, op, interval); op 117 include/crm/common/internal.h crm_failcount_name(const char *rsc_id, const char *op, int interval) op 119 include/crm/common/internal.h return crm_fail_attr_name(CRM_FAIL_COUNT_PREFIX, rsc_id, op, interval); op 123 include/crm/common/internal.h crm_lastfailure_name(const char *rsc_id, const char *op, int interval) op 125 include/crm/common/internal.h return crm_fail_attr_name(CRM_LAST_FAILURE_PREFIX, rsc_id, op, interval); op 131 include/crm/common/util.h bool crm_op_needs_metadata(const char *rsc_class, const char *op); op 34 include/crm/lrmd_alerts_internal.h const char *node, lrmd_event_data_t *op); op 299 include/crm/pengine/internal.h action_t *pe_fence_op(node_t * node, const char *op, bool optional, const char *reason, pe_working_set_t * data_set); op 296 include/crm/services.h void services_action_cleanup(svc_action_t * op); op 297 include/crm/services.h void services_action_free(svc_action_t * op); op 298 include/crm/services.h int services_action_user(svc_action_t *op, const char *user); op 300 include/crm/services.h gboolean services_action_sync(svc_action_t * op); op 311 include/crm/services.h gboolean services_action_async(svc_action_t * op, void (*action_callback) (svc_action_t *)); op 320 include/crm/services.h void (*cb)(svc_action_t *op)); op 47 lib/cib/cib_file.c int cib_file_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 50 lib/cib/cib_file.c int cib_file_perform_op_delegate(cib_t * cib, const char *op, const char *host, const char *section, op 745 lib/cib/cib_file.c const char *op; op 765 lib/cib/cib_file.c cib_file_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 768 lib/cib/cib_file.c return cib_file_perform_op_delegate(cib, op, host, section, data, output_data, call_options, op 773 lib/cib/cib_file.c cib_file_perform_op_delegate(cib_t * cib, const char *op, const char *host, const char *section, op 790 lib/cib/cib_file.c crm_info("%s on %s", op, section); op 801 lib/cib/cib_file.c if (op == NULL) { op 806 lib/cib/cib_file.c if (safe_str_eq(op, cib_file_ops[lpc].op)) { op 818 lib/cib/cib_file.c request = cib_create_op(cib->call_id, "dummy-token", op, host, section, data, call_options, user_name); op 823 lib/cib/cib_file.c crm_trace("Performing %s operation as %s", op, user_name); op 831 lib/cib/cib_file.c rc = cib_perform_op(op, call_options, fn, query, op 42 lib/cib/cib_native.c int cib_native_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 45 lib/cib/cib_native.c int cib_native_perform_op_delegate(cib_t * cib, const char *op, const char *host, op 328 lib/cib/cib_native.c cib_native_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 331 lib/cib/cib_native.c return cib_native_perform_op_delegate(cib, op, host, section, op 336 lib/cib/cib_native.c cib_native_perform_op_delegate(cib_t * cib, const char *op, const char *host, const char *section, op 357 lib/cib/cib_native.c if (op == NULL) { op 378 lib/cib/cib_native.c cib_create_op(cib->call_id, native->token, op, host, section, data, call_options, op 384 lib/cib/cib_native.c crm_trace("Sending %s message to CIB service (timeout=%ds)", op, cib->call_timeout); op 389 lib/cib/cib_native.c crm_err("Couldn't perform %s operation (timeout=%ds): %s (%d)", op, op 461 lib/cib/cib_native.c if (safe_str_neq(op, CIB_OP_QUERY)) { op 38 lib/cib/cib_ops.c cib_process_query(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 44 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event for section=%s", op, crm_str(section)); op 47 lib/cib/cib_ops.c return cib_process_xpath(op, options, section, req, input, op 83 lib/cib/cib_ops.c cib_process_erase(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 88 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event", op); op 100 lib/cib/cib_ops.c cib_process_upgrade(const char *op, int options, const char *section, xmlNode * req, op 112 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event with max=%s", op, max); op 134 lib/cib/cib_ops.c cib_process_bump(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 140 lib/cib/cib_ops.c op, crm_str(crm_element_value(existing_cib, XML_ATTR_GENERATION))); op 176 lib/cib/cib_ops.c cib_process_replace(const char *op, int options, const char *section, xmlNode * req, op 183 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event for section=%s", op, crm_str(section)); op 186 lib/cib/cib_ops.c return cib_process_xpath(op, options, section, req, input, op 288 lib/cib/cib_ops.c cib_process_delete(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 293 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event", op); op 296 lib/cib/cib_ops.c return cib_process_xpath(op, options, section, req, input, op 322 lib/cib/cib_ops.c cib_process_modify(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 327 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event", op); op 330 lib/cib/cib_ops.c return cib_process_xpath(op, options, section, req, input, op 526 lib/cib/cib_ops.c cib_process_create(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 533 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event for section=%s", op, crm_str(section)); op 544 lib/cib/cib_ops.c CRM_CHECK(strcasecmp(CIB_OP_CREATE, op) == 0, return -EINVAL); op 552 lib/cib/cib_ops.c return cib_process_modify(op, options, section, req, input, existing_cib, result_cib, op 564 lib/cib/cib_ops.c if (update_results(failed, a_child, op, result)) { op 571 lib/cib/cib_ops.c update_results(failed, input, op, result); op 590 lib/cib/cib_ops.c cib_process_diff(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 600 lib/cib/cib_ops.c op, originator, is_set(options, cib_force_diff)?"(global update)":""); op 680 lib/cib/cib_ops.c cib_process_xpath(const char *op, int options, const char *section, xmlNode * req, xmlNode * input, op 686 lib/cib/cib_ops.c gboolean is_query = safe_str_eq(op, CIB_OP_QUERY); op 690 lib/cib/cib_ops.c crm_trace("Processing \"%s\" event", op); op 700 lib/cib/cib_ops.c if (max < 1 && safe_str_eq(op, CIB_OP_DELETE)) { op 704 lib/cib/cib_ops.c crm_debug("%s: %s does not exist", op, section); op 713 lib/cib/cib_ops.c if (safe_str_eq(op, CIB_OP_DELETE) && (options & cib_multiple)) { op 726 lib/cib/cib_ops.c crm_debug("Processing %s op for %s with %s", op, section, path); op 729 lib/cib/cib_ops.c if (safe_str_eq(op, CIB_OP_DELETE)) { op 732 lib/cib/cib_ops.c crm_warn("Cannot perform %s for %s: The xpath is addressing the whole /cib", op, section); op 742 lib/cib/cib_ops.c } else if (safe_str_eq(op, CIB_OP_MODIFY)) { op 749 lib/cib/cib_ops.c } else if (safe_str_eq(op, CIB_OP_CREATE)) { op 753 lib/cib/cib_ops.c } else if (safe_str_eq(op, CIB_OP_QUERY)) { op 813 lib/cib/cib_ops.c } else if (safe_str_eq(op, CIB_OP_REPLACE)) { op 82 lib/cib/cib_remote.c int cib_remote_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 485 lib/cib/cib_remote.c cib_remote_perform_op(cib_t * cib, const char *op, const char *host, const char *section, op 506 lib/cib/cib_remote.c if (op == NULL) { op 521 lib/cib/cib_remote.c cib_create_op(cib->call_id, private->callback.token, op, host, section, data, call_options, op 527 lib/cib/cib_remote.c crm_trace("Sending %s message to CIB service", op); op 625 lib/cib/cib_remote.c crm_trace("No output in reply to \"%s\" command %d", op, cib->call_id - 1); op 291 lib/cib/cib_utils.c cib_perform_op(const char *op, int call_options, cib_op_t * fn, gboolean is_query, op 307 lib/cib/cib_utils.c crm_trace("Begin %s%s%s op", is_set(call_options, cib_dryrun)?"dry-run of ":"", is_query ? "read-only " : "", op); op 339 lib/cib/cib_utils.c rc = (*fn) (op, call_options, section, req, input, cib_ro, result_cib, output); op 375 lib/cib/cib_utils.c rc = (*fn) (op, call_options, section, req, input, scratch, &scratch, output); op 380 lib/cib/cib_utils.c rc = (*fn) (op, call_options, section, req, input, current_cib, &scratch, output); op 383 lib/cib/cib_utils.c crm_trace("Inferring changes after %s op", op); op 588 lib/cib/cib_utils.c cib_create_op(int call_id, const char *token, const char *op, const char *host, const char *section, op 600 lib/cib/cib_utils.c crm_xml_add(op_msg, F_CIB_OPERATION, op); op 835 lib/cib/cib_utils.c cib_internal_op(cib_t * cib, const char *op, const char *host, op 839 lib/cib/cib_utils.c int (*delegate) (cib_t * cib, const char *op, const char *host, op 850 lib/cib/cib_utils.c return delegate(cib, op, host, section, data, output_data, call_options, user_name); op 312 lib/cluster/election.c const char *op = NULL; op 340 lib/cluster/election.c op = crm_element_value(vote, F_CRM_TASK); op 379 lib/cluster/election.c } else if (crm_str_eq(op, CRM_OP_NOVOTE, TRUE)) { op 380 lib/cluster/election.c char *op_copy = strdup(op); op 404 lib/cluster/election.c char *op_copy = strdup(op); op 476 lib/cluster/election.c election_id, e->count, election_owner, op, from, reason); op 481 lib/cluster/election.c election_id, election_owner, op, from, reason); op 502 lib/cluster/election.c election_id, election_owner, op, from, reason); op 353 lib/common/operations.c append_digest(lrmd_event_data_t * op, xmlNode * update, const char *version, const char *magic, op 363 lib/common/operations.c if (op->params == NULL) { op 368 lib/common/operations.c g_hash_table_foreach(op->params, hash2field, args_xml); op 374 lib/common/operations.c && op->interval == 0 && crm_str_eq(op->op_type, CRMD_ACTION_START, TRUE)) { op 389 lib/common/operations.c rsc_op_expected_rc(lrmd_event_data_t * op) op 393 lib/common/operations.c if (op && op->user_data) { op 397 lib/common/operations.c decode_transition_key(op->user_data, &uuid, &dummy, &dummy, &rc); op 404 lib/common/operations.c did_rsc_op_fail(lrmd_event_data_t * op, int target_rc) op 406 lib/common/operations.c switch (op->op_status) { op 419 lib/common/operations.c if (target_rc != op->rc) { op 457 lib/common/operations.c create_operation_update(xmlNode * parent, lrmd_event_data_t * op, const char * caller_version, op 472 lib/common/operations.c CRM_CHECK(op != NULL, return NULL); op 474 lib/common/operations.c origin, op->rsc_id, op->op_type, services_lrm_status_str(op->op_status), op 475 lib/common/operations.c op->interval); op 479 lib/common/operations.c task = op->op_type; op 484 lib/common/operations.c if (op->op_status == PCMK_LRM_OP_DONE) { op 492 lib/common/operations.c if (op->op_status == PCMK_LRM_OP_DONE) { op 499 lib/common/operations.c && op->op_status == PCMK_LRM_OP_DONE op 504 lib/common/operations.c key = generate_op_key(op->rsc_id, task, op->interval); op 505 lib/common/operations.c if (dc_needs_unique_ops && op->interval > 0) { op 509 lib/common/operations.c const char *n_type = crm_meta_value(op->params, "notify_type"); op 510 lib/common/operations.c const char *n_task = crm_meta_value(op->params, "notify_operation"); op 514 lib/common/operations.c op_id = generate_notify_key(op->rsc_id, n_type, n_task); op 517 lib/common/operations.c op->op_status = PCMK_LRM_OP_DONE; op 518 lib/common/operations.c op->rc = 0; op 520 lib/common/operations.c } else if (did_rsc_op_fail(op, target_rc)) { op 521 lib/common/operations.c op_id = generate_op_key(op->rsc_id, "last_failure", 0); op 522 lib/common/operations.c if (op->interval == 0) { op 524 lib/common/operations.c op_id_additional = generate_op_key(op->rsc_id, "last", 0); op 526 lib/common/operations.c exit_reason = op->exit_reason; op 528 lib/common/operations.c } else if (op->interval > 0) { op 532 lib/common/operations.c op_id = generate_op_key(op->rsc_id, "last", 0); op 541 lib/common/operations.c if (op->user_data == NULL) { op 544 lib/common/operations.c op->rsc_id, op->op_type, op->interval, op->call_id, origin); op 545 lib/common/operations.c local_user_data = generate_transition_key(-1, op->call_id, target_rc, FAKE_TE_ID); op 546 lib/common/operations.c op->user_data = local_user_data; op 550 lib/common/operations.c magic = generate_transition_magic(op->user_data, op->op_status, op->rc); op 558 lib/common/operations.c crm_xml_add(xml_op, XML_ATTR_TRANSITION_KEY, op->user_data); op 563 lib/common/operations.c crm_xml_add_int(xml_op, XML_LRM_ATTR_CALLID, op->call_id); op 564 lib/common/operations.c crm_xml_add_int(xml_op, XML_LRM_ATTR_RC, op->rc); op 565 lib/common/operations.c crm_xml_add_int(xml_op, XML_LRM_ATTR_OPSTATUS, op->op_status); op 566 lib/common/operations.c crm_xml_add_int(xml_op, XML_LRM_ATTR_INTERVAL, op->interval); op 569 lib/common/operations.c if (op->t_run || op->t_rcchange || op->exec_time || op->queue_time) { op 571 lib/common/operations.c op->rsc_id, op->op_type, op->interval, op 572 lib/common/operations.c op->t_run, op->t_rcchange, op->exec_time, op->queue_time); op 574 lib/common/operations.c if (op->interval == 0) { op 576 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_LAST_RUN, op->t_run); op 577 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_LAST_CHANGE, op->t_run); op 579 lib/common/operations.c } else if(op->t_rcchange) { op 581 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_LAST_CHANGE, op->t_rcchange); op 585 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_LAST_CHANGE, op->t_run); op 588 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_T_EXEC, op->exec_time); op 589 lib/common/operations.c crm_xml_add_int(xml_op, XML_RSC_OP_T_QUEUE, op->queue_time); op 593 lib/common/operations.c if (crm_str_eq(op->op_type, CRMD_ACTION_MIGRATE, TRUE) op 594 lib/common/operations.c || crm_str_eq(op->op_type, CRMD_ACTION_MIGRATED, TRUE)) { op 600 lib/common/operations.c crm_xml_add(xml_op, name, crm_meta_value(op->params, name)); op 603 lib/common/operations.c crm_xml_add(xml_op, name, crm_meta_value(op->params, name)); op 606 lib/common/operations.c append_digest(op, xml_op, caller_version, magic, LOG_DEBUG); op 617 lib/common/operations.c op->user_data = NULL; op 635 lib/common/operations.c crm_op_needs_metadata(const char *rsc_class, const char *op) op 642 lib/common/operations.c CRM_CHECK(rsc_class || op, return FALSE); op 653 lib/common/operations.c if (op op 654 lib/common/operations.c && strcmp(op, CRMD_ACTION_START) op 655 lib/common/operations.c && strcmp(op, CRMD_ACTION_STATUS) op 656 lib/common/operations.c && strcmp(op, CRMD_ACTION_PROMOTE) op 657 lib/common/operations.c && strcmp(op, CRMD_ACTION_DEMOTE) op 658 lib/common/operations.c && strcmp(op, CRMD_ACTION_RELOAD) op 659 lib/common/operations.c && strcmp(op, CRMD_ACTION_MIGRATE) op 660 lib/common/operations.c && strcmp(op, CRMD_ACTION_MIGRATED) op 661 lib/common/operations.c && strcmp(op, CRMD_ACTION_NOTIFY)) { op 1439 lib/common/xml.c const char *op = crm_element_value(change, XML_DIFF_OP); op 1442 lib/common/xml.c if(op == NULL) { op 1443 lib/common/xml.c } else if(strcmp(op, "create") == 0) { op 1459 lib/common/xml.c } else if(strcmp(op, "move") == 0) { op 1462 lib/common/xml.c } else if(strcmp(op, "modify") == 0) { op 1474 lib/common/xml.c op = crm_element_value(child, XML_DIFF_OP); op 1475 lib/common/xml.c if(op == NULL) { op 1476 lib/common/xml.c } else if(strcmp(op, "set") == 0) { op 1484 lib/common/xml.c } else if(strcmp(op, "unset") == 0) { op 1498 lib/common/xml.c } else if(strcmp(op, "delete") == 0) { op 2028 lib/common/xml.c const char *op = crm_element_value(change, XML_DIFF_OP); op 2032 lib/common/xml.c crm_trace("Processing %s %s", change->name, op); op 2033 lib/common/xml.c if(op == NULL) { op 2037 lib/common/xml.c if(strcmp(op, "delete") == 0) { op 2045 lib/common/xml.c crm_trace("Performing %s on %s with %p", op, xpath, match); op 2047 lib/common/xml.c if(match == NULL && strcmp(op, "delete") == 0) { op 2048 lib/common/xml.c crm_debug("No %s match for %s in %p", op, xpath, xml->doc); op 2052 lib/common/xml.c crm_err("No %s match for %s in %p", op, xpath, xml->doc); op 2056 lib/common/xml.c } else if(strcmp(op, "create") == 0) { op 2084 lib/common/xml.c } else if(strcmp(op, "move") == 0) { op 2125 lib/common/xml.c } else if(strcmp(op, "delete") == 0) { op 2128 lib/common/xml.c } else if(strcmp(op, "modify") == 0) { op 2151 lib/common/xml.c crm_err("Unknown operation: %s", op); op 151 lib/fencing/st_client.c xmlNode *stonith_create_op(int call_id, const char *token, const char *op, xmlNode * data, op 153 lib/fencing/st_client.c int stonith_send_command(stonith_t * stonith, const char *op, xmlNode * data, op 1557 lib/fencing/st_client.c xmlNode *op = NULL; op 1560 lib/fencing/st_client.c for (op = __xml_first_child(reply); op != NULL; op = __xml_next(op)) { op 1564 lib/fencing/st_client.c kvp->target = crm_element_value_copy(op, F_STONITH_TARGET); op 1565 lib/fencing/st_client.c kvp->action = crm_element_value_copy(op, F_STONITH_ACTION); op 1566 lib/fencing/st_client.c kvp->origin = crm_element_value_copy(op, F_STONITH_ORIGIN); op 1567 lib/fencing/st_client.c kvp->delegate = crm_element_value_copy(op, F_STONITH_DELEGATE); op 1568 lib/fencing/st_client.c kvp->client = crm_element_value_copy(op, F_STONITH_CLIENTNAME); op 1569 lib/fencing/st_client.c crm_element_value_int(op, F_STONITH_DATE, &kvp->completed); op 1570 lib/fencing/st_client.c crm_element_value_int(op, F_STONITH_STATE, &kvp->state); op 1670 lib/fencing/st_client.c stonith_create_op(int call_id, const char *token, const char *op, xmlNode * data, int call_options) op 1681 lib/fencing/st_client.c crm_xml_add(op_msg, F_STONITH_OPERATION, op); op 2230 lib/fencing/st_client.c stonith_send_command(stonith_t * stonith, const char *op, xmlNode * data, xmlNode ** output_data, op 2250 lib/fencing/st_client.c if (op == NULL) { op 2270 lib/fencing/st_client.c op_msg = stonith_create_op(stonith->call_id, native->token, op, data, call_options); op 2276 lib/fencing/st_client.c crm_trace("Sending %s message to STONITH service, Timeout: %ds", op, timeout); op 2282 lib/fencing/st_client.c crm_perror(LOG_ERR, "Couldn't perform %s operation (timeout=%ds): %d", op, timeout, rc); op 328 lib/lrmd/lrmd_alerts.c const char *node, lrmd_event_data_t *op) op 338 lib/lrmd/lrmd_alerts.c target_rc = rsc_op_expected_rc(op); op 339 lib/lrmd/lrmd_alerts.c if ((op->interval == 0) && (target_rc == op->rc) op 340 lib/lrmd/lrmd_alerts.c && safe_str_eq(op->op_type, RSC_STATUS)) { op 351 lib/lrmd/lrmd_alerts.c params = alert_key2param(params, CRM_alert_rsc, op->rsc_id); op 352 lib/lrmd/lrmd_alerts.c params = alert_key2param(params, CRM_alert_task, op->op_type); op 353 lib/lrmd/lrmd_alerts.c params = alert_key2param_int(params, CRM_alert_interval, op->interval); op 355 lib/lrmd/lrmd_alerts.c params = alert_key2param_int(params, CRM_alert_status, op->op_status); op 356 lib/lrmd/lrmd_alerts.c params = alert_key2param_int(params, CRM_alert_rc, op->rc); op 358 lib/lrmd/lrmd_alerts.c if (op->op_status == PCMK_LRM_OP_DONE) { op 359 lib/lrmd/lrmd_alerts.c params = alert_key2param(params, CRM_alert_desc, services_ocf_exitcode_str(op->rc)); op 361 lib/lrmd/lrmd_alerts.c params = alert_key2param(params, CRM_alert_desc, services_lrm_status_str(op->op_status)); op 463 lib/lrmd/lrmd_client.c lrmd_create_op(const char *token, const char *op, xmlNode *data, int timeout, op 474 lib/lrmd/lrmd_client.c crm_xml_add(op_msg, F_LRMD_OPERATION, op); op 483 lib/lrmd/lrmd_client.c op, (long)options, options); op 792 lib/lrmd/lrmd_client.c lrmd_send_command(lrmd_t *lrmd, const char *op, xmlNode *data, op 805 lib/lrmd/lrmd_client.c if (op == NULL) { op 812 lib/lrmd/lrmd_client.c crm_trace("sending %s op to lrmd", op); op 814 lib/lrmd/lrmd_client.c op_msg = lrmd_create_op(native->token, op, data, timeout, options); op 828 lib/lrmd/lrmd_client.c crm_perror(LOG_ERR, "Couldn't perform %s operation (timeout=%d): %d", op, timeout, rc); op 838 lib/lrmd/lrmd_client.c crm_trace("%s op reply received", op); op 217 lib/lrmd/proxy_common.c const char *op = crm_element_value(msg, F_LRMD_IPC_OP); op 226 lib/lrmd/proxy_common.c CRM_CHECK(op != NULL, return); op 232 lib/lrmd/proxy_common.c if (safe_str_eq(op, LRMD_IPC_OP_DESTROY)) { op 235 lib/lrmd/proxy_common.c } else if (safe_str_eq(op, LRMD_IPC_OP_REQUEST)) { op 280 lib/lrmd/proxy_common.c op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name, pcmk_strerror(rc), rc); op 291 lib/lrmd/proxy_common.c op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name); op 301 lib/lrmd/proxy_common.c op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name); op 306 lib/lrmd/proxy_common.c op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name, pcmk_strerror(rc), rc); op 309 lib/lrmd/proxy_common.c op, msg_id, proxy->node_name, crm_ipc_name(proxy->ipc), name); op 318 lib/lrmd/proxy_common.c crm_err("Unknown proxy operation: %s", op); op 224 lib/pengine/complex.c template_op_key(xmlNode * op) op 226 lib/pengine/complex.c const char *name = crm_element_value(op, "name"); op 227 lib/pengine/complex.c const char *role = crm_element_value(op, "role"); op 308 lib/pengine/complex.c xmlNode *op = NULL; op 312 lib/pengine/complex.c for (op = __xml_first_child(rsc_ops); op != NULL; op = __xml_next_element(op)) { op 313 lib/pengine/complex.c char *key = template_op_key(op); op 315 lib/pengine/complex.c g_hash_table_insert(rsc_ops_hash, key, op); op 318 lib/pengine/complex.c for (op = __xml_first_child(template_ops); op != NULL; op = __xml_next_element(op)) { op 319 lib/pengine/complex.c char *key = template_op_key(op); op 322 lib/pengine/complex.c add_node_copy(rsc_ops, op); op 228 lib/pengine/rules.c const char *op = NULL; op 236 lib/pengine/rules.c op = crm_element_value(expr, XML_EXPR_ATTR_OPERATION); op 238 lib/pengine/rules.c if (safe_str_eq(op, "defined")) { op 243 lib/pengine/rules.c } else if (safe_str_eq(op, "not_defined")) { op 248 lib/pengine/rules.c } else if (safe_str_eq(op, "eq")) { op 253 lib/pengine/rules.c } else if (safe_str_eq(op, "ne")) { op 280 lib/pengine/rules.c const char *op = NULL; op 287 lib/pengine/rules.c op = crm_element_value(expr, XML_EXPR_ATTR_OPERATION); op 292 lib/pengine/rules.c if (attr == NULL || op == NULL) { op 294 lib/pengine/rules.c " (\'%s\' \'%s\' \'%s\')", crm_str(attr), crm_str(op), crm_str(value)); op 337 lib/pengine/rules.c if (safe_str_eq(op, "lt") op 338 lib/pengine/rules.c || safe_str_eq(op, "lte") op 339 lib/pengine/rules.c || safe_str_eq(op, "gt") op 340 lib/pengine/rules.c || safe_str_eq(op, "gte")) { op 346 lib/pengine/rules.c crm_trace("Defaulting to %s based comparison for '%s' op", type, op); op 377 lib/pengine/rules.c if (safe_str_eq(op, "defined")) { op 382 lib/pengine/rules.c } else if (safe_str_eq(op, "not_defined")) { op 387 lib/pengine/rules.c } else if (safe_str_eq(op, "eq")) { op 392 lib/pengine/rules.c } else if (safe_str_eq(op, "ne")) { op 403 lib/pengine/rules.c } else if (safe_str_eq(op, "lt")) { op 408 lib/pengine/rules.c } else if (safe_str_eq(op, "lte")) { op 413 lib/pengine/rules.c } else if (safe_str_eq(op, "gt")) { op 418 lib/pengine/rules.c } else if (safe_str_eq(op, "gte")) { op 618 lib/pengine/rules.c const char *op = crm_element_value(time_expr, "operation"); op 642 lib/pengine/rules.c if (op == NULL) { op 643 lib/pengine/rules.c op = "in_range"; op 646 lib/pengine/rules.c if (safe_str_eq(op, "date_spec") || safe_str_eq(op, "in_range")) { op 651 lib/pengine/rules.c } else if (safe_str_eq(op, "in_range")) { op 657 lib/pengine/rules.c } else if (safe_str_eq(op, "gt") && crm_time_compare(start, now) < 0) { op 660 lib/pengine/rules.c } else if (safe_str_eq(op, "lt") && crm_time_compare(end, now) > 0) { op 663 lib/pengine/rules.c } else if (safe_str_eq(op, "eq") && crm_time_compare(start, now) == 0) { op 666 lib/pengine/rules.c } else if (safe_str_eq(op, "neq") && crm_time_compare(start, now) != 0) { op 2377 lib/pengine/unpack.c find_lrm_op(const char *resource, const char *op, const char *node, const char *source, op 2389 lib/pengine/unpack.c if (source && safe_str_eq(op, CRMD_ACTION_MIGRATE)) { op 2392 lib/pengine/unpack.c "/" XML_LRM_TAG_RSC_OP "[@operation='%s' and @migrate_target='%s']", op, op 2394 lib/pengine/unpack.c } else if (source && safe_str_eq(op, CRMD_ACTION_MIGRATED)) { op 2397 lib/pengine/unpack.c "/" XML_LRM_TAG_RSC_OP "[@operation='%s' and @migrate_source='%s']", op, op 2402 lib/pengine/unpack.c "/" XML_LRM_TAG_RSC_OP "[@operation='%s']", op); op 2576 lib/pengine/unpack.c record_failed_op(xmlNode *op, node_t* node, resource_t *rsc, pe_working_set_t * data_set) op 2579 lib/pengine/unpack.c const char *op_key = crm_element_value(op, XML_LRM_ATTR_TASK_KEY); op 2596 lib/pengine/unpack.c crm_xml_add(op, XML_ATTR_UNAME, node->details->uname); op 2597 lib/pengine/unpack.c crm_xml_add(op, XML_LRM_ATTR_RSCID, rsc->id); op 2598 lib/pengine/unpack.c add_node_copy(data_set->failed, op); op 685 lib/pengine/utils.c xmlNode *op = NULL; op 710 lib/pengine/utils.c op = operation; op 715 lib/pengine/utils.c return op; op 1177 lib/pengine/utils.c xmlNode *op = NULL; op 1194 lib/pengine/utils.c op = operation; op 1201 lib/pengine/utils.c op = operation; op 1206 lib/pengine/utils.c if (op != NULL) { op 1208 lib/pengine/utils.c return op; op 1780 lib/pengine/utils.c action_t *op = NULL; op 1783 lib/pengine/utils.c op = g_hash_table_lookup(data_set->singletons, name); op 1785 lib/pengine/utils.c if (op == NULL) { op 1786 lib/pengine/utils.c op = custom_action(NULL, strdup(name), name, NULL, TRUE, TRUE, data_set); op 1787 lib/pengine/utils.c set_bit(op->flags, pe_action_pseudo); op 1788 lib/pengine/utils.c set_bit(op->flags, pe_action_runnable); op 1791 lib/pengine/utils.c return op; op 2139 lib/pengine/utils.c pe_fence_op(node_t * node, const char *op, bool optional, const char *reason, pe_working_set_t * data_set) op 2144 lib/pengine/utils.c if(op == NULL) { op 2145 lib/pengine/utils.c op = data_set->stonith_action; op 2148 lib/pengine/utils.c op_key = crm_strdup_printf("%s-%s-%s", CRM_OP_FENCE, node->details->uname, op); op 2159 lib/pengine/utils.c add_hash_param(stonith_op->meta, "stonith_action", op); op 122 lib/services/services.c inflight_systemd_or_upstart(svc_action_t *op) op 124 lib/services/services.c return (safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_SYSTEMD) op 125 lib/services/services.c || safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_UPSTART)) op 126 lib/services/services.c && (g_list_find(inflight_ops, op) != NULL); op 169 lib/services/services.c svc_action_t *op = NULL; op 205 lib/services/services.c op = calloc(1, sizeof(svc_action_t)); op 206 lib/services/services.c op->opaque = calloc(1, sizeof(svc_action_private_t)); op 207 lib/services/services.c op->rsc = strdup(name); op 208 lib/services/services.c op->interval = interval; op 209 lib/services/services.c op->timeout = timeout; op 210 lib/services/services.c op->standard = expand_resource_class(name, standard, agent); op 211 lib/services/services.c op->agent = strdup(agent); op 212 lib/services/services.c op->sequence = ++operations; op 213 lib/services/services.c op->flags = flags; op 214 lib/services/services.c op->id = generate_op_key(name, action, interval); op 218 lib/services/services.c safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_HB) || op 220 lib/services/services.c safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_LSB))) { op 223 lib/services/services.c op->action = strdup(action); op 225 lib/services/services.c if (crm_provider_required(op->standard)) { op 226 lib/services/services.c op->provider = strdup(provider); op 227 lib/services/services.c op->params = params; op 230 lib/services/services.c if (asprintf(&op->opaque->exec, "%s/resource.d/%s/%s", OCF_ROOT_DIR, provider, agent) == -1) { op 234 lib/services/services.c op->opaque->args[0] = strdup(op->opaque->exec); op 235 lib/services/services.c op->opaque->args[1] = strdup(action); op 237 lib/services/services.c } else if (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_LSB) == 0) { op 238 lib/services/services.c if (op->agent[0] == '/') { op 241 lib/services/services.c op->opaque->exec = strdup(op->agent); op 242 lib/services/services.c } else if (asprintf(&op->opaque->exec, "%s/%s", LSB_ROOT_DIR, op->agent) == -1) { op 246 lib/services/services.c op->opaque->args[0] = strdup(op->opaque->exec); op 247 lib/services/services.c op->opaque->args[1] = strdup(op->action); op 248 lib/services/services.c op->opaque->args[2] = NULL; op 250 lib/services/services.c } else if (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_HB) == 0) { op 256 lib/services/services.c if (op->agent[0] == '/') { op 259 lib/services/services.c op->opaque->exec = strdup(op->agent); op 260 lib/services/services.c } else if (asprintf(&op->opaque->exec, "%s/%s", HB_RA_DIR, op->agent) == -1) { op 264 lib/services/services.c op->opaque->args[0] = strdup(op->opaque->exec); op 278 lib/services/services.c op->opaque->args[param_num++] = strdup(value_tmp); op 284 lib/services/services.c op->opaque->args[param_num++] = strdup(op->action); op 285 lib/services/services.c op->opaque->args[param_num] = NULL; op 288 lib/services/services.c } else if (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_SYSTEMD) == 0) { op 289 lib/services/services.c op->opaque->exec = strdup("systemd-dbus"); op 292 lib/services/services.c } else if (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_UPSTART) == 0) { op 293 lib/services/services.c op->opaque->exec = strdup("upstart-dbus"); op 296 lib/services/services.c } else if (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_NAGIOS) == 0) { op 299 lib/services/services.c if (op->agent[0] == '/') { op 302 lib/services/services.c op->opaque->exec = strdup(op->agent); op 304 lib/services/services.c } else if (asprintf(&op->opaque->exec, "%s/%s", NAGIOS_PLUGIN_DIR, op->agent) == -1) { op 309 lib/services/services.c op->opaque->args[0] = strdup(op->opaque->exec); op 312 lib/services/services.c if (safe_str_eq(op->action, "monitor") && op->interval == 0) { op 314 lib/services/services.c op->opaque->args[index] = strdup("--version"); op 321 lib/services/services.c static int args_size = sizeof(op->opaque->args) / sizeof(char *); op 339 lib/services/services.c op->opaque->args[index] = long_opt; op 340 lib/services/services.c op->opaque->args[index + 1] = strdup(value); op 344 lib/services/services.c op->opaque->args[index] = NULL; op 347 lib/services/services.c crm_err("Unknown resource standard: %s", op->standard); op 348 lib/services/services.c services_action_free(op); op 349 lib/services/services.c op = NULL; op 355 lib/services/services.c return op; op 361 lib/services/services.c services_action_free(op); op 369 lib/services/services.c svc_action_t *op; op 372 lib/services/services.c op = calloc(1, sizeof(*op)); op 373 lib/services/services.c op->opaque = calloc(1, sizeof(svc_action_private_t)); op 375 lib/services/services.c op->opaque->exec = strdup(exec); op 376 lib/services/services.c op->opaque->args[0] = strdup(exec); op 379 lib/services/services.c op->opaque->args[cur_arg] = strdup(args[cur_arg - 1]); op 381 lib/services/services.c if (cur_arg == DIMOF(op->opaque->args) - 1) { op 387 lib/services/services.c return op; op 435 lib/services/services.c services_action_user(svc_action_t *op, const char *user) op 437 lib/services/services.c CRM_CHECK((op != NULL) && (user != NULL), return -EINVAL); op 438 lib/services/services.c return crm_user_lookup(user, &(op->opaque->uid), &(op->opaque->gid)); op 482 lib/services/services.c services_alert_async(svc_action_t *action, void (*cb)(svc_action_t *op)) op 507 lib/services/services.c services_set_op_pending(svc_action_t *op, DBusPendingCall *pending) op 509 lib/services/services.c if (op->opaque->pending && (op->opaque->pending != pending)) { op 511 lib/services/services.c crm_info("Lost pending %s DBus call (%p)", op->id, op->opaque->pending); op 513 lib/services/services.c crm_trace("Done with pending %s DBus call (%p)", op->id, op->opaque->pending); op 515 lib/services/services.c dbus_pending_call_unref(op->opaque->pending); op 517 lib/services/services.c op->opaque->pending = pending; op 519 lib/services/services.c crm_trace("Updated pending %s DBus call (%p)", op->id, pending); op 521 lib/services/services.c crm_trace("Cleared pending %s DBus call", op->id); op 527 lib/services/services.c services_action_cleanup(svc_action_t * op) op 529 lib/services/services.c if(op->opaque == NULL) { op 534 lib/services/services.c if(op->opaque->timerid != 0) { op 535 lib/services/services.c crm_trace("Removing timer for call %s to %s", op->action, op->rsc); op 536 lib/services/services.c g_source_remove(op->opaque->timerid); op 537 lib/services/services.c op->opaque->timerid = 0; op 540 lib/services/services.c if(op->opaque->pending) { op 541 lib/services/services.c crm_trace("Cleaning up pending dbus call %p %s for %s", op->opaque->pending, op->action, op->rsc); op 542 lib/services/services.c if(dbus_pending_call_get_completed(op->opaque->pending)) { op 543 lib/services/services.c crm_warn("Pending dbus call %s for %s did not complete", op->action, op->rsc); op 545 lib/services/services.c dbus_pending_call_cancel(op->opaque->pending); op 546 lib/services/services.c dbus_pending_call_unref(op->opaque->pending); op 547 lib/services/services.c op->opaque->pending = NULL; op 551 lib/services/services.c if (op->opaque->stderr_gsource) { op 552 lib/services/services.c mainloop_del_fd(op->opaque->stderr_gsource); op 553 lib/services/services.c op->opaque->stderr_gsource = NULL; op 556 lib/services/services.c if (op->opaque->stdout_gsource) { op 557 lib/services/services.c mainloop_del_fd(op->opaque->stdout_gsource); op 558 lib/services/services.c op->opaque->stdout_gsource = NULL; op 563 lib/services/services.c services_action_free(svc_action_t * op) op 567 lib/services/services.c if (op == NULL) { op 575 lib/services/services.c CRM_CHECK(g_list_find(inflight_ops, op) == NULL, return); op 576 lib/services/services.c CRM_CHECK(g_list_find(blocked_ops, op) == NULL, return); op 578 lib/services/services.c || (g_hash_table_lookup(recurring_actions, op->id) == NULL), op 581 lib/services/services.c services_action_cleanup(op); op 583 lib/services/services.c if (op->opaque->repeat_timer) { op 584 lib/services/services.c g_source_remove(op->opaque->repeat_timer); op 585 lib/services/services.c op->opaque->repeat_timer = 0; op 588 lib/services/services.c free(op->id); op 589 lib/services/services.c free(op->opaque->exec); op 591 lib/services/services.c for (i = 0; i < DIMOF(op->opaque->args); i++) { op 592 lib/services/services.c free(op->opaque->args[i]); op 595 lib/services/services.c free(op->opaque); op 596 lib/services/services.c free(op->rsc); op 597 lib/services/services.c free(op->action); op 599 lib/services/services.c free(op->standard); op 600 lib/services/services.c free(op->agent); op 601 lib/services/services.c free(op->provider); op 603 lib/services/services.c free(op->stdout_data); op 604 lib/services/services.c free(op->stderr_data); op 606 lib/services/services.c if (op->params) { op 607 lib/services/services.c g_hash_table_destroy(op->params); op 608 lib/services/services.c op->params = NULL; op 611 lib/services/services.c free(op); op 615 lib/services/services.c cancel_recurring_action(svc_action_t * op) op 617 lib/services/services.c crm_info("Cancelling %s operation %s", op->standard, op->id); op 620 lib/services/services.c g_hash_table_remove(recurring_actions, op->id); op 623 lib/services/services.c if (op->opaque->repeat_timer) { op 624 lib/services/services.c g_source_remove(op->opaque->repeat_timer); op 625 lib/services/services.c op->opaque->repeat_timer = 0; op 645 lib/services/services.c svc_action_t *op = NULL; op 649 lib/services/services.c op = g_hash_table_lookup(recurring_actions, id); op 650 lib/services/services.c if (op == NULL) { op 655 lib/services/services.c op->cancel = TRUE; op 658 lib/services/services.c cancel_recurring_action(op); op 666 lib/services/services.c if (op->pid != 0) { op 668 lib/services/services.c id, op->pid); op 669 lib/services/services.c cancelled = mainloop_child_kill(op->pid); op 671 lib/services/services.c crm_err("Termination of %s (pid %d) failed", id, op->pid); op 681 lib/services/services.c if (inflight_systemd_or_upstart(op)) { op 683 lib/services/services.c op->standard, op->id); op 689 lib/services/services.c op->status = PCMK_LRM_OP_CANCELLED; op 690 lib/services/services.c if (op->opaque->callback) { op 691 lib/services/services.c op->opaque->callback(op); op 694 lib/services/services.c blocked_ops = g_list_remove(blocked_ops, op); op 695 lib/services/services.c services_action_free(op); op 706 lib/services/services.c svc_action_t * op = NULL; op 710 lib/services/services.c op = g_hash_table_lookup(recurring_actions, id); op 713 lib/services/services.c if (op == NULL) { op 718 lib/services/services.c if (op->pid || inflight_systemd_or_upstart(op)) { op 721 lib/services/services.c if (op->opaque->repeat_timer) { op 722 lib/services/services.c g_source_remove(op->opaque->repeat_timer); op 723 lib/services/services.c op->opaque->repeat_timer = 0; op 725 lib/services/services.c recurring_action_timer(op); op 740 lib/services/services.c handle_duplicate_recurring(svc_action_t * op) op 745 lib/services/services.c dup = g_hash_table_lookup(recurring_actions, op->id); op 747 lib/services/services.c if (dup && (dup != op)) { op 749 lib/services/services.c if (op->opaque->callback) { op 750 lib/services/services.c dup->opaque->callback = op->opaque->callback; op 751 lib/services/services.c dup->cb_data = op->cb_data; op 752 lib/services/services.c op->cb_data = NULL; op 756 lib/services/services.c if (op->opaque->repeat_timer) { op 757 lib/services/services.c g_source_remove(op->opaque->repeat_timer); op 758 lib/services/services.c op->opaque->repeat_timer = 0; op 763 lib/services/services.c services_action_free(op); op 771 lib/services/services.c action_exec_helper(svc_action_t * op) op 774 lib/services/services.c if (op->standard op 775 lib/services/services.c && (strcasecmp(op->standard, PCMK_RESOURCE_CLASS_UPSTART) == 0)) { op 777 lib/services/services.c return upstart_job_exec(op); op 779 lib/services/services.c } else if (op->standard && strcasecmp(op->standard, op 782 lib/services/services.c return systemd_unit_exec(op); op 785 lib/services/services.c return services_os_action_execute(op); op 795 lib/services/services.c services_add_inflight_op(svc_action_t * op) op 797 lib/services/services.c if (op == NULL) { op 801 lib/services/services.c CRM_ASSERT(op->synchronous == FALSE); op 804 lib/services/services.c if (op->rsc) { op 805 lib/services/services.c inflight_ops = g_list_append(inflight_ops, op); op 816 lib/services/services.c services_untrack_op(svc_action_t *op) op 819 lib/services/services.c inflight_ops = g_list_remove(inflight_ops, op); op 820 lib/services/services.c blocked_ops = g_list_remove(blocked_ops, op); op 827 lib/services/services.c services_action_async(svc_action_t * op, void (*action_callback) (svc_action_t *)) op 829 lib/services/services.c op->synchronous = false; op 831 lib/services/services.c op->opaque->callback = action_callback; op 834 lib/services/services.c if (op->interval > 0) { op 836 lib/services/services.c if (handle_duplicate_recurring(op) == TRUE) { op 841 lib/services/services.c g_hash_table_replace(recurring_actions, op->id, op); op 844 lib/services/services.c if (op->rsc && is_op_blocked(op->rsc)) { op 845 lib/services/services.c blocked_ops = g_list_append(blocked_ops, op); op 849 lib/services/services.c return action_exec_helper(op); op 859 lib/services/services.c svc_action_t *op = NULL; op 862 lib/services/services.c op = gIter->data; op 863 lib/services/services.c if (safe_str_eq(op->rsc, rsc)) { op 876 lib/services/services.c svc_action_t *op = NULL; op 889 lib/services/services.c op = gIter->data; op 890 lib/services/services.c if (is_op_blocked(op->rsc)) { op 893 lib/services/services.c executed_ops = g_list_append(executed_ops, op); op 894 lib/services/services.c res = action_exec_helper(op); op 896 lib/services/services.c op->status = PCMK_LRM_OP_ERROR; op 899 lib/services/services.c operation_finalize(op); op 904 lib/services/services.c op = gIter->data; op 905 lib/services/services.c blocked_ops = g_list_remove(blocked_ops, op); op 1271 lib/services/services.c action_get_metadata(svc_action_t *op) op 1273 lib/services/services.c const char *class = op->standard; op 1275 lib/services/services.c if (op->agent == NULL) { op 1282 lib/services/services.c op->agent); op 1287 lib/services/services.c class = resources_find_service_class(op->agent); op 1292 lib/services/services.c op->agent); op 1297 lib/services/services.c return (lsb_get_metadata(op->agent, &op->stdout_data) >= 0); op 1302 lib/services/services.c return (nagios_get_metadata(op->agent, &op->stdout_data) >= 0); op 1308 lib/services/services.c return (heartbeat_get_metadata(op->agent, &op->stdout_data) >= 0); op 1312 lib/services/services.c return action_exec_helper(op); op 1316 lib/services/services.c services_action_sync(svc_action_t * op) op 1320 lib/services/services.c if (op == NULL) { op 1325 lib/services/services.c op->synchronous = true; op 1327 lib/services/services.c if (safe_str_eq(op->action, "meta-data")) { op 1335 lib/services/services.c rc = action_get_metadata(op); op 1337 lib/services/services.c rc = action_exec_helper(op); op 1340 lib/services/services.c op->rsc, op->action, op->interval, op->opaque->exec, op->rc); op 1341 lib/services/services.c if (op->stdout_data) { op 1342 lib/services/services.c crm_trace(" > stdout: %s", op->stdout_data); op 1344 lib/services/services.c if (op->stderr_data) { op 1345 lib/services/services.c crm_trace(" > stderr: %s", op->stderr_data); op 39 lib/services/services_linux.c svc_read_output(int fd, svc_action_t * op, bool is_stderr) op 48 lib/services/services_linux.c crm_trace("No fd for %s", op->id); op 52 lib/services/services_linux.c if (is_stderr && op->stderr_data) { op 53 lib/services/services_linux.c len = strlen(op->stderr_data); op 54 lib/services/services_linux.c data = op->stderr_data; op 55 lib/services/services_linux.c crm_trace("Reading %s stderr into offset %d", op->id, len); op 57 lib/services/services_linux.c } else if (is_stderr == FALSE && op->stdout_data) { op 58 lib/services/services_linux.c len = strlen(op->stdout_data); op 59 lib/services/services_linux.c data = op->stdout_data; op 60 lib/services/services_linux.c crm_trace("Reading %s stdout into offset %d", op->id, len); op 63 lib/services/services_linux.c crm_trace("Reading %s %s into offset %d", op->id, is_stderr?"stderr":"stdout", len); op 85 lib/services/services_linux.c op->stderr_data = data; op 87 lib/services/services_linux.c op->stdout_data = data; op 96 lib/services/services_linux.c svc_action_t *op = (svc_action_t *) userdata; op 98 lib/services/services_linux.c return svc_read_output(op->opaque->stdout_fd, op, FALSE); op 104 lib/services/services_linux.c svc_action_t *op = (svc_action_t *) userdata; op 106 lib/services/services_linux.c return svc_read_output(op->opaque->stderr_fd, op, TRUE); op 112 lib/services/services_linux.c svc_action_t *op = (svc_action_t *) user_data; op 114 lib/services/services_linux.c crm_trace("%p", op); op 116 lib/services/services_linux.c op->opaque->stdout_gsource = NULL; op 117 lib/services/services_linux.c if (op->opaque->stdout_fd > STDOUT_FILENO) { op 118 lib/services/services_linux.c close(op->opaque->stdout_fd); op 120 lib/services/services_linux.c op->opaque->stdout_fd = -1; op 126 lib/services/services_linux.c svc_action_t *op = (svc_action_t *) user_data; op 128 lib/services/services_linux.c op->opaque->stderr_gsource = NULL; op 129 lib/services/services_linux.c if (op->opaque->stderr_fd > STDERR_FILENO) { op 130 lib/services/services_linux.c close(op->opaque->stderr_fd); op 132 lib/services/services_linux.c op->opaque->stderr_fd = -1; op 169 lib/services/services_linux.c add_action_env_vars(const svc_action_t *op) op 171 lib/services/services_linux.c if (safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_OCF) == FALSE) { op 175 lib/services/services_linux.c if (op->params) { op 176 lib/services/services_linux.c g_hash_table_foreach(op->params, set_ocf_env_with_prefix, NULL); op 184 lib/services/services_linux.c if (op->rsc) { op 185 lib/services/services_linux.c set_ocf_env("OCF_RESOURCE_INSTANCE", op->rsc, NULL); op 188 lib/services/services_linux.c if (op->agent != NULL) { op 189 lib/services/services_linux.c set_ocf_env("OCF_RESOURCE_TYPE", op->agent, NULL); op 193 lib/services/services_linux.c if (op->provider != NULL) { op 194 lib/services/services_linux.c set_ocf_env("OCF_RESOURCE_PROVIDER", op->provider, NULL); op 201 lib/services/services_linux.c svc_action_t *op = data; op 203 lib/services/services_linux.c crm_debug("Scheduling another invocation of %s", op->id); op 206 lib/services/services_linux.c free(op->stdout_data); op 207 lib/services/services_linux.c op->stdout_data = NULL; op 208 lib/services/services_linux.c free(op->stderr_data); op 209 lib/services/services_linux.c op->stderr_data = NULL; op 210 lib/services/services_linux.c op->opaque->repeat_timer = 0; op 212 lib/services/services_linux.c services_action_async(op, NULL); op 218 lib/services/services_linux.c operation_finalize(svc_action_t * op) op 222 lib/services/services_linux.c if (op->interval) { op 223 lib/services/services_linux.c if (op->cancel) { op 224 lib/services/services_linux.c op->status = PCMK_LRM_OP_CANCELLED; op 225 lib/services/services_linux.c cancel_recurring_action(op); op 228 lib/services/services_linux.c op->opaque->repeat_timer = g_timeout_add(op->interval, op 229 lib/services/services_linux.c recurring_action_timer, (void *)op); op 233 lib/services/services_linux.c if (op->opaque->callback) { op 234 lib/services/services_linux.c op->opaque->callback(op); op 237 lib/services/services_linux.c op->pid = 0; op 239 lib/services/services_linux.c services_untrack_op(op); op 241 lib/services/services_linux.c if (!recurring && op->synchronous == FALSE) { op 246 lib/services/services_linux.c services_action_free(op); op 250 lib/services/services_linux.c services_action_cleanup(op); op 257 lib/services/services_linux.c svc_action_t *op = mainloop_child_userdata(p); op 258 lib/services/services_linux.c char *prefix = crm_strdup_printf("%s:%d", op->id, op->pid); op 261 lib/services/services_linux.c op->status = PCMK_LRM_OP_DONE; op 262 lib/services/services_linux.c CRM_ASSERT(op->pid == pid); op 264 lib/services/services_linux.c crm_trace("%s %p %p", prefix, op->opaque->stderr_gsource, op->opaque->stdout_gsource); op 265 lib/services/services_linux.c if (op->opaque->stderr_gsource) { op 270 lib/services/services_linux.c dispatch_stderr(op); op 271 lib/services/services_linux.c crm_trace("%s: %p", op->id, op->stderr_data); op 272 lib/services/services_linux.c mainloop_del_fd(op->opaque->stderr_gsource); op 273 lib/services/services_linux.c op->opaque->stderr_gsource = NULL; op 276 lib/services/services_linux.c if (op->opaque->stdout_gsource) { op 281 lib/services/services_linux.c dispatch_stdout(op); op 282 lib/services/services_linux.c crm_trace("%s: %p", op->id, op->stdout_data); op 283 lib/services/services_linux.c mainloop_del_fd(op->opaque->stdout_gsource); op 284 lib/services/services_linux.c op->opaque->stdout_gsource = NULL; op 289 lib/services/services_linux.c crm_warn("%s - timed out after %dms", prefix, op->timeout); op 290 lib/services/services_linux.c op->status = PCMK_LRM_OP_TIMEOUT; op 291 lib/services/services_linux.c op->rc = PCMK_OCF_TIMEOUT; op 294 lib/services/services_linux.c do_crm_log_unlikely((op->cancel) ? LOG_INFO : LOG_WARNING, op 296 lib/services/services_linux.c op->status = PCMK_LRM_OP_ERROR; op 297 lib/services/services_linux.c op->rc = PCMK_OCF_SIGNAL; op 301 lib/services/services_linux.c op->rc = exitcode; op 306 lib/services/services_linux.c prefix = crm_strdup_printf("%s:%d:stderr", op->id, op->pid); op 307 lib/services/services_linux.c crm_log_output(LOG_NOTICE, prefix, op->stderr_data); op 310 lib/services/services_linux.c prefix = crm_strdup_printf("%s:%d:stdout", op->id, op->pid); op 311 lib/services/services_linux.c crm_log_output(LOG_DEBUG, prefix, op->stdout_data); op 314 lib/services/services_linux.c operation_finalize(op); op 327 lib/services/services_linux.c services_handle_exec_error(svc_action_t * op, int error) op 332 lib/services/services_linux.c if (safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_LSB) op 333 lib/services/services_linux.c && safe_str_eq(op->action, "status")) { op 340 lib/services/services_linux.c } else if (safe_str_eq(op->standard, PCMK_RESOURCE_CLASS_NAGIOS)) { op 358 lib/services/services_linux.c op->rc = rc_not_installed; op 359 lib/services/services_linux.c op->status = PCMK_LRM_OP_NOT_INSTALLED; op 363 lib/services/services_linux.c op->rc = rc_insufficient_priv; op 364 lib/services/services_linux.c op->status = PCMK_LRM_OP_ERROR; op 367 lib/services/services_linux.c op->rc = rc_exec_error; op 368 lib/services/services_linux.c op->status = PCMK_LRM_OP_ERROR; op 373 lib/services/services_linux.c action_launch_child(svc_action_t *op) op 392 lib/services/services_linux.c crm_perror(LOG_ERR, "Could not reset scheduling policy to SCHED_OTHER for %s", op->id); op 397 lib/services/services_linux.c crm_perror(LOG_ERR, "Could not reset process priority to 0 for %s", op->id); op 412 lib/services/services_linux.c if (replace_secret_params(op->rsc, op->params) < 0) { op 414 lib/services/services_linux.c if (safe_str_eq(op->action,"stop")) { op 416 lib/services/services_linux.c crm_info("proceeding with the stop operation for %s", op->rsc); op 420 lib/services/services_linux.c "considering resource not configured", op->rsc); op 426 lib/services/services_linux.c add_action_env_vars(op); op 429 lib/services/services_linux.c if (op->opaque->uid && (geteuid() == 0)) { op 430 lib/services/services_linux.c if (op->opaque->gid && (setgid(op->opaque->gid) < 0)) { op 431 lib/services/services_linux.c crm_perror(LOG_ERR, "setting group to %d", op->opaque->gid); op 434 lib/services/services_linux.c if (setuid(op->opaque->uid) < 0) { op 435 lib/services/services_linux.c crm_perror(LOG_ERR, "setting user to %d", op->opaque->uid); op 442 lib/services/services_linux.c execvp(op->opaque->exec, op->opaque->args); op 445 lib/services/services_linux.c services_handle_exec_error(op, errno); op 447 lib/services/services_linux.c _exit(op->rc); op 463 lib/services/services_linux.c action_synced_wait(svc_action_t * op, sigset_t *mask) op 466 lib/services/services_linux.c int timeout = op->timeout; op 481 lib/services/services_linux.c fds[0].fd = op->opaque->stdout_fd; op 485 lib/services/services_linux.c fds[1].fd = op->opaque->stderr_fd; op 493 lib/services/services_linux.c crm_trace("Waiting for %d", op->pid); op 500 lib/services/services_linux.c svc_read_output(op->opaque->stdout_fd, op, FALSE); op 504 lib/services/services_linux.c svc_read_output(op->opaque->stderr_fd, op, TRUE); op 523 lib/services/services_linux.c wait_rc = waitpid(op->pid, &status, WNOHANG); op 537 lib/services/services_linux.c crm_perror(LOG_ERR, "waitpid() for %d failed", op->pid); op 553 lib/services/services_linux.c timeout = op->timeout - (time(NULL) - start) * 1000; op 555 lib/services/services_linux.c } while ((op->timeout < 0 || timeout > 0)); op 557 lib/services/services_linux.c crm_trace("Child done: %d", op->pid); op 559 lib/services/services_linux.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 561 lib/services/services_linux.c if (op->timeout > 0 && timeout <= 0) { op 562 lib/services/services_linux.c op->status = PCMK_LRM_OP_TIMEOUT; op 563 lib/services/services_linux.c crm_warn("%s:%d - timed out after %dms", op->id, op->pid, op->timeout); op 566 lib/services/services_linux.c op->status = PCMK_LRM_OP_ERROR; op 571 lib/services/services_linux.c if (wait_rc == 0 && waitpid(op->pid, &status, WNOHANG) == 0) { op 572 lib/services/services_linux.c if (kill(op->pid, SIGKILL)) { op 573 lib/services/services_linux.c crm_err("kill(%d, KILL) failed: %d", op->pid, errno); op 576 lib/services/services_linux.c while (waitpid(op->pid, &status, 0) == (pid_t) -1 && errno == EINTR) /*omit*/; op 580 lib/services/services_linux.c op->status = PCMK_LRM_OP_DONE; op 581 lib/services/services_linux.c op->rc = WEXITSTATUS(status); op 582 lib/services/services_linux.c crm_info("Managed %s process %d exited with rc=%d", op->id, op->pid, op->rc); op 587 lib/services/services_linux.c op->status = PCMK_LRM_OP_ERROR; op 588 lib/services/services_linux.c crm_err("Managed %s process %d exited with signal=%d", op->id, op->pid, signo); op 592 lib/services/services_linux.c crm_err("Managed %s process %d dumped core", op->id, op->pid); op 596 lib/services/services_linux.c svc_read_output(op->opaque->stdout_fd, op, FALSE); op 597 lib/services/services_linux.c svc_read_output(op->opaque->stderr_fd, op, TRUE); op 599 lib/services/services_linux.c close(op->opaque->stdout_fd); op 600 lib/services/services_linux.c close(op->opaque->stderr_fd); op 610 lib/services/services_linux.c services_os_action_execute(svc_action_t * op) op 642 lib/services/services_linux.c if(stat(op->opaque->exec, &st) != 0) { op 644 lib/services/services_linux.c crm_warn("Cannot execute '%s': %s (%d)", op->opaque->exec, pcmk_strerror(rc), rc); op 645 lib/services/services_linux.c services_handle_exec_error(op, rc); op 646 lib/services/services_linux.c if (!op->synchronous) { op 647 lib/services/services_linux.c return operation_finalize(op); op 655 lib/services/services_linux.c crm_err("pipe(stdout_fd) failed. '%s': %s (%d)", op->opaque->exec, pcmk_strerror(rc), rc); op 657 lib/services/services_linux.c services_handle_exec_error(op, rc); op 658 lib/services/services_linux.c if (!op->synchronous) { op 659 lib/services/services_linux.c return operation_finalize(op); op 670 lib/services/services_linux.c crm_err("pipe(stderr_fd) failed. '%s': %s (%d)", op->opaque->exec, pcmk_strerror(rc), rc); op 672 lib/services/services_linux.c services_handle_exec_error(op, rc); op 673 lib/services/services_linux.c if (!op->synchronous) { op 674 lib/services/services_linux.c return operation_finalize(op); op 679 lib/services/services_linux.c if (op->synchronous) { op 717 lib/services/services_linux.c op->pid = fork(); op 718 lib/services/services_linux.c switch (op->pid) { op 727 lib/services/services_linux.c crm_err("Could not execute '%s': %s (%d)", op->opaque->exec, pcmk_strerror(rc), rc); op 728 lib/services/services_linux.c services_handle_exec_error(op, rc); op 729 lib/services/services_linux.c if (!op->synchronous) { op 730 lib/services/services_linux.c return operation_finalize(op); op 752 lib/services/services_linux.c if (op->synchronous) { op 756 lib/services/services_linux.c action_launch_child(op); op 764 lib/services/services_linux.c op->opaque->stdout_fd = stdout_fd[0]; op 765 lib/services/services_linux.c rc = crm_set_nonblocking(op->opaque->stdout_fd); op 772 lib/services/services_linux.c op->opaque->stderr_fd = stderr_fd[0]; op 773 lib/services/services_linux.c rc = crm_set_nonblocking(op->opaque->stderr_fd); op 780 lib/services/services_linux.c if (op->synchronous) { op 781 lib/services/services_linux.c action_synced_wait(op, pmask); op 785 lib/services/services_linux.c crm_trace("Async waiting for %d - %s", op->pid, op->opaque->exec); op 786 lib/services/services_linux.c mainloop_child_add_with_flags(op->pid, op 787 lib/services/services_linux.c op->timeout, op 788 lib/services/services_linux.c op->id, op 789 lib/services/services_linux.c op, op 790 lib/services/services_linux.c (op->flags & SVC_ACTION_LEAVE_GROUP) ? mainloop_leave_pid_group : 0, op 794 lib/services/services_linux.c op->opaque->stdout_gsource = mainloop_add_fd(op->id, op 796 lib/services/services_linux.c op->opaque->stdout_fd, op, &stdout_callbacks); op 798 lib/services/services_linux.c op->opaque->stderr_gsource = mainloop_add_fd(op->id, op 800 lib/services/services_linux.c op->opaque->stderr_fd, op, &stderr_callbacks); op 802 lib/services/services_linux.c services_add_inflight_op(op); op 38 lib/services/services_private.h void (*callback) (svc_action_t * op); op 55 lib/services/services_private.h gboolean services_os_action_execute(svc_action_t * op); op 70 lib/services/services_private.h gboolean cancel_recurring_action(svc_action_t * op); op 76 lib/services/services_private.h gboolean operation_finalize(svc_action_t * op); op 79 lib/services/services_private.h void services_add_inflight_op(svc_action_t *op); op 82 lib/services/services_private.h void services_untrack_op(svc_action_t *op); op 89 lib/services/services_private.h void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending); op 20 lib/services/systemd.c gboolean systemd_unit_exec_with_unit(svc_action_t * op, const char *unit); op 226 lib/services/systemd.c systemd_mask_error(svc_action_t *op, const char *error) op 228 lib/services/systemd.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); op 233 lib/services/systemd.c if (safe_str_eq(op->action, "stop")) { op 234 lib/services/systemd.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); op 235 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 239 lib/services/systemd.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); op 240 lib/services/systemd.c op->rc = PCMK_OCF_NOT_INSTALLED; op 241 lib/services/systemd.c op->status = PCMK_LRM_OP_NOT_INSTALLED; op 250 lib/services/systemd.c systemd_loadunit_result(DBusMessage *reply, svc_action_t * op) op 256 lib/services/systemd.c if(op && !systemd_mask_error(op, error.name)) { op 258 lib/services/systemd.c op->agent, op->id, error.message); op 268 lib/services/systemd.c if(op) { op 270 lib/services/systemd.c systemd_unit_exec_with_unit(op, path); op 272 lib/services/systemd.c } else if (op->synchronous == FALSE) { op 273 lib/services/systemd.c operation_finalize(op); op 285 lib/services/systemd.c svc_action_t * op = user_data; op 291 lib/services/systemd.c crm_trace("Got result: %p for %p / %p for %s", reply, pending, op->opaque->pending, op->id); op 293 lib/services/systemd.c CRM_LOG_ASSERT(pending == op->opaque->pending); op 294 lib/services/systemd.c services_set_op_pending(op, NULL); op 304 lib/services/systemd.c systemd_unit_by_name(const gchar * arg_name, svc_action_t *op) op 330 lib/services/systemd.c if(op == NULL || op->synchronous) { op 335 lib/services/systemd.c (op? op->timeout : DBUS_TIMEOUT_USE_DEFAULT)); op 338 lib/services/systemd.c unit = systemd_loadunit_result(reply, op); op 348 lib/services/systemd.c pending = systemd_send(msg, systemd_loadunit_cb, op, op->timeout); op 350 lib/services/systemd.c services_set_op_pending(op, pending); op 520 lib/services/systemd.c systemd_exec_result(DBusMessage *reply, svc_action_t *op) op 527 lib/services/systemd.c if (!systemd_mask_error(op, error.name)) { op 528 lib/services/systemd.c crm_err("Could not issue %s for %s: %s", op->action, op->rsc, error.message); op 534 lib/services/systemd.c crm_warn("Call to %s passed but return type was unexpected", op->action); op 535 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 543 lib/services/systemd.c crm_info("Call to %s passed: %s", op->action, path); op 544 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 548 lib/services/systemd.c operation_finalize(op); op 555 lib/services/systemd.c svc_action_t *op = user_data; op 561 lib/services/systemd.c crm_trace("Got result: %p for %p for %s, %s", reply, pending, op->rsc, op->action); op 563 lib/services/systemd.c CRM_LOG_ASSERT(pending == op->opaque->pending); op 564 lib/services/systemd.c services_set_op_pending(op, NULL); op 565 lib/services/systemd.c systemd_exec_result(reply, op); op 577 lib/services/systemd.c svc_action_t * op = userdata; op 579 lib/services/systemd.c crm_trace("Resource %s has %s='%s'", op->rsc, name, state); op 582 lib/services/systemd.c op->rc = PCMK_OCF_NOT_RUNNING; op 585 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 587 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 589 lib/services/systemd.c op->rc = PCMK_OCF_PENDING; op 591 lib/services/systemd.c op->rc = PCMK_OCF_PENDING; op 593 lib/services/systemd.c op->rc = PCMK_OCF_NOT_RUNNING; op 596 lib/services/systemd.c if (op->synchronous == FALSE) { op 597 lib/services/systemd.c services_set_op_pending(op, NULL); op 598 lib/services/systemd.c operation_finalize(op); op 603 lib/services/systemd.c systemd_unit_exec_with_unit(svc_action_t * op, const char *unit) op 605 lib/services/systemd.c const char *method = op->action; op 611 lib/services/systemd.c if (safe_str_eq(op->action, "monitor") || safe_str_eq(method, "status")) { op 616 lib/services/systemd.c (op->synchronous? NULL : systemd_unit_check), op 617 lib/services/systemd.c op, (op->synchronous? NULL : &pending), op 618 lib/services/systemd.c op->timeout); op 619 lib/services/systemd.c if (op->synchronous) { op 620 lib/services/systemd.c systemd_unit_check("ActiveState", state, op); op 622 lib/services/systemd.c return op->rc == PCMK_OCF_OK; op 624 lib/services/systemd.c services_set_op_pending(op, pending); op 628 lib/services/systemd.c return operation_finalize(op); op 633 lib/services/systemd.c char *override_dir = crm_strdup_printf("%s/%s.service.d", SYSTEMD_OVERRIDE_ROOT, op->agent); op 634 lib/services/systemd.c char *override_file = crm_strdup_printf("%s/%s.service.d/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, op->agent); op 656 lib/services/systemd.c op->agent); op 673 lib/services/systemd.c systemd_daemon_reload(op->timeout); op 678 lib/services/systemd.c char *override_file = crm_strdup_printf("%s/%s.service.d/50-pacemaker.conf", SYSTEMD_OVERRIDE_ROOT, op->agent); op 683 lib/services/systemd.c systemd_daemon_reload(op->timeout); op 689 lib/services/systemd.c op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; op 693 lib/services/systemd.c crm_debug("Calling %s for %s: %s", method, op->rsc, unit); op 701 lib/services/systemd.c char *name = systemd_service_name(op->agent); op 709 lib/services/systemd.c if (op->synchronous == FALSE) { op 711 lib/services/systemd.c op, op->timeout); op 715 lib/services/systemd.c services_set_op_pending(op, pending); op 719 lib/services/systemd.c return operation_finalize(op); op 723 lib/services/systemd.c reply = systemd_send_recv(msg, NULL, op->timeout); op 725 lib/services/systemd.c systemd_exec_result(reply, op); op 734 lib/services/systemd.c if (op->synchronous == FALSE) { op 735 lib/services/systemd.c return operation_finalize(op); op 738 lib/services/systemd.c return op->rc == PCMK_OCF_OK; op 744 lib/services/systemd.c svc_action_t * op = p; op 746 lib/services/systemd.c op->opaque->timerid = 0; op 747 lib/services/systemd.c crm_warn("%s operation on systemd unit %s named '%s' timed out", op->action, op->agent, op->rsc); op 748 lib/services/systemd.c operation_finalize(op); op 756 lib/services/systemd.c systemd_unit_exec(svc_action_t * op) op 760 lib/services/systemd.c CRM_ASSERT(op); op 762 lib/services/systemd.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 764 lib/services/systemd.c op->synchronous ? "" : "a", op->action, op->agent, op->rsc); op 766 lib/services/systemd.c if (safe_str_eq(op->action, "meta-data")) { op 768 lib/services/systemd.c op->stdout_data = systemd_unit_metadata(op->agent, op->timeout); op 769 lib/services/systemd.c op->rc = PCMK_OCF_OK; op 771 lib/services/systemd.c if (op->synchronous == FALSE) { op 772 lib/services/systemd.c return operation_finalize(op); op 777 lib/services/systemd.c unit = systemd_unit_by_name(op->agent, op); op 780 lib/services/systemd.c if (op->synchronous == FALSE) { op 781 lib/services/systemd.c if (op->opaque->pending) { op 782 lib/services/systemd.c op->opaque->timerid = g_timeout_add(op->timeout + 5000, systemd_timeout_callback, op); op 783 lib/services/systemd.c services_add_inflight_op(op); op 787 lib/services/systemd.c return operation_finalize(op); op 791 lib/services/systemd.c return op->rc == PCMK_OCF_OK; op 26 lib/services/systemd.h G_GNUC_INTERNAL gboolean systemd_unit_exec(svc_action_t * op); op 298 lib/services/upstart.c svc_action_t * op = userdata; op 301 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 305 lib/services/upstart.c op->rc = PCMK_OCF_NOT_RUNNING; op 308 lib/services/upstart.c if (op->synchronous == FALSE) { op 309 lib/services/upstart.c services_set_op_pending(op, NULL); op 310 lib/services/upstart.c operation_finalize(op); op 340 lib/services/upstart.c upstart_mask_error(svc_action_t *op, const char *error) op 342 lib/services/upstart.c crm_trace("Could not issue %s for %s: %s", op->action, op->rsc, error); op 344 lib/services/upstart.c if(safe_str_eq(op->action, "stop")) { op 345 lib/services/upstart.c crm_trace("Masking %s failure for %s: unknown services are stopped", op->action, op->rsc); op 346 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 348 lib/services/upstart.c } else if(safe_str_eq(op->action, "start")) { op 349 lib/services/upstart.c crm_trace("Mapping %s failure for %s: unknown services are not installed", op->action, op->rsc); op 350 lib/services/upstart.c op->rc = PCMK_OCF_NOT_INSTALLED; op 351 lib/services/upstart.c op->status = PCMK_LRM_OP_NOT_INSTALLED; op 355 lib/services/upstart.c } else if (safe_str_eq(op->action, "start") op 357 lib/services/upstart.c crm_trace("Mapping %s failure for %s: starting a started resource is allowed", op->action, op->rsc); op 358 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 370 lib/services/upstart.c svc_action_t *op = user_data; op 380 lib/services/upstart.c if (!upstart_mask_error(op, error.name)) { op 381 lib/services/upstart.c crm_err("%s for %s: %s", op->action, op->rsc, error.message); op 385 lib/services/upstart.c } else if (!g_strcmp0(op->action, "stop")) { op 387 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 391 lib/services/upstart.c crm_warn("Call to %s passed but return type was unexpected", op->action); op 392 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 400 lib/services/upstart.c crm_info("Call to %s passed: %s", op->action, path); op 401 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 405 lib/services/upstart.c CRM_LOG_ASSERT(pending == op->opaque->pending); op 406 lib/services/upstart.c services_set_op_pending(op, NULL); op 407 lib/services/upstart.c operation_finalize(op); op 417 lib/services/upstart.c upstart_job_exec(svc_action_t * op) op 422 lib/services/upstart.c const char *action = op->action; op 429 lib/services/upstart.c op->rc = PCMK_OCF_UNKNOWN_ERROR; op 432 lib/services/upstart.c if (safe_str_eq(op->action, "meta-data")) { op 433 lib/services/upstart.c op->stdout_data = upstart_job_metadata(op->agent); op 434 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 438 lib/services/upstart.c if(!upstart_job_by_name(op->agent, &job, op->timeout)) { op 439 lib/services/upstart.c crm_debug("Could not obtain job named '%s' to %s", op->agent, action); op 441 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 444 lib/services/upstart.c op->rc = PCMK_OCF_NOT_INSTALLED; op 445 lib/services/upstart.c op->status = PCMK_LRM_OP_NOT_INSTALLED; op 450 lib/services/upstart.c if (safe_str_eq(op->action, "monitor") || safe_str_eq(action, "status")) { op 452 lib/services/upstart.c char *path = get_first_instance(job, op->timeout); op 454 lib/services/upstart.c op->rc = PCMK_OCF_NOT_RUNNING; op 459 lib/services/upstart.c op->synchronous?NULL:upstart_job_check, op, op 460 lib/services/upstart.c op->synchronous?NULL:&pending, op->timeout); op 465 lib/services/upstart.c if(op->synchronous) { op 466 lib/services/upstart.c upstart_job_check("state", state, op); op 468 lib/services/upstart.c return op->rc == PCMK_OCF_OK; op 470 lib/services/upstart.c services_set_op_pending(op, pending); op 471 lib/services/upstart.c services_add_inflight_op(op); op 485 lib/services/upstart.c op->rc = PCMK_OCF_UNIMPLEMENT_FEATURE; op 489 lib/services/upstart.c crm_debug("Calling %s for %s on %s", action, op->rsc, job); op 509 lib/services/upstart.c if (op->synchronous == FALSE) { op 510 lib/services/upstart.c DBusPendingCall* pending = pcmk_dbus_send(msg, upstart_proxy, upstart_async_dispatch, op, op->timeout); op 514 lib/services/upstart.c services_set_op_pending(op, pending); op 515 lib/services/upstart.c services_add_inflight_op(op); op 522 lib/services/upstart.c reply = pcmk_dbus_send_recv(msg, upstart_proxy, &error, op->timeout); op 525 lib/services/upstart.c if(!upstart_mask_error(op, error.name)) { op 527 lib/services/upstart.c action, op->rsc, error.message, job); op 531 lib/services/upstart.c } else if (!g_strcmp0(op->action, "stop")) { op 533 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 536 lib/services/upstart.c crm_warn("Call to %s passed but return type was unexpected", op->action); op 537 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 545 lib/services/upstart.c crm_info("Call to %s passed: %s", op->action, path); op 546 lib/services/upstart.c op->rc = PCMK_OCF_OK; op 560 lib/services/upstart.c if (op->synchronous == FALSE) { op 561 lib/services/upstart.c return operation_finalize(op); op 563 lib/services/upstart.c return op->rc == PCMK_OCF_OK; op 26 lib/services/upstart.h G_GNUC_INTERNAL gboolean upstart_job_exec(svc_action_t * op); op 300 lib/transition/unpack.c lrmd_event_data_t *op = NULL; op 313 lib/transition/unpack.c op = calloc(1, sizeof(lrmd_event_data_t)); op 315 lib/transition/unpack.c op->rsc_id = strdup(ID(action_resource)); op 316 lib/transition/unpack.c op->interval = action->interval; op 317 lib/transition/unpack.c op->op_type = strdup(crm_element_value(action->xml, XML_LRM_ATTR_TASK)); op 319 lib/transition/unpack.c op->rc = rc; op 320 lib/transition/unpack.c op->op_status = status; op 321 lib/transition/unpack.c op->t_run = time(NULL); op 322 lib/transition/unpack.c op->t_rcchange = op->t_run; op 324 lib/transition/unpack.c op->params = g_hash_table_new_full(crm_str_hash, g_str_equal, op 329 lib/transition/unpack.c g_hash_table_insert(op->params, strdup(name), strdup(value)); op 337 lib/transition/unpack.c if (tmp > op->call_id) { op 338 lib/transition/unpack.c op->call_id = tmp; op 342 lib/transition/unpack.c op->call_id++; op 343 lib/transition/unpack.c return op; op 563 lrmd/lrmd.c const char *op = crm_element_value(request, F_LRMD_OPERATION); op 571 lrmd/lrmd.c crm_xml_add(notify, F_LRMD_OPERATION, op); op 1649 lrmd/lrmd.c const char *op = crm_element_value(request, F_LRMD_OPERATION); op 1653 lrmd/lrmd.c crm_trace("Processing %s operation from %s", op, client->id); op 1656 lrmd/lrmd.c if (crm_str_eq(op, CRM_OP_IPC_FWD, TRUE)) { op 1661 lrmd/lrmd.c } else if (crm_str_eq(op, CRM_OP_REGISTER, TRUE)) { op 1663 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_RSC_REG, TRUE)) { op 1667 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_RSC_INFO, TRUE)) { op 1669 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_RSC_UNREG, TRUE)) { op 1676 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_RSC_EXEC, TRUE)) { op 1679 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_RSC_CANCEL, TRUE)) { op 1682 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_POKE, TRUE)) { op 1685 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_CHECK, TRUE)) { op 1690 lrmd/lrmd.c } else if (crm_str_eq(op, LRMD_OP_ALERT_EXEC, TRUE)) { op 1696 lrmd/lrmd.c crm_err("Unknown %s from %s", op, client->name); op 1701 lrmd/lrmd.c op, client->id, rc, do_reply, do_notify); op 254 lrmd/remote_ctl.c const char *op = crm_element_value(msg, F_LRMD_IPC_OP); op 257 lrmd/remote_ctl.c if (safe_str_eq(op, LRMD_IPC_OP_NEW)) { op 340 pengine/allocate.c action_t *op = NULL; op 347 pengine/allocate.c op = custom_action(rsc, key, task, active_node, TRUE, TRUE, data_set); op 348 pengine/allocate.c set_bit(op->flags, pe_action_reschedule); op 2505 pengine/allocate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); op 2506 pengine/allocate.c task = crm_strdup_printf("Fence (%s)", op); op 726 pengine/clone.c action_t *op = (action_t *) gIter->data; op 728 pengine/clone.c if (is_set(op->flags, pe_action_optional) == FALSE) { op 729 pengine/clone.c active = g_list_prepend(active, op); op 1217 pengine/clone.c action_t *op = (action_t *) gIter->data; op 1219 pengine/clone.c rsc->cmds->action_flags(op, NULL); op 94 pengine/group.c action_t *op = NULL; op 107 pengine/group.c op = start_action(rsc, NULL, TRUE /* !group_data->child_starting */ ); op 108 pengine/group.c set_bit(op->flags, pe_action_pseudo | pe_action_runnable); op 110 pengine/group.c op = custom_action(rsc, started_key(rsc), op 112 pengine/group.c set_bit(op->flags, pe_action_pseudo | pe_action_runnable); op 114 pengine/group.c op = stop_action(rsc, NULL, TRUE /* !group_data->child_stopping */ ); op 115 pengine/group.c set_bit(op->flags, pe_action_pseudo | pe_action_runnable); op 117 pengine/group.c op = custom_action(rsc, stopped_key(rsc), op 119 pengine/group.c set_bit(op->flags, pe_action_pseudo | pe_action_runnable); op 123 pengine/group.c op = custom_action(rsc, demote_key(rsc), RSC_DEMOTE, NULL, TRUE, TRUE, data_set); op 124 pengine/group.c set_bit(op->flags, pe_action_pseudo); op 125 pengine/group.c set_bit(op->flags, pe_action_runnable); op 126 pengine/group.c op = custom_action(rsc, demoted_key(rsc), RSC_DEMOTED, NULL, TRUE, TRUE, data_set); op 127 pengine/group.c set_bit(op->flags, pe_action_pseudo); op 128 pengine/group.c set_bit(op->flags, pe_action_runnable); op 130 pengine/group.c op = custom_action(rsc, promote_key(rsc), RSC_PROMOTE, NULL, TRUE, TRUE, data_set); op 131 pengine/group.c set_bit(op->flags, pe_action_pseudo); op 132 pengine/group.c set_bit(op->flags, pe_action_runnable); op 133 pengine/group.c op = custom_action(rsc, promoted_key(rsc), RSC_PROMOTED, NULL, TRUE, TRUE, data_set); op 134 pengine/group.c set_bit(op->flags, pe_action_pseudo); op 135 pengine/group.c set_bit(op->flags, pe_action_runnable); op 706 pengine/native.c action_t *op = (action_t *) gIter->data; op 708 pengine/native.c if (is_set(op->flags, pe_action_reschedule)) { op 237 pengine/notif.c pe_notify(resource_t * rsc, node_t * node, action_t * op, action_t * confirm, op 245 pengine/notif.c if (op == NULL || confirm == NULL) { op 246 pengine/notif.c pe_rsc_trace(rsc, "Op=%p confirm=%p", op, confirm); op 256 pengine/notif.c } else if (is_set(op->flags, pe_action_runnable) == FALSE) { op 257 pengine/notif.c pe_rsc_trace(rsc, "Skipping notification for %s: not runnable", op->uuid); op 261 pengine/notif.c value = g_hash_table_lookup(op->meta, "notify_type"); op 262 pengine/notif.c task = g_hash_table_lookup(op->meta, "notify_operation"); op 264 pengine/notif.c pe_rsc_trace(rsc, "Creating notify actions for %s: %s (%s-%s)", op->uuid, rsc->id, value, task); op 267 pengine/notif.c trigger = custom_action(rsc, key, op->task, node, op 268 pengine/notif.c is_set(op->flags, pe_action_optional), TRUE, data_set); op 269 pengine/notif.c g_hash_table_foreach(op->meta, dup_attr, trigger->meta); op 273 pengine/notif.c pe_rsc_trace(rsc, "Ordering %s before %s (%d->%d)", op->uuid, trigger->uuid, trigger->id, op 274 pengine/notif.c op->id); op 276 pengine/notif.c order_actions(op, trigger, pe_order_optional); op 498 pengine/notif.c action_t *op = (action_t *) gIter->data; op 500 pengine/notif.c if (is_set(op->flags, pe_action_optional) == FALSE && op->node != NULL) { op 503 pengine/notif.c entry->node = op->node; op 506 pengine/notif.c task = text2task(op->task); op 661 pengine/notif.c action_t *op = (action_t *) gIter->data; op 663 pengine/notif.c if (is_set(op->flags, pe_action_optional) == FALSE && op->node != NULL) { op 664 pengine/notif.c enum action_tasks t = text2task(op->task); op 671 pengine/notif.c g_hash_table_foreach(n_data->keys, dup_attr, op->meta); op 70 pengine/pengine.c const char *op = crm_element_value(msg, F_CRM_TASK); op 73 pengine/pengine.c crm_trace("Processing %s op (ref=%s)...", op, ref); op 75 pengine/pengine.c if (op == NULL) { op 78 pengine/pengine.c } else if (strcasecmp(op, CRM_OP_HELLO) == 0) { op 88 pengine/pengine.c } else if (strcasecmp(op, CRM_OP_PECALC) == 0) { op 286 pengine/utils.c action_t *op = (action_t *) gIter->data; op 287 pengine/utils.c const char *interval = g_hash_table_lookup(op->meta, XML_LRM_ATTR_INTERVAL); op 289 pengine/utils.c crm_debug("Processing %s", op->uuid); op 290 pengine/utils.c if(safe_str_eq(RSC_STOP, op->task)) { op 291 pengine/utils.c update_action_flags(op, pe_action_optional | pe_action_clear, __FUNCTION__, __LINE__); op 293 pengine/utils.c } else if(safe_str_eq(RSC_START, op->task)) { op 294 pengine/utils.c update_action_flags(op, pe_action_runnable | pe_action_clear, __FUNCTION__, __LINE__); op 298 pengine/utils.c if(safe_str_eq(rc_inactive, g_hash_table_lookup(op->meta, XML_ATTR_TE_TARGET_RC))) { op 303 pengine/utils.c update_action_flags(op, pe_action_runnable | pe_action_clear, __FUNCTION__, __LINE__); op 3932 tools/crm_mon.c const char *op = crm_element_value(change, XML_DIFF_OP); op 3937 tools/crm_mon.c if(op == NULL) { op 3940 tools/crm_mon.c } else if(strcmp(op, "create") == 0) { op 3943 tools/crm_mon.c } else if(strcmp(op, "move") == 0) { op 3946 tools/crm_mon.c } else if(strcmp(op, "delete") == 0) { op 3949 tools/crm_mon.c } else if(strcmp(op, "modify") == 0) { op 3960 tools/crm_mon.c crm_trace("Handling %s operation for %s %p, %s", op, xpath, match, name); op 3965 tools/crm_mon.c crm_debug("No result for %s operation to %s", op, xpath); op 3966 tools/crm_mon.c CRM_ASSERT(strcmp(op, "delete") == 0 || strcmp(op, "move") == 0); op 4021 tools/crm_mon.c crm_trace("Ignoring %s operation for %s %p, %s", op, xpath, match, name); op 73 tools/crm_resource_print.c xmlNode *op = NULL; op 77 tools/crm_resource_print.c for (op = __xml_first_child(rsc->ops_xml); op != NULL; op = __xml_next(op)) { op 78 tools/crm_resource_print.c if (crm_str_eq((const char *)op->name, "op", TRUE)) { op 79 tools/crm_resource_print.c const char *name = crm_element_value(op, "name"); op 82 tools/crm_resource_print.c const char *value = crm_element_value(op, "requires"); op 446 tools/crm_resource_runtime.c send_lrm_rsc_op(crm_ipc_t * crmd_channel, const char *op, op 527 tools/crm_resource_runtime.c cmd = create_request(op, msg_data, router_node, CRM_SYSTEM_CRMD, crm_system_name, our_pid); op 536 tools/crm_resource_runtime.c crm_debug("Could not send %s op to the crmd", op); op 1464 tools/crm_resource_runtime.c svc_action_t *op = NULL; op 1530 tools/crm_resource_runtime.c op = resources_action_create(rid, rclass, rprov, rtype, action, 0, op 1532 tools/crm_resource_runtime.c if (op == NULL) { op 1535 tools/crm_resource_runtime.c op = resources_action_create(rid, rclass, rprov, rtype, action, 0, op 1539 tools/crm_resource_runtime.c services_action_free(op); op 1559 tools/crm_resource_runtime.c g_hash_table_replace(op->params, strdup(name), strdup(value)); op 1563 tools/crm_resource_runtime.c if (services_action_sync(op)) { op 1567 tools/crm_resource_runtime.c if (op->status == PCMK_LRM_OP_DONE) { op 1570 tools/crm_resource_runtime.c services_ocf_exitcode_str(op->rc), op->rc); op 1574 tools/crm_resource_runtime.c services_lrm_status_str(op->status), op->status); op 1581 tools/crm_resource_runtime.c if (op->stdout_data) { op 1582 tools/crm_resource_runtime.c local_copy = strdup(op->stdout_data); op 1595 tools/crm_resource_runtime.c if (op->stderr_data) { op 1596 tools/crm_resource_runtime.c local_copy = strdup(op->stderr_data); op 1611 tools/crm_resource_runtime.c rc = op->rc; op 1612 tools/crm_resource_runtime.c services_action_free(op); op 254 tools/crm_simulate.c const char *op = g_hash_table_lookup(action->meta, "stonith_action"); op 256 tools/crm_simulate.c action_name = crm_strdup_printf("%s%s '%s' %s", prefix ? prefix : "", action->task, op, action_host); op 147 tools/fake_transition.c lrmd_event_data_t *op = NULL; op 150 tools/fake_transition.c op = calloc(1, sizeof(lrmd_event_data_t)); op 152 tools/fake_transition.c op->rsc_id = strdup(ID(cib_resource)); op 153 tools/fake_transition.c op->interval = interval; op 154 tools/fake_transition.c op->op_type = strdup(task); op 156 tools/fake_transition.c op->rc = outcome; op 157 tools/fake_transition.c op->op_status = 0; op 158 tools/fake_transition.c op->params = NULL; /* TODO: Fill me in */ op 159 tools/fake_transition.c op->t_run = time(NULL); op 160 tools/fake_transition.c op->t_rcchange = op->t_run; op 162 tools/fake_transition.c op->call_id = 0; op 167 tools/fake_transition.c if (tmp > op->call_id) { op 168 tools/fake_transition.c op->call_id = tmp; op 171 tools/fake_transition.c op->call_id++; op 173 tools/fake_transition.c return op; op 177 tools/fake_transition.c inject_op(xmlNode * cib_resource, lrmd_event_data_t * op, int target_rc) op 179 tools/fake_transition.c return create_operation_update(cib_resource, op, CRM_FEATURE_SET, target_rc, NULL, crm_system_name, op 428 tools/fake_transition.c lrmd_event_data_t *op = NULL; op 590 tools/fake_transition.c op = create_op(cib_resource, task, interval, outcome); op 591 tools/fake_transition.c CRM_ASSERT(op != NULL); op 593 tools/fake_transition.c cib_op = inject_op(cib_resource, op, 0); op 595 tools/fake_transition.c lrmd_free_event(op); op 625 tools/fake_transition.c lrmd_event_data_t *op = NULL; op 695 tools/fake_transition.c op = convert_graph_action(cib_resource, action, 0, target_outcome); op 696 tools/fake_transition.c if (op->interval) { op 697 tools/fake_transition.c quiet_log(" * Resource action: %-15s %s=%d on %s\n", resource, op->op_type, op->interval, op 700 tools/fake_transition.c quiet_log(" * Resource action: %-15s %s on %s\n", resource, op->op_type, node); op 708 tools/fake_transition.c snprintf(key, strlen(spec), "%s_%s_%d@%s=", resource, op->op_type, op->interval, node); op 711 tools/fake_transition.c rc = sscanf(spec, "%*[^=]=%d", (int *) &op->rc); op 723 tools/fake_transition.c printf("\tPretending action %d failed with rc=%d\n", action->id, op->rc); op 724 tools/fake_transition.c update_failcounts(cib_node, resource, op->op_type, op->interval, op->rc); op 731 tools/fake_transition.c inject_op(cib_resource, op, target_outcome); op 732 tools/fake_transition.c lrmd_free_event(op); op 767 tools/fake_transition.c const char *op = crm_meta_value(action->params, "stonith_action"); op 770 tools/fake_transition.c quiet_log(" * Fencing %s (%s)\n", target, op); op 771 tools/fake_transition.c if(safe_str_neq(op, "on")) { op 86 tools/ipmiservicelogd.c static void sensor_change(enum ipmi_update_e op, ipmi_entity_t * ent, ipmi_sensor_t * sensor, op 88 tools/ipmiservicelogd.c static void entity_change(enum ipmi_update_e op, ipmi_domain_t * domain, ipmi_entity_t * entity, op 481 tools/ipmiservicelogd.c sensor_change(enum ipmi_update_e op, ipmi_entity_t * ent, ipmi_sensor_t * sensor, void *cb_data) op 485 tools/ipmiservicelogd.c if (op == IPMI_ADDED) { op 501 tools/ipmiservicelogd.c entity_change(enum ipmi_update_e op, ipmi_domain_t * domain, ipmi_entity_t * entity, void *cb_data) op 508 tools/ipmiservicelogd.c if (op == IPMI_ADDED) {