[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 2/4] api: Add api to set domain note and description in runtime



On 01/13/2012 11:17 AM, Peter Krempa wrote:
> The <description> element was accessible only throught the XML, that

s/throught/through/

> makes it hard to work with. Atomic operations and modification of the
> live domain are impossible. This patch adds a function to the public API
> to set arbitrary descriptions for live and persistent domains.

Do we want a counterpart getter function, or is dumpxml and XPath
filtering good enough?

> +++ b/include/libvirt/libvirt.h.in
> @@ -1405,6 +1405,21 @@ int                     virDomainGetMaxVcpus    (virDomainPtr domain);
>  int                     virDomainGetSecurityLabel (virDomainPtr domain,
>                                                     virSecurityLabelPtr seclabel);
> 
> +typedef enum {
> +    /* See virDomainModificationImpact for these flags.  */
> +    VIR_DOMAIN_DESCRIPTION_CURRENT = VIR_DOMAIN_AFFECT_CURRENT,
> +    VIR_DOMAIN_DESCRIPTION_LIVE    = VIR_DOMAIN_AFFECT_LIVE,
> +    VIR_DOMAIN_DESCRIPTION_CONFIG  = VIR_DOMAIN_AFFECT_CONFIG,

I'm not sure whether we need to create these new aliases, or just state
that @flags is a mix of virDomainModificationImpact and
virDomainDescriptionFlags, and leave a comment here stating why bits 0
and 1 are reserved.

> +    /* Additionaly, these flags may be bitwise-OR'd in. */

s/Additionaly/Additionally/

> +++ b/src/libvirt.c
> @@ -8746,6 +8746,53 @@ error:
>  }
> 
>  /**
> + * virDomainSetDescription:
> + * @domain: a domain object
> + * @description: new description text
> + * @flags: bitwise-OR of virDomainDescriptionFlags
> + *
> + * Sets the domain description field or note field depending on the flags
> + * parameter.
> + *
> + * Returns 0 on success, -1 in case of failure;

Looks reasonable.

> + */
> +int
> +virDomainSetDescription(virDomainPtr domain,
> +                        const char *description,
> +                        unsigned int flags)
> +{
> +    virConnectPtr conn;
> +
> +    VIR_DOMAIN_DEBUG(domain, "description=%p, flags=%x", description, flags);
> +
> +    if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
> +        virLibDomainError(VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
> +        goto error;
> +    }

You need to reject this operation on a read-only connection.

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]