[libvirt] [PATCH v2 2/2] vz: factor out config update flags checks

Dmitry Guryanov dguryanov at virtuozzo.com
Wed Nov 11 09:41:08 UTC 2015


On Wed, 2015-11-11 at 10:11 +0300, Nikolay Shirokovskiy wrote:
> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
> ---
>  src/vz/vz_driver.c |   86 +++++++++++++++++----------------------------------
>  1 files changed, 29 insertions(+), 57 deletions(-)
> 
> diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
> index 7a4d431..3392dc3 100644
> --- a/src/vz/vz_driver.c
> +++ b/src/vz/vz_driver.c
> @@ -1032,6 +1032,32 @@ vzDomainManagedSaveRemove(virDomainPtr domain, unsigned
> int flags)
>      return ret;
>  }
>  
> +int vzCheckConfigUpdateFlags(virDomainObjPtr dom, unsigned int flags)
> +{
> +    if (!(flags & VIR_DOMAIN_AFFECT_CONFIG)) {
> +        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                       _("domain config update needs VIR_DOMAIN_AFFECT_CONFIG
> "
> +                         "flag to be set"));
> +        return -1;
> +    }
> +
> +    if (!virDomainObjIsActive(dom) && (flags & VIR_DOMAIN_AFFECT_LIVE)) {
> +        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                       _("cannot do live update domain config on "
> +                         "inactive domain"));
> +        return -1;
> +    }
> +
> +    if (virDomainObjIsActive(dom) && !(flags & VIR_DOMAIN_AFFECT_LIVE)) {
> +        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> +                       _("Updates on a running domain need "
> +                         "VIR_DOMAIN_AFFECT_LIVE flag"));
> +        return -1;
> +    }
> +
> +    return 0;
> +}
> +


There is a compilation error now:

  CC       vz/libvirt_driver_vz_la-vz_driver.lo
vz/vz_driver.c:1035:5: error: no previous prototype for
'vzCheckConfigUpdateFlags' [-Werror=missing-prototypes]
 int vzCheckConfigUpdateFlags(virDomainObjPtr dom, unsigned int flags)





>  static int vzDomainAttachDeviceFlags(virDomainPtr dom, const char *xml,
>                                       unsigned int flags)
>  {
> @@ -1039,7 +1065,6 @@ static int vzDomainAttachDeviceFlags(virDomainPtr dom,
> const char *xml,
>      vzConnPtr privconn = dom->conn->privateData;
>      virDomainDeviceDefPtr dev = NULL;
>      virDomainObjPtr privdom = NULL;
> -    bool domactive = false;
>  
>      virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
>                    VIR_DOMAIN_AFFECT_CONFIG, -1);
> @@ -1047,25 +1072,8 @@ static int vzDomainAttachDeviceFlags(virDomainPtr dom,
> const char *xml,
>      if (!(privdom = vzDomObjFromDomain(dom)))
>          return -1;
>  
> -    if (!(flags & VIR_DOMAIN_AFFECT_CONFIG)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("device attach needs VIR_DOMAIN_AFFECT_CONFIG "
> -                         "flag to be set"));
> +    if (vzCheckConfigUpdateFlags(privdom, flags) < 0)
>          goto cleanup;
> -    }
> -
> -    domactive = virDomainObjIsActive(privdom);
> -    if (!domactive && (flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("cannot do live update a device on "
> -                         "inactive domain"));
> -        goto cleanup;
> -    }
> -    if (domactive && !(flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("Updates on a running domain need "
> -                         "VIR_DOMAIN_AFFECT_LIVE flag"));
> -    }
>  
>      dev = virDomainDeviceDefParse(xml, privdom->def, privconn->caps,
>                                    privconn->xmlopt, VIR_DOMAIN_XML_INACTIVE);
> @@ -1115,7 +1123,6 @@ static int vzDomainDetachDeviceFlags(virDomainPtr dom,
> const char *xml,
>      vzConnPtr privconn = dom->conn->privateData;
>      virDomainDeviceDefPtr dev = NULL;
>      virDomainObjPtr privdom = NULL;
> -    bool domactive = false;
>  
>      virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
>                    VIR_DOMAIN_AFFECT_CONFIG, -1);
> @@ -1124,25 +1131,8 @@ static int vzDomainDetachDeviceFlags(virDomainPtr dom,
> const char *xml,
>      if (privdom == NULL)
>          return -1;
>  
> -    if (!(flags & VIR_DOMAIN_AFFECT_CONFIG)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("device detach needs VIR_DOMAIN_AFFECT_CONFIG "
> -                         "flag to be set"));
> +    if (vzCheckConfigUpdateFlags(privdom, flags) < 0)
>          goto cleanup;
> -    }
> -
> -    domactive = virDomainObjIsActive(privdom);
> -    if (!domactive && (flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("cannot do live update a device on "
> -                         "inactive domain"));
> -        goto cleanup;
> -    }
> -    if (domactive && !(flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("Updates on a running domain need "
> -                         "VIR_DOMAIN_AFFECT_LIVE flag"));
> -    }
>  
>      dev = virDomainDeviceDefParse(xml, privdom->def, privconn->caps,
>                                    privconn->xmlopt, VIR_DOMAIN_XML_INACTIVE);
> @@ -1468,26 +1458,8 @@ static int vzDomainSetMemoryFlags(virDomainPtr domain,
> unsigned long memory,
>      if (!(dom = vzDomObjFromDomain(domain)))
>          return -1;
>  
> -    if (!(flags & VIR_DOMAIN_AFFECT_CONFIG)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("domain config update needs VIR_DOMAIN_AFFECT_CONFIG
> "
> -                         "flag to be set"));
> -        goto cleanup;
> -    }
> -
> -    if (!virDomainObjIsActive(dom) && (flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("cannot do live update domain config on "
> -                         "inactive domain"));
> -        goto cleanup;
> -    }
> -
> -    if (virDomainObjIsActive(dom) && !(flags & VIR_DOMAIN_AFFECT_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("updates on a running domain need "
> -                         "VIR_DOMAIN_AFFECT_LIVE flag"));
> +    if (vzCheckConfigUpdateFlags(dom, flags) < 0)
>          goto cleanup;
> -    }
>  
>      ret = vzDomainSetMemoryDefault(dom, memory);
>  
-- 
Dmitry Guryanov




More information about the libvir-list mailing list