[libvirt] [test-API][PATCH v2 2/2] Add and update functions in streamAPI

Alex Jia ajia at redhat.com
Tue Feb 7 02:56:04 UTC 2012


On 02/06/2012 06:55 PM, Wayne Sun wrote:
>    * accpet connection object and stream flag as parameter in __init__
>      remove connect function for connction is given in as parameter.
>
>    * remove newStream() from each function
>      create new stream object in __init__.
>      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 |   75 ++++++++++++++++++++++++++++++++++++------------------
>   1 files changed, 50 insertions(+), 25 deletions(-)
>
> diff --git a/lib/streamAPI.py b/lib/streamAPI.py
> index bc7d217..4da57ca 100644
> --- a/lib/streamAPI.py
> +++ b/lib/streamAPI.py
> @@ -38,76 +38,101 @@ append_path(result.group(0))
>   import exception
>
>   class StreamAPI(object):
> -    def __init__(self, connection):
> +    def __init__(self, connection, flag = 0):
>           self.conn = connection
> +        self.stream_obj = self.conn.newStream(flag)
>
> -    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 finish(self):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.connect()
> +            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 finish(self, flag = 0):
> +    def recv(self, nbytes):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.finish()
> +            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 recv(self, flag = 0, data, nbytes):
> +    def send(self, data):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.recv(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 send(self, flag = 0, data, nbytes):
> +    def eventAddCallback(self, cb, opaque):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.send(data, nbytes)
> +            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 eventAddCallback(self, flag = 0, cb, opaque):
> +    def eventRemoveCallback(self):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.eventAddCallback(cb, opaque)
> +            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 eventRemoveCallback(self, flag = 0):
> +    def eventUpdateCallback(self, events):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.eventRemoveCallback()
> +            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 eventUpdateCallback(self, flag = 0, events)
> +    def screenshot(self, domain, screen, flags = 0):
>           try:
> -            stream_obj = newStream(flag)
> -            return stream_obj.eventUpdateCallback(events)
> +            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()
If you can add some docstring for each function, it will be better. in 
addition, I met a conflict when I applied the patch series, please make 
sure the change is based on 1/2 patch.

Alex





More information about the libvir-list mailing list