From: Jiri Denemark Date: Wed, 14 Jun 2017 11:42:16 +0000 (+0200) Subject: qemu: Introduce qemuDomainDefFromXML helper X-Git-Tag: v3.5.0-rc1~84 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0810d4f5e0d77354cdf7ad56e1e8b7748bdb1501;p=thirdparty%2Flibvirt.git qemu: Introduce qemuDomainDefFromXML helper The main goal of this function is to enable reusing the parsing code from qemuDomainDefCopy. Signed-off-by: Jiri Denemark Reviewed-by: Pavel Hrdina --- diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 9b13241f9e..2f8afd1d92 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4179,6 +4179,25 @@ void qemuDomainObjExitRemote(virDomainObjPtr obj) } +static virDomainDefPtr +qemuDomainDefFromXML(virQEMUDriverPtr driver, + const char *xml) +{ + virCapsPtr caps; + virDomainDefPtr def; + + if (!(caps = virQEMUDriverGetCapabilities(driver, false))) + return NULL; + + def = virDomainDefParseString(xml, caps, driver->xmlopt, NULL, + VIR_DOMAIN_DEF_PARSE_INACTIVE | + VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE); + + virObjectUnref(caps); + return def; +} + + virDomainDefPtr qemuDomainDefCopy(virQEMUDriverPtr driver, virDomainDefPtr src, @@ -4186,25 +4205,15 @@ qemuDomainDefCopy(virQEMUDriverPtr driver, { virBuffer buf = VIR_BUFFER_INITIALIZER; virDomainDefPtr ret = NULL; - virCapsPtr caps = NULL; char *xml = NULL; if (qemuDomainDefFormatBuf(driver, src, flags, &buf) < 0) - goto cleanup; + return NULL; xml = virBufferContentAndReset(&buf); + ret = qemuDomainDefFromXML(driver, xml); - if (!(caps = virQEMUDriverGetCapabilities(driver, false))) - goto cleanup; - - if (!(ret = virDomainDefParseString(xml, caps, driver->xmlopt, NULL, - VIR_DOMAIN_DEF_PARSE_INACTIVE | - VIR_DOMAIN_DEF_PARSE_SKIP_VALIDATE))) - goto cleanup; - - cleanup: VIR_FREE(xml); - virObjectUnref(caps); return ret; }