mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
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 <berrange@redhat.com>
This commit is contained in:
parent
2fc0660848
commit
6e66100155
@ -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)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user