[libvirt] [PATCH 1/3] vz: implement connectGetType and connectGetMaxVcpus API calls

Dmitry Guryanov dguryanov at virtuozzo.com
Wed Oct 14 15:28:43 UTC 2015


On 10/14/2015 12:50 PM, Maxim Nestratov wrote:
> From: Maxim Nestratov <mnestratov at virtuozzo.com>
>
> As a connection type we report 'vz'.
> And because we have no limitation for maximal number of vcpus in containers
> we report as maximum 1028 just for the sake of common sence.
>
> Signed-off-by: Maxim Nestratov <mnestratov at virtuozzo.com>
> ---
>   src/vz/vz_driver.c |   19 +++++++++++++++++++
>   1 files changed, 19 insertions(+), 0 deletions(-)
>
> diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
> index 15dc70f..3cd6096 100644
> --- a/src/vz/vz_driver.c
> +++ b/src/vz/vz_driver.c
> @@ -1337,12 +1337,31 @@ vzDomainMemoryStats(virDomainPtr domain,
>       return ret;
>   }
>   
> +static int vzConnectGetMaxVcpus(virConnectPtr conn ATTRIBUTE_UNUSED,
> +                                const char *type)
> +{
> +    /* As far as we have no limitation for containers
> +     * we report maximum */
What about VMs?
> +    if (type == NULL || STRCASEEQ(type, "vz"))
What about parallels virt type?

> +        return 1028;
> +
Why not 1024?

> +    virReportError(VIR_ERR_INVALID_ARG,
> +                   _("unknown type '%s'"), type);
> +    return -1;
> +}
> +
> +static const char *vzConnectGetType(virConnectPtr conn ATTRIBUTE_UNUSED) {
> +    return "vz";
> +}
> +

Is this function really needed? virConnectGetType returns driver name if 
it's not
implemented in the driver, exactly what are you doing.

const char *
virConnectGetType(virConnectPtr conn)
{
     const char *ret;
     VIR_DEBUG("conn=%p", conn);

     virResetLastError();

     virCheckConnectReturn(conn, NULL);

     if (conn->driver->connectGetType) {
         ret = conn->driver->connectGetType(conn);
         if (ret) return ret;
     }
     return conn->driver->name;
}

>   static virHypervisorDriver vzDriver = {
>       .name = "vz",
>       .connectOpen = vzConnectOpen,            /* 0.10.0 */
>       .connectClose = vzConnectClose,          /* 0.10.0 */
>       .connectGetVersion = vzConnectGetVersion,   /* 0.10.0 */
>       .connectGetHostname = vzConnectGetHostname,      /* 0.10.0 */
> +    .connectGetType = vzConnectGetType,        /* 1.2.21 */
> +    .connectGetMaxVcpus = vzConnectGetMaxVcpus, /* 1.2.21 */
>       .nodeGetInfo = vzNodeGetInfo,      /* 0.10.0 */
>       .connectGetCapabilities = vzConnectGetCapabilities,      /* 0.10.0 */
>       .connectBaselineCPU = vzConnectBaselineCPU, /* 1.2.6 */




More information about the libvir-list mailing list