Skip to content

Commit a0f7c97

Browse files
committed
Refactor: libcrmcommon: Drop pcmk__xe_set_props()
It takes up more space and is slightly less efficient than the corresponding series of pcmk__xe_set() calls. I don't see an advantage for readability or performance, so we might as well drop it. Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
1 parent 28ebb18 commit a0f7c97

12 files changed

Lines changed: 99 additions & 164 deletions

File tree

daemons/controld/controld_join_dc.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -968,11 +968,9 @@ finalize_join_for(gpointer key, gpointer value, gpointer user_data)
968968
}
969969

970970
remote = pcmk__xe_create(remotes, PCMK_XE_NODE);
971-
pcmk__xe_set_props(remote,
972-
PCMK_XA_ID, node->name,
973-
PCMK__XA_NODE_STATE, node->state,
974-
PCMK__XA_CONNECTION_HOST, node->conn_host,
975-
NULL);
971+
pcmk__xe_set(remote, PCMK_XA_ID, node->name);
972+
pcmk__xe_set(remote, PCMK__XA_NODE_STATE, node->state);
973+
pcmk__xe_set(remote, PCMK__XA_CONNECTION_HOST, node->conn_host);
976974
}
977975
}
978976
}

include/crm/common/xml_element_internal.h

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -86,30 +86,7 @@ void pcmk__xe_sort_attrs(xmlNode *xml);
8686
void pcmk__xe_set_id(xmlNode *xml, const char *format, ...)
8787
G_GNUC_PRINTF(2, 3);
8888

89-
/*!
90-
* \internal
91-
* \brief Like pcmk__xe_set_props, but takes a va_list instead of
92-
* arguments directly.
93-
*
94-
* \param[in,out] node XML to add attributes to
95-
* \param[in] pairs NULL-terminated list of name/value pairs to add
96-
*/
97-
void
98-
pcmk__xe_set_propv(xmlNodePtr node, va_list pairs);
99-
100-
/*!
101-
* \internal
102-
* \brief Add a NULL-terminated list of name/value pairs to the given
103-
* XML node as properties.
104-
*
105-
* \param[in,out] node XML node to add properties to
106-
* \param[in] ... NULL-terminated list of name/value pairs
107-
*
108-
* \note A NULL name terminates the arguments; a NULL value will be skipped.
109-
*/
110-
void
111-
pcmk__xe_set_props(xmlNodePtr node, ...)
112-
G_GNUC_NULL_TERMINATED;
89+
void pcmk__xe_set_propv(xmlNode *xml, va_list pairs);
11390

11491
/*!
11592
* \internal

lib/common/messages.c

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -79,17 +79,16 @@ pcmk__new_message_as(const char *origin, enum pcmk_ipc_server server,
7979
}
8080

8181
message = pcmk__xe_create(NULL, PCMK__XE_MESSAGE);
82-
pcmk__xe_set_props(message,
83-
PCMK_XA_ORIGIN, origin,
84-
PCMK__XA_T, pcmk__server_message_type(server),
85-
PCMK__XA_SUBT, subtype,
86-
PCMK_XA_VERSION, CRM_FEATURE_SET,
87-
PCMK_XA_REFERENCE, reply_to,
88-
PCMK__XA_CRM_SYS_FROM, sender_system,
89-
PCMK__XA_CRM_HOST_TO, recipient_node,
90-
PCMK__XA_CRM_SYS_TO, recipient_system,
91-
PCMK__XA_CRM_TASK, task,
92-
NULL);
82+
pcmk__xe_set(message, PCMK_XA_ORIGIN, origin);
83+
pcmk__xe_set(message, PCMK__XA_T, pcmk__server_message_type(server));
84+
pcmk__xe_set(message, PCMK__XA_SUBT, subtype);
85+
pcmk__xe_set(message, PCMK_XA_VERSION, CRM_FEATURE_SET);
86+
pcmk__xe_set(message, PCMK_XA_REFERENCE, reply_to);
87+
pcmk__xe_set(message, PCMK__XA_CRM_SYS_FROM, sender_system);
88+
pcmk__xe_set(message, PCMK__XA_CRM_HOST_TO, recipient_node);
89+
pcmk__xe_set(message, PCMK__XA_CRM_SYS_TO, recipient_system);
90+
pcmk__xe_set(message, PCMK__XA_CRM_TASK, task);
91+
9392
if (data != NULL) {
9493
xmlNode *wrapper = pcmk__xe_create(message, PCMK__XE_CRM_XML);
9594

lib/common/output_html.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,9 @@ html_finish(pcmk__output_t *out, crm_exit_t exit_status, bool print, void **copy
193193

194194
if (stylesheet_link != NULL) {
195195
htmlNodePtr link_node = pcmk__xe_create(head_node, "link");
196-
pcmk__xe_set_props(link_node, "rel", "stylesheet",
197-
"href", stylesheet_link,
198-
NULL);
196+
197+
pcmk__xe_set(link_node, "rel", "stylesheet");
198+
pcmk__xe_set(link_node, "href", stylesheet_link);
199199
}
200200

201201
if (g_slist_length(priv->errors) > 0) {
@@ -492,10 +492,8 @@ pcmk__html_create(xmlNode *parent, const char *name, const char *id,
492492
{
493493
xmlNode *node = pcmk__xe_create(parent, name);
494494

495-
pcmk__xe_set_props(node,
496-
PCMK_XA_CLASS, class_name,
497-
PCMK_XA_ID, id,
498-
NULL);
495+
pcmk__xe_set(node, PCMK_XA_CLASS, class_name);
496+
pcmk__xe_set(node, PCMK_XA_ID, id);
499497
return node;
500498
}
501499

lib/common/output_xml.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,8 @@ xml_finish(pcmk__output_t *out, crm_exit_t exit_status, bool print, void **copy_
211211
char *rc_as_str = pcmk__itoa(exit_status);
212212

213213
node = pcmk__xe_create(priv->root, PCMK_XE_STATUS);
214-
pcmk__xe_set_props(node,
215-
PCMK_XA_CODE, rc_as_str,
216-
PCMK_XA_MESSAGE, crm_exit_str(exit_status),
217-
NULL);
214+
pcmk__xe_set(node, PCMK_XA_CODE, rc_as_str);
215+
pcmk__xe_set(node, PCMK_XA_MESSAGE, crm_exit_str(exit_status));
218216

219217
if (g_slist_length(priv->errors) > 0) {
220218
xmlNodePtr errors_node = pcmk__xe_create(node, PCMK_XE_ERRORS);

lib/common/tests/xml_element/pcmk__xe_copy_attrs_test.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,11 +71,9 @@ copy_multiple(void **state)
7171
xmlNode *src = pcmk__xe_create(NULL, "test");
7272
xmlNode *target = pcmk__xe_create(NULL, "test");
7373

74-
pcmk__xe_set_props(src,
75-
"attr1", "value1",
76-
"attr2", "value2",
77-
"attr3", "value3",
78-
NULL);
74+
pcmk__xe_set(src, "attr1", "value1");
75+
pcmk__xe_set(src, "attr2", "value2");
76+
pcmk__xe_set(src, "attr3", "value3");
7977

8078
assert_int_equal(pcmk__xe_copy_attrs(target, src, pcmk__xaf_none),
8179
pcmk_rc_ok);

lib/common/tests/xml_element/pcmk__xe_sort_attrs_test.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,11 +156,9 @@ already_sorted(void **state)
156156
}
157157
}
158158

159-
pcmk__xe_set_props(reference_xml,
160-
"admin", "john",
161-
"dummy", "value",
162-
"location", "usa",
163-
NULL);
159+
pcmk__xe_set(reference_xml, "admin", "john");
160+
pcmk__xe_set(reference_xml, "dummy", "value");
161+
pcmk__xe_set(reference_xml, "location", "usa");
164162

165163
assert_order(test_xml, reference_xml);
166164

@@ -199,11 +197,9 @@ need_sort(void **state)
199197
}
200198
}
201199

202-
pcmk__xe_set_props(reference_xml,
203-
"admin", "john",
204-
"dummy", "value",
205-
"location", "usa",
206-
NULL);
200+
pcmk__xe_set(reference_xml, "admin", "john");
201+
pcmk__xe_set(reference_xml, "dummy", "value");
202+
pcmk__xe_set(reference_xml, "location", "usa");
207203

208204
assert_order(test_xml, reference_xml);
209205

lib/common/xml_element.c

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,31 +1141,33 @@ pcmk__xe_update_match(xmlNode *xml, xmlNode *update, uint32_t flags)
11411141
return ENXIO;
11421142
}
11431143

1144+
/*!
1145+
* \internal
1146+
* \brief Set a list of name/value pairs as attributes for an XML element
1147+
*
1148+
* \param[in,out] xml XML element
1149+
* \param[in] pairs <tt>NULL</tt>-terminated list of name/value pairs
1150+
*
1151+
* \note A \c NULL name terminates the arguments; a \c NULL value will be
1152+
* skipped.
1153+
*/
11441154
void
1145-
pcmk__xe_set_propv(xmlNodePtr node, va_list pairs)
1155+
pcmk__xe_set_propv(xmlNode *xml, va_list pairs)
11461156
{
11471157
while (true) {
1148-
const char *name, *value;
1158+
const char *name = NULL;
1159+
const char *value = NULL;
11491160

11501161
name = va_arg(pairs, const char *);
11511162
if (name == NULL) {
11521163
return;
11531164
}
11541165

11551166
value = va_arg(pairs, const char *);
1156-
pcmk__xe_set(node, name, value);
1167+
pcmk__xe_set(xml, name, value);
11571168
}
11581169
}
11591170

1160-
void
1161-
pcmk__xe_set_props(xmlNodePtr node, ...)
1162-
{
1163-
va_list pairs;
1164-
va_start(pairs, node);
1165-
pcmk__xe_set_propv(node, pairs);
1166-
va_end(pairs);
1167-
}
1168-
11691171
int
11701172
pcmk__xe_foreach_child(xmlNode *xml, const char *child_element_name,
11711173
int (*handler)(xmlNode *xml, void *userdata),

lib/fencing/st_output.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,8 @@ stonith_event_xml(pcmk__output_t *out, va_list args)
489489

490490
switch (event->state) {
491491
case st_failed:
492-
pcmk__xe_set_props(node,
493-
PCMK_XA_STATUS, PCMK_VALUE_FAILED,
494-
PCMK_XA_EXIT_REASON, event->exit_reason,
495-
NULL);
492+
pcmk__xe_set(node, PCMK_XA_STATUS, PCMK_VALUE_FAILED);
493+
pcmk__xe_set(node, PCMK_XA_EXIT_REASON, event->exit_reason);
496494
break;
497495

498496
case st_done:
@@ -501,10 +499,10 @@ stonith_event_xml(pcmk__output_t *out, va_list args)
501499

502500
default: {
503501
char *state = pcmk__itoa(event->state);
504-
pcmk__xe_set_props(node,
505-
PCMK_XA_STATUS, PCMK_VALUE_PENDING,
506-
PCMK_XA_EXTENDED_STATUS, state,
507-
NULL);
502+
503+
pcmk__xe_set(node, PCMK_XA_STATUS, PCMK_VALUE_PENDING);
504+
pcmk__xe_set(node, PCMK_XA_EXTENDED_STATUS, state);
505+
508506
free(state);
509507
break;
510508
}

lib/pacemaker/pcmk_injections.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -356,20 +356,18 @@ pcmk__inject_node_state_change(cib_t *cib_conn, const char *node, bool up)
356356
xmlNode *cib_node = pcmk__inject_node(cib_conn, node, NULL);
357357

358358
if (up) {
359-
pcmk__xe_set_props(cib_node,
360-
PCMK__XA_IN_CCM, PCMK_VALUE_TRUE,
361-
PCMK_XA_CRMD, PCMK_VALUE_ONLINE,
362-
PCMK__XA_JOIN, CRMD_JOINSTATE_MEMBER,
363-
PCMK_XA_EXPECTED, CRMD_JOINSTATE_MEMBER,
364-
NULL);
359+
pcmk__xe_set(cib_node, PCMK__XA_IN_CCM, PCMK_VALUE_TRUE);
360+
pcmk__xe_set(cib_node, PCMK_XA_CRMD, PCMK_VALUE_ONLINE);
361+
pcmk__xe_set(cib_node, PCMK__XA_JOIN, CRMD_JOINSTATE_MEMBER);
362+
pcmk__xe_set(cib_node, PCMK_XA_EXPECTED, CRMD_JOINSTATE_MEMBER);
363+
365364
} else {
366-
pcmk__xe_set_props(cib_node,
367-
PCMK__XA_IN_CCM, PCMK_VALUE_FALSE,
368-
PCMK_XA_CRMD, PCMK_VALUE_OFFLINE,
369-
PCMK__XA_JOIN, CRMD_JOINSTATE_DOWN,
370-
PCMK_XA_EXPECTED, CRMD_JOINSTATE_DOWN,
371-
NULL);
365+
pcmk__xe_set(cib_node, PCMK__XA_IN_CCM, PCMK_VALUE_FALSE);
366+
pcmk__xe_set(cib_node, PCMK_XA_CRMD, PCMK_VALUE_OFFLINE);
367+
pcmk__xe_set(cib_node, PCMK__XA_JOIN, CRMD_JOINSTATE_DOWN);
368+
pcmk__xe_set(cib_node, PCMK_XA_EXPECTED, CRMD_JOINSTATE_DOWN);
372369
}
370+
373371
pcmk__xe_set(cib_node, PCMK_XA_CRM_DEBUG_ORIGIN, crm_system_name);
374372
return cib_node;
375373
}

0 commit comments

Comments
 (0)