On Wed, Mar 24, 2010 at 11:46:22AM +0000, Daniel P. Berrange wrote: > The current virDomainAttachDevice API can be (ab)used to change > the media of an existing CDROM/Floppy device. Going forward there > will be more devices that can be configured on the fly and overloading > virDomainAttachDevice for this is not too pleasant. This patch adds > a new virDomainUpdateDeviceFlags() explicitly just for modifying > existing devices. > > * include/libvirt/libvirt.h.in: Add virDomainUpdateDeviceFlags > * src/driver.h: Internal API for virDomainUpdateDeviceFlags > * src/libvirt.c, src/libvirt_public.syms: Glue public API to > driver API > * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c, > src/openvz/openvz_driver.c, src/phyp/phyp_driver.c, src/qemu/qemu_driver.c, > src/remote/remote_driver.c, src/test/test_driver.c, src/uml/uml_driver.c, > src/vbox/vbox_tmpl.c, src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Add > stubs for new driver entry point [...] > diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in > index aaefa09..e71a30c 100644 > --- a/include/libvirt/libvirt.h.in > +++ b/include/libvirt/libvirt.h.in > @@ -878,6 +878,8 @@ int virDomainAttachDeviceFlags(virDomainPtr domain, > const char *xml, unsigned int flags); > int virDomainDetachDeviceFlags(virDomainPtr domain, > const char *xml, unsigned int flags); > +int virDomainUpdateDeviceFlags(virDomainPtr domain, > + const char *xml, unsigned int flags); > > /* > * NUMA support [...] > /** > + * virDomainUpdateDeviceFlags: > + * @domain: pointer to domain object > + * @xml: pointer to XML description of one device > + * @flags: an OR'ed set of virDomainDeviceModifyFlags > + * > + * Change a virtual device on a domain, using the flags parameter > + * to control how the device is changed. VIR_DOMAIN_DEVICE_MODIFY_CURRENT > + * specifies that the device change is made based on current domain > + * state. VIR_DOMAIN_DEVICE_MODIFY_LIVE specifies that the device shall be > + * changed on the active domain instance only and is not added to the > + * persisted domain configuration. VIR_DOMAIN_DEVICE_MODIFY_CONFIG > + * specifies that the device shall be changed on the persisted domain > + * configuration only. Note that the target hypervisor must return an > + * error if unable to satisfy flags. E.g. the hypervisor driver will > + * return failure if LIVE is specified but it only supports modifying the > + * persisted device allocation. > + * > + * This method is used for actions such changing CDROM/Floppy device > + * media, altering the graphics configuration such as password, > + * reconfiguring the NIC device backend connectivity, etc. > + * > + * Returns 0 in case of success, -1 in case of failure. > + */ > +int > +virDomainUpdateDeviceFlags(virDomainPtr domain, > + const char *xml, unsigned int flags) ACK, API looks fine, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list