[libvirt] [PATCH test-API 1/2] lib: pass instance of ConnectAPI into other lib modules

Guannan Ren gren at redhat.com
Thu Mar 29 09:57:08 UTC 2012


On 03/29/2012 05:14 PM, Martin Kletzander wrote:
> On 03/26/2012 07:18 PM, Guannan Ren wrote:
>>       This change make any instance of subclasses in libvirt.py
>>       invisible to testcases in order to catch libvirtError.
>>
>>         connectAPI.py
>>         domainAPI.py
>>         interfaceAPI.py
>>         networkAPI.py
>>         nodedevAPI.py
>>         nwfilterAPI.py
>>         secretAPI.py
>>         snapshotAPI.py
>>         storageAPI.py
>>         streamAPI.py
>> ---
>>   lib/connectAPI.py   |   21 +++++++++++----------
>>   lib/domainAPI.py    |    2 +-
>>   lib/interfaceAPI.py |    2 +-
>>   lib/networkAPI.py   |    2 +-
>>   lib/nodedevAPI.py   |    2 +-
>>   lib/nwfilterAPI.py  |    2 +-
>>   lib/secretAPI.py    |    2 +-
>>   lib/snapshotAPI.py  |    2 +-
>>   lib/storageAPI.py   |    2 +-
>>   lib/streamAPI.py    |    5 +++--
>>   10 files changed, 22 insertions(+), 20 deletions(-)
>>
>> diff --git a/lib/connectAPI.py b/lib/connectAPI.py
>> index 9f2b728..796df33 100644
>> --- a/lib/connectAPI.py
>> +++ b/lib/connectAPI.py
>> @@ -39,36 +39,37 @@ append_path(result.group(0))
>>   import exception
>>
>>   class ConnectAPI(object):
>> -    def __init__(self):
>> +    def __init__(self, uri):
>> +        self.uri = uri
>>           self.conn = None
>>
>> -    def open(self, uri):
>> +    def open(self):
>>           try:
>> -            self.conn = libvirt.open(uri)
>> -            return self.conn
>> +            self.conn = libvirt.open(self.uri)
>>           except libvirt.libvirtError, e:
>>               message = e.get_error_message()
>>               code = e.get_error_code()
>>               raise exception.LibvirtAPI(message, code)
>>
>> -    def open_read_only(self, uri):
>> +    def open_read_only(self):
>>           try:
>> -            self.conn = libvirt.openReadOnly(uri)
>> -            return self.conn
>> +            self.conn = libvirt.openReadOnly(self.uri)
>>           except libvirt.libvirtError, e:
>>               message = e.get_error_message()
>>               code = e.get_error_code()
>>               raise exception.LibvirtAPI(message, code)
>>
>> -    def openAuth(self, uri, auth, flags = 0):
>> +    def openAuth(self, auth, flags = 0):
>>           try:
>> -            self.conn = libvirt.openAuth(uri, auth, flags)
>> -            return self.conn
>> +            self.conn = libvirt.openAuth(self.uri, auth, flags)
>>           except libvirt.libvirtError, e:
>>               message = e.get_error_message()
>>               code = e.get_error_code()
>>               raise exception.LibvirtAPI(message, code)
>>
>> +    def get_conn(self):
>> +        return self.conn
>> +
>>       def get_caps(self):
>>           try:
>>               caps = self.conn.getCapabilities()
>> diff --git a/lib/domainAPI.py b/lib/domainAPI.py
>> index 43565c2..e38acb6 100644
>> --- a/lib/domainAPI.py
>> +++ b/lib/domainAPI.py
>> @@ -42,7 +42,7 @@ import exception
>>
>>   class DomainAPI(object):
>>       def __init__(self, connection):
>> -        self.conn = connection
>> +        self.conn = connection.get_conn()
>>
> This is one option how to keep the object, however maybe we can make use
> of the encapsulation everywhere, not just in the test cases, but this
> would require rewriting a lot more code and is not needed at this point.

       yes, I agree.

> ACK with the second patch modified as written in it.
>
> Martin

          Thanks and pushed.

          Guannan Ren




More information about the libvir-list mailing list