This series implements the driver XML parsing callbacks as Dan suggested. This series may appear to be monstrous but I chose to split some patches to separate ones although the code does not compile afterwards to ease review. !! READ THIS: !! !! The patches starting with the word "fix" will need to be squashed into the !! non "fix" patches predceeding them otherwise it will not compile cleanly. This new version fixes the review comments by Dan, Michal and Laine. There's still outstanding work to do to get rid of all the irrelevant data from virCaps, but I'd like to stabilize the design before doing so. In this series the callback now supports passing opaque data to the callback functions and it's demonstrated in "virCaps: get rid of defaultDiskDriverName". There's also a patch demonstrating doing check that is not covered by the XML schema and thus shouldn't be part of the parser, but is docummented for all drivers and thus should be enforced. This demonstrates the use of the verification function. Peter Krempa (27): virCaps: conf: start splitting out irrelevat data fix fallout in src/conf/ fix fallout in src/esx fix fallout in src/lxc fix fallout in src/openvz fix fallout in src/parallels fix fallout in phyp driver fix fallout in src/qemu/ fix fallout in tests/ fix fallout in src/xen fix fallout in src/vmware fix fallout in src/uml fix fallout in test driver fix fallout in vbox driver fix fallout in aahelper code fix fallout in src/libxl fix fallout in src/xenapi fix fallout in selinux test conf: Add separate defaults addition and validation for XML parsing fix fallout from adding new parameter to internal APIs conf: Add argument to support use of the driver adjust callbacks qemu: Record the default NIC model in the domain XML fix fallout of the change of the network device default virCaps: get rid of "defaultInitPath" value in the virCaps struct virCaps: get rid of defaultDiskDriverName virCaps: get rid of emulatorRequired conf: Enforce ranges on cputune variables src/Makefile.am | 1 + src/conf/capabilities.c | 10 - src/conf/capabilities.h | 17 +- src/conf/domain_conf.c | 387 +++++++++++++++++---- src/conf/domain_conf.h | 71 +++- src/conf/snapshot_conf.c | 3 +- src/conf/snapshot_conf.h | 1 + src/esx/esx_driver.c | 14 +- src/esx/esx_private.h | 2 + src/libvirt_private.syms | 5 +- src/libxl/libxl_conf.h | 1 + src/libxl/libxl_driver.c | 57 +-- src/lxc/lxc_conf.c | 13 +- src/lxc/lxc_conf.h | 2 + src/lxc/lxc_controller.c | 7 +- src/lxc/lxc_domain.c | 26 +- src/lxc/lxc_domain.h | 3 +- src/lxc/lxc_driver.c | 49 +-- src/lxc/lxc_process.c | 9 +- src/openvz/openvz_conf.c | 5 +- src/openvz/openvz_conf.h | 1 + src/openvz/openvz_driver.c | 45 ++- src/parallels/parallels_driver.c | 12 +- src/parallels/parallels_utils.h | 1 + src/phyp/phyp_driver.c | 12 +- src/phyp/phyp_driver.h | 1 + src/qemu/qemu_capabilities.c | 3 - src/qemu/qemu_command.c | 9 +- src/qemu/qemu_command.h | 3 + src/qemu/qemu_conf.c | 14 +- src/qemu/qemu_conf.h | 5 + src/qemu/qemu_domain.c | 108 ++++-- src/qemu/qemu_domain.h | 7 +- src/qemu/qemu_driver.c | 134 ++++--- src/qemu/qemu_migration.c | 22 +- src/qemu/qemu_process.c | 109 +----- src/security/virt-aa-helper.c | 10 +- src/test/test_driver.c | 61 +++- src/uml/uml_conf.h | 1 + src/uml/uml_driver.c | 32 +- src/vbox/vbox_tmpl.c | 27 +- src/vmware/vmware_conf.c | 3 +- src/vmware/vmware_conf.h | 1 + src/vmware/vmware_driver.c | 25 +- src/xen/xen_driver.c | 8 +- src/xen/xen_driver.h | 1 + src/xen/xend_internal.c | 14 +- src/xen/xm_internal.c | 4 +- src/xenapi/xenapi_driver.c | 34 +- src/xenapi/xenapi_driver_private.h | 1 + tests/domainsnapshotxml2xmltest.c | 5 + tests/lxcxml2xmldata/lxc-hostdev.xml | 1 + tests/lxcxml2xmldata/lxc-systemd.xml | 1 + tests/lxcxml2xmltest.c | 7 +- tests/qemuargv2xmltest.c | 8 +- tests/qemumonitorjsontest.c | 29 +- tests/qemumonitortestutils.c | 4 +- tests/qemumonitortestutils.h | 5 +- .../qemuxml2argv-net-bandwidth.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-net-client.args | 4 +- .../qemuxml2argv-net-eth-ifname.args | 4 +- .../qemuxml2argv-net-eth-ifname.xml | 1 + .../qemuxml2argv-net-eth-names.args | 8 +- tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 4 +- tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-net-hostdev.xml | 1 + tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 4 +- .../qemuxml2argv-net-openvswitch.xml | 1 + .../qemuxml2argvdata/qemuxml2argv-net-server.args | 4 +- tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 3 +- tests/qemuxml2argvdata/qemuxml2argv-net-user.xml | 1 + .../qemuxml2argv-net-virtio-network-portgroup.xml | 2 + tests/qemuxml2argvtest.c | 5 +- .../qemuxml2xmlout-graphics-spice-timeout.xml | 1 + tests/qemuxml2xmltest.c | 6 +- tests/qemuxmlnstest.c | 5 +- tests/securityselinuxlabeltest.c | 6 +- tests/testutilsqemu.c | 3 +- tests/testutilsqemu.h | 2 + tests/testutilsxen.c | 6 + tests/testutilsxen.h | 2 + tests/xmconfigtest.c | 8 +- tests/xml2sexprtest.c | 8 +- tests/xml2vmxtest.c | 8 +- 84 files changed, 1034 insertions(+), 516 deletions(-) -- 1.8.1.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list