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)
|
xenUnifiedDomainDefineXML(virConnectPtr conn, const char *xml)
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv = conn->privateData;
|
xenUnifiedPrivatePtr priv = conn->privateData;
|
||||||
int i;
|
|
||||||
virDomainPtr ret;
|
|
||||||
|
|
||||||
for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
|
if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
||||||
if (priv->opened[i] && drivers[i]->xenDomainDefineXML) {
|
return xenXMDomainDefineXML(conn, xml);
|
||||||
ret = drivers[i]->xenDomainDefineXML(conn, xml);
|
else
|
||||||
if (ret) return ret;
|
return xenDaemonDomainDefineXML(conn, xml);
|
||||||
}
|
|
||||||
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
xenUnifiedDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
xenUnifiedDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
||||||
{
|
{
|
||||||
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
xenUnifiedPrivatePtr priv = dom->conn->privateData;
|
||||||
int i;
|
|
||||||
|
|
||||||
virCheckFlags(0, -1);
|
virCheckFlags(0, -1);
|
||||||
for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
|
if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
||||||
if (priv->opened[i] && drivers[i]->xenDomainUndefine &&
|
return xenXMDomainUndefine(dom);
|
||||||
drivers[i]->xenDomainUndefine(dom) == 0)
|
else
|
||||||
return 0;
|
return xenDaemonDomainUndefine(dom);
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -93,8 +93,6 @@ extern int xenRegister (void);
|
|||||||
* structure with direct calls in xen_unified.c.
|
* structure with direct calls in xen_unified.c.
|
||||||
*/
|
*/
|
||||||
struct xenUnifiedDriver {
|
struct xenUnifiedDriver {
|
||||||
virDrvDomainDefineXML xenDomainDefineXML;
|
|
||||||
virDrvDomainUndefine xenDomainUndefine;
|
|
||||||
virDrvDomainAttachDeviceFlags xenDomainAttachDeviceFlags;
|
virDrvDomainAttachDeviceFlags xenDomainAttachDeviceFlags;
|
||||||
virDrvDomainDetachDeviceFlags xenDomainDetachDeviceFlags;
|
virDrvDomainDetachDeviceFlags xenDomainDetachDeviceFlags;
|
||||||
virDrvDomainGetSchedulerType xenDomainGetSchedulerType;
|
virDrvDomainGetSchedulerType xenDomainGetSchedulerType;
|
||||||
|
@ -2859,9 +2859,6 @@ xenDaemonDomainDefineXML(virConnectPtr conn, const char *xmlDesc)
|
|||||||
xenUnifiedPrivatePtr priv = conn->privateData;
|
xenUnifiedPrivatePtr priv = conn->privateData;
|
||||||
virDomainDefPtr def;
|
virDomainDefPtr def;
|
||||||
|
|
||||||
if (priv->xendConfigVersion < XEND_CONFIG_VERSION_3_0_4)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
if (!(def = virDomainDefParseString(xmlDesc, priv->caps, priv->xmlopt,
|
if (!(def = virDomainDefParseString(xmlDesc, priv->caps, priv->xmlopt,
|
||||||
1 << VIR_DOMAIN_VIRT_XEN,
|
1 << VIR_DOMAIN_VIRT_XEN,
|
||||||
VIR_DOMAIN_XML_INACTIVE))) {
|
VIR_DOMAIN_XML_INACTIVE))) {
|
||||||
@ -2915,11 +2912,6 @@ xenDaemonDomainCreate(virDomainPtr domain)
|
|||||||
int
|
int
|
||||||
xenDaemonDomainUndefine(virDomainPtr domain)
|
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);
|
return xend_op(domain->conn, domain->name, "op", "delete", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3370,8 +3362,6 @@ xenDaemonDomainBlockPeek(virDomainPtr domain,
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct xenUnifiedDriver xenDaemonDriver = {
|
struct xenUnifiedDriver xenDaemonDriver = {
|
||||||
.xenDomainDefineXML = xenDaemonDomainDefineXML,
|
|
||||||
.xenDomainUndefine = xenDaemonDomainUndefine,
|
|
||||||
.xenDomainAttachDeviceFlags = xenDaemonAttachDeviceFlags,
|
.xenDomainAttachDeviceFlags = xenDaemonAttachDeviceFlags,
|
||||||
.xenDomainDetachDeviceFlags = xenDaemonDetachDeviceFlags,
|
.xenDomainDetachDeviceFlags = xenDaemonDetachDeviceFlags,
|
||||||
.xenDomainGetSchedulerType = xenDaemonGetSchedulerType,
|
.xenDomainGetSchedulerType = xenDaemonGetSchedulerType,
|
||||||
|
@ -81,8 +81,6 @@ static int xenXMDomainDetachDeviceFlags(virDomainPtr domain, const char *xml,
|
|||||||
#define XM_XML_ERROR "Invalid xml"
|
#define XM_XML_ERROR "Invalid xml"
|
||||||
|
|
||||||
struct xenUnifiedDriver xenXMDriver = {
|
struct xenUnifiedDriver xenXMDriver = {
|
||||||
.xenDomainDefineXML = xenXMDomainDefineXML,
|
|
||||||
.xenDomainUndefine = xenXMDomainUndefine,
|
|
||||||
.xenDomainAttachDeviceFlags = xenXMDomainAttachDeviceFlags,
|
.xenDomainAttachDeviceFlags = xenXMDomainAttachDeviceFlags,
|
||||||
.xenDomainDetachDeviceFlags = xenXMDomainDetachDeviceFlags,
|
.xenDomainDetachDeviceFlags = xenXMDomainDetachDeviceFlags,
|
||||||
};
|
};
|
||||||
@ -1103,9 +1101,6 @@ xenXMDomainUndefine(virDomainPtr domain)
|
|||||||
xenXMConfCachePtr entry;
|
xenXMConfCachePtr entry;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (domain->id != -1)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
xenUnifiedLock(priv);
|
xenUnifiedLock(priv);
|
||||||
|
|
||||||
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
|
if (!(filename = virHashLookup(priv->nameConfigMap, domain->name)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user