[libvirt] [PATCH 1/6] Introduce a new virDomainUpdateDeviceFlags public API

Daniel Veillard veillard at redhat.com
Thu Mar 25 10:35:04 UTC 2010


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 at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list