]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
hyperv: implement virDomainDefineXMLFlags()
authorJonathon Jongsma <jjongsma@redhat.com>
Fri, 27 Feb 2026 20:43:00 +0000 (14:43 -0600)
committerJonathon Jongsma <jjongsma@redhat.com>
Fri, 6 Mar 2026 16:27:43 +0000 (10:27 -0600)
We already implement virDomainDefineXML(), so we can just implement one
in terms of the other.

Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/hyperv/hyperv_driver.c

index 5f6f767e91d46ddb831e0ce1cfdcc06c984f1af6..906f6e5d198b275abe5e1747201e1a1836137da2 100644 (file)
@@ -2925,7 +2925,9 @@ hypervDomainUndefine(virDomainPtr domain)
 
 
 static virDomainPtr
-hypervDomainDefineXML(virConnectPtr conn, const char *xml)
+hypervDomainDefineXMLFlags(virConnectPtr conn,
+                           const char *xml,
+                           unsigned int flags)
 {
     hypervPrivate *priv = conn->privateData;
     g_autofree char *hostname = hypervConnectGetHostname(conn);
@@ -2936,10 +2938,14 @@ hypervDomainDefineXML(virConnectPtr conn, const char *xml)
     g_autoptr(Msvm_ComputerSystem) existing = NULL;
     char uuid_string[VIR_UUID_STRING_BUFLEN];
     size_t i = 0;
+    unsigned int parse_flags = VIR_DOMAIN_DEF_PARSE_INACTIVE;
 
-    /* parse xml */
-    def = virDomainDefParseString(xml, priv->xmlopt, NULL,
-                                  VIR_DOMAIN_DEF_PARSE_INACTIVE);
+    virCheckFlags(VIR_DOMAIN_DEFINE_VALIDATE, NULL);
+
+    if (flags & VIR_DOMAIN_DEFINE_VALIDATE)
+        parse_flags |= VIR_DOMAIN_DEF_PARSE_VALIDATE_SCHEMA;
+
+    def = virDomainDefParseString(xml, priv->xmlopt, NULL, parse_flags);
 
     if (!def)
         goto error;
@@ -3041,6 +3047,14 @@ hypervDomainDefineXML(virConnectPtr conn, const char *xml)
 }
 
 
+static virDomainPtr
+hypervDomainDefineXML(virConnectPtr conn,
+                      const char *xml)
+{
+    return hypervDomainDefineXMLFlags(conn, xml, 0);
+}
+
+
 static int
 hypervDomainAttachDeviceFlags(virDomainPtr domain, const char *xml, unsigned int flags)
 {
@@ -4106,6 +4120,7 @@ static virHypervisorDriver hypervHypervisorDriver = {
     .domainCreate = hypervDomainCreate, /* 0.9.5 */
     .domainCreateWithFlags = hypervDomainCreateWithFlags, /* 0.9.5 */
     .domainDefineXML = hypervDomainDefineXML, /* 7.1.0 */
+    .domainDefineXMLFlags = hypervDomainDefineXMLFlags, /* 12.2.0 */
     .domainUndefine = hypervDomainUndefine, /* 7.1.0 */
     .domainUndefineFlags = hypervDomainUndefineFlags, /* 7.1.0 */
     .domainAttachDevice = hypervDomainAttachDevice, /* 7.1.0 */