mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 22:25:25 +00:00
vbox, xenapi: add virDomainUndefineFlags
We forgot to add virDomainUndefineFlags for a couple of hypervisors. This wires up trivial versions (since neither hypervisor supports managed save yet, they do not need to support any flags). * src/vbox/vbox_tmpl.c (vboxDomainCreateXML): Update caller. (vboxDomainUndefine): Move guts... (vboxDomainUndefineFlags): ...to new function. * src/xenapi/xenapi_driver.c (xenapiDomainUndefine) (xenapiDomainUndefineFlags): Likewise.
This commit is contained in:
parent
9a0ec36346
commit
cfe35a88f0
@ -251,7 +251,7 @@ static vboxGlobalData *g_pVBoxGlobalData = NULL;
|
|||||||
|
|
||||||
static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml);
|
static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml);
|
||||||
static int vboxDomainCreate(virDomainPtr dom);
|
static int vboxDomainCreate(virDomainPtr dom);
|
||||||
static int vboxDomainUndefine(virDomainPtr dom);
|
static int vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags);
|
||||||
|
|
||||||
static void vboxDriverLock(vboxGlobalData *data) {
|
static void vboxDriverLock(vboxGlobalData *data) {
|
||||||
virMutexLock(&data->lock);
|
virMutexLock(&data->lock);
|
||||||
@ -1193,7 +1193,7 @@ static virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml,
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (vboxDomainCreate(dom) < 0) {
|
if (vboxDomainCreate(dom) < 0) {
|
||||||
vboxDomainUndefine(dom);
|
vboxDomainUndefineFlags(dom, 0);
|
||||||
virUnrefDomain(dom);
|
virUnrefDomain(dom);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -4973,7 +4973,7 @@ cleanup:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
vboxDomainUndefine(virDomainPtr dom)
|
vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
||||||
{
|
{
|
||||||
VBOX_OBJECT_CHECK(dom->conn, int, -1);
|
VBOX_OBJECT_CHECK(dom->conn, int, -1);
|
||||||
IMachine *machine = NULL;
|
IMachine *machine = NULL;
|
||||||
@ -4982,6 +4982,7 @@ vboxDomainUndefine(virDomainPtr dom)
|
|||||||
#if VBOX_API_VERSION >= 4000
|
#if VBOX_API_VERSION >= 4000
|
||||||
vboxArray media = VBOX_ARRAY_INITIALIZER;
|
vboxArray media = VBOX_ARRAY_INITIALIZER;
|
||||||
#endif
|
#endif
|
||||||
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
vboxIIDFromUUID(&iid, dom->uuid);
|
vboxIIDFromUUID(&iid, dom->uuid);
|
||||||
|
|
||||||
@ -5131,6 +5132,12 @@ vboxDomainUndefine(virDomainPtr dom)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
vboxDomainUndefine(virDomainPtr dom)
|
||||||
|
{
|
||||||
|
return vboxDomainUndefineFlags(dom, 0);
|
||||||
|
}
|
||||||
|
|
||||||
static int vboxDomainAttachDeviceImpl(virDomainPtr dom,
|
static int vboxDomainAttachDeviceImpl(virDomainPtr dom,
|
||||||
const char *xml,
|
const char *xml,
|
||||||
int mediaChangeOnly ATTRIBUTE_UNUSED) {
|
int mediaChangeOnly ATTRIBUTE_UNUSED) {
|
||||||
@ -8806,6 +8813,7 @@ virDriver NAME(Driver) = {
|
|||||||
.domainCreateWithFlags = vboxDomainCreateWithFlags, /* 0.8.2 */
|
.domainCreateWithFlags = vboxDomainCreateWithFlags, /* 0.8.2 */
|
||||||
.domainDefineXML = vboxDomainDefineXML, /* 0.6.3 */
|
.domainDefineXML = vboxDomainDefineXML, /* 0.6.3 */
|
||||||
.domainUndefine = vboxDomainUndefine, /* 0.6.3 */
|
.domainUndefine = vboxDomainUndefine, /* 0.6.3 */
|
||||||
|
.domainUndefineFlags = vboxDomainUndefineFlags, /* 0.9.5 */
|
||||||
.domainAttachDevice = vboxDomainAttachDevice, /* 0.6.3 */
|
.domainAttachDevice = vboxDomainAttachDevice, /* 0.6.3 */
|
||||||
.domainAttachDeviceFlags = vboxDomainAttachDeviceFlags, /* 0.7.7 */
|
.domainAttachDeviceFlags = vboxDomainAttachDeviceFlags, /* 0.7.7 */
|
||||||
.domainDetachDevice = vboxDomainDetachDevice, /* 0.6.3 */
|
.domainDetachDevice = vboxDomainDetachDevice, /* 0.6.3 */
|
||||||
|
@ -1696,17 +1696,19 @@ xenapiDomainDefineXML (virConnectPtr conn, const char *xml)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* xenapiDomainUndefine
|
* xenapiDomainUndefineFlags
|
||||||
*
|
*
|
||||||
* destroys a domain
|
* destroys a domain
|
||||||
* Return 0 on success or -1 in case of error
|
* Return 0 on success or -1 in case of error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
xenapiDomainUndefine (virDomainPtr dom)
|
xenapiDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
|
||||||
{
|
{
|
||||||
struct xen_vm_set *vms;
|
struct xen_vm_set *vms;
|
||||||
xen_vm vm;
|
xen_vm vm;
|
||||||
xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session;
|
xen_session *session = ((struct _xenapiPrivate *)(dom->conn->privateData))->session;
|
||||||
|
virCheckFlags(0, -1);
|
||||||
|
|
||||||
if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) {
|
if (xen_vm_get_by_name_label(session, &vms, dom->name) && vms->size > 0) {
|
||||||
if (vms->size != 1) {
|
if (vms->size != 1) {
|
||||||
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
|
||||||
@ -1728,6 +1730,12 @@ xenapiDomainUndefine (virDomainPtr dom)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
xenapiDomainUndefine(virDomainPtr dom)
|
||||||
|
{
|
||||||
|
return xenapiDomainUndefineFlags(dom, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* xenapiDomainGetAutostart
|
* xenapiDomainGetAutostart
|
||||||
*
|
*
|
||||||
@ -1922,6 +1930,7 @@ static virDriver xenapiDriver = {
|
|||||||
.domainCreateWithFlags = xenapiDomainCreateWithFlags, /* 0.8.2 */
|
.domainCreateWithFlags = xenapiDomainCreateWithFlags, /* 0.8.2 */
|
||||||
.domainDefineXML = xenapiDomainDefineXML, /* 0.8.0 */
|
.domainDefineXML = xenapiDomainDefineXML, /* 0.8.0 */
|
||||||
.domainUndefine = xenapiDomainUndefine, /* 0.8.0 */
|
.domainUndefine = xenapiDomainUndefine, /* 0.8.0 */
|
||||||
|
.domainUndefineFlags = xenapiDomainUndefineFlags, /* 0.9.5 */
|
||||||
.domainGetAutostart = xenapiDomainGetAutostart, /* 0.8.0 */
|
.domainGetAutostart = xenapiDomainGetAutostart, /* 0.8.0 */
|
||||||
.domainSetAutostart = xenapiDomainSetAutostart, /* 0.8.0 */
|
.domainSetAutostart = xenapiDomainSetAutostart, /* 0.8.0 */
|
||||||
.domainGetSchedulerType = xenapiDomainGetSchedulerType, /* 0.8.0 */
|
.domainGetSchedulerType = xenapiDomainGetSchedulerType, /* 0.8.0 */
|
||||||
|
Loading…
Reference in New Issue
Block a user