]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: node_device: Add 'validate' argument to virNodeDeviceDefParse
authorPeter Krempa <pkrempa@redhat.com>
Tue, 18 Oct 2022 10:34:07 +0000 (12:34 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 1 Nov 2022 12:07:20 +0000 (13:07 +0100)
Allow callers to request XML validation against the schema. All callers
for now pass 'false'.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
src/conf/node_device_conf.c
src/conf/node_device_conf.h
src/hypervisor/domain_driver.c
src/node_device/node_device_driver.c
src/test/test_driver.c
tests/nodedevmdevctltest.c
tests/nodedevxml2xmltest.c

index bdfbbab4345c4231168c30647c0c343b502b4edd..f5283a77b3bb61b012d7bb305eff389015827f69 100644 (file)
@@ -2479,14 +2479,15 @@ virNodeDeviceDefParse(const char *str,
                       int create,
                       const char *virt_type,
                       virNodeDeviceDefParserCallbacks *parserCallbacks,
-                      void *opaque)
+                      void *opaque,
+                      bool validate)
 {
     g_autoptr(xmlDoc) xml = NULL;
     g_autoptr(xmlXPathContext) ctxt = NULL;
     g_autoptr(virNodeDeviceDef) def = NULL;
 
     if (!(xml = virXMLParse(filename, str, _("(node_device_definition)"),
-                            "device", &ctxt, NULL, false)))
+                            "device", &ctxt, "nodedev.rng", validate)))
         return NULL;
 
     if (!(def = virNodeDeviceDefParseXML(ctxt, create, virt_type)))
index a55635863247820202648f8e89941796eb9ff03b..2b2c8f797e2925c47e15dc3de3c09bbfeaac22ef 100644 (file)
@@ -382,7 +382,8 @@ virNodeDeviceDefParse(const char *str,
                       int create,
                       const char *virt_type,
                       virNodeDeviceDefParserCallbacks *parserCallbacks,
-                      void *opaque);
+                      void *opaque,
+                      bool validate);
 
 virNodeDeviceDef *
 virNodeDeviceDefParseXML(xmlXPathContextPtr ctxt,
index c154f00eea83d20cdfe2369df8d4bd52453edb27..d020b9492118974a21ba83c241ba87b219db11c0 100644 (file)
@@ -395,7 +395,7 @@ virDomainDriverNodeDeviceReset(virNodeDevicePtr dev,
     if (!xml)
         return -1;
 
-    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL);
+    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL, false);
     if (!def)
         return -1;
 
@@ -440,7 +440,7 @@ virDomainDriverNodeDeviceReAttach(virNodeDevicePtr dev,
     if (!xml)
         return -1;
 
-    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL);
+    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL, false);
     if (!def)
         return -1;
 
@@ -488,7 +488,7 @@ virDomainDriverNodeDeviceDetachFlags(virNodeDevicePtr dev,
     if (!xml)
         return -1;
 
-    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL);
+    def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL, false);
     if (!def)
         return -1;
 
index 5bde05d5935744651d2bd87ce397d50ba02fd61a..73a7d641459dda716176dc1614ea105d4d21e3ce 100644 (file)
@@ -888,7 +888,7 @@ nodeDeviceCreateXML(virConnectPtr conn,
     virt_type  = virConnectGetType(conn);
 
     if (!(def = virNodeDeviceDefParse(xmlDesc, NULL, CREATE_DEVICE, virt_type,
-                                      &driver->parserCallbacks, NULL)))
+                                      &driver->parserCallbacks, NULL, false)))
         return NULL;
 
     if (virNodeDeviceCreateXMLEnsureACL(conn, def) < 0)
@@ -1409,7 +1409,7 @@ nodeDeviceDefineXML(virConnect *conn,
     virt_type  = virConnectGetType(conn);
 
     if (!(def = virNodeDeviceDefParse(xmlDesc, NULL, CREATE_DEVICE, virt_type,
-                                      &driver->parserCallbacks, NULL)))
+                                      &driver->parserCallbacks, NULL, false)))
         return NULL;
 
     if (virNodeDeviceDefineXMLEnsureACL(conn, def) < 0)
index 67c70de11d0c032c2f7be2aba8a6e0eda213e9e0..9b397e66b1460d633d2c0449323383d975b44055 100644 (file)
@@ -7629,7 +7629,7 @@ testNodeDeviceMockCreateVport(testDriver *driver,
     if (!xml)
         goto cleanup;
 
-    if (!(def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL)))
+    if (!(def = virNodeDeviceDefParse(xml, NULL, EXISTING_DEVICE, NULL, NULL, NULL, false)))
         goto cleanup;
 
     VIR_FREE(def->name);
@@ -7691,7 +7691,7 @@ testNodeDeviceCreateXML(virConnectPtr conn,
 
     virCheckFlags(0, NULL);
 
-    if (!(def = virNodeDeviceDefParse(xmlDesc, NULL, CREATE_DEVICE, NULL, NULL, NULL)))
+    if (!(def = virNodeDeviceDefParse(xmlDesc, NULL, CREATE_DEVICE, NULL, NULL, NULL, false)))
         goto cleanup;
 
     /* We run this simply for validation - it essentially validates that
index 02e85d4779115dce27a4d5d6b0d014ad275cb9e0..4dc524b5a549b06adbf33100f4b65015a745e314 100644 (file)
@@ -71,7 +71,7 @@ testMdevctlCmd(virMdevctlCommand cmd_type,
     }
 
     if (!(def = virNodeDeviceDefParse(NULL, mdevxml, create, VIRT_TYPE,
-                                      &parser_callbacks, NULL)))
+                                      &parser_callbacks, NULL, false)))
         return -1;
 
     /* this function will set a stdin buffer containing the json configuration
@@ -143,7 +143,7 @@ testMdevctlAutostart(const void *data G_GNUC_UNUSED)
     g_autoptr(virCommandDryRunToken) dryRunToken = virCommandDryRunTokenNew();
 
     if (!(def = virNodeDeviceDefParse(NULL, mdevxml, CREATE_DEVICE, VIRT_TYPE,
-                                      &parser_callbacks, NULL)))
+                                      &parser_callbacks, NULL, false)))
         return -1;
 
     virCommandSetDryRun(dryRunToken, &buf, true, true, NULL, NULL);
index d1c0652e7df3f607191a334e317f06b67f3e4e53..068ec6876909200d056f52b3e66723fdffc5752d 100644 (file)
@@ -23,7 +23,8 @@ testCompareXMLToXMLFiles(const char *xml, const char *outfile)
     if (virTestLoadFile(xml, &xmlData) < 0)
         goto fail;
 
-    if (!(dev = virNodeDeviceDefParse(xmlData, NULL, EXISTING_DEVICE, NULL, NULL, NULL)))
+    if (!(dev = virNodeDeviceDefParse(xmlData, NULL, EXISTING_DEVICE, NULL,
+                                      NULL, NULL, false)))
         goto fail;
 
     /* Calculate some things that are not read in */