Make sure every virt driver implements virDomainDefineXMLFlags by adding a trivial passthrough from the existing impl with no flags set. --- src/bhyve/bhyve_driver.c | 12 ++++++++++-- src/esx/esx_driver.c | 10 ++++++++-- src/libxl/libxl_driver.c | 12 ++++++++++-- src/lxc/lxc_driver.c | 13 +++++++++++-- src/openvz/openvz_driver.c | 10 +++++++++- src/parallels/parallels_driver.c | 11 ++++++++++- src/qemu/qemu_driver.c | 2 +- src/remote_protocol-structs | 8 ++++++++ src/test/test_driver.c | 13 +++++++++++-- src/uml/uml_driver.c | 12 ++++++++++-- src/vbox/vbox_common.c | 11 ++++++++++- src/vmware/vmware_driver.c | 10 +++++++++- src/xen/xen_driver.c | 12 ++++++++++-- src/xenapi/xenapi_driver.c | 11 ++++++++++- 14 files changed, 127 insertions(+), 20 deletions(-) diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c index 664e631..f6d5d5e 100644 --- a/src/bhyve/bhyve_driver.c +++ b/src/bhyve/bhyve_driver.c @@ -485,7 +485,7 @@ bhyveDomainGetXMLDesc(virDomainPtr domain, unsigned int flags) } static virDomainPtr -bhyveDomainDefineXML(virConnectPtr conn, const char *xml) +bhyveDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { bhyveConnPtr privconn = conn->privateData; virDomainPtr dom = NULL; @@ -495,6 +495,8 @@ bhyveDomainDefineXML(virConnectPtr conn, const char *xml) virObjectEventPtr event = NULL; virCapsPtr caps = NULL; + virCheckFlags(0, NULL); + caps = bhyveDriverGetCapabilities(privconn); if (!caps) return NULL; @@ -504,7 +506,7 @@ bhyveDomainDefineXML(virConnectPtr conn, const char *xml) VIR_DOMAIN_XML_INACTIVE)) == NULL) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (bhyveDomainAssignAddresses(def, NULL) < 0) @@ -546,6 +548,11 @@ bhyveDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr bhyveDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return bhyveDomainDefineXMLFlags(conn, xml, 0); +} + static int bhyveDomainUndefine(virDomainPtr domain) { @@ -1438,6 +1445,7 @@ static virHypervisorDriver bhyveDriver = { .domainLookupByName = bhyveDomainLookupByName, /* 1.2.2 */ .domainLookupByID = bhyveDomainLookupByID, /* 1.2.3 */ .domainDefineXML = bhyveDomainDefineXML, /* 1.2.2 */ + .domainDefineXMLFlags = bhyveDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = bhyveDomainUndefine, /* 1.2.2 */ .domainGetXMLDesc = bhyveDomainGetXMLDesc, /* 1.2.2 */ .domainIsActive = bhyveDomainIsActive, /* 1.2.2 */ diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index 1cbebb9..248bb92 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -3019,7 +3019,7 @@ esxDomainCreate(virDomainPtr domain) static virDomainPtr -esxDomainDefineXML(virConnectPtr conn, const char *xml) +esxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { esxPrivate *priv = conn->privateData; virDomainDefPtr def = NULL; @@ -3045,6 +3045,8 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml) virDomainPtr domain = NULL; const char *src; + virCheckFlags(0, NULL); + memset(&data, 0, sizeof(data)); if (esxVI_EnsureSession(priv->primary) < 0) @@ -3239,7 +3241,10 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml) return domain; } - +static virDomainPtr esxDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return esxDomainDefineXMLFlags(conn, xml, 0); +} static int esxDomainUndefineFlags(virDomainPtr domain, @@ -5183,6 +5188,7 @@ static virHypervisorDriver esxDriver = { .domainCreate = esxDomainCreate, /* 0.7.0 */ .domainCreateWithFlags = esxDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = esxDomainDefineXML, /* 0.7.2 */ + .domainDefineXMLFlags = esxDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = esxDomainUndefine, /* 0.7.1 */ .domainUndefineFlags = esxDomainUndefineFlags, /* 0.9.4 */ .domainGetAutostart = esxDomainGetAutostart, /* 0.9.0 */ diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c index 8cbf3c0..9b049db 100644 --- a/src/libxl/libxl_driver.c +++ b/src/libxl/libxl_driver.c @@ -2367,7 +2367,7 @@ libxlDomainCreate(virDomainPtr dom) } static virDomainPtr -libxlDomainDefineXML(virConnectPtr conn, const char *xml) +libxlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { libxlDriverPrivatePtr driver = conn->privateData; libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver); @@ -2377,12 +2377,14 @@ libxlDomainDefineXML(virConnectPtr conn, const char *xml) virObjectEventPtr event = NULL; virDomainDefPtr oldDef = NULL; + virCheckFlags(0, NULL); + if (!(def = virDomainDefParseString(xml, cfg->caps, driver->xmlopt, 1 << VIR_DOMAIN_VIRT_XEN, VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (!(vm = virDomainObjListAdd(driver->domains, def, @@ -2421,6 +2423,11 @@ libxlDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr libxlDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return libxlDomainDefineXMLFlags(conn, xml, 0); +} + static int libxlDomainUndefineFlags(virDomainPtr dom, unsigned int flags) @@ -4778,6 +4785,7 @@ static virHypervisorDriver libxlDriver = { .domainCreate = libxlDomainCreate, /* 0.9.0 */ .domainCreateWithFlags = libxlDomainCreateWithFlags, /* 0.9.0 */ .domainDefineXML = libxlDomainDefineXML, /* 0.9.0 */ + .domainDefineXMLFlags = libxlDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = libxlDomainUndefine, /* 0.9.0 */ .domainUndefineFlags = libxlDomainUndefineFlags, /* 0.9.4 */ .domainAttachDevice = libxlDomainAttachDevice, /* 0.9.2 */ diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index cf2a3c8..a9a34b5 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -443,7 +443,8 @@ static int lxcConnectNumOfDefinedDomains(virConnectPtr conn) -static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml) +static virDomainPtr +lxcDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { virLXCDriverPtr driver = conn->privateData; virDomainDefPtr def = NULL; @@ -454,6 +455,8 @@ static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml) virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver); virCapsPtr caps = NULL; + virCheckFlags(0, NULL); + if (!(caps = virLXCDriverGetCapabilities(driver, false))) goto cleanup; @@ -462,7 +465,7 @@ static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml) VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (virSecurityManagerVerify(driver->securityManager, def) < 0) @@ -510,6 +513,11 @@ static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr lxcDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return lxcDomainDefineXMLFlags(conn, xml, 0); +} + static int lxcDomainUndefineFlags(virDomainPtr dom, unsigned int flags) { @@ -5761,6 +5769,7 @@ static virHypervisorDriver lxcDriver = { .domainCreateWithFlags = lxcDomainCreateWithFlags, /* 0.8.2 */ .domainCreateWithFiles = lxcDomainCreateWithFiles, /* 1.1.1 */ .domainDefineXML = lxcDomainDefineXML, /* 0.4.2 */ + .domainDefineXMLFlags = lxcDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = lxcDomainUndefine, /* 0.4.2 */ .domainUndefineFlags = lxcDomainUndefineFlags, /* 0.9.4 */ .domainAttachDevice = lxcDomainAttachDevice, /* 1.0.1 */ diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index d9e27a1..69bb38c 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -969,13 +969,15 @@ openvzDomainSetNetworkConfig(virConnectPtr conn, static virDomainPtr -openvzDomainDefineXML(virConnectPtr conn, const char *xml) +openvzDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { struct openvz_driver *driver = conn->privateData; virDomainDefPtr vmdef = NULL; virDomainObjPtr vm = NULL; virDomainPtr dom = NULL; + virCheckFlags(0, NULL); + openvzDriverLock(driver); if ((vmdef = virDomainDefParseString(xml, driver->caps, driver->xmlopt, 1 << VIR_DOMAIN_VIRT_OPENVZ, @@ -1051,6 +1053,11 @@ openvzDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr openvzDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return openvzDomainDefineXMLFlags(conn, xml, 0); +} + static virDomainPtr openvzDomainCreateXML(virConnectPtr conn, const char *xml, unsigned int flags) @@ -2588,6 +2595,7 @@ static virHypervisorDriver openvzDriver = { .domainCreate = openvzDomainCreate, /* 0.3.1 */ .domainCreateWithFlags = openvzDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = openvzDomainDefineXML, /* 0.3.3 */ + .domainDefineXMLFlags = openvzDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = openvzDomainUndefine, /* 0.3.3 */ .domainUndefineFlags = openvzDomainUndefineFlags, /* 0.9.4 */ .domainGetAutostart = openvzDomainGetAutostart, /* 0.4.6 */ diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c index 808dc4a..a7b8cbc 100644 --- a/src/parallels/parallels_driver.c +++ b/src/parallels/parallels_driver.c @@ -2288,13 +2288,15 @@ parallelsCreateCt(virConnectPtr conn ATTRIBUTE_UNUSED, virDomainDefPtr def) } static virDomainPtr -parallelsDomainDefineXML(virConnectPtr conn, const char *xml) +parallelsDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { parallelsConnPtr privconn = conn->privateData; virDomainPtr ret = NULL; virDomainDefPtr def; virDomainObjPtr olddom = NULL; + virCheckFlags(0, NULL); + parallelsDriverLock(privconn); if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt, 1 << VIR_DOMAIN_VIRT_PARALLELS, @@ -2345,6 +2347,12 @@ parallelsDomainDefineXML(virConnectPtr conn, const char *xml) return ret; } +static virDomainPtr parallelsDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return parallelsDomainDefineXMLFlags(conn, xml, 0); +} + + static int parallelsNodeGetInfo(virConnectPtr conn ATTRIBUTE_UNUSED, virNodeInfoPtr nodeinfo) @@ -2494,6 +2502,7 @@ static virHypervisorDriver parallelsDriver = { .domainShutdown = parallelsDomainShutdown, /* 0.10.0 */ .domainCreate = parallelsDomainCreate, /* 0.10.0 */ .domainDefineXML = parallelsDomainDefineXML, /* 0.10.0 */ + .domainDefineXMLFlags = parallelsDomainDefineXMLFlags, /* 1.2.11 */ .nodeGetCPUMap = parallelsNodeGetCPUMap, /* 1.2.8 */ .connectIsEncrypted = parallelsConnectIsEncrypted, /* 1.2.5 */ .connectIsSecure = parallelsConnectIsSecure, /* 1.2.5 */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index a877b75..654fa2e 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -6675,7 +6675,7 @@ static virDomainPtr qemuDomainDefineXMLFlags(virConnectPtr conn, const char *xml VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (virSecurityManagerVerify(driver->securityManager, def) < 0) diff --git a/src/remote_protocol-structs b/src/remote_protocol-structs index 362baf9..32bc047 100644 --- a/src/remote_protocol-structs +++ b/src/remote_protocol-structs @@ -686,6 +686,13 @@ struct remote_domain_define_xml_args { struct remote_domain_define_xml_ret { remote_nonnull_domain dom; }; +struct remote_domain_define_xml_flags_args { + remote_nonnull_string xml; + u_int flags; +}; +struct remote_domain_define_xml_flags_ret { + remote_nonnull_domain dom; +}; struct remote_domain_undefine_args { remote_nonnull_domain dom; }; @@ -2927,4 +2934,5 @@ enum remote_procedure { REMOTE_PROC_DOMAIN_BLOCK_COPY = 345, REMOTE_PROC_DOMAIN_EVENT_CALLBACK_TUNABLE = 346, REMOTE_PROC_NODE_ALLOC_PAGES = 347, + REMOTE_PROC_DOMAIN_DEFINE_XML_FLAGS = 348, }; diff --git a/src/test/test_driver.c b/src/test/test_driver.c index d7844bd..4469ad5 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -2927,8 +2927,9 @@ static int testConnectListDefinedDomains(virConnectPtr conn, return n; } -static virDomainPtr testDomainDefineXML(virConnectPtr conn, - const char *xml) +static virDomainPtr testDomainDefineXMLFlags(virConnectPtr conn, + const char *xml, + unsigned int flags) { testConnPtr privconn = conn->privateData; virDomainPtr ret = NULL; @@ -2937,6 +2938,8 @@ static virDomainPtr testDomainDefineXML(virConnectPtr conn, virObjectEventPtr event = NULL; virDomainDefPtr oldDef = NULL; + virCheckFlags(0, NULL); + testDriverLock(privconn); if ((def = virDomainDefParseString(xml, privconn->caps, privconn->xmlopt, 1 << VIR_DOMAIN_VIRT_TEST, @@ -2975,6 +2978,11 @@ static virDomainPtr testDomainDefineXML(virConnectPtr conn, return ret; } +static virDomainPtr testDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return testDomainDefineXMLFlags(conn, xml, 0); +} + static char *testDomainGetMetadata(virDomainPtr dom, int type, const char *uri, @@ -7372,6 +7380,7 @@ static virHypervisorDriver testDriver = { .domainCreate = testDomainCreate, /* 0.1.11 */ .domainCreateWithFlags = testDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = testDomainDefineXML, /* 0.1.11 */ + .domainDefineXMLFlags = testDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = testDomainUndefine, /* 0.1.11 */ .domainUndefineFlags = testDomainUndefineFlags, /* 0.9.4 */ .domainGetAutostart = testDomainGetAutostart, /* 0.3.2 */ diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index b01d631..d15b55a 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -2075,20 +2075,23 @@ static int umlDomainCreate(virDomainPtr dom) return umlDomainCreateWithFlags(dom, 0); } -static virDomainPtr umlDomainDefineXML(virConnectPtr conn, const char *xml) +static virDomainPtr +umlDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { struct uml_driver *driver = conn->privateData; virDomainDefPtr def; virDomainObjPtr vm = NULL; virDomainPtr dom = NULL; + virCheckFlags(0, NULL); + umlDriverLock(driver); if (!(def = virDomainDefParseString(xml, driver->caps, driver->xmlopt, 1 << VIR_DOMAIN_VIRT_UML, VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (!(vm = virDomainObjListAdd(driver->domains, def, @@ -2117,6 +2120,11 @@ static virDomainPtr umlDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr umlDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return umlDomainDefineXMLFlags(conn, xml, 0); +} + static int umlDomainUndefineFlags(virDomainPtr dom, unsigned int flags) { diff --git a/src/vbox/vbox_common.c b/src/vbox/vbox_common.c index bffec82..322353f 100644 --- a/src/vbox/vbox_common.c +++ b/src/vbox/vbox_common.c @@ -1831,7 +1831,8 @@ vboxAttachSharedFolder(virDomainDefPtr def, vboxGlobalData *data, IMachine *mach } } -static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml) +static virDomainPtr +vboxDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { vboxGlobalData *data = conn->privateData; IMachine *machine = NULL; @@ -1842,6 +1843,8 @@ static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml) char uuidstr[VIR_UUID_STRING_BUFLEN]; virDomainPtr ret = NULL; + virCheckFlags(0, NULL); + if (!data->vboxObj) return ret; @@ -1968,6 +1971,11 @@ static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml) return NULL; } +static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return vboxDomainDefineXMLFlags(conn, xml, 0); +} + static void detachDevices_common(vboxGlobalData *data, vboxIIDUnion *iidu) { @@ -7609,6 +7617,7 @@ virHypervisorDriver vboxCommonDriver = { .domainCreate = vboxDomainCreate, /* 0.6.3 */ .domainCreateWithFlags = vboxDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = vboxDomainDefineXML, /* 0.6.3 */ + .domainDefineXMLFlags = vboxDomainDefineXMLFlags, /* 1.2.11*/ .domainUndefine = vboxDomainUndefine, /* 0.6.3 */ .domainUndefineFlags = vboxDomainUndefineFlags, /* 0.9.5 */ .domainAttachDevice = vboxDomainAttachDevice, /* 0.6.3 */ diff --git a/src/vmware/vmware_driver.c b/src/vmware/vmware_driver.c index 5379876..4ee9526 100644 --- a/src/vmware/vmware_driver.c +++ b/src/vmware/vmware_driver.c @@ -358,7 +358,7 @@ vmwareStartVM(struct vmware_driver *driver, virDomainObjPtr vm) } static virDomainPtr -vmwareDomainDefineXML(virConnectPtr conn, const char *xml) +vmwareDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { struct vmware_driver *driver = conn->privateData; virDomainDefPtr vmdef = NULL; @@ -371,6 +371,8 @@ vmwareDomainDefineXML(virConnectPtr conn, const char *xml) vmwareDomainPtr pDomain = NULL; virVMXContext ctx; + virCheckFlags(0, NULL); + ctx.formatFileName = vmwareCopyVMXFileName; vmwareDriverLock(driver); @@ -427,6 +429,11 @@ vmwareDomainDefineXML(virConnectPtr conn, const char *xml) return dom; } +static virDomainPtr vmwareDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return vmwareDomainDefineXMLFlags(conn, xml, 0); +} + static int vmwareDomainShutdownFlags(virDomainPtr dom, unsigned int flags) @@ -1211,6 +1218,7 @@ static virHypervisorDriver vmwareDriver = { .domainCreate = vmwareDomainCreate, /* 0.8.7 */ .domainCreateWithFlags = vmwareDomainCreateWithFlags, /* 0.8.7 */ .domainDefineXML = vmwareDomainDefineXML, /* 0.8.7 */ + .domainDefineXMLFlags = vmwareDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = vmwareDomainUndefine, /* 0.8.7 */ .domainUndefineFlags = vmwareDomainUndefineFlags, /* 0.9.4 */ .domainIsActive = vmwareDomainIsActive, /* 0.8.7 */ diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 7334142..1897584 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1882,18 +1882,20 @@ xenUnifiedDomainCreate(virDomainPtr dom) } static virDomainPtr -xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml) +xenUnifiedDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { xenUnifiedPrivatePtr priv = conn->privateData; virDomainDefPtr def = NULL; virDomainPtr ret = NULL; + virCheckFlags(0, NULL); + if (!(def = virDomainDefParseString(xml, priv->caps, priv->xmlopt, 1 << VIR_DOMAIN_VIRT_XEN, VIR_DOMAIN_XML_INACTIVE))) goto cleanup; - if (virDomainDefineXMLEnsureACL(conn, def) < 0) + if (virDomainDefineXMLFlagsEnsureACL(conn, def) < 0) goto cleanup; if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { @@ -1915,6 +1917,11 @@ xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml) return ret; } +static virDomainPtr xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return xenUnifiedDomainDefineXMLFlags(conn, xml, 0); +} + static int xenUnifiedDomainUndefineFlags(virDomainPtr dom, unsigned int flags) { @@ -2796,6 +2803,7 @@ static virHypervisorDriver xenUnifiedDriver = { .domainCreate = xenUnifiedDomainCreate, /* 0.1.1 */ .domainCreateWithFlags = xenUnifiedDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = xenUnifiedDomainDefineXML, /* 0.1.1 */ + .domainDefineXMLFlags = xenUnifiedDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = xenUnifiedDomainUndefine, /* 0.1.1 */ .domainUndefineFlags = xenUnifiedDomainUndefineFlags, /* 0.9.4 */ .domainAttachDevice = xenUnifiedDomainAttachDevice, /* 0.1.9 */ diff --git a/src/xenapi/xenapi_driver.c b/src/xenapi/xenapi_driver.c index 7048556..b659c0a 100644 --- a/src/xenapi/xenapi_driver.c +++ b/src/xenapi/xenapi_driver.c @@ -1714,12 +1714,15 @@ xenapiDomainCreate(virDomainPtr dom) * Returns 0 on success or -1 in case of error */ static virDomainPtr -xenapiDomainDefineXML(virConnectPtr conn, const char *xml) +xenapiDomainDefineXMLFlags(virConnectPtr conn, const char *xml, unsigned int flags) { struct _xenapiPrivate *priv = conn->privateData; xen_vm_record *record = NULL; xen_vm vm = NULL; virDomainPtr domP = NULL; + + virCheckFlags(0, NULL); + if (!priv->caps) return NULL; virDomainDefPtr defPtr = virDomainDefParseString(xml, @@ -1752,6 +1755,11 @@ xenapiDomainDefineXML(virConnectPtr conn, const char *xml) return domP; } +static virDomainPtr xenapiDomainDefineXML(virConnectPtr conn, const char *xml) +{ + return xenapiDomainDefineXMLFlags(conn, xml, 0); +} + /* * xenapiDomainUndefineFlags * @@ -2002,6 +2010,7 @@ static virHypervisorDriver xenapiDriver = { .domainCreate = xenapiDomainCreate, /* 0.8.0 */ .domainCreateWithFlags = xenapiDomainCreateWithFlags, /* 0.8.2 */ .domainDefineXML = xenapiDomainDefineXML, /* 0.8.0 */ + .domainDefineXMLFlags = xenapiDomainDefineXMLFlags, /* 1.2.11 */ .domainUndefine = xenapiDomainUndefine, /* 0.8.0 */ .domainUndefineFlags = xenapiDomainUndefineFlags, /* 0.9.5 */ .domainGetAutostart = xenapiDomainGetAutostart, /* 0.8.0 */ -- 2.1.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list