On Thu, Feb 18, 2010 at 03:56:09PM +0000, Daniel P. Berrange wrote:
* src/remote/remote_protocol.x: Define wire protocol format
for virDomainGetJobInfo API
* src/remote/remote_driver.c, daemon/remote.c: Implement client
and server marshalling code for virDomainGetJobInfo()
* daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h
daemon/remote_dispatch_ret.h, daemon/remote_dispatch_table.h,
src/remote/remote_protocol.c, src/remote/remote_protocol.h: Rebuild
files from src/remote/remote_protocol.x
---
daemon/remote.c | 44 +++++++++++++++++++++++++++++++++++
daemon/remote_dispatch_args.h | 1 +
daemon/remote_dispatch_prototypes.h | 8 ++++++
daemon/remote_dispatch_ret.h | 1 +
daemon/remote_dispatch_table.h | 5 ++++
src/remote/remote_driver.c | 42 ++++++++++++++++++++++++++++++++-
src/remote/remote_protocol.c | 40 +++++++++++++++++++++++++++++++
src/remote/remote_protocol.h | 26 ++++++++++++++++++++
src/remote/remote_protocol.x | 27 ++++++++++++++++++++-
9 files changed, 192 insertions(+), 2 deletions(-)
diff --git a/daemon/remote.c b/daemon/remote.c
index eacc6f9..67d663e 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -5386,6 +5386,50 @@ remoteDispatchCpuBaseline(struct qemud_server *server
ATTRIBUTE_UNUSED,
}
ret->cpu = cpu;
+
+ return 0;
+}
+
+
+static int
+remoteDispatchDomainGetJobInfo (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_get_job_info_args *args,
+ remote_domain_get_job_info_ret *ret)
+{
+ virDomainPtr dom;
+ virDomainJobInfo info;
+
+ dom = get_nonnull_domain (conn, args->dom);
+ if (dom == NULL) {
+ remoteDispatchConnError(rerr, conn);
+ return -1;
+ }
+
+ if (virDomainGetJobInfo (dom, &info) == -1) {
+ virDomainFree(dom);
+ remoteDispatchConnError(rerr, conn);
+ return -1;
+ }
+
+ ret->type = info.type;
+ ret->timeElapsed = info.timeElapsed;
+ ret->timeRemaining = info.timeRemaining;
+ ret->dataTotal = info.dataTotal;
+ ret->dataProcessed = info.dataProcessed;
+ ret->dataRemaining = info.dataRemaining;
+ ret->memTotal = info.memTotal;
+ ret->memProcessed = info.memProcessed;
+ ret->memRemaining = info.memRemaining;
+ ret->fileTotal = info.fileTotal;
+ ret->fileProcessed = info.fileProcessed;
+ ret->fileRemaining = info.fileRemaining;
+
+ virDomainFree(dom);
+
return 0;
}
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/