[libvirt] [test-API][PATCH 1/2] New get_conn function in utils

Wayne Sun gsun at redhat.com
Thu Aug 16 10:13:11 UTC 2012


On 08/16/2012 06:07 PM, Osier Yang wrote:
> On 2012年08月16日 17:00, Wayne Sun wrote:
>>    The get_conn function return connection object from libvirt module.
>>    This function could be used by both framework and testcases.
>>    The patch includes:
>>    * get_conn in utils/utils.py
>>    * sync env_inspect.py using the new function
>>
>> Signed-off-by: Wayne Sun<gsun at redhat.com>
>> ---
>>   src/env_inspect.py |   22 ++--------------------
>>   utils/utils.py     |   27 +++++++++++++++++++++++++++
>>   2 files changed, 29 insertions(+), 20 deletions(-)
>>
>> diff --git a/src/env_inspect.py b/src/env_inspect.py
>> index b260ff8..2c1a701 100644
>> --- a/src/env_inspect.py
>> +++ b/src/env_inspect.py
>> @@ -20,6 +20,7 @@
>>   import commands
>>   import libvirt
>>   import sharedmod
>> +from utils import utils
>>
>>   def check_libvirt(logger):
>>       virsh = 'virsh -v'
>> @@ -68,20 +69,6 @@ def hostinfo(logger):
>>           return 1
>>       return 0
>>
>> -def request_credentials(credentials, user_data):
>> -    for credential in credentials:
>> -        if credential[0] == libvirt.VIR_CRED_AUTHNAME:
>> -            credential[4] = user_data[0]
>> -
>> -            if len(credential[4]) == 0:
>> -                credential[4] = credential[3]
>> -        elif credential[0] == libvirt.VIR_CRED_PASSPHRASE:
>> -            credential[4] = user_data[1]
>> -        else:
>> -            return -1
>> -
>> -    return 0
>> -
>>   def sharemod_init(env_parser, logger):
>>       """ get connection object from libvirt module
>>           initialize sharemod for use by testcases
>> @@ -89,12 +76,7 @@ def sharemod_init(env_parser, logger):
>>       uri = env_parser.get_value('variables', 'defaulturi')
>>       username = env_parser.get_value('variables', 'username')
>>       password = env_parser.get_value('variables', 'password')
>> -    user_data = [username, password]
>> -    auth = [[libvirt.VIR_CRED_AUTHNAME, 
>> libvirt.VIR_CRED_PASSPHRASE], request_credentials, user_data]
>> -    conn = libvirt.openAuth(uri, auth, 0)
>> -    if not conn:
>> -        logger.error("Failed to setup libvirt connection");
>> -        return 1
>> +    conn = utils.get_conn(uri, username, password)
>>
>>       # initialize conn object in sharedmod
>>       sharedmod.libvirtobj.clear()
>> diff --git a/utils/utils.py b/utils/utils.py
>> index be87cdc..eade10d 100644
>> --- a/utils/utils.py
>> +++ b/utils/utils.py
>> @@ -29,6 +29,7 @@ import struct
>>   import pexpect
>>   import string
>>   import subprocess
>> +import libvirt
>>   from xml.dom import minidom
>>   from urlparse import urlparse
>>
>> @@ -57,6 +58,32 @@ def get_uri(ip):
>>               uri = "qemu+ssh://%s/system" % ip
>>       return uri
>>
>> +def request_credentials(credentials, user_data):
>> +    for credential in credentials:
>> +        if credential[0] == libvirt.VIR_CRED_AUTHNAME:
>> +            credential[4] = user_data[0]
>> +
>> +            if len(credential[4]) == 0:
>> +                credential[4] = credential[3]
>> +        elif credential[0] == libvirt.VIR_CRED_PASSPHRASE:
>> +            credential[4] = user_data[1]
>> +        else:
>> +            return -1
>> +
>> +    return 0
>> +
>> +def get_conn(uri='', username='', password=''):
>> +    """ get connection object from libvirt module
>> +    """
>> +    user_data = [username, password]
>> +    auth = [[libvirt.VIR_CRED_AUTHNAME, 
>> libvirt.VIR_CRED_PASSPHRASE], request_credentials, user_data]
>> +    conn = libvirt.openAuth(uri, auth, 0)
>> +    if not conn:
>> +        logger.error("Failed to setup libvirt connection");
>> +        sys.exit(1)
>> +    else:
>> +        return conn
>
> Isn't there a shared 'conn' in sharemod.py?
Yes, but it will be broke when restart libvirtd and some case do need 
restart libvirtd. In those cases need a to get a new 'conn', so add this 
function for this. The 'conn' in sharemod.py is from sharemod_init in 
env_inspect.py, extract the get connection method from there to utils 
for benefit of the framework and testcases.

Wayne Sun
>
>> +
>>   def parse_uri(uri):
>>       # This is a simple parser for uri
>>       return urlparse(uri)
>




More information about the libvir-list mailing list