Skip to content

Commit ffad0bf

Browse files
committed
Refactor: libcib: Drop enum cib__op_attr
Replace it with a boolean "modifies_cib". Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
1 parent fec65bb commit ffad0bf

4 files changed

Lines changed: 24 additions & 43 deletions

File tree

daemons/based/based_callbacks.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -584,7 +584,7 @@ log_op_result(const xmlNode *request, const cib__operation_t *operation, int rc,
584584
int epoch = 0;
585585
int num_updates = 0;
586586

587-
if (!pcmk__is_set(operation->flags, cib__op_attr_modifies)) {
587+
if (!operation->modifies_cib) {
588588
level = LOG_TRACE;
589589

590590
} else if (rc != pcmk_rc_ok) {
@@ -716,7 +716,7 @@ based_handle_request(pcmk__request_t *request)
716716
} else if (request->ipc_client != NULL) {
717717
// Forward modifying and non-local requests via cluster
718718
if (!based_stand_alone()
719-
&& (pcmk__is_set(operation->flags, cib__op_attr_modifies)
719+
&& (operation->modifies_cib
720720
|| !pcmk__str_eq(host, OUR_NODENAME,
721721
pcmk__str_casei|pcmk__str_null_matches))) {
722722

@@ -761,7 +761,7 @@ based_handle_request(pcmk__request_t *request)
761761

762762
start_time = time(NULL);
763763

764-
if (!pcmk__is_set(operation->flags, cib__op_attr_modifies)) {
764+
if (!operation->modifies_cib) {
765765
rc = cib__perform_op_ro(op_function, request->xml, &based_cib, &output);
766766

767767
} else {
@@ -775,9 +775,7 @@ based_handle_request(pcmk__request_t *request)
775775
}
776776

777777
done:
778-
if (!pcmk__is_set(operation->flags, cib__op_attr_modifies)
779-
&& needs_reply && !based_stand_alone()) {
780-
778+
if (!operation->modifies_cib && needs_reply && !based_stand_alone()) {
781779
send_peer_reply(reply, originator);
782780
}
783781

include/crm/cib/internal.h

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,6 @@ extern "C" {
3838
#define PCMK__CIB_REQUEST_COMMIT_TRANSACT "cib_commit_transact"
3939
#define PCMK__CIB_REQUEST_SCHEMAS "cib_schemas"
4040

41-
/*!
42-
* \internal
43-
* \brief Flags for CIB operation attributes
44-
*/
45-
enum cib__op_attr {
46-
//! No special attributes
47-
cib__op_attr_none = 0,
48-
49-
//! May modify state (of the CIB itself or of the CIB manager)
50-
cib__op_attr_modifies = (UINT32_C(1) << 1),
51-
};
52-
5341
/*!
5442
* \internal
5543
* \brief Types of CIB operations
@@ -89,7 +77,7 @@ typedef int (*cib__op_fn_t)(xmlNode *request, xmlNode **cib, xmlNode **output);
8977
typedef struct cib__operation_s {
9078
const char *name;
9179
enum cib__op_type type;
92-
uint32_t flags; //!< Group of <tt>enum cib__op_attr</tt> flags
80+
bool modifies_cib;
9381
} cib__operation_t;
9482

9583
typedef struct cib_notify_client_s {

lib/cib/cib_file.c

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,6 @@ process_request(cib_t *cib, xmlNode *request, xmlNode **output)
146146
const char *op = pcmk__xe_get(request, PCMK__XA_CIB_OP);
147147

148148
bool changed = false;
149-
bool read_only = false;
150149
xmlNode *result_cib = NULL;
151150
xmlNode *cib_diff = NULL;
152151
xmlNode *local_output = NULL;
@@ -167,9 +166,7 @@ process_request(cib_t *cib, xmlNode *request, xmlNode **output)
167166
pcmk__warn("Couldn't parse options from request: %s", pcmk_rc_str(rc));
168167
}
169168

170-
read_only = !pcmk__is_set(operation->flags, cib__op_attr_modifies);
171-
172-
if (read_only) {
169+
if (!operation->modifies_cib) {
173170
rc = cib__perform_op_ro(op_function, request, &private->cib_xml,
174171
&local_output);
175172
} else {
@@ -189,7 +186,7 @@ process_request(cib_t *cib, xmlNode *request, xmlNode **output)
189186
// Show validation errors to stderr
190187
pcmk__validate_xml(result_cib, NULL, NULL);
191188

192-
} else if ((rc == pcmk_rc_ok) && !read_only) {
189+
} else if ((rc == pcmk_rc_ok) && operation->modifies_cib) {
193190
if (result_cib != private->cib_xml) {
194191
pcmk__xml_free(private->cib_xml);
195192
private->cib_xml = result_cib;

lib/cib/cib_ops.c

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -35,57 +35,55 @@ static GHashTable *operation_table = NULL;
3535

3636
static const cib__operation_t cib_ops[] = {
3737
{
38-
PCMK__CIB_REQUEST_APPLY_PATCH, cib__op_apply_patch,
39-
cib__op_attr_modifies
38+
PCMK__CIB_REQUEST_APPLY_PATCH, cib__op_apply_patch, true
4039
},
4140
{
42-
PCMK__CIB_REQUEST_BUMP, cib__op_bump, cib__op_attr_modifies
41+
PCMK__CIB_REQUEST_BUMP, cib__op_bump, true
4342
},
4443
{
45-
PCMK__CIB_REQUEST_COMMIT_TRANSACT, cib__op_commit_transact,
46-
cib__op_attr_modifies
44+
PCMK__CIB_REQUEST_COMMIT_TRANSACT, cib__op_commit_transact, true
4745
},
4846
{
49-
PCMK__CIB_REQUEST_CREATE, cib__op_create, cib__op_attr_modifies
47+
PCMK__CIB_REQUEST_CREATE, cib__op_create, true
5048
},
5149
{
52-
PCMK__CIB_REQUEST_DELETE, cib__op_delete, cib__op_attr_modifies
50+
PCMK__CIB_REQUEST_DELETE, cib__op_delete, true
5351
},
5452
{
55-
PCMK__CIB_REQUEST_ERASE, cib__op_erase, cib__op_attr_modifies
53+
PCMK__CIB_REQUEST_ERASE, cib__op_erase, true
5654
},
5755
{
58-
PCMK__CIB_REQUEST_MODIFY, cib__op_modify, cib__op_attr_modifies
56+
PCMK__CIB_REQUEST_MODIFY, cib__op_modify, true
5957
},
6058
{
61-
PCMK__CIB_REQUEST_NOOP, cib__op_noop, cib__op_attr_none
59+
PCMK__CIB_REQUEST_NOOP, cib__op_noop, false
6260
},
6361
{
64-
CRM_OP_PING, cib__op_ping, cib__op_attr_none
62+
CRM_OP_PING, cib__op_ping, false
6563
},
6664
{
67-
PCMK__CIB_REQUEST_PRIMARY, cib__op_primary, cib__op_attr_none
65+
PCMK__CIB_REQUEST_PRIMARY, cib__op_primary, false
6866
},
6967
{
70-
PCMK__CIB_REQUEST_QUERY, cib__op_query, cib__op_attr_none
68+
PCMK__CIB_REQUEST_QUERY, cib__op_query, false
7169
},
7270
{
73-
PCMK__CIB_REQUEST_REPLACE, cib__op_replace, cib__op_attr_modifies
71+
PCMK__CIB_REQUEST_REPLACE, cib__op_replace, true
7472
},
7573
{
76-
PCMK__CIB_REQUEST_SCHEMAS, cib__op_schemas, cib__op_attr_none
74+
PCMK__CIB_REQUEST_SCHEMAS, cib__op_schemas, false
7775
},
7876
{
79-
PCMK__CIB_REQUEST_SECONDARY, cib__op_secondary, cib__op_attr_none
77+
PCMK__CIB_REQUEST_SECONDARY, cib__op_secondary, false
8078
},
8179
{
82-
PCMK__CIB_REQUEST_SHUTDOWN, cib__op_shutdown, cib__op_attr_none
80+
PCMK__CIB_REQUEST_SHUTDOWN, cib__op_shutdown, false
8381
},
8482
{
85-
PCMK__CIB_REQUEST_SYNC, cib__op_sync, cib__op_attr_none
83+
PCMK__CIB_REQUEST_SYNC, cib__op_sync, false
8684
},
8785
{
88-
PCMK__CIB_REQUEST_UPGRADE, cib__op_upgrade, cib__op_attr_modifies
86+
PCMK__CIB_REQUEST_UPGRADE, cib__op_upgrade, true
8987
},
9088
};
9189

0 commit comments

Comments
 (0)