On 01/31/2012 04:46 PM, Wayne Sun wrote:
* only accpet stream object as parameter in __init__ * remove newStream() from each function stream object should be pass in as parameter, not create new at each function. function also need flags parameter. * Add 5 new functions screenshot(self, domain, screen, flags = 0) download(self, vol, offset, length, flags = 0) upload(self, vol, offset, length, flags = 0) recvAll(self, handler, opaque) sendAll(self, handler, opaque) for recvAll and sendAll, handler is a user defined function which write/read data to/from file. --- lib/streamAPI.py | 84 +++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 58 insertions(+), 26 deletions(-) diff --git a/lib/streamAPI.py b/lib/streamAPI.py index bc7d217..a1b2d0d 100644 --- a/lib/streamAPI.py +++ b/lib/streamAPI.py @@ -38,76 +38,108 @@ append_path(result.group(0)) import exception class StreamAPI(object): - def __init__(self, connection): - self.conn = connection + def __init__(self, stream): + self.stream_obj = stream
Need a 'stream' instance to initialize class StreamAPI? how to do this? users must to do 'stream = con.newStream(0)' then StreamAPI(stream), right? maybe, we may do this like this: class StreamAPI(object): def __init__(self, connection, flag = 0): self.conn = connection self.stream_obj = newStream(flag) Alex
- def abort(self, flag = 0): + def abort(self): try: - stream_obj = newStream(flag) - return stream_obj.abort() + return self.stream_obj.abort() except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def connect(self, flag = 0): + def connect(self): try: - stream_obj = newStream(flag) - return stream_obj.connect() + return self.stream_obj.connect() except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def finish(self, flag = 0): + def finish(self): try: - stream_obj = newStream(flag) - return stream_obj.finish() + return self.stream_obj.finish() except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def recv(self, flag = 0, data, nbytes): + def recv(self, nbytes): try: - stream_obj = newStream(flag) - return stream_obj.recv(data, nbytes) + return self.stream_obj.recv(nbytes) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def send(self, flag = 0, data, nbytes): + def send(self, data): try: - stream_obj = newStream(flag) - return stream_obj.send(data, nbytes) + return self.stream_obj.send(data) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def eventAddCallback(self, flag = 0, cb, opaque): + def eventAddCallback(self, cb, opaque): try: - stream_obj = newStream(flag) - return stream_obj.eventAddCallback(cb, opaque) + return self.stream_obj.eventAddCallback(cb, opaque) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def eventRemoveCallback(self, flag = 0): + def eventRemoveCallback(self): try: - stream_obj = newStream(flag) - return stream_obj.eventRemoveCallback() + return self.stream_obj.eventRemoveCallback() except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code() raise exception.LibvirtAPI(message, code) - def eventUpdateCallback(self, flag = 0, events) + def eventUpdateCallback(self, events): try: - stream_obj = newStream(flag) - return stream_obj.eventUpdateCallback(events) + return self.stream_obj.eventUpdateCallback(events) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def screenshot(self, domain, screen, flags = 0): + try: + return self.stream_obj.screenshot(domain, screen, flags) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def download(self, vol, offset, length, flags = 0): + try: + return self.stream_obj.download(vol, offset, length, flags) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def upload(self, vol, offset, length, flags = 0): + try: + return self.stream_obj.upload(vol, offset, length, flags) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def recvAll(self, handler, opaque): + try: + return self.stream_obj.recvAll(handler, opaque) + except libvirt.libvirtError, e: + message = e.get_error_message() + code = e.get_error_code() + raise exception.LibvirtAPI(message, code) + + def sendAll(self, handler, opaque): + try: + return self.stream_obj.sendAll(handler, opaque) except libvirt.libvirtError, e: message = e.get_error_message() code = e.get_error_code()
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list