]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
vbox, xenapi: add virDomainUndefineFlags
authorEric Blake <eblake@redhat.com>
Thu, 11 Aug 2011 21:44:05 +0000 (15:44 -0600)
committerEric Blake <eblake@redhat.com>
Fri, 12 Aug 2011 13:44:54 +0000 (07:44 -0600)
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.

src/vbox/vbox_tmpl.c
src/xenapi/xenapi_driver.c

index 5c717299c03652ecb3ebc786c1cdf398bee109d5..822e8992b313b9fdfefe3dd2619b81ef1269d1a4 100644 (file)
@@ -251,7 +251,7 @@ static vboxGlobalData *g_pVBoxGlobalData = NULL;
 
 static virDomainPtr vboxDomainDefineXML(virConnectPtr conn, const char *xml);
 static int vboxDomainCreate(virDomainPtr dom);
-static int vboxDomainUndefine(virDomainPtr dom);
+static int vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags);
 
 static void vboxDriverLock(vboxGlobalData *data) {
     virMutexLock(&data->lock);
@@ -1193,7 +1193,7 @@ static virDomainPtr vboxDomainCreateXML(virConnectPtr conn, const char *xml,
         return NULL;
 
     if (vboxDomainCreate(dom) < 0) {
-        vboxDomainUndefine(dom);
+        vboxDomainUndefineFlags(dom, 0);
         virUnrefDomain(dom);
         return NULL;
     }
@@ -4973,7 +4973,7 @@ cleanup:
 }
 
 static int
-vboxDomainUndefine(virDomainPtr dom)
+vboxDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
 {
     VBOX_OBJECT_CHECK(dom->conn, int, -1);
     IMachine *machine    = NULL;
@@ -4982,6 +4982,7 @@ vboxDomainUndefine(virDomainPtr dom)
 #if VBOX_API_VERSION >= 4000
     vboxArray media = VBOX_ARRAY_INITIALIZER;
 #endif
+    virCheckFlags(0, -1);
 
     vboxIIDFromUUID(&iid, dom->uuid);
 
@@ -5131,6 +5132,12 @@ vboxDomainUndefine(virDomainPtr dom)
     return ret;
 }
 
+static int
+vboxDomainUndefine(virDomainPtr dom)
+{
+    return vboxDomainUndefineFlags(dom, 0);
+}
+
 static int vboxDomainAttachDeviceImpl(virDomainPtr dom,
                                       const char *xml,
                                       int mediaChangeOnly ATTRIBUTE_UNUSED) {
@@ -8806,6 +8813,7 @@ virDriver NAME(Driver) = {
     .domainCreateWithFlags = vboxDomainCreateWithFlags, /* 0.8.2 */
     .domainDefineXML = vboxDomainDefineXML, /* 0.6.3 */
     .domainUndefine = vboxDomainUndefine, /* 0.6.3 */
+    .domainUndefineFlags = vboxDomainUndefineFlags, /* 0.9.5 */
     .domainAttachDevice = vboxDomainAttachDevice, /* 0.6.3 */
     .domainAttachDeviceFlags = vboxDomainAttachDeviceFlags, /* 0.7.7 */
     .domainDetachDevice = vboxDomainDetachDevice, /* 0.6.3 */
index d40bc3e3dd763d18639e9b77ed325a80cfb4a208..80a706a20ab71d4a6a411d44a7cb7b2a6fafc0cd 100644 (file)
@@ -1696,17 +1696,19 @@ xenapiDomainDefineXML (virConnectPtr conn, const char *xml)
 }
 
 /*
- * xenapiDomainUndefine
+ * xenapiDomainUndefineFlags
  *
  * destroys a domain
  * Return 0 on success or -1 in case of error
  */
 static int
-xenapiDomainUndefine (virDomainPtr dom)
+xenapiDomainUndefineFlags(virDomainPtr dom, unsigned int flags)
 {
     struct xen_vm_set *vms;
     xen_vm vm;
     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 (vms->size != 1) {
             xenapiSessionErrorHandler(dom->conn, VIR_ERR_INTERNAL_ERROR,
@@ -1728,6 +1730,12 @@ xenapiDomainUndefine (virDomainPtr dom)
     return -1;
 }
 
+static int
+xenapiDomainUndefine(virDomainPtr dom)
+{
+    return xenapiDomainUndefineFlags(dom, 0);
+}
+
 /*
  * xenapiDomainGetAutostart
  *
@@ -1922,6 +1930,7 @@ static virDriver xenapiDriver = {
     .domainCreateWithFlags = xenapiDomainCreateWithFlags, /* 0.8.2 */
     .domainDefineXML = xenapiDomainDefineXML, /* 0.8.0 */
     .domainUndefine = xenapiDomainUndefine, /* 0.8.0 */
+    .domainUndefineFlags = xenapiDomainUndefineFlags, /* 0.9.5 */
     .domainGetAutostart = xenapiDomainGetAutostart, /* 0.8.0 */
     .domainSetAutostart = xenapiDomainSetAutostart, /* 0.8.0 */
     .domainGetSchedulerType = xenapiDomainGetSchedulerType, /* 0.8.0 */