[libvirt] [test-API][PATCH 1/2] Declare hypervisor connection variable as the global

Nan Zhang nzhang at redhat.com
Tue Aug 9 08:57:40 UTC 2011


On 08/04/2011 04:37 PM, Guannan Ren wrote:
> The is solve the problem where the failure of open() will lead to
> null conn variable, and when we call close() later,it will report
> no global 'conn' attribute to the ConnectAPI object.
>
> remove a duplicated close() function
> ---
>   lib/connectAPI.py |   19 ++++++-------------
>   1 files changed, 6 insertions(+), 13 deletions(-)
>
> diff --git a/lib/connectAPI.py b/lib/connectAPI.py
> index 5d5b94f..702a088 100644
> --- a/lib/connectAPI.py
> +++ b/lib/connectAPI.py
> @@ -40,11 +40,11 @@ import exception
>
>   class ConnectAPI(object):
>       def __init__(self):
> -        pass
> +        self.conn = None
>
>       def open(self, uri):
>           try:
> -            self.conn = libvirt.open(uri)
> +            conn = libvirt.open(uri)
>               return self.conn
>           except libvirt.libvirtError, e:
>               message = e.get_error_message()
> @@ -53,7 +53,7 @@ class ConnectAPI(object):
>
>       def open_read_only(self, uri):
>           try:
> -            self.conn = libvirt.openReadOnly(uri)
> +            conn = libvirt.openReadOnly(uri)
>               return self.conn
>           except libvirt.libvirtError, e:
>               message = e.get_error_message()
> @@ -62,21 +62,13 @@ class ConnectAPI(object):
>
>       def openAuth(self, uri, auth, flags = 0):
>           try:
> -            self.conn = libvirt.openAuth(uri, auth, flags)
> +            conn = libvirt.openAuth(uri, auth, flags)
>               return self.conn
>           except libvirt.libvirtError, e:
>               message = e.get_error_message()
>               code = e.get_error_code()
>               raise exception.LibvirtAPI(message, code)
>
> -    def close(self):
> -        try:
> -            self.conn.close()
> -        except libvirt.libvirtError, e:
> -            message = e.get_error_message()
> -            code = e.get_error_code()
> -            raise exception.LibvirtAPI(message, code)
> -
>       def get_caps(self):
>           try:
>               caps = self.conn.getCapabilities()
> @@ -398,7 +390,8 @@ class ConnectAPI(object):
>
>       def close(self):
>           try:
> -            return self.conn.close()
> +            if self.conn:
> +                return self.conn.close()
>           except libvirt.libvirtError, e:
>               message = e.get_error_message()
>               code = e.get_error_code()
Good fix! ACK.

- Nan




More information about the libvir-list mailing list