[libvirt] [PATCH 1/4] vz: Split logic of prlsdkAddDomain() into two functions
Nikolay Shirokovskiy
nshirokovskiy at virtuozzo.com
Mon Jan 25 10:19:19 UTC 2016
On 23.01.2016 11:42, Mikhail Feoktistov wrote:
> Add two functions
> 1. prlsdkNewDomain() creates new empty domain in domains list with the specific uuid.
> 2. prlsdkSetDomainInstance() add data from VM to domain object.
> ---
> src/vz/vz_sdk.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
> src/vz/vz_sdk.h | 8 ++++++++
> 2 files changed, 57 insertions(+)
>
> diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
> index b78c413..c705517 100644
> --- a/src/vz/vz_sdk.c
> +++ b/src/vz/vz_sdk.c
> @@ -1509,6 +1509,55 @@ prlsdkUpdateDomain(vzConnPtr privconn, virDomainObjPtr dom)
> return retdom ? 0 : -1;
> }
>
> +int
> +prlsdkSetDomainInstance(vzConnPtr privconn, virDomainObjPtr dom, const unsigned char *uuid)
> +{
> + PRL_HANDLE sdkdom = PRL_INVALID_HANDLE;
> + virDomainObjPtr retdom;
> +
> + sdkdom = prlsdkSdkDomainLookupByUUID(privconn, uuid);
> + if (sdkdom == PRL_INVALID_HANDLE)
> + return -1;
> +
> + retdom = prlsdkLoadDomain(privconn, sdkdom, dom);
> + PrlHandle_Free(sdkdom);
> + return retdom ? 0 : -1;
> +}
I suggest name it prlsdkLoadDomainUUID where use pass uuid instead of handle.
Another option is to just inline it. We use it only once.
> +
> +virDomainObjPtr
> +prlsdkNewDomain(vzConnPtr privconn, char *name, const unsigned char *uuid)
> +{
> + virDomainDefPtr def = NULL;
> + virDomainObjPtr dom = NULL;
> + vzDomObjPtr pdom = NULL;
> +
> + if (!(def = virDomainDefNewFull(name, uuid, -1)))
> + goto error;
> +
> + if (VIR_ALLOC(pdom) < 0)
> + goto error;
> +
> + if (STREQ(privconn->drivername, "vz"))
> + def->virtType = VIR_DOMAIN_VIRT_VZ;
> + else
> + def->virtType = VIR_DOMAIN_VIRT_PARALLELS;
> +
> + if (!(dom = virDomainObjListAdd(privconn->domains, def,
> + privconn->xmlopt,
> + 0, NULL)))
> + goto error;
> +
> + dom->privateData = pdom;
> + dom->privateDataFreeFunc = prlsdkDomObjFreePrivate;
> + dom->persistent = 1;
> + return dom;
> +
> + error:
> + virDomainDefFree(def);
> + VIR_FREE(pdom);
> + return NULL;
> +}
> +
> static int prlsdkSendEvent(vzConnPtr privconn,
> virDomainObjPtr dom,
> virDomainEventType lvEventType,
> diff --git a/src/vz/vz_sdk.h b/src/vz/vz_sdk.h
> index ff6be07..060635e 100644
> --- a/src/vz/vz_sdk.h
> +++ b/src/vz/vz_sdk.h
> @@ -32,6 +32,14 @@ int
> prlsdkLoadDomains(vzConnPtr privconn);
> virDomainObjPtr
> prlsdkAddDomain(vzConnPtr privconn, const unsigned char *uuid);
> +virDomainObjPtr
> +prlsdkNewDomain(vzConnPtr privconn,
> + char *name,
> + const unsigned char *uuid);
> +int
> +prlsdkSetDomainInstance(vzConnPtr privconn,
> + virDomainObjPtr dom,
> + const unsigned char *uuid);
> int prlsdkUpdateDomain(vzConnPtr privconn, virDomainObjPtr dom);
> int prlsdkSubscribeToPCSEvents(vzConnPtr privconn);
> void prlsdkUnsubscribeFromPCSEvents(vzConnPtr privconn);
>
More information about the libvir-list
mailing list