Re: [libvirt] [PATCH 7/9] Remote driver implementation for the virDomainAbortJob APi

2010-02-26 Thread Daniel Veillard
On Thu, Feb 18, 2010 at 03:56:13PM +, Daniel P. Berrange wrote:
 This defines the wire protocol for the new API
 
 * src/remote/remote_protocol.x: Wire protocol definition
 * src/remote/remote_driver.c,daemon/remote.c: Client and server
   side implementation
 * daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
   daemon/remote_dispatch_table.h, src/remote/remote_protocol.c,
   src/remote/remote_protocol.h: Re-generate from remote_protocol.x
 ---
  daemon/remote.c |   29 +
  daemon/remote_dispatch_args.h   |1 +
  daemon/remote_dispatch_prototypes.h |8 
  daemon/remote_dispatch_table.h  |5 +
  src/remote/remote_driver.c  |   26 +-
  src/remote/remote_protocol.c|9 +
  src/remote/remote_protocol.h|8 
  src/remote/remote_protocol.x|8 +++-
  8 files changed, 92 insertions(+), 2 deletions(-)
 

  ACK,

Daniel

-- 
Daniel Veillard  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
dan...@veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH 7/9] Remote driver implementation for the virDomainAbortJob APi

2010-02-18 Thread Daniel P. Berrange
This defines the wire protocol for the new API

* src/remote/remote_protocol.x: Wire protocol definition
* src/remote/remote_driver.c,daemon/remote.c: Client and server
  side implementation
* daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
  daemon/remote_dispatch_table.h, src/remote/remote_protocol.c,
  src/remote/remote_protocol.h: Re-generate from remote_protocol.x
---
 daemon/remote.c |   29 +
 daemon/remote_dispatch_args.h   |1 +
 daemon/remote_dispatch_prototypes.h |8 
 daemon/remote_dispatch_table.h  |5 +
 src/remote/remote_driver.c  |   26 +-
 src/remote/remote_protocol.c|9 +
 src/remote/remote_protocol.h|8 
 src/remote/remote_protocol.x|8 +++-
 8 files changed, 92 insertions(+), 2 deletions(-)

diff --git a/daemon/remote.c b/daemon/remote.c
index 67d663e..d4713b2 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -5434,6 +5434,35 @@ remoteDispatchDomainGetJobInfo (struct qemud_server 
*server ATTRIBUTE_UNUSED,
 }
 
 
+static int
+remoteDispatchDomainAbortJob (struct qemud_server *server ATTRIBUTE_UNUSED,
+  struct qemud_client *client ATTRIBUTE_UNUSED,
+  virConnectPtr conn,
+  remote_message_header *hdr ATTRIBUTE_UNUSED,
+  remote_error *rerr,
+  remote_domain_abort_job_args *args,
+  void *ret ATTRIBUTE_UNUSED)
+{
+virDomainPtr dom;
+
+dom = get_nonnull_domain (conn, args-dom);
+if (dom == NULL) {
+remoteDispatchConnError(rerr, conn);
+return -1;
+}
+
+if (virDomainAbortJob (dom) == -1) {
+virDomainFree(dom);
+remoteDispatchConnError(rerr, conn);
+return -1;
+}
+
+virDomainFree(dom);
+
+return 0;
+}
+
+
 /*- Helpers. -*/
 
 /* get_nonnull_domain and get_nonnull_network turn an on-wire
diff --git a/daemon/remote_dispatch_args.h b/daemon/remote_dispatch_args.h
index 3a40542..f97155b 100644
--- a/daemon/remote_dispatch_args.h
+++ b/daemon/remote_dispatch_args.h
@@ -139,3 +139,4 @@
 remote_domain_detach_device_flags_args 
val_remote_domain_detach_device_flags_args;
 remote_cpu_baseline_args val_remote_cpu_baseline_args;
 remote_domain_get_job_info_args val_remote_domain_get_job_info_args;
+remote_domain_abort_job_args val_remote_domain_abort_job_args;
diff --git a/daemon/remote_dispatch_prototypes.h 
b/daemon/remote_dispatch_prototypes.h
index 4b8992e..b81c8c3 100644
--- a/daemon/remote_dispatch_prototypes.h
+++ b/daemon/remote_dispatch_prototypes.h
@@ -66,6 +66,14 @@ static int remoteDispatchCpuCompare(
 remote_error *err,
 remote_cpu_compare_args *args,
 remote_cpu_compare_ret *ret);
+static int remoteDispatchDomainAbortJob(
+struct qemud_server *server,
+struct qemud_client *client,
+virConnectPtr conn,
+remote_message_header *hdr,
+remote_error *err,
+remote_domain_abort_job_args *args,
+void *ret);
 static int remoteDispatchDomainAttachDevice(
 struct qemud_server *server,
 struct qemud_client *client,
diff --git a/daemon/remote_dispatch_table.h b/daemon/remote_dispatch_table.h
index a1b34d4..5ad6bff 100644
--- a/daemon/remote_dispatch_table.h
+++ b/daemon/remote_dispatch_table.h
@@ -822,3 +822,8 @@
 .args_filter = (xdrproc_t) xdr_remote_domain_get_job_info_args,
 .ret_filter = (xdrproc_t) xdr_remote_domain_get_job_info_ret,
 },
+{   /* DomainAbortJob = 164 */
+.fn = (dispatch_fn) remoteDispatchDomainAbortJob,
+.args_filter = (xdrproc_t) xdr_remote_domain_abort_job_args,
+.ret_filter = (xdrproc_t) xdr_void,
+},
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index 82a82f4..a12f964 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -7661,6 +7661,30 @@ done:
 }
 
 
+static int
+remoteDomainAbortJob (virDomainPtr domain)
+{
+int rv = -1;
+remote_domain_abort_job_args args;
+struct private_data *priv = domain-conn-privateData;
+
+remoteDriverLock(priv);
+
+make_nonnull_domain (args.dom, domain);
+
+if (call (domain-conn, priv, 0, REMOTE_PROC_DOMAIN_ABORT_JOB,
+  (xdrproc_t) xdr_remote_domain_abort_job_args, (char *) args,
+  (xdrproc_t) xdr_void, (char *) NULL) == -1)
+goto done;
+
+rv = 0;
+
+done:
+remoteDriverUnlock(priv);
+return rv;
+}
+
+
 /*--*/
 
 
@@ -9053,7 +9077,7 @@ static virDriver remote_driver = {
 remoteCPUCompare, /* cpuCompare */
 remoteCPUBaseline, /* cpuBaseline */
 remoteDomainGetJobInfo, /* domainGetJobInfo */
-NULL, /* domainFinishJob */
+remoteDomainAbortJob, /* domainFinishJob */
 };
 
 static virNetworkDriver network_driver = {
diff --git 

[libvirt] [PATCH 7/9] Remote driver implementation for the virDomainAbortJob APi

2010-02-04 Thread Daniel P. Berrange
This defines the wire protocol for the new API

* src/remote/remote_protocol.x: Wire protocol definition
* src/remote/remote_driver.c,daemon/remote.c: Client and server
  side implementation
* daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
  daemon/remote_dispatch_table.h, src/remote/remote_protocol.c,
  src/remote/remote_protocol.h: Re-generate from remote_protocol.x
---
 daemon/remote.c |   29 +
 daemon/remote_dispatch_args.h   |1 +
 daemon/remote_dispatch_prototypes.h |8 
 daemon/remote_dispatch_table.h  |5 +
 src/remote/remote_driver.c  |   26 +-
 src/remote/remote_protocol.c|9 +
 src/remote/remote_protocol.h|8 
 src/remote/remote_protocol.x|9 -
 8 files changed, 93 insertions(+), 2 deletions(-)

diff --git a/daemon/remote.c b/daemon/remote.c
index e434591..3269bde 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -5356,6 +5356,35 @@ remoteDispatchDomainGetJobInfo (struct qemud_server 
*server ATTRIBUTE_UNUSED,
 }
 
 
+static int
+remoteDispatchDomainAbortJob (struct qemud_server *server ATTRIBUTE_UNUSED,
+  struct qemud_client *client ATTRIBUTE_UNUSED,
+  virConnectPtr conn,
+  remote_message_header *hdr ATTRIBUTE_UNUSED,
+  remote_error *rerr,
+  remote_domain_abort_job_args *args,
+  void *ret ATTRIBUTE_UNUSED)
+{
+virDomainPtr dom;
+
+dom = get_nonnull_domain (conn, args-dom);
+if (dom == NULL) {
+remoteDispatchConnError(rerr, conn);
+return -1;
+}
+
+if (virDomainAbortJob (dom) == -1) {
+virDomainFree(dom);
+remoteDispatchConnError(rerr, conn);
+return -1;
+}
+
+virDomainFree(dom);
+
+return 0;
+}
+
+
 /*- Helpers. -*/
 
 /* get_nonnull_domain and get_nonnull_network turn an on-wire
diff --git a/daemon/remote_dispatch_args.h b/daemon/remote_dispatch_args.h
index b66af1c..9cbe258 100644
--- a/daemon/remote_dispatch_args.h
+++ b/daemon/remote_dispatch_args.h
@@ -136,3 +136,4 @@
 remote_cpu_compare_args val_remote_cpu_compare_args;
 remote_domain_memory_stats_args val_remote_domain_memory_stats_args;
 remote_domain_get_job_info_args val_remote_domain_get_job_info_args;
+remote_domain_abort_job_args val_remote_domain_abort_job_args;
diff --git a/daemon/remote_dispatch_prototypes.h 
b/daemon/remote_dispatch_prototypes.h
index b520f7d..e34d756 100644
--- a/daemon/remote_dispatch_prototypes.h
+++ b/daemon/remote_dispatch_prototypes.h
@@ -58,6 +58,14 @@ static int remoteDispatchCpuCompare(
 remote_error *err,
 remote_cpu_compare_args *args,
 remote_cpu_compare_ret *ret);
+static int remoteDispatchDomainAbortJob(
+struct qemud_server *server,
+struct qemud_client *client,
+virConnectPtr conn,
+remote_message_header *hdr,
+remote_error *err,
+remote_domain_abort_job_args *args,
+void *ret);
 static int remoteDispatchDomainAttachDevice(
 struct qemud_server *server,
 struct qemud_client *client,
diff --git a/daemon/remote_dispatch_table.h b/daemon/remote_dispatch_table.h
index 18acba8..de3a355 100644
--- a/daemon/remote_dispatch_table.h
+++ b/daemon/remote_dispatch_table.h
@@ -807,3 +807,8 @@
 .args_filter = (xdrproc_t) xdr_remote_domain_get_job_info_args,
 .ret_filter = (xdrproc_t) xdr_remote_domain_get_job_info_ret,
 },
+{   /* DomainAbortJob = 161 */
+.fn = (dispatch_fn) remoteDispatchDomainAbortJob,
+.args_filter = (xdrproc_t) xdr_remote_domain_abort_job_args,
+.ret_filter = (xdrproc_t) xdr_void,
+},
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index dd0bf9a..b777b31 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -7576,6 +7576,30 @@ done:
 }
 
 
+static int
+remoteDomainAbortJob (virDomainPtr domain)
+{
+int rv = -1;
+remote_domain_abort_job_args args;
+struct private_data *priv = domain-conn-privateData;
+
+remoteDriverLock(priv);
+
+make_nonnull_domain (args.dom, domain);
+
+if (call (domain-conn, priv, 0, REMOTE_PROC_DOMAIN_ABORT_JOB,
+  (xdrproc_t) xdr_remote_domain_abort_job_args, (char *) args,
+  (xdrproc_t) xdr_void, (char *) NULL) == -1)
+goto done;
+
+rv = 0;
+
+done:
+remoteDriverUnlock(priv);
+return rv;
+}
+
+
 /*--*/
 
 
@@ -8965,7 +8989,7 @@ static virDriver remote_driver = {
 remoteDomainIsPersistent, /* domainIsPersistent */
 remoteCPUCompare, /* cpuCompare */
 remoteDomainGetJobInfo, /* domainGetJobInfo */
-NULL, /* domainFinishJob */
+remoteDomainAbortJob, /* domainFinishJob */
 };
 
 static virNetworkDriver network_driver = {
diff --git