[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