]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Move disk info validator to the domain conf validator
authorPeter Krempa <pkrempa@redhat.com>
Fri, 27 May 2016 10:34:14 +0000 (12:34 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 7 Jun 2016 11:02:20 +0000 (13:02 +0200)
Since it will not be called from outside of conf we can unexport it too
if we move it to the appropriate place.

Test suite change is necessary since the error will be reported sooner
now.

src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms
src/qemu/qemu_process.c
tests/qemuxml2argvtest.c

index efb85febccbfa51a546af8cdd2130265e0ded625..d0d040a76bda2cc02ca3982fe4727e83a33e69dc 100644 (file)
@@ -4573,8 +4573,29 @@ virDomainDefValidateDeviceIterator(virDomainDefPtr def,
 
 
 static int
-virDomainDefValidateInternal(const virDomainDef *def ATTRIBUTE_UNUSED)
+virDomainDefCheckDuplicateDiskInfo(const virDomainDef *def)
 {
+    size_t i;
+    size_t j;
+
+    for (i = 0; i < def->ndisks; i++) {
+        for (j = i + 1; j < def->ndisks; j++) {
+            if (virDomainDiskDefCheckDuplicateInfo(def->disks[i],
+                                                   def->disks[j]) < 0)
+                return -1;
+        }
+    }
+
+    return 0;
+}
+
+
+static int
+virDomainDefValidateInternal(const virDomainDef *def)
+{
+    if (virDomainDefCheckDuplicateDiskInfo(def) < 0)
+        return -1;
+
     return 0;
 }
 
@@ -24583,8 +24604,8 @@ virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
 
 
 int
-virDomainDiskDefCheckDuplicateInfo(virDomainDiskDefPtr a,
-                                   virDomainDiskDefPtr b)
+virDomainDiskDefCheckDuplicateInfo(const virDomainDiskDef *a,
+                                   const virDomainDiskDef *b)
 {
     if (STREQ(a->dst, b->dst)) {
         virReportError(VIR_ERR_XML_ERROR,
@@ -24613,24 +24634,6 @@ virDomainDiskDefCheckDuplicateInfo(virDomainDiskDefPtr a,
 }
 
 
-int
-virDomainDefCheckDuplicateDiskInfo(virDomainDefPtr def)
-{
-    size_t i;
-    size_t j;
-
-    for (i = 0; i < def->ndisks; i++) {
-        for (j = i + 1; j < def->ndisks; j++) {
-            if (virDomainDiskDefCheckDuplicateInfo(def->disks[i],
-                                                   def->disks[j]) < 0)
-                return -1;
-        }
-    }
-
-    return 0;
-}
-
-
 /**
  * virDomainDefHasMemballoon:
  * @def: domain definition
index d62d99bf2f329d53fe3364315c2b89062d6ef03f..8938ceef9ff6c3f26027be82ed3d5089e1aa1511 100644 (file)
@@ -3067,11 +3067,9 @@ virDomainParseMemory(const char *xpath,
 bool virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
     ATTRIBUTE_NONNULL(1);
 
-int virDomainDiskDefCheckDuplicateInfo(virDomainDiskDefPtr a,
-                                       virDomainDiskDefPtr b)
+int virDomainDiskDefCheckDuplicateInfo(const virDomainDiskDef *a,
+                                       const virDomainDiskDef *b)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
-int virDomainDefCheckDuplicateDiskInfo(virDomainDefPtr def)
-    ATTRIBUTE_NONNULL(1);
 
 int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def,
                                      int maplen,
index 8f664ef60ff375a0905f38b3c3c490b289506138..3fd042b8f1d2c58f690edb6e76d2177355ce6c2c 100644 (file)
@@ -207,7 +207,6 @@ virDomainDefAddController;
 virDomainDefAddImplicitDevices;
 virDomainDefAddUSBController;
 virDomainDefCheckABIStability;
-virDomainDefCheckDuplicateDiskInfo;
 virDomainDefClearCCWAddresses;
 virDomainDefClearDeviceAliases;
 virDomainDefClearPCIAddresses;
index c1f71dd2127fab38ead64f36ce126a0e57a5bcb9..799a37e3eafcfa825a919bf0f91f9040d2042b5a 100644 (file)
@@ -4303,14 +4303,9 @@ qemuProcessStartValidateXML(virQEMUDriverPtr driver,
     /* checks below should not be executed when starting a qemu process for a
      * VM that was running before (migration, snapshots, save). It's more
      * important to start such VM than keep the configuration clean */
-    if ((flags & VIR_QEMU_PROCESS_START_NEW)) {
-        if (virDomainDefValidate(vm->def, caps, 0, driver->xmlopt) < 0)
-            return -1;
-
-        if (virDomainDefCheckDuplicateDiskInfo(vm->def) < 0)
-            return -1;
-    }
-
+    if ((flags & VIR_QEMU_PROCESS_START_NEW) &&
+        virDomainDefValidate(vm->def, caps, 0, driver->xmlopt) < 0)
+        return -1;
 
     if (vm->def->mem.min_guarantee) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
index b2cde8e542b59ae77614b9d19dd8ba96457acb8a..f009d09b9f5194ea208901ff2110be4d07e6eead 100644 (file)
@@ -876,9 +876,9 @@ mymain(void)
     DO_TEST("disk-drive-discard",
             QEMU_CAPS_DRIVE_DISCARD);
     DO_TEST("disk-snapshot", NONE);
-    DO_TEST_FAILURE("disk-same-targets",
-                    QEMU_CAPS_SCSI_LSI,
-                    QEMU_CAPS_DEVICE_USB_STORAGE, QEMU_CAPS_NODEFCONFIG);
+    DO_TEST_PARSE_ERROR("disk-same-targets",
+                        QEMU_CAPS_SCSI_LSI,
+                        QEMU_CAPS_DEVICE_USB_STORAGE, QEMU_CAPS_NODEFCONFIG);
     DO_TEST("event_idx",
             QEMU_CAPS_VIRTIO_BLK_EVENT_IDX,
             QEMU_CAPS_VIRTIO_NET_EVENT_IDX,