2019-04-12 12:41:10 +00:00
|
|
|
# vim: filetype=automake
|
|
|
|
|
2018-02-23 16:33:19 +00:00
|
|
|
NETDEV_CONF_SOURCES = \
|
|
|
|
conf/netdev_bandwidth_conf.h \
|
|
|
|
conf/netdev_bandwidth_conf.c \
|
|
|
|
conf/netdev_vport_profile_conf.h \
|
|
|
|
conf/netdev_vport_profile_conf.c \
|
|
|
|
conf/netdev_vlan_conf.h \
|
|
|
|
conf/netdev_vlan_conf.c \
|
2018-08-31 14:21:34 +00:00
|
|
|
conf/virnetworkportdef.h \
|
|
|
|
conf/virnetworkportdef.c \
|
2018-02-23 16:33:19 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
DOMAIN_CONF_SOURCES = \
|
2019-08-22 01:42:44 +00:00
|
|
|
conf/backup_conf.c \
|
|
|
|
conf/backup_conf.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/capabilities.c \
|
|
|
|
conf/capabilities.h \
|
backup: Parse and output checkpoint XML
Add a new file checkpoint_conf.c that performs the translation to and
from new XML describing a checkpoint. The code shares a common base
class with snapshots, since a checkpoint similarly represents the
domain state at a moment in time. Add some basic testing of round trip
XML handling through the new code.
Of note - this code intentionally differs from snapshots in that XML
schema validation is unconditional, rather than based on a public API
flag. We have many existing interfaces that still need to add a flag
for opt-in schema validation, but those interfaces have existing
clients that may not have been producing strictly-compliant XML, or we
may still uncover bugs where our RNG grammar is inconsistent with our
code (where omitting the opt-in flag allows existing apps to keep
working while waiting for an RNG patch). But since checkpoints are
brand-new, it's easier to ensure the code matches the schema by always
using the schema. If needed, a later patch could extend the API and
add a flag to turn on to request schema validation, rather than having
it forced (possibly just the validation of the <domain> sub-element
during REDEFINE) - but if a user encounters XML that looks like it
should be good but fails to validate with our RNG schema, they would
either have to upgrade to a new libvirt that adds the new flag, or
upgrade to a new libvirt that fixes the RNG schema, which implies
adding such a flag won't help much.
Also, the redefine flag requires the <domain> sub-element to be
present, rather than catering to historical back-compat to older
versions.
Signed-off-by: Eric Blake <eblake@redhat.com>
2018-07-08 02:01:14 +00:00
|
|
|
conf/checkpoint_conf.c \
|
|
|
|
conf/checkpoint_conf.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/domain_addr.c \
|
|
|
|
conf/domain_addr.h \
|
|
|
|
conf/domain_capabilities.c \
|
|
|
|
conf/domain_capabilities.h \
|
|
|
|
conf/domain_conf.c \
|
|
|
|
conf/domain_conf.h \
|
|
|
|
conf/domain_audit.c \
|
|
|
|
conf/domain_audit.h \
|
|
|
|
conf/domain_nwfilter.c \
|
|
|
|
conf/domain_nwfilter.h \
|
|
|
|
conf/virsavecookie.c \
|
|
|
|
conf/virsavecookie.h \
|
2019-03-22 02:02:19 +00:00
|
|
|
conf/moment_conf.c \
|
|
|
|
conf/moment_conf.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/snapshot_conf.c \
|
|
|
|
conf/snapshot_conf.h \
|
2018-09-04 13:42:42 +00:00
|
|
|
conf/snapshot_conf_priv.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/numa_conf.c \
|
|
|
|
conf/numa_conf.h \
|
conf: Split domain forward typedefs into virconftypes.h
Right now, snapshot_conf.h is rather large - it deals with three
separate types: virDomainSnapshotDef (the snapshot definition as it
maps to XML), virDomainSnapshotObj (an object containing a def and the
relationship to other snapshots), and virDomainSnapshotObjList (a list
of snapshot objects), where two of the three types are currently
public rather than opaque. What's more, the types are circular: a
snapshot def includes a virDomainPtr, which contains a snapshot list,
which includes a snapshot object, which includes a snapshot def.
In order to split the three objects into separate files, while still
allowing each header to use sane typedefs to incomplete pointers, the
obvious solution is to lift the typedefs into yet another header, with
no other dependencies. Start the split by factoring out all struct
typedefs from domain_conf.h (enum typedefs don't get used in function
signatures, and function typedefs tend not to suffer from circular
referencing, so those stay put). The only other exception is
virDomainStateReason, which is only ever used directly rather than via
a pointer.
This patch is just straight code motion (all typedefs are listed in
the same order before and after the patch); a later patch will sort
things for legibility.
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
2019-03-15 00:44:34 +00:00
|
|
|
conf/virconftypes.h \
|
backup: Allow for lists of checkpoint objects
Create a new file for managing a list of checkpoint objects, borrowing
heavily from existing virDomainSnapshotObjList paradigms.
Note that while snapshots definitely have a use case for multiple
children to a single parent (create a base snapshot, create a child
snapshot, revert to the base, then create another child snapshot),
it's harder to predict how checkpoints will play out with reverting to
prior points in time. Thus, in initial use, given a list of
checkpoints, you never have more than one child, and we can treat the
most-recent leaf node as the parent of the next node creation, without
having to expose a notion of a current node in XML or public API.
However, as the snapshot machinery is already generic, it is easier to
reuse the generic machinery that tracks relations between domain
moments than it is to open-code a new list-management scheme just for
checkpoints (hence, we still have internal functions related to a
current checkpoint, even though that has no observable effect
externally, as well as the addition of a function to easily find the
lone leaf in the list to use as the current checkpoint).
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-07-19 02:24:54 +00:00
|
|
|
conf/virdomaincheckpointobjlist.c \
|
|
|
|
conf/virdomaincheckpointobjlist.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/virdomainobjlist.c \
|
|
|
|
conf/virdomainobjlist.h \
|
2019-03-22 04:46:26 +00:00
|
|
|
conf/virdomainmomentobjlist.c \
|
|
|
|
conf/virdomainmomentobjlist.h \
|
2019-03-15 02:19:18 +00:00
|
|
|
conf/virdomainsnapshotobjlist.c \
|
|
|
|
conf/virdomainsnapshotobjlist.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
OBJECT_EVENT_SOURCES = \
|
|
|
|
conf/object_event.c \
|
|
|
|
conf/object_event.h \
|
|
|
|
conf/object_event_private.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
DOMAIN_EVENT_SOURCES = \
|
|
|
|
conf/domain_event.c \
|
|
|
|
conf/domain_event.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NETWORK_EVENT_SOURCES = \
|
|
|
|
conf/network_event.c \
|
|
|
|
conf/network_event.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
STORAGE_EVENT_SOURCES = \
|
|
|
|
conf/storage_event.c \
|
|
|
|
conf/storage_event.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NODE_DEVICE_EVENT_SOURCES = \
|
|
|
|
conf/node_device_event.c \
|
|
|
|
conf/node_device_event.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
SECRET_EVENT_SOURCES = \
|
|
|
|
conf/secret_event.c \
|
|
|
|
conf/secret_event.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NETWORK_CONF_SOURCES = \
|
|
|
|
conf/network_conf.c \
|
|
|
|
conf/network_conf.h \
|
|
|
|
conf/virnetworkobj.c \
|
|
|
|
conf/virnetworkobj.h \
|
|
|
|
conf/networkcommon_conf.c \
|
|
|
|
conf/networkcommon_conf.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NWFILTER_PARAM_CONF_SOURCES = \
|
|
|
|
conf/nwfilter_params.c \
|
|
|
|
conf/nwfilter_params.h \
|
|
|
|
conf/nwfilter_ipaddrmap.c \
|
|
|
|
conf/nwfilter_ipaddrmap.h \
|
|
|
|
conf/nwfilter_conf.h \
|
|
|
|
conf/virnwfilterobj.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NWFILTER_CONF_SOURCES = \
|
|
|
|
$(NWFILTER_PARAM_CONF_SOURCES) \
|
|
|
|
conf/nwfilter_conf.c \
|
|
|
|
conf/nwfilter_conf.h \
|
|
|
|
conf/virnwfilterobj.c \
|
|
|
|
conf/virnwfilterobj.h \
|
2018-05-10 13:30:42 +00:00
|
|
|
conf/virnwfilterbindingdef.c \
|
|
|
|
conf/virnwfilterbindingdef.h \
|
2018-05-10 16:21:24 +00:00
|
|
|
conf/virnwfilterbindingobj.c \
|
|
|
|
conf/virnwfilterbindingobj.h \
|
2018-05-10 14:29:46 +00:00
|
|
|
conf/virnwfilterbindingobjlist.c \
|
|
|
|
conf/virnwfilterbindingobjlist.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
STORAGE_CONF_SOURCES = \
|
|
|
|
conf/storage_adapter_conf.h \
|
|
|
|
conf/storage_adapter_conf.c \
|
2019-02-07 17:29:43 +00:00
|
|
|
conf/storage_capabilities.h \
|
|
|
|
conf/storage_capabilities.c \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/storage_conf.h \
|
|
|
|
conf/storage_conf.c \
|
|
|
|
conf/virstorageobj.h \
|
|
|
|
conf/virstorageobj.c \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
INTERFACE_CONF_SOURCES = \
|
|
|
|
conf/interface_conf.c \
|
|
|
|
conf/interface_conf.h \
|
|
|
|
conf/virinterfaceobj.c \
|
|
|
|
conf/virinterfaceobj.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
SECRET_CONF_SOURCES = \
|
|
|
|
conf/secret_conf.h \
|
|
|
|
conf/secret_conf.c \
|
|
|
|
conf/virsecretobj.h \
|
|
|
|
conf/virsecretobj.c \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
NODE_DEVICE_CONF_SOURCES = \
|
|
|
|
conf/node_device_conf.c \
|
|
|
|
conf/node_device_conf.h \
|
2018-09-19 11:34:35 +00:00
|
|
|
conf/node_device_util.c \
|
|
|
|
conf/node_device_util.h \
|
2018-02-23 16:33:19 +00:00
|
|
|
conf/virnodedeviceobj.c \
|
|
|
|
conf/virnodedeviceobj.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
CPU_CONF_SOURCES = \
|
|
|
|
conf/cpu_conf.c \
|
|
|
|
conf/cpu_conf.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
CHRDEV_CONF_SOURCES = \
|
|
|
|
conf/virchrdev.c \
|
|
|
|
conf/virchrdev.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
DEVICE_CONF_SOURCES = \
|
|
|
|
conf/device_conf.c \
|
|
|
|
conf/device_conf.h \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
CONF_SOURCES = \
|
|
|
|
$(NETDEV_CONF_SOURCES) \
|
|
|
|
$(DOMAIN_CONF_SOURCES) \
|
|
|
|
$(OBJECT_EVENT_SOURCES) \
|
|
|
|
$(DOMAIN_EVENT_SOURCES) \
|
|
|
|
$(NETWORK_EVENT_SOURCES) \
|
|
|
|
$(STORAGE_EVENT_SOURCES) \
|
|
|
|
$(NODE_DEVICE_EVENT_SOURCES) \
|
|
|
|
$(SECRET_EVENT_SOURCES) \
|
|
|
|
$(NETWORK_CONF_SOURCES) \
|
|
|
|
$(NWFILTER_CONF_SOURCES) \
|
|
|
|
$(NODE_DEVICE_CONF_SOURCES) \
|
|
|
|
$(STORAGE_CONF_SOURCES) \
|
|
|
|
$(INTERFACE_CONF_SOURCES) \
|
|
|
|
$(SECRET_CONF_SOURCES) \
|
|
|
|
$(CPU_CONF_SOURCES) \
|
|
|
|
$(CHRDEV_CONF_SOURCES) \
|
|
|
|
$(DEVICE_CONF_SOURCES) \
|
|
|
|
$(NULL)
|
|
|
|
|
|
|
|
noinst_LTLIBRARIES += libvirt_conf.la
|
|
|
|
libvirt_la_BUILT_LIBADD += libvirt_conf.la
|
|
|
|
libvirt_conf_la_SOURCES = $(CONF_SOURCES)
|
|
|
|
libvirt_conf_la_CFLAGS = \
|
|
|
|
-I$(srcdir)/conf \
|
|
|
|
$(AM_CFLAGS) \
|
|
|
|
$(NULL)
|
|
|
|
libvirt_conf_la_LDFLAGS = $(AM_LDFLAGS)
|
|
|
|
libvirt_conf_la_LIBADD = $(LIBXML_LIBS)
|