We already implement virDomainDefineXML(), so we can just implement one in terms of the other.
Signed-off-by: Jonathon Jongsma <[email protected]> --- src/hyperv/hyperv_driver.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/hyperv/hyperv_driver.c b/src/hyperv/hyperv_driver.c index 8832769c7b..a78e375c9d 100644 --- a/src/hyperv/hyperv_driver.c +++ b/src/hyperv/hyperv_driver.c @@ -2925,7 +2925,7 @@ 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); @@ -2934,10 +2934,14 @@ hypervDomainDefineXML(virConnectPtr conn, const char *xml) g_autoptr(hypervInvokeParamsList) params = NULL; g_autoptr(GHashTable) defineSystemParam = NULL; size_t i = 0; + unsigned int parse_flags = 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; - /* parse xml */ - def = virDomainDefParseString(xml, priv->xmlopt, NULL, - VIR_DOMAIN_DEF_PARSE_INACTIVE); + def = virDomainDefParseString(xml, priv->xmlopt, NULL, parse_flags); if (!def) goto error; @@ -3034,6 +3038,13 @@ 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) { @@ -4099,6 +4110,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 */ -- 2.53.0
