[virt-tools-list] [virt-manager PATCH] clone: keep the same image format on a cross-pool clone
Cole Robinson
crobinso at redhat.com
Wed Apr 1 14:37:54 UTC 2015
On 04/01/2015 09:13 AM, Giuseppe Scrivano wrote:
> Cole Robinson <crobinso at redhat.com> writes:
>
>> ACK, but I'm surprised the test suite doesn't need tweaking. maybe we should
>> extend a clone test to use the fake qemu URI so we can validate format copying
>> in the output disk XML
>
> as follow-up, I've added a test for the cloned disks. OK to push it?
>
> Thanks,
> Giuseppe
>
> From 66c1ace004d4f2dccf48cd00ab32c7aeee503691 Mon Sep 17 00:00:00 2001
> From: Giuseppe Scrivano <gscrivan at redhat.com>
> Date: Wed, 1 Apr 2015 15:07:51 +0200
> Subject: [PATCH] tests: check that clone keeps the same image format for disks
>
> Signed-off-by: Giuseppe Scrivano <gscrivan at redhat.com>
> ---
> tests/clone-xml/cross-pool-disks-out.xml | 22 ++++++++++++++++++++++
> tests/clone-xml/cross-pool-out.xml | 2 +-
> tests/clonetest.py | 21 ++++++++++++++++-----
> 3 files changed, 39 insertions(+), 6 deletions(-)
> create mode 100644 tests/clone-xml/cross-pool-disks-out.xml
>
> diff --git a/tests/clone-xml/cross-pool-disks-out.xml b/tests/clone-xml/cross-pool-disks-out.xml
> new file mode 100644
> index 0000000..8eb3acb
> --- /dev/null
> +++ b/tests/clone-xml/cross-pool-disks-out.xml
> @@ -0,0 +1,22 @@
> +<volume>
> + <name>new1.img</name>
> + <capacity>1073</capacity>
> + <allocation>1073</allocation>
> + <target>
> + <format type="qcow2"/>
> + <features>
> + <lazy_refcounts/>
> + </features>
> + </target>
> +</volume>
> +<volume>
> + <name>new2.img</name>
> + <capacity>1000000</capacity>
> + <allocation>50000</allocation>
> + <target>
> + <format type="qcow2"/>
> + <features>
> + <lazy_refcounts/>
> + </features>
> + </target>
> +</volume>
> diff --git a/tests/clone-xml/cross-pool-out.xml b/tests/clone-xml/cross-pool-out.xml
> index 4200dce..5541adf 100644
> --- a/tests/clone-xml/cross-pool-out.xml
> +++ b/tests/clone-xml/cross-pool-out.xml
> @@ -22,7 +22,7 @@
> <target dev="hda" bus="ide"/>
> </disk>
> <disk type="file" device="disk">
> - <source file="/dev/cross-pool/new2.img"/>
> + <source file="/dev/default-pool/new2.img"/>
> <target dev="hdb" bus="ide"/>
> </disk>
> <interface type="network">
> diff --git a/tests/clonetest.py b/tests/clonetest.py
> index 0119201..5789d41 100644
> --- a/tests/clonetest.py
> +++ b/tests/clonetest.py
> @@ -1,4 +1,4 @@
> -# Copyright (C) 2013 Red Hat, Inc.
> +# Copyright (C) 2013, 2015 Red Hat, Inc.
> #
> # This program is free software; you can redistribute it and/or modify
> # it under the terms of the GNU General Public License as published by
> @@ -55,7 +55,8 @@ class TestClone(unittest.TestCase):
> os.unlink(f)
>
> def _clone_helper(self, filebase, disks=None, force_list=None,
> - skip_list=None, compare=True, useconn=None):
> + skip_list=None, compare=True, useconn=None,
> + clone_disks_file=None):
> """Helper for comparing clone input/output from 2 xml files"""
> infile = os.path.join(clonexml_dir, filebase + "-in.xml")
> in_content = utils.read_file(infile)
> @@ -70,7 +71,8 @@ class TestClone(unittest.TestCase):
> cloneobj = self._default_clone_values(cloneobj, disks)
>
> if compare:
> - self._clone_compare(cloneobj, filebase)
> + self._clone_compare(cloneobj, filebase,
> + clone_disks_file=clone_disks_file)
> self._clone_define(filebase)
> else:
> cloneobj.setup()
> @@ -90,13 +92,18 @@ class TestClone(unittest.TestCase):
> cloneobj.clone_paths = disks
> return cloneobj
>
> - def _clone_compare(self, cloneobj, outbase):
> + def _clone_compare(self, cloneobj, outbase, clone_disks_file=None):
> """Helps compare output from passed clone instance with an xml file"""
> outfile = os.path.join(clonexml_dir, outbase + "-out.xml")
>
> cloneobj.setup()
>
> utils.diff_compare(cloneobj.clone_xml, outfile)
> + if clone_disks_file:
> + xml_clone_disks = ""
> + for i in cloneobj.get_clone_disks():
> + xml_clone_disks += i.get_vol_install().get_xml_config()
> + utils.diff_compare(xml_clone_disks, clone_disks_file)
>
> def _clone_define(self, filebase):
> """Take the valid output xml and attempt to define it on the
> @@ -138,8 +145,12 @@ class TestClone(unittest.TestCase):
>
> def testCloneStorageCrossPool(self):
> base = "cross-pool"
> + useconn = utils.open_test_remote()
> + clone_disks_file = os.path.join(clonexml_dir, base + "-disks-out.xml")
> self._clone_helper(base, ["%s/new1.img" % POOL2,
> - "%s/new2.img" % POOL2])
> + "%s/new2.img" % POOL1],
> + clone_disks_file=clone_disks_file,
> + useconn=useconn)
>
> def testCloneStorageForce(self):
> base = "force"
>
ACK
- Cole
More information about the virt-tools-list
mailing list