A while ago I've invented this vshCompleteXMLFromDomain() function to increase
device-detach intelligence. Basically, it took user's XML and tried to find
matching device in domain's XML. However, it was kind of buggy - finding the
matching device uses string comparison. This works on text values. It doesn't
on integer ones (who would expect that). So prior the lookup process, we need
to normalize the integer values (and whole XML). However, this can't be done on
the client side, since he has no knowledge which values are integer and which
are not. Therefore we need a new API.
Michal Privoznik (8):
domain_conf: Introduce virDomainDeviceDefFormat
Introduce new virDomainNormalizeXML API
remote_driver: Implement virDomainNormalizeXML
virsh: Expose virDomainNormalizeXML
qemu: Implement vimDomainNormalizeXML
domain_conf: Move MAC generation to post parse callback
virDomainDeviceDefParse: Make PostParse callback call optional
virsh: Resurrect vshCompleteXMLFromDomain
daemon/remote.c | 50 ++++++++
include/libvirt/libvirt.h.in | 5 +
python/generator.py | 1 +
python/libvirt-override-api.xml | 7 ++
python/libvirt-override.c | 30 +++++
src/conf/domain_conf.c | 180 ++++++++++++++++-------------
src/conf/domain_conf.h | 7 +-
src/driver.h | 7 ++
src/libvirt.c | 51 ++++++++
src/libvirt_private.syms | 1 +
src/libvirt_public.syms | 5 +
src/libxl/libxl_driver.c | 12 +-
src/lxc/lxc_driver.c | 6 +-
src/openvz/openvz_conf.c | 1 +
src/openvz/openvz_driver.c | 12 +-
src/phyp/phyp_driver.c | 2 +-
src/qemu/qemu_command.c | 7 +-
src/qemu/qemu_driver.c | 51 +++++++-
src/remote/remote_driver.c | 40 +++++++
src/remote/remote_protocol.x | 20 +++-
src/uml/uml_driver.c | 4 +-
src/vbox/vbox_tmpl.c | 5 +-
src/vmx/vmx.c | 2 +
src/xen/xend_internal.c | 6 +-
src/xen/xm_internal.c | 8 +-
src/xenapi/xenapi_driver.c | 1 +
src/xenxs/xen_sxpr.c | 1 +
src/xenxs/xen_xm.c | 1 +
tests/openvzutilstest.c | 1 -
tests/qemuhotplugtest.c | 3 +-
tools/virsh-domain.c | 249 +++++++++++++++++++++++++++++++++++++++-
tools/virsh.pod | 8 ++
32 files changed, 666 insertions(+), 118 deletions(-)
--
1.8.1.5