]> xenbits.xensource.com Git - libvirt.git/commitdiff
Wire up internal entry points for virDomainAbortJob API
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 4 Feb 2010 16:16:35 +0000 (16:16 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 2 Mar 2010 16:23:31 +0000 (16:23 +0000)
This provides the internal glue for the driver API

* src/driver.h: Internal API contract
* src/libvirt.c, src/libvirt_public.syms: Connect public API
  to driver API
* src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
  src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
  src/qemu/qemu_driver.c, src/remote/remote_driver.c,
  src/test/test_driver.c src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
  src/xen/xen_driver.c: Stub out entry points

14 files changed:
src/driver.h
src/esx/esx_driver.c
src/libvirt.c
src/libvirt_public.syms
src/lxc/lxc_driver.c
src/opennebula/one_driver.c
src/openvz/openvz_driver.c
src/phyp/phyp_driver.c
src/qemu/qemu_driver.c
src/remote/remote_driver.c
src/test/test_driver.c
src/uml/uml_driver.c
src/vbox/vbox_tmpl.c
src/xen/xen_driver.c

index 8c5d97dae219bdca0188efe839e7f964b36d2c5a..7b7dfeaccd0860be6e490662e4c5f7443fb3c7fb 100644 (file)
@@ -377,6 +377,9 @@ typedef int
     (*virDrvDomainGetJobInfo)(virDomainPtr domain,
                               virDomainJobInfoPtr info);
 
+typedef int
+    (*virDrvDomainAbortJob)(virDomainPtr domain);
+
 /**
  * _virDriver:
  *
@@ -469,6 +472,7 @@ struct _virDriver {
     virDrvCPUCompare            cpuCompare;
     virDrvCPUBaseline           cpuBaseline;
     virDrvDomainGetJobInfo     domainGetJobInfo;
+    virDrvDomainAbortJob     domainAbortJob;
 };
 
 typedef int
index 226a6a0dfbf5d46d3dad3ce42220952f4b246bd9..fc2e68c4f63b927a8222de2ff9b139b8a7bb6c63 100644 (file)
@@ -3405,6 +3405,7 @@ static virDriver esxDriver = {
     NULL,                            /* cpuCompare */
     NULL,                            /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 
index 4585a4902e3070a410ebc93491317f811f424049..d9242bce9854d1555f1fc2ccc147f3ba09d0de48 100644 (file)
@@ -11207,3 +11207,50 @@ error:
     virDispatchError(domain->conn);
     return -1;
 }
+
+
+/**
+ * virDomainAbortJob:
+ * @domain: a domain object
+ *
+ * Requests that the current background job be aborted at the
+ * soonest opportunity. This will block until the job has
+ * either completed, or aborted.
+ *
+ * Returns 0 in case of success and -1 in case of failure.
+ */
+int
+virDomainAbortJob(virDomainPtr domain)
+{
+    virConnectPtr conn;
+
+    DEBUG("domain=%p", domain);
+
+    virResetLastError();
+
+    if (!VIR_IS_CONNECTED_DOMAIN(domain)) {
+        virLibDomainError(NULL, VIR_ERR_INVALID_DOMAIN, __FUNCTION__);
+        virDispatchError(NULL);
+        return (-1);
+    }
+
+    conn = domain->conn;
+    if (conn->flags & VIR_CONNECT_RO) {
+        virLibDomainError(domain, VIR_ERR_OPERATION_DENIED, __FUNCTION__);
+        goto error;
+    }
+
+    if (conn->driver->domainAbortJob) {
+        int ret;
+        ret = conn->driver->domainAbortJob(domain);
+        if (ret < 0)
+            goto error;
+        return ret;
+    }
+
+    virLibConnError (conn, VIR_ERR_NO_SUPPORT, __FUNCTION__);
+
+error:
+    virDispatchError(conn);
+    return -1;
+}
index 6997b7b4b539e1b3a3bd709623accdcb584d20e3..64e75051727982da7507cbbcf4018bd4282ad42a 100644 (file)
@@ -355,6 +355,7 @@ LIBVIRT_0.7.7 {
         virDomainDetachDeviceFlags;
         virConnectBaselineCPU;
         virDomainGetJobInfo;
+       virDomainAbortJob;
 } LIBVIRT_0.7.5;
 
 # .... define new API here using predicted next version number ....
index 2613bd5621d104bd10616681f68171d407529c6b..35c865973ff5ddb7c15fa62cd2d13b21d690397a 100644 (file)
@@ -2452,6 +2452,7 @@ static virDriver lxcDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 static virStateDriver lxcStateDriver = {
index 5ffc5eb2edcb38aff3c2ee66f86c2663854e3586..9fc0ada3e297d02b42db370beb19145ed067de96 100644 (file)
@@ -787,6 +787,7 @@ static virDriver oneDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 static virStateDriver oneStateDriver = {
index f0d8c95bae0b40a73a101aa275422bae5851bc0a..b7bc43b6fcc44253637dbd043dd87b1b91d8a01d 100644 (file)
@@ -1539,6 +1539,7 @@ static virDriver openvzDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 int openvzRegister(void) {
index 1fe4261d62627072f629e45196397d2d88f622be..d3c8c19c05dec1832eb8686d8d6a48b2a2d4f657 100644 (file)
@@ -1655,6 +1655,7 @@ virDriver phypDriver = {
     NULL,                       /* cpuCompare */
     NULL,                       /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 int
index 9d02e2a48837b612ec0893dd23ead73bc6982c66..081b698f7f86a44bc19ac1c1ea889df074c46599 100644 (file)
@@ -8918,6 +8918,7 @@ static virDriver qemuDriver = {
     qemuCPUCompare, /* cpuCompare */
     qemuCPUBaseline, /* cpuBaseline */
     qemuDomainGetJobInfo, /* domainGetJobInfo */
+    NULL, /* domainFinishJob */
 };
 
 
index 70533e337e43dd320f35bee604929fd9d7959fcb..74274bd6bb1aeda5f5d17ea0cf8132380fa88bf0 100644 (file)
@@ -9101,6 +9101,7 @@ static virDriver remote_driver = {
     remoteCPUCompare, /* cpuCompare */
     remoteCPUBaseline, /* cpuBaseline */
     remoteDomainGetJobInfo, /* domainGetJobInfo */
+    NULL, /* domainFinishJob */
 };
 
 static virNetworkDriver network_driver = {
index e0c4f89169a0f9aed07382e77b6b4e7238a1324b..5807288a7ad0a4d41c85dfa6d74bf7b0776012bb 100644 (file)
@@ -5244,6 +5244,7 @@ static virDriver testDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 static virNetworkDriver testNetworkDriver = {
index e2be5b332e415390eded26d87d248e3dc88a5196..bbea4295f38bd388eaeee181684e21b1dab791e9 100644 (file)
@@ -1921,6 +1921,7 @@ static virDriver umlDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 
index 2d1cca1749517e0d25ff7e7efed2dd3e520bb031..a649df8228d0a637e53e84613727624c9b9e2280 100644 (file)
@@ -7064,6 +7064,7 @@ virDriver NAME(Driver) = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 virNetworkDriver NAME(NetworkDriver) = {
index 3e796d3e2518fc94562b359971ff56104f87a2e7..0eb39275fce4dde1984fac05c198208f04d74de1 100644 (file)
@@ -1905,6 +1905,7 @@ static virDriver xenUnifiedDriver = {
     NULL, /* cpuCompare */
     NULL, /* cpuBaseline */
     NULL, /* domainGetJobInfo */
+    NULL, /* domainAbortJob */
 };
 
 /**