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

Guannan Ren gren at redhat.com
Thu Aug 23 07:40:24 UTC 2012


On 08/16/2012 05:00 PM, 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)

            It'd better to check the value of conn, let caller know 
something wrong happened.
            if (!conn)
                return 1


>   
>       # 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)

          Instead of quit immediately, return NULL, let caller know the 
results.


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

       I will fix them and pushed.
       ACK with others.

       Guannan




More information about the libvir-list mailing list