HomeClusterLabs Projects

Refactor: libcib, based: Implement transaction management in client

Description

Refactor: libcib, based: Implement transaction management in client

Implement CIB transaction management (initialize, extend, discard) at
the client side. To keep the size of this commit under control, for now
we continue to manage transactions on the server side as well. The
client does not yet send the transaction XML as part of the commit
request.

In each cib_t client object, store an XML object containing the CIB
transaction (if any). If a newly created request should be part of a
transaction, add it within cib__create_op().

The init_transaction() and end_transaction() (with commit=false) members
of cib_api_operations_t now create and free (respectively) the
cib_t:transaction object.

Ref T690

Signed-off-by: Reid Wahl <nrwahl@protonmail.com>

Details

Provenance
nrwahl2Authored on Jul 31 2023, 5:51 PM
Parents
rP97952dc2d238: API: libcrmcommon: Deprecate crm_xml_replace()
Branches
Unknown
Tags
Unknown
Tasks
Restricted Maniphest Task