[libvirt] [test-API][PATCH] add "imagetype" argument for guest installation testcases

Nan Zhang nzhang at redhat.com
Fri Aug 26 08:28:06 UTC 2011


On 08/17/2011 09:13 PM, Guannan Ren wrote:
> Add disk format argument to installation test scripts. With them, we
> can test snapshot testing. The following is the conf file sample.
>
> domain:install_linux_cdrom
>      guestname
>          test-api-guest
>      ...
>      imagetype
>          qcow2
>      ...
>
> domain:shutdown
>      guestname
>          test-api-guest
>
> snapshot:internal_create
>      guestname
>          test-api-guest
> ---
>   repos/domain/install_linux_cdrom.py   |   23 ++++++++++-----
>   repos/domain/install_linux_net.py     |   50 +++++++++++++++++----------------
>   repos/domain/install_windows_cdrom.py |   23 ++++++++++-----
>   3 files changed, 56 insertions(+), 40 deletions(-)
>
> diff --git a/repos/domain/install_linux_cdrom.py b/repos/domain/install_linux_cdrom.py
> index 7e8fee9..8d21797 100644
> --- a/repos/domain/install_linux_cdrom.py
> +++ b/repos/domain/install_linux_cdrom.py
> @@ -8,6 +8,7 @@
>      optional arguments: memory
>                          vcpu
>                          disksize
> +                       imagetype
>                          imagepath
>                          hdmodel
>                          nicmodel
> @@ -70,6 +71,7 @@ def usage():
>          optional arguments: memory
>                              vcpu
>                              disksize
> +                           imagetype
>                              imagepath
>                              hdmodel
>                              nicmodel
> @@ -86,7 +88,7 @@ def check_params(params):
>       mandatory_args = ['guestname', 'guesttype', 'guestos', 'guestarch']
>       optional_args = ['memory', 'vcpu', 'disksize', 'imagepath', 'hdmodel',
>                        'nicmodel', 'macaddr', 'ifacetype', 'source', 'type',
> -                     'volumepath']
> +                     'volumepath', 'imagetype']
>
>       for arg in mandatory_args:
>           if arg not in params_given.keys():
> @@ -255,7 +257,7 @@ def install_linux_cdrom(params):
>       logger.debug("the uri to connect is %s" % uri)
>
>       if params.has_key('imagepath') and not params.has_key('volumepath'):
> -        imgfullpath = os.join.path(params.get('imagepath'), guestname)
> +        imgfullpath = os.path.join(params.get('imagepath'), guestname)
>
>       elif not params.has_key('imagepath') and not params.has_key('volumepath'):
>           if hypervisor == 'xen':
> @@ -280,13 +282,18 @@ def install_linux_cdrom(params):
>       else:
>           seeksize = '10'
>
> -    logger.info("the size of disk image is %sG" % (seeksize))
> -    shell_disk_dd = "dd if=/dev/zero of=%s bs=1 count=1 seek=%sG" % \
> -                    (imgfullpath, seeksize)
> -    logger.debug("the commands line of creating disk images is '%s'" %
> -                 shell_disk_dd)
> +    if params.has_key('imagetype'):
> +        imagetype = params.get('imagetype')
> +    else:
> +        imagetype = 'raw'
> +
> +    logger.info("create disk image with size %sG, format %s" % (seeksize, imagetype))
> +    disk_create = "qemu-img create -f %s %s %sG" % \
> +                    (imagetype, imgfullpath, seeksize)
> +    logger.debug("the commands line of creating disk images is '%s'" % \
> +                   disk_create)
>
> -    (status, message) = commands.getstatusoutput(shell_disk_dd)
> +    (status, message) = commands.getstatusoutput(disk_create)
>
>       if status != 0:
>           logger.debug(message)
> diff --git a/repos/domain/install_linux_net.py b/repos/domain/install_linux_net.py
> index 21ae378..1b0470e 100644
> --- a/repos/domain/install_linux_net.py
> +++ b/repos/domain/install_linux_net.py
> @@ -9,6 +9,7 @@
>      optional arguments: memory
>                          vcpu
>                          disksize
> +                       imagetype
>                          imagepath
>                          hdmodel
>                          nicmodel
> @@ -72,6 +73,7 @@ def usage():
>          optional arguments: memory
>                              vcpu
>                              disksize
> +                           imagetype
>                              imagepath
>                              hdmodel
>                              nicmodel
> @@ -88,7 +90,8 @@ def check_params(params):
>                         'guestarch','netmethod']
>
>       optional_args = ['memory', 'vcpu', 'disksize', 'imagepath',
> -                     'hdmodel', 'nicmodel', 'ifacetype', 'source', 'type']
> +                     'hdmodel', 'nicmodel', 'ifacetype',
> +                     'imagetype', 'source', 'type']
>
>       for arg in mandatory_args:
>           if arg not in params_given.keys():
> @@ -233,7 +236,7 @@ def install_linux_net(params):
>       logger.debug("the uri to connect is %s" % uri)
>
>       if params.has_key('imagepath'):
> -        fullimagepath = os.join.path(params.get('imagepath'), guestname)
> +        fullimagepath = os.path.join(params.get('imagepath'), guestname)
>       else:
>           if hypervisor == 'xen':
>               fullimagepath = os.path.join('/var/lib/xen/images', guestname)
> @@ -246,29 +249,28 @@ def install_linux_net(params):
>                   fullimagepath)
>
>       if params.has_key('disksize'):
> -        logger.info("the size of disk image is %sG" % (params.get('disksize')))
> -        shell_disk_dd = "dd if=/dev/zero of=%s bs=1 count=1 seek=%sG" % \
> -                        (fullimagepath, params.get('disksize'))
> -        logger.debug("the commands line of creating disk images is '%s'" %
> -                     shell_disk_dd)
> -
> -        (status, message) = commands.getstatusoutput(shell_disk_dd)
> -        if status != 0:
> -            logger.debug(message)
> -        else:
> -            logger.info("creating disk images file is successful.")
> +        seeksize = params.get('disksize')
>       else:
> -        logger.info("the size of disk image is 10G")
> -        shell_disk_dd = "dd if=/dev/zero of=%s bs=1 count=1 seek=10G" % \
> -                         fullimagepath
> -        logger.debug("the commands line of creating disk images is '%s'" %
> -                     shell_disk_dd)
> -
> -        (status, message) = commands.getstatusoutput(shell_disk_dd)
> -        if status != 0:
> -            logger.debug(message)
> -        else:
> -            logger.info("creating disk images file is successful.")
> +        seeksize = '10'
> +
> +    if params.has_key('imagetype'):
> +        imagetype = params.get('imagetype')
> +    else:
> +        imagetype = 'raw'
> +
> +    logger.info("create disk image with size %sG, format %s" % (seeksize, imagetype))
> +    disk_create = "qemu-img create -f %s %s %sG" % \
> +                    (imagetype, fullimagepath, seeksize)
> +    logger.debug("the commands line of creating disk images is '%s'" % \
> +                   disk_create)
> +
> +    (status, message) = commands.getstatusoutput(disk_create)
> +
> +    if status != 0:
> +        logger.debug(message)
> +    else:
> +        logger.info("creating disk images file is successful.")
> +
>
>       logger.info("get system environment information")
>       envfile = os.path.join(homepath, 'env.cfg')
> diff --git a/repos/domain/install_windows_cdrom.py b/repos/domain/install_windows_cdrom.py
> index 2ea0ee7..9cf9e3b 100644
> --- a/repos/domain/install_windows_cdrom.py
> +++ b/repos/domain/install_windows_cdrom.py
> @@ -8,6 +8,7 @@
>      optional arguments: memory
>                          vcpu
>                          disksize
> +                       imagetype
>                          imagepath
>                          hdmodel
>                          nicmodel
> @@ -68,6 +69,7 @@ def usage():
>          optional arguments: memory
>                              vcpu
>                              disksize
> +                           imagetype
>                              imagepath
>                              hdmodel
>                              nicmodel
> @@ -89,7 +91,7 @@ def check_params(params):
>       mandatory_args = ['guestname', 'guesttype', 'guestos', 'guestarch']
>       optional_args = ['memory', 'vcpu', 'disksize', 'imagepath', 'hdmodel',
>                        'nicmodel', 'macaddr', 'ifacetype', 'source', 'type',
> -                     'volumepath']
> +                     'volumepath', 'imagetype']
>
>       for arg in mandatory_args:
>           if arg not in params_given.keys():
> @@ -294,7 +296,7 @@ def install_windows_cdrom(params):
>       logger.debug("the uri to connect is %s" % uri)
>
>       if params.has_key('imagepath') and not params.has_key('volumepath'):
> -        imgfullpath = os.join.path(params.get('imagepath'), guestname)
> +        imgfullpath = os..path.join(params.get('imagepath'), guestname)
>       elif not params.has_key('imagepath') and not params.has_key('volumepath'):
>           if hypervisor == 'xen':
>               imgfullpath = os.path.join('/var/lib/xen/images', guestname)
> @@ -318,13 +320,18 @@ def install_windows_cdrom(params):
>       else:
>           seeksize = '20'
>
> -    logger.info("the size of disk image is %sG" % (seeksize))
> -    shell_disk_dd = "dd if=/dev/zero of=%s bs=1 count=1 seek=%sG" % \
> -                    (imgfullpath, seeksize)
> -    logger.debug("the commands line of creating disk images is '%s'" %
> -                 shell_disk_dd)
> +    if params.has_key('imagetype'):
> +        imagetype = params.get('imagetype')
> +    else:
> +        imagetype = 'raw'
> +
> +    logger.info("create disk image with size %sG, format %s" % (seeksize, imagetype))
> +    disk_create = "qemu-img create -f %s %s %sG" % \
> +                    (imagetype, imgfullpath, seeksize)
> +    logger.debug("the commands line of creating disk images is '%s'" % \
> +                   disk_create)
>
> -    (status, message) = commands.getstatusoutput(shell_disk_dd)
> +    (status, message) = commands.getstatusoutput(disk_create)
>
>       if status != 0:
>           logger.debug(message)
     ACK.

- nzhang




More information about the libvir-list mailing list