[libvirt] [PATCH 1/2] parallels: add prlsdkDelDisk and prlsdkGetDiskIndex functions
Dmitry Guryanov
dguryanov at parallels.com
Tue Apr 28 16:12:23 UTC 2015
On 04/23/2015 09:37 PM, Maxim Nestratov wrote:
> Signed-off-by: Maxim Nestratov <mnestratov at parallels.com>
> ---
> src/parallels/parallels_sdk.c | 65 +++++++++++++++++++++++++++++++++++++++++
> 1 files changed, 65 insertions(+), 0 deletions(-)
>
> diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
> index d54f894..5e6e21c 100644
> --- a/src/parallels/parallels_sdk.c
> +++ b/src/parallels/parallels_sdk.c
> @@ -2844,6 +2844,25 @@ static void prlsdkDelNet(parallelsConnPtr privconn, virDomainNetDefPtr net)
> PrlHandle_Free(vnet);
> }
>
> +static int prlsdkDelDisk(PRL_HANDLE sdkdom, int idx)
> +{
> + int ret = -1;
> + PRL_RESULT pret;
> + PRL_HANDLE sdkdisk = PRL_INVALID_HANDLE;
> +
> + pret = PrlVmCfg_GetHardDisk(sdkdom, idx, &sdkdisk);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + pret = PrlVmDev_Remove(sdkdisk);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + ret = 0;
> +
> + cleanup:
> + PrlHandle_Free(sdkdisk);
> + return ret;
> +}
> +
> static int prlsdkAddDisk(PRL_HANDLE sdkdom, virDomainDiskDefPtr disk, bool bootDisk)
> {
> PRL_RESULT pret;
> @@ -3042,6 +3061,52 @@ prlsdkAttachVolume(virConnectPtr conn,
> }
>
> static int
> +prlsdkGetDiskIndex(PRL_HANDLE sdkdom, virDomainDiskDefPtr disk)
> +{
> + int idx = -1;
> + char *buf = NULL;
> + PRL_UINT32 buflen = 0;
> + PRL_RESULT pret;
> + PRL_UINT32 hddCount;
> + PRL_UINT32 i;
> + PRL_HANDLE hdd = PRL_INVALID_HANDLE;
> +
> + pret = PrlVmCfg_GetHardDisksCount(sdkdom, &hddCount);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + for (i = 0; i < hddCount; ++i) {
> +
> + pret = PrlVmCfg_GetHardDisk(sdkdom, i, &hdd);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + pret = PrlVmDev_GetFriendlyName(hdd, 0, &buflen);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + if (VIR_ALLOC_N(buf, buflen) < 0)
> + goto cleanup;
> +
> + pret = PrlVmDev_GetFriendlyName(hdd, buf, &buflen);
> + prlsdkCheckRetGoto(pret, cleanup);
> +
> + if (STRNEQ(disk->src->path, buf)) {
> +
> + PrlHandle_Free(hdd);
> + hdd = PRL_INVALID_HANDLE;
> + VIR_FREE(buf);
> + continue;
> + }
> +
> + VIR_FREE(buf);
> + idx = i;
> + break;
> + }
> +
> + cleanup:
> + PrlHandle_Free(hdd);
> + return idx;
> +}
> +
> +static int
> prlsdkAddFS(PRL_HANDLE sdkdom, virDomainFSDefPtr fs)
> {
> PRL_RESULT pret;
Looks good to me, ACKed and pushed, thanks!
More information about the libvir-list
mailing list