[libvirt] [PATCH 1/2] vz: add serial number to disk devices
Maxim Nestratov
mnestratov at virtuozzo.com
Fri Oct 21 08:06:02 UTC 2016
22-Sep-16 17:55, Nikolay Shirokovskiy пишет:
> vz sdk supports setting serial number only for disk devices.
> Getting serial upon cdrom(for example) is error however
> setting is just ignored. Let's check for disk device
> explicitly for clarity in both cases.
>
> Setting serial number for other devices is ignored
> with an info note just as before.
>
> We need usual conversion from "" to NULL in direction
> vz sdk -> libvirt, because "" is not valid for libvirt
> and "" means unspecifiend in vz sdk which is NULL for libvirt.
> ---
> src/vz/vz_sdk.c | 13 +++++++++++++
> src/vz/vz_utils.c | 6 +++---
> 2 files changed, 16 insertions(+), 3 deletions(-)
Hmm. I missed this series and sent mine on the matter yesterday. I see that your patch has some
useful changes regarding CDROM absent in my patch. So I'll merge these two and resend a
new version shortly.
Maxim
> diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
> index f2a5c96..a38f2af 100644
> --- a/src/vz/vz_sdk.c
> +++ b/src/vz/vz_sdk.c
> @@ -639,6 +639,14 @@ prlsdkGetDiskInfo(vzDriverPtr driver,
>
> disk->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
>
> + if (!isCdrom) {
> + if (!(disk->serial = prlsdkGetStringParamVar(PrlVmDevHd_GetSerialNumber, prldisk)))
> + goto cleanup;
> +
> + if (*disk->serial == '\0')
> + VIR_FREE(disk->serial);
> + }
> +
> ret = 0;
>
> cleanup:
> @@ -3492,6 +3500,11 @@ static int prlsdkConfigureDisk(vzDriverPtr driver,
> pret = PrlVmDev_SetStackIndex(sdkdisk, idx);
> prlsdkCheckRetGoto(pret, cleanup);
>
> + if (devType == PDE_HARD_DISK) {
> + pret = PrlVmDevHd_SetSerialNumber(sdkdisk, disk->serial);
> + prlsdkCheckRetGoto(pret, cleanup);
> + }
> +
> return 0;
> cleanup:
> PrlHandle_Free(sdkdisk);
> diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c
> index eaf09f2..81429d2 100644
> --- a/src/vz/vz_utils.c
> +++ b/src/vz/vz_utils.c
> @@ -323,9 +323,9 @@ vzCheckDiskUnsupportedParams(virDomainDiskDefPtr disk)
> return -1;
> }
>
> - if (disk->serial) {
> - VIR_INFO("%s", _("Setting disk serial number is not "
> - "supported by vz driver."));
> + if (disk->serial && disk->device != VIR_DOMAIN_DISK_DEVICE_DISK) {
> + VIR_INFO("%s", _("Setting disk serial number is "
> + "supported only for disk devices."));
> }
>
> if (disk->wwn) {
More information about the libvir-list
mailing list