[PATCH 12/25] conf: Move checks from virDomainDiskDefPostParse to virDomainDiskDefValidate

Peter Krempa pkrempa at redhat.com
Fri Apr 16 15:34:30 UTC 2021


The moved code contains only checks and does not modify the parsed
document so it doesn't belong into the PostParse code.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/conf/domain_conf.c     | 19 -------------------
 src/conf/domain_validate.c | 18 ++++++++++++++++++
 2 files changed, 18 insertions(+), 19 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 0738bf7f1f..ce0931c160 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5367,25 +5367,6 @@ virDomainDiskDefPostParse(virDomainDiskDef *disk,
                           const virDomainDef *def,
                           virDomainXMLOption *xmlopt)
 {
-    /* internal snapshots and config files are currently supported
-     * only with rbd: */
-    if (virStorageSourceGetActualType(disk->src) != VIR_STORAGE_TYPE_NETWORK &&
-        disk->src->protocol != VIR_STORAGE_NET_PROTOCOL_RBD) {
-        if (disk->src->snapshot) {
-            virReportError(VIR_ERR_XML_ERROR, "%s",
-                           _("<snapshot> element is currently supported "
-                             "only with 'rbd' disks"));
-            return -1;
-        }
-
-        if (disk->src->configFile) {
-            virReportError(VIR_ERR_XML_ERROR, "%s",
-                           _("<config> element is currently supported "
-                             "only with 'rbd' disks"));
-            return -1;
-        }
-    }
-
     if (disk->src->type == VIR_STORAGE_TYPE_NETWORK &&
         disk->src->protocol == VIR_STORAGE_NET_PROTOCOL_ISCSI) {
         virDomainPostParseCheckISCSIPath(&disk->src->path);
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index b2780b3562..5118d6a25e 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -469,6 +469,24 @@ virDomainDiskDefValidateSourceChainOne(const virStorageSource *src)
         }
     }

+    /* internal snapshots and config files are currently supported only with rbd: */
+    if (virStorageSourceGetActualType(src) != VIR_STORAGE_TYPE_NETWORK &&
+        src->protocol != VIR_STORAGE_NET_PROTOCOL_RBD) {
+        if (src->snapshot) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("<snapshot> element is currently supported "
+                             "only with 'rbd' disks"));
+            return -1;
+        }
+
+        if (src->configFile) {
+            virReportError(VIR_ERR_XML_ERROR, "%s",
+                           _("<config> element is currently supported "
+                             "only with 'rbd' disks"));
+            return -1;
+        }
+    }
+
     return 0;
 }

-- 
2.30.2




More information about the libvir-list mailing list