This set implements two new APIs, virDomainAttachDeviceFlags and virDomainDetachDeviceFlags as discussed here https://www.redhat.com/archives/libvir-list/2009-December/msg00124.html Introduce two new APIs virDomainAttachDeviceFlags(virDomainPtr dom, const char *xml, unsigned flags) virDomainDetachDeviceFlags(virDomainPtr dom, const char *xml, unsigned flags) with flags being one or more from VIR_DOMAIN_DEVICE_MODIFY_CURRENT, VIR_DOMAIN_DEVICE_MODIFY_LIVE, VIR_DOMAIN_DEVICE_MODIFY_CONFIG. If caller specifies CURRENT (default), add or remove the device depending on the current state of domain. E.g. if domain is active add or remove the device to/from live domain, if it is inactive change the persistent config. If caller specifies LIVE, only change the active domain. If caller specifies CONFIG, only change persistent config - even if the domain is active. If caller specifies both LIVE and CONFIG, then change both. If a driver can not satisfy the exact requested flags it must return an error. E.g if user specified LIVE but the driver can only change live and persisted config, the driver must fail the request. The existing virDomain{Attach,Detach}Device is now explicitly restricted to active domains and is equivalent to virDomain{Attach,Detach}DeviceFlags(LIVE). Finally, virsh {attach,detach}-{disk,interface,device} has been modified to add a --persistent flag in order to set the appropriate flags when calling the new APIs. Jim Fehlig (9): Restrict virDomain{Attach,Detach}Device to active domains Public API Internal API Public API Implementation Wire protocol format Remote driver Server side dispatcher domain{Attach,Detach}DeviceFlags handler for drivers Modify virsh commands daemon/remote.c | 53 ++++++++++++++++++ include/libvirt/libvirt.h.in | 13 +++++ src/driver.h | 10 ++++ src/esx/esx_driver.c | 2 + src/libvirt.c | 120 ++++++++++++++++++++++++++++++++++++++---- src/libvirt_public.syms | 6 ++ src/lxc/lxc_driver.c | 2 + src/opennebula/one_driver.c | 2 + src/openvz/openvz_driver.c | 2 + src/phyp/phyp_driver.c | 2 + src/qemu/qemu_driver.c | 26 +++++++++ src/remote/remote_driver.c | 54 +++++++++++++++++++ src/remote/remote_protocol.x | 17 ++++++- src/test/test_driver.c | 2 + src/uml/uml_driver.c | 2 + src/vbox/vbox_tmpl.c | 24 ++++++++ src/xen/proxy_internal.c | 4 +- src/xen/xen_driver.c | 42 +++++++++++++-- src/xen/xen_driver.h | 4 +- src/xen/xen_hypervisor.c | 4 +- src/xen/xen_inotify.c | 4 +- src/xen/xend_internal.c | 98 ++++++++++++++++++++++++++++------ src/xen/xm_internal.c | 30 +++++++---- src/xen/xs_internal.c | 4 +- tools/virsh.c | 55 +++++++++++++++++-- 25 files changed, 523 insertions(+), 59 deletions(-) -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list