Skip to content

Commit

Permalink
Refactor: libcrmcommon: Drop get_message_xml() internally
Browse files Browse the repository at this point in the history
It's short, so it's clearer to expand it in the caller.

Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
  • Loading branch information
nrwahl2 committed Apr 9, 2024
1 parent da31ea3 commit 7c35352
Show file tree
Hide file tree
Showing 18 changed files with 128 additions and 37 deletions.
28 changes: 21 additions & 7 deletions daemons/based/based_callbacks.c
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,10 @@ process_ping_reply(xmlNode *reply)
uint64_t seq = 0;
const char *host = crm_element_value(reply, PCMK__XA_SRC);

xmlNode *pong = get_message_xml(reply, PCMK__XE_CIB_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(reply, PCMK__XE_CIB_CALLDATA, NULL,
NULL);
xmlNode *pong = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

const char *seq_s = crm_element_value(pong, PCMK__XA_CIB_PING_ID);
const char *digest = crm_element_value(pong, PCMK__XA_DIGEST);

Expand Down Expand Up @@ -462,7 +465,10 @@ process_ping_reply(xmlNode *reply)

crm_trace("Processing ping reply %s from %s (%s)", seq_s, host, digest);
if (!pcmk__str_eq(ping_digest, digest, pcmk__str_casei)) {
xmlNode *remote_cib = get_message_xml(pong, PCMK__XE_CIB_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(pong, PCMK__XE_CIB_CALLDATA,
NULL, NULL);
xmlNode *remote_cib = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

const char *admin_epoch_s = NULL;
const char *epoch_s = NULL;
const char *num_updates_s = NULL;
Expand Down Expand Up @@ -1304,21 +1310,29 @@ static xmlNode *
prepare_input(const xmlNode *request, enum cib__op_type type,
const char **section)
{
xmlNode *wrapper = NULL;
xmlNode *input = NULL;

*section = NULL;

switch (type) {
case cib__op_apply_patch:
if (pcmk__xe_attr_is_true(request, PCMK__XA_CIB_UPDATE)) {
input = get_message_xml(request, PCMK__XA_CIB_UPDATE_DIFF);
} else {
input = get_message_xml(request, PCMK__XE_CIB_CALLDATA);
{
const char *wrapper_name = PCMK__XE_CIB_CALLDATA;

if (pcmk__xe_attr_is_true(request, PCMK__XA_CIB_UPDATE)) {
wrapper_name = PCMK__XA_CIB_UPDATE_DIFF;
}
wrapper = pcmk__xe_first_child(request, wrapper_name, NULL,
NULL);
input = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
}
break;

default:
input = get_message_xml(request, PCMK__XE_CIB_CALLDATA);
wrapper = pcmk__xe_first_child(request, PCMK__XE_CIB_CALLDATA, NULL,
NULL);
input = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
*section = crm_element_value(request, PCMK__XA_CIB_SECTION);
break;
}
Expand Down
5 changes: 4 additions & 1 deletion daemons/based/based_messages.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,14 +499,17 @@ cib_process_schemas(const char *op, int options, const char *section, xmlNode *r
xmlNode *input, xmlNode *existing_cib, xmlNode **result_cib,
xmlNode **answer)
{
xmlNode *wrapper = NULL;
xmlNode *data = NULL;

const char *after_ver = NULL;
GList *schemas = NULL;
GList *already_included = NULL;

*answer = pcmk__xe_create(NULL, PCMK__XA_SCHEMAS);

data = get_message_xml(req, PCMK__XE_CIB_CALLDATA);
wrapper = pcmk__xe_first_child(req, PCMK__XE_CIB_CALLDATA, NULL, NULL);
data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
if (data == NULL) {
crm_warn("No data specified in request");
return -EPROTO;
Expand Down
4 changes: 3 additions & 1 deletion daemons/controld/controld_execd_state.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,9 @@ crmd_remote_proxy_cb(lrmd_t *lrmd, void *userdata, xmlNode *msg)
* to send to ourselves over IPC -- do it directly.
*/
int flags = 0;
xmlNode *request = get_message_xml(msg, PCMK__XE_LRMD_IPC_MSG);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XE_LRMD_IPC_MSG,
NULL, NULL);
xmlNode *request = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

CRM_CHECK(request != NULL, return);
CRM_CHECK(lrm_state->node_name, return);
Expand Down
36 changes: 28 additions & 8 deletions daemons/controld/controld_messages.c
Original file line number Diff line number Diff line change
Expand Up @@ -188,10 +188,14 @@ fsa_dump_queue(int log_level)
ha_msg_input_t *
copy_ha_msg_input(ha_msg_input_t * orig)
{
xmlNode *wrapper = NULL;

ha_msg_input_t *copy = pcmk__assert_alloc(1, sizeof(ha_msg_input_t));

copy->msg = (orig != NULL)? pcmk__xml_copy(NULL, orig->msg) : NULL;
copy->xml = get_message_xml(copy->msg, PCMK__XE_CRM_XML);

wrapper = pcmk__xe_first_child(copy->msg, PCMK__XE_CRM_XML, NULL, NULL);
copy->xml = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
return copy;
}

Expand Down Expand Up @@ -425,7 +429,9 @@ relay_message(xmlNode * msg, gboolean originated_locally)
is_local = true;

} else if (is_for_crm && pcmk__str_eq(task, CRM_OP_LRM_DELETE, pcmk__str_casei)) {
xmlNode *msg_data = get_message_xml(msg, PCMK__XE_CRM_XML);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XE_CRM_XML, NULL,
NULL);
xmlNode *msg_data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
const char *mode = crm_element_value(msg_data, PCMK__XA_MODE);

if (pcmk__str_eq(mode, PCMK__VALUE_CIB, pcmk__str_none)) {
Expand Down Expand Up @@ -539,6 +545,7 @@ bool
controld_authorize_ipc_message(const xmlNode *client_msg, pcmk__client_t *curr_client,
const char *proxy_session)
{
xmlNode *wrapper = NULL;
xmlNode *message_data = NULL;
const char *client_name = NULL;
const char *op = crm_element_value(client_msg, PCMK__XA_CRM_TASK);
Expand All @@ -556,7 +563,8 @@ controld_authorize_ipc_message(const xmlNode *client_msg, pcmk__client_t *curr_c
return true;
}

message_data = get_message_xml(client_msg, PCMK__XE_CRM_XML);
wrapper = pcmk__xe_first_child(client_msg, PCMK__XE_CRM_XML, NULL, NULL);
message_data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

client_name = crm_element_value(message_data, PCMK__XA_CLIENT_NAME);
if (pcmk__str_empty(client_name)) {
Expand Down Expand Up @@ -621,7 +629,10 @@ handle_failcount_op(xmlNode * stored_msg)
char *interval_spec = NULL;
guint interval_ms = 0;
gboolean is_remote_node = FALSE;
xmlNode *xml_op = get_message_xml(stored_msg, PCMK__XE_CRM_XML);

xmlNode *wrapper = pcmk__xe_first_child(stored_msg, PCMK__XE_CRM_XML, NULL,
NULL);
xmlNode *xml_op = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

if (xml_op) {
xmlNode *xml_rsc = pcmk__xe_first_child(xml_op, PCMK_XE_PRIMITIVE, NULL,
Expand Down Expand Up @@ -672,7 +683,9 @@ static enum crmd_fsa_input
handle_lrm_delete(xmlNode *stored_msg)
{
const char *mode = NULL;
xmlNode *msg_data = get_message_xml(stored_msg, PCMK__XE_CRM_XML);
xmlNode *wrapper = pcmk__xe_first_child(stored_msg, PCMK__XE_CRM_XML, NULL,
NULL);
xmlNode *msg_data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

CRM_CHECK(msg_data != NULL, return I_NULL);

Expand Down Expand Up @@ -1159,7 +1172,9 @@ handle_request(xmlNode *stored_msg, enum crmd_fsa_cause cause)
}

} else if (strcmp(op, CRM_OP_MAINTENANCE_NODES) == 0) {
xmlNode *xml = get_message_xml(stored_msg, PCMK__XE_CRM_XML);
xmlNode *wrapper = pcmk__xe_first_child(stored_msg, PCMK__XE_CRM_XML,
NULL, NULL);
xmlNode *xml = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

remote_ra_process_maintenance_nodes(xml);

Expand Down Expand Up @@ -1268,16 +1283,21 @@ send_msg_via_ipc(xmlNode * msg, const char *sys)
pcmk__ipc_send_xml(client_channel, 0, msg, crm_ipc_server_event);

} else if (pcmk__str_eq(sys, CRM_SYSTEM_TENGINE, pcmk__str_none)) {
xmlNode *data = get_message_xml(msg, PCMK__XE_CRM_XML);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XE_CRM_XML, NULL,
NULL);
xmlNode *data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

process_te_message(msg, data);

} else if (pcmk__str_eq(sys, CRM_SYSTEM_LRMD, pcmk__str_none)) {
fsa_data_t fsa_data;
ha_msg_input_t fsa_input;
xmlNode *wrapper = NULL;

fsa_input.msg = msg;
fsa_input.xml = get_message_xml(msg, PCMK__XE_CRM_XML);

wrapper = pcmk__xe_first_child(msg, PCMK__XE_CRM_XML, NULL, NULL);
fsa_input.xml = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

fsa_data.id = 0;
fsa_data.actions = 0;
Expand Down
5 changes: 4 additions & 1 deletion daemons/controld/controld_te_callbacks.c
Original file line number Diff line number Diff line change
Expand Up @@ -542,6 +542,7 @@ te_update_diff_v2(xmlNode *diff)
void
te_update_diff(const char *event, xmlNode * msg)
{
xmlNode *wrapper = NULL;
xmlNode *diff = NULL;
const char *op = NULL;
int rc = -EINVAL;
Expand Down Expand Up @@ -570,7 +571,9 @@ te_update_diff(const char *event, xmlNode * msg)
}

op = crm_element_value(msg, PCMK__XA_CIB_OP);
diff = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);

wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT, NULL, NULL);
diff = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

xml_patch_versions(diff, p_add, p_del);
crm_debug("Processing (%s) diff: %d.%d.%d -> %d.%d.%d (%s)", op,
Expand Down
6 changes: 5 additions & 1 deletion daemons/execd/execd_commands.c
Original file line number Diff line number Diff line change
Expand Up @@ -1904,7 +1904,11 @@ process_lrmd_message(pcmk__client_t *client, uint32_t id, xmlNode *request)
do_reply = 1;
} else if (pcmk__str_eq(op, LRMD_OP_CHECK, pcmk__str_none)) {
if (allowed) {
xmlNode *data = get_message_xml(request, PCMK__XE_LRMD_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(request,
PCMK__XE_LRMD_CALLDATA,
NULL, NULL);
xmlNode *data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

const char *timeout = NULL;

CRM_LOG_ASSERT(data != NULL);
Expand Down
6 changes: 5 additions & 1 deletion daemons/execd/remoted_proxy.c
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,11 @@ ipc_proxy_forward_client(pcmk__client_t *ipc_proxy, xmlNode *xml)
{
const char *session = crm_element_value(xml, PCMK__XA_LRMD_IPC_SESSION);
const char *msg_type = crm_element_value(xml, PCMK__XA_LRMD_IPC_OP);
xmlNode *msg = get_message_xml(xml, PCMK__XE_LRMD_IPC_MSG);

xmlNode *wrapper = pcmk__xe_first_child(xml, PCMK__XE_LRMD_IPC_MSG, NULL,
NULL);
xmlNode *msg = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

pcmk__client_t *ipc_client;
int rc = pcmk_rc_ok;

Expand Down
18 changes: 14 additions & 4 deletions daemons/fenced/fenced_cib.c
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,9 @@ update_cib_stonith_devices_v2(const char *event, xmlNode * msg)
{
xmlNode *change = NULL;
char *reason = NULL;
xmlNode *patchset = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT,
NULL, NULL);
xmlNode *patchset = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

for (change = pcmk__xe_first_child(patchset, NULL, NULL, NULL);
change != NULL; change = pcmk__xe_next(change)) {
Expand Down Expand Up @@ -391,7 +393,9 @@ static void
update_cib_stonith_devices(const char *event, xmlNode * msg)
{
int format = 1;
xmlNode *patchset = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT,
NULL, NULL);
xmlNode *patchset = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

CRM_ASSERT(patchset);
crm_element_value_int(patchset, PCMK_XA_FORMAT, &format);
Expand Down Expand Up @@ -506,7 +510,9 @@ update_fencing_topology(const char *event, xmlNode * msg)
int format = 1;
const char *xpath;
xmlXPathObjectPtr xpathObj = NULL;
xmlNode *patchset = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT,
NULL, NULL);
xmlNode *patchset = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

CRM_ASSERT(patchset);
crm_element_value_int(patchset, PCMK_XA_FORMAT, &format);
Expand Down Expand Up @@ -628,14 +634,18 @@ update_cib_cache_cb(const char *event, xmlNode * msg)
*/
if (local_cib != NULL) {
int rc = pcmk_ok;
xmlNode *wrapper = NULL;
xmlNode *patchset = NULL;

crm_element_value_int(msg, PCMK__XA_CIB_RC, &rc);
if (rc != pcmk_ok) {
return;
}

patchset = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);
wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT, NULL,
NULL);
patchset = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

rc = xml_apply_patchset(local_cib, patchset, TRUE);
switch (rc) {
case pcmk_ok:
Expand Down
3 changes: 2 additions & 1 deletion daemons/schedulerd/schedulerd_messages.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ handle_pecalc_request(pcmk__request_t *request)
};

xmlNode *msg = request->xml;
xmlNode *xml_data = get_message_xml(msg, PCMK__XE_CRM_XML);
xmlNode *wrapper = pcmk__xe_first_child(msg, PCMK__XE_CRM_XML, NULL, NULL);
xmlNode *xml_data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

static char *last_digest = NULL;
static char *filename = NULL;
Expand Down
4 changes: 3 additions & 1 deletion lib/cib/cib_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,9 @@ cib_file_process_request(cib_t *cib, xmlNode *request, xmlNode **output)
int call_options = cib_none;
const char *op = crm_element_value(request, PCMK__XA_CIB_OP);
const char *section = crm_element_value(request, PCMK__XA_CIB_SECTION);
xmlNode *data = get_message_xml(request, PCMK__XE_CIB_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(request, PCMK__XE_CIB_CALLDATA,
NULL, NULL);
xmlNode *data = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

bool changed = false;
bool read_only = false;
Expand Down
4 changes: 3 additions & 1 deletion lib/cib/cib_native.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,9 @@ cib_native_perform_op_delegate(cib_t *cib, const char *op, const char *host,
rc = pcmk_ok;
crm_element_value_int(op_reply, PCMK__XA_CIB_CALLID, &reply_id);
if (reply_id == cib->call_id) {
xmlNode *tmp = get_message_xml(op_reply, PCMK__XE_CIB_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(op_reply, PCMK__XE_CIB_CALLDATA,
NULL, NULL);
xmlNode *tmp = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

crm_trace("Synchronous reply %d received", reply_id);
if (crm_element_value_int(op_reply, PCMK__XA_CIB_RC, &rc) != 0) {
Expand Down
4 changes: 3 additions & 1 deletion lib/cib/cib_remote.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,9 @@ cib_remote_perform_op(cib_t *cib, const char *op, const char *host,
/* do nothing more */

} else if (!(call_options & cib_discard_reply)) {
xmlNode *tmp = get_message_xml(op_reply, PCMK__XE_CIB_CALLDATA);
xmlNode *wrapper = pcmk__xe_first_child(op_reply, PCMK__XE_CIB_CALLDATA,
NULL, NULL);
xmlNode *tmp = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

if (tmp == NULL) {
crm_trace("No output in reply to \"%s\" command %d", op, cib->call_id - 1);
Expand Down
14 changes: 11 additions & 3 deletions lib/cib/cib_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ int
cib__get_notify_patchset(const xmlNode *msg, const xmlNode **patchset)
{
int rc = pcmk_err_generic;
xmlNode *wrapper = NULL;

CRM_ASSERT(patchset != NULL);
*patchset = NULL;
Expand All @@ -93,7 +94,8 @@ cib__get_notify_patchset(const xmlNode *msg, const xmlNode **patchset)
return pcmk_legacy2rc(rc);
}

*patchset = get_message_xml(msg, PCMK__XA_CIB_UPDATE_RESULT);
wrapper = pcmk__xe_first_child(msg, PCMK__XA_CIB_UPDATE_RESULT, NULL, NULL);
*patchset = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

if (*patchset == NULL) {
crm_err("CIB diff notification received with no patchset");
Expand Down Expand Up @@ -779,9 +781,12 @@ cib_native_callback(cib_t * cib, xmlNode * msg, int call_id, int rc)
cib_callback_client_t *blob = NULL;

if (msg != NULL) {
xmlNode *wrapper = NULL;

crm_element_value_int(msg, PCMK__XA_CIB_RC, &rc);
crm_element_value_int(msg, PCMK__XA_CIB_CALLID, &call_id);
output = get_message_xml(msg, PCMK__XE_CIB_CALLDATA);
wrapper = pcmk__xe_first_child(msg, PCMK__XE_CIB_CALLDATA, NULL, NULL);
output = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);
}

blob = cib__lookup_id(call_id);
Expand Down Expand Up @@ -915,14 +920,17 @@ cib_apply_patch_event(xmlNode *event, xmlNode *input, xmlNode **output,
{
int rc = pcmk_err_generic;

xmlNode *wrapper = NULL;
xmlNode *diff = NULL;

CRM_ASSERT(event);
CRM_ASSERT(input);
CRM_ASSERT(output);

crm_element_value_int(event, PCMK__XA_CIB_RC, &rc);
diff = get_message_xml(event, PCMK__XA_CIB_UPDATE_RESULT);
wrapper = pcmk__xe_first_child(event, PCMK__XA_CIB_UPDATE_RESULT, NULL,
NULL);
diff = pcmk__xe_first_child(wrapper, NULL, NULL, NULL);

if (rc < pcmk_ok || diff == NULL) {
return rc;
Expand Down
Loading

0 comments on commit 7c35352

Please sign in to comment.