[libvirt] [PATCH 3/3] vz: implement some domain API calls
Dmitry Guryanov
dguryanov at virtuozzo.com
Wed Oct 14 18:00:23 UTC 2015
On 10/14/2015 12:50 PM, Maxim Nestratov wrote:
> From: Maxim Nestratov <mnestratov at virtuozzo.com>
>
> The following functions are implemented:
>
> vzDomainIsUpdated, vzDomainGetVcpusFlags and vzDomainGetMaxVcpus.
>
> Signed-off-by: Maxim Nestratov <mnestratov at virtuozzo.com>
ACK
> ---
> src/vz/vz_driver.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 53 insertions(+), 0 deletions(-)
>
> diff --git a/src/vz/vz_driver.c b/src/vz/vz_driver.c
> index 8a311ed..6557816 100644
> --- a/src/vz/vz_driver.c
> +++ b/src/vz/vz_driver.c
> @@ -1337,6 +1337,56 @@ vzDomainMemoryStats(virDomainPtr domain,
> return ret;
> }
>
> +static int
> +vzDomainGetVcpusFlags(virDomainPtr dom,
> + unsigned int flags)
> +{
> + virDomainObjPtr privdom = NULL;
> + int ret = -1;
> +
> + virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
> + VIR_DOMAIN_AFFECT_CONFIG |
> + VIR_DOMAIN_VCPU_MAXIMUM, -1);
> +
> + if (!(privdom = vzDomObjFromDomain(dom)))
> + goto cleanup;
> +
> + if (flags & VIR_DOMAIN_VCPU_MAXIMUM)
> + ret = privdom->def->maxvcpus;
> + else
> + ret = privdom->def->vcpus;
> +
> + cleanup:
> + if (privdom)
> + virObjectUnlock(privdom);
> +
> + return ret;
> +}
> +
> +static int vzDomainGetMaxVcpus(virDomainPtr dom)
> +{
> + return vzDomainGetVcpusFlags(dom, (VIR_DOMAIN_AFFECT_LIVE |
> + VIR_DOMAIN_VCPU_MAXIMUM));
> +}
> +
> +static int vzDomainIsUpdated(virDomainPtr dom)
> +{
> + virDomainObjPtr privdom;
> + int ret = -1;
> +
> + /* As far as VZ domains are always updated (e.g. current==persistent),
> + * we just check for domain existence */
> + if (!(privdom = vzDomObjFromDomain(dom)))
> + goto cleanup;
> +
> + ret = 0;
> +
> + cleanup:
> + if (privdom)
> + virObjectUnlock(privdom);
> + return ret;
> +}
> +
> static int vzConnectGetMaxVcpus(virConnectPtr conn ATTRIBUTE_UNUSED,
> const char *type)
> {
> @@ -1437,6 +1487,9 @@ static virHypervisorDriver vzDriver = {
> .domainDetachDevice = vzDomainDetachDevice, /* 1.2.15 */
> .domainDetachDeviceFlags = vzDomainDetachDeviceFlags, /* 1.2.15 */
> .domainIsActive = vzDomainIsActive, /* 1.2.10 */
> + .domainIsUpdated = vzDomainIsUpdated, /* 1.2.21 */
> + .domainGetVcpusFlags = vzDomainGetVcpusFlags, /* 1.2.21 */
> + .domainGetMaxVcpus = vzDomainGetMaxVcpus, /* 1.2.21 */
> .connectDomainEventRegisterAny = vzConnectDomainEventRegisterAny, /* 1.2.10 */
> .connectDomainEventDeregisterAny = vzConnectDomainEventDeregisterAny, /* 1.2.10 */
> .nodeGetCPUMap = vzNodeGetCPUMap, /* 1.2.8 */
More information about the libvir-list
mailing list