From 6e66100155a2d78d590e1241cb46679fdc09f565 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Tue, 30 Apr 2013 17:39:29 +0100 Subject: [PATCH] Simplify the Xen domain define/undefine driver methods Make the domain define/undefine driver methods directly call into either the XenD or XM drivers Signed-off-by: Daniel P. Berrange --- src/xen/xen_driver.c | 24 ++++++++---------------- src/xen/xen_driver.h | 2 -- src/xen/xend_internal.c | 10 ---------- src/xen/xm_internal.c | 5 ----- 4 files changed, 8 insertions(+), 33 deletions(-) diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index e504578fdb..341312da0a 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1380,31 +1380,23 @@ static virDomainPtr xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml) { xenUnifiedPrivatePtr priv = conn->privateData; - int i; - virDomainPtr ret; - for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i) - if (priv->opened[i] && drivers[i]->xenDomainDefineXML) { - ret = drivers[i]->xenDomainDefineXML(conn, xml); - if (ret) return ret; - } - - return NULL; + if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) + return xenXMDomainDefineXML(conn, xml); + else + return xenDaemonDomainDefineXML(conn, xml); } static int xenUnifiedDomainUndefineFlags(virDomainPtr dom, unsigned int flags) { xenUnifiedPrivatePtr priv = dom->conn->privateData; - int i; virCheckFlags(0, -1); - for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i) - if (priv->opened[i] && drivers[i]->xenDomainUndefine && - drivers[i]->xenDomainUndefine(dom) == 0) - return 0; - - return -1; + if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) + return xenXMDomainUndefine(dom); + else + return xenDaemonDomainUndefine(dom); } static int diff --git a/src/xen/xen_driver.h b/src/xen/xen_driver.h index e2c0d6882b..254c2f52b5 100644 --- a/src/xen/xen_driver.h +++ b/src/xen/xen_driver.h @@ -93,8 +93,6 @@ extern int xenRegister (void); * structure with direct calls in xen_unified.c. */ struct xenUnifiedDriver { - virDrvDomainDefineXML xenDomainDefineXML; - virDrvDomainUndefine xenDomainUndefine; virDrvDomainAttachDeviceFlags xenDomainAttachDeviceFlags; virDrvDomainDetachDeviceFlags xenDomainDetachDeviceFlags; virDrvDomainGetSchedulerType xenDomainGetSchedulerType; diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c index 53f87d6980..9efe26ec51 100644 --- a/src/xen/xend_internal.c +++ b/src/xen/xend_internal.c @@ -2859,9 +2859,6 @@ xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc) xenUnifiedPrivatePtr priv = conn->privateData; virDomainDefPtr def; - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) - return NULL; - if (!(def = virDomainDefParseString(xmlDesc, priv->caps, priv->xmlopt, 1 << VIR_DOMAIN_VIRT_XEN, VIR_DOMAIN_XML_INACTIVE))) { @@ -2915,11 +2912,6 @@ xenDaemonDomainCreate(virDomainPtr domain) int xenDaemonDomainUndefine(virDomainPtr domain) { - xenUnifiedPrivatePtr priv = domain->conn->privateData; - - if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) - return -1; - return xend_op(domain->conn, domain->name, "op", "delete", NULL); } @@ -3370,8 +3362,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain, } struct xenUnifiedDriver xenDaemonDriver = { - .xenDomainDefineXML = xenDaemonDomainDefineXML, - .xenDomainUndefine = xenDaemonDomainUndefine, .xenDomainAttachDeviceFlags = xenDaemonAttachDeviceFlags, .xenDomainDetachDeviceFlags = xenDaemonDetachDeviceFlags, .xenDomainGetSchedulerType = xenDaemonGetSchedulerType, diff --git a/src/xen/xm_internal.c b/src/xen/xm_internal.c index ac452c481b..2785b0b3f0 100644 --- a/src/xen/xm_internal.c +++ b/src/xen/xm_internal.c @@ -81,8 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml, #define XM_XML_ERROR "Invalid xml" struct xenUnifiedDriver xenXMDriver = { - .xenDomainDefineXML = xenXMDomainDefineXML, - .xenDomainUndefine = xenXMDomainUndefine, .xenDomainAttachDeviceFlags = xenXMDomainAttachDeviceFlags, .xenDomainDetachDeviceFlags = xenXMDomainDetachDeviceFlags, }; @@ -1103,9 +1101,6 @@ xenXMDomainUndefine(virDomainPtr domain) xenXMConfCachePtr entry; int ret = -1; - if (domain->id != -1) - return -1; - xenUnifiedLock(priv); if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))