提交 6e661001 编写于 作者: D Daniel P. Berrange

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: NDaniel P. Berrange <berrange@redhat.com>
上级 2fc06608
......@@ -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
......
......@@ -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;
......
......@@ -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,
......
......@@ -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)))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册