Simplify parsing and formatting of virStorageSource into/from XML. This
series contains the refactors which unify the various parsers into one
with a neat cleanup.
The plan is to reuse the parser for parsing job backing chains when the
disk frontend will be unplugged by the guest so that we don't lose track
of the backing chain members.
This series adds support for backing chain of the <mirror> subelement
which has a similar reason. If we open a user-formatted file
(--reuse-external) and do a shallow copy into it we will need to keep
around the backing chain for that as well. It feels fitting to format
the backing chain under <mirror> as it might become the disk source
later.
Peter Krempa (34):
conf: Invert 'skipSeclabels' argument of
virDomainDiskSourceFormatInternal
conf: Move formatting of 'index' and 'startupPolicy' for
virStorageSource
conf: Introduce virDomainStorageSourceFormatFull
qemu: domain: Replace qemuDomainObjPrivateXMLFormatNBDMigrationSource
conf: Unexport virDomainStorageSourceFormat
conf: domain: Merge virDomainDiskSourceFormatInternal into the wrapper
conf: Simplify control flow in virDomainDiskSourceFormat
conf: Avoid temporary variable in virDomainDiskBackingStoreFormat
conf: Use virXMLFormatElement in virDomainDiskBackingStoreFormat
conf: Move virDomainDiskBackingStoreFormat up to avoid forward
declarations
conf: Move backingStore formating into virDomainDiskSourceFormat
conf: Add possibility to format full chain with
virDomainStorageSourceFormatFull
conf: Simplify error paths in storage source component parsers
cleanup error path in virDomainStorageSourceParse
util: xml: Introduce VIR_AUTOPTR functions for xmlDoc and
xmlXPathContext
tests: Use full force of our VIR_AUTO* machinery in
testBackingXMLjsonXML
tests: Refactor control flow in testBackingXMLjsonXML
conf: Refactor control flow in virDomainDiskBackingStoreParse
conf: Fold private data parsing into virDomainStorageSourceParse
conf: Introduce modular parser for virStorageSource
qemu: Use virDomainStorageSourceParseFull when parsing NBD migration
data
conf: Unexport virDomainStorageSourceParse
tests: qemublock: Use new source formatter and parser in
testBackingXMLjsonXML
conf: snapshot: Use virDomainStorageSourceParseFull for snapshots
conf: Replace virDomainDiskSourceParse by virDomainStorageSourceParse
conf: Use virDomainStorageSourceParseFull in
virDomainDiskBackingStoreParse
conf: Use virDomainStorageSourceParseFull to parse disk source in
virDomainDiskDefParseXML
conf: Use virDomainStorageSourceParseFull in
virDomainDiskDefMirrorParse
conf: Parse <backingStore> in virDomainStorageSourceParseFull
conf: Parse and format 'backingStore' for disk <mirror>
conf: Add 'index' attribute for <disk><mirror><source>
conf: Format seclabels for <backingStore>
conf: Remove @seclabels from virDomainDiskSourceFormat
conf: Remove @seclabels from virDomainStorageSourceFormat
docs/schemas/domaincommon.rng | 1 +
src/conf/domain_conf.c | 494 ++++++++++--------
src/conf/domain_conf.h | 32 +-
src/conf/snapshot_conf.c | 40 +-
src/libvirt_private.syms | 4 +-
src/qemu/qemu_domain.c | 104 +---
src/util/virxml.h | 3 +
tests/qemublocktest.c | 179 +++----
.../blockjob-mirror-in.xml | 13 +
.../qemuxml2argvdata/disk-backing-chains.xml | 6 +-
tests/qemuxml2argvdata/disk-mirror.xml | 8 +-
.../disk-backing-chains-active.xml | 6 +-
.../disk-backing-chains-inactive.xml | 6 +-
.../qemuxml2xmloutdata/disk-mirror-active.xml | 8 +-
tests/virstoragetest.c | 2 +-
15 files changed, 443 insertions(+), 463 deletions(-)
--
2.20.1