[libvirt] [PATCH 2/2] vz: support setting disk serial number

Maxim Nestratov mnestratov at virtuozzo.com
Thu Oct 20 11:09:55 UTC 2016


Signed-off-by: Maxim Nestratov <mnestratov at virtuozzo.com>
---
 src/vz/vz_sdk.c   | 19 +++++++++++++++++++
 src/vz/vz_utils.c |  5 -----
 2 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/src/vz/vz_sdk.c b/src/vz/vz_sdk.c
index b5b0197..f27441d 100644
--- a/src/vz/vz_sdk.c
+++ b/src/vz/vz_sdk.c
@@ -590,6 +590,7 @@ prlsdkGetDiskInfo(vzDriverPtr driver,
                   bool isCt)
 {
     char *buf = NULL;
+    char *serial = NULL;
     PRL_RESULT pret;
     PRL_UINT32 emulatedType;
     virDomainDeviceDriveAddressPtr address;
@@ -626,6 +627,18 @@ prlsdkGetDiskInfo(vzDriverPtr driver,
     if (*buf != '\0' && virDomainDiskSetSource(disk, buf) < 0)
         goto cleanup;
 
+    serial = prlsdkGetStringParamVar(PrlVmDevHd_GetSerialNumber, prldisk);
+    if (serial) {
+        if (virSafeSerialParamValue(serial) < 0)
+            goto cleanup;
+
+        if (*serial == '\0')
+            VIR_FREE(serial);
+        else
+            disk->serial = serial;
+        serial = NULL;
+    }
+
     if (prlsdkGetDiskId(prldisk, &disk->bus, &disk->dst) < 0)
         goto cleanup;
 
@@ -643,6 +656,7 @@ prlsdkGetDiskInfo(vzDriverPtr driver,
 
  cleanup:
     VIR_FREE(buf);
+    VIR_FREE(serial);
     return ret;
 }
 
@@ -3489,6 +3503,11 @@ static int prlsdkConfigureDisk(vzDriverPtr driver,
     pret = PrlVmDev_SetIfaceType(sdkdisk, sdkbus);
     prlsdkCheckRetGoto(pret, cleanup);
 
+    if (disk->serial) {
+        pret = PrlVmDevHd_SetSerialNumber(sdkdisk, disk->serial);
+        prlsdkCheckRetGoto(pret, cleanup);
+    }
+
     pret = PrlVmDev_SetStackIndex(sdkdisk, idx);
     prlsdkCheckRetGoto(pret, cleanup);
 
diff --git a/src/vz/vz_utils.c b/src/vz/vz_utils.c
index eaf09f2..f68b3a1 100644
--- a/src/vz/vz_utils.c
+++ b/src/vz/vz_utils.c
@@ -323,11 +323,6 @@ vzCheckDiskUnsupportedParams(virDomainDiskDefPtr disk)
         return -1;
     }
 
-    if (disk->serial) {
-        VIR_INFO("%s", _("Setting disk serial number is not "
-                         "supported by vz driver."));
-    }
-
     if (disk->wwn) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("Setting disk wwn id is not "
-- 
2.4.11




More information about the libvir-list mailing list