[virt-tools-list] [virt-bootstrap] [PATCH v4 14/26] Drop unused functions
Cedric Bosdonnat
cbosdonnat at suse.com
Thu Aug 3 15:58:24 UTC 2017
Should be merged with the commit adding the Build_QCOW2_Image class
--
cedric
On Thu, 2017-08-03 at 14:13 +0100, Radostin Stoyanov wrote:
> Remove the functions create_qcow2() and extract_layers_in_qcow2()
> as they were replaced with the class Build_QCOW2_Image.
>
> Remove the unit tests as well.
> ---
> src/virtBootstrap/utils.py | 61 ----------------------------
> tests/test_docker_source.py | 38 +++++------------
> tests/test_file_source.py | 35 ----------------
> tests/test_utils.py | 99 ---------------------------------------------
> 4 files changed, 9 insertions(+), 224 deletions(-)
>
> diff --git a/src/virtBootstrap/utils.py b/src/virtBootstrap/utils.py
> index 19aaa17..965dcad 100644
> --- a/src/virtBootstrap/utils.py
> +++ b/src/virtBootstrap/utils.py
> @@ -302,67 +302,6 @@ def get_mime_type(path):
> )
>
>
> -def create_qcow2(tar_file, layer_file, backing_file=None, size=DEF_QCOW2_SIZE):
> - """
> - Create qcow2 image from tarball.
> - """
> - qemu_img_cmd = ["qemu-img", "create", "-f", "qcow2", layer_file, size]
> -
> - if not backing_file:
> - logger.info("Creating base qcow2 image")
> - execute(qemu_img_cmd)
> -
> - logger.info("Formatting qcow2 image")
> - execute(['virt-format',
> - '--format=qcow2',
> - '--partition=none',
> - '--filesystem=ext3',
> - '-a', layer_file])
> - else:
> - # Add backing chain
> - qemu_img_cmd.insert(2, "-b")
> - qemu_img_cmd.insert(3, backing_file)
> -
> - logger.info("Creating qcow2 image with backing chain")
> - execute(qemu_img_cmd)
> -
> - # Extract tarball using "tar-in" command from libguestfs
> - tar_in_cmd = ["guestfish",
> - "-a", layer_file,
> - '-m', '/dev/sda',
> - 'tar-in', tar_file, "/"]
> -
> - # Check if tarball is compressed
> - compression = get_compression_type(tar_file)
> - if compression is not None:
> - tar_in_cmd.append('compress:' + compression)
> -
> - # Execute virt-tar-in command
> - execute(tar_in_cmd)
> -
> -
> -def extract_layers_in_qcow2(layers_list, dest_dir, progress):
> - """
> - Extract docker layers in qcow2 images with backing chains.
> - """
> - qcow2_backing_file = None
> -
> - nlayers = len(layers_list)
> - for index, layer in enumerate(layers_list):
> - log_layer_extract(layer, index + 1, nlayers, progress)
> - tar_file = layer[2]
> -
> - # Name format for the qcow2 image
> - qcow2_layer_file = "{}/layer-{}.qcow2".format(dest_dir, index)
> - # Create the image layer
> - create_qcow2(tar_file, qcow2_layer_file, qcow2_backing_file)
> - # Keep the file path for the next layer
> - qcow2_backing_file = qcow2_layer_file
> -
> - # Update progress value
> - progress(value=(float(index + 1) / nlayers * 50) + 50)
> -
> -
> def get_image_dir(no_cache=False):
> """
> Get the directory where image layers are stored.
> diff --git a/tests/test_docker_source.py b/tests/test_docker_source.py
> index 4859e1b..3865be6 100644
> --- a/tests/test_docker_source.py
> +++ b/tests/test_docker_source.py
> @@ -525,14 +525,6 @@ class TestDockerSource(unittest.TestCase):
> """
> self._unpack_test_fmt('dir', 'virtBootstrap.utils.untar_layers')
>
> - def test_unpack_qcow2_format(self):
> - """
> - Ensures that unpack() calls extract_layers_in_qcow2() when the
> - output format is set to 'qcow2'.
> - """
> - self._unpack_test_fmt('qcow2',
> - 'virtBootstrap.utils.extract_layers_in_qcow2')
> -
> def unpack_raise_error_test(self,
> output_format,
> patch_method,
> @@ -566,32 +558,20 @@ class TestDockerSource(unittest.TestCase):
> patch_method = 'virtBootstrap.utils.untar_layers'
> self.unpack_raise_error_test('dir', patch_method, side_effect, msg)
>
> - def test_unpack_raise_error_if_extract_in_qcow2_fail(self):
> - """
> - Ensures that unpack() throws an Exception when
> - extract_layers_in_qcow2() fails.
> - """
> - msg = 'Caught extract_layers_in_qcow2 failure'
> - side_effect = Exception(msg)
> - patch_method = 'virtBootstrap.utils.extract_layers_in_qcow2'
> - self.unpack_raise_error_test('qcow2', patch_method, side_effect, msg)
> -
> def test_unpack_no_cache_clean_up(self):
> """
> Ensures that unpack() removes the folder which stores tar archives
> of image layers when no_cache is set to True.
> """
> - output_formats = ['dir', 'qcow2']
> - patch_methods = [
> - 'virtBootstrap.utils.untar_layers',
> - 'virtBootstrap.utils.extract_layers_in_qcow2'
> - ]
> - for fmt, patch_mthd in zip(output_formats, patch_methods):
> - m_self = self._mock_docker_source()
> - m_self.no_cache = True
> - with mock.patch('shutil.rmtree') as m_shutil:
> - self._unpack_test_fmt(fmt, patch_mthd, m_self=m_self)
> - m_shutil.assert_called_once_with(m_self.images_dir)
> + m_self = self._mock_docker_source()
> + m_self.no_cache = True
> + with mock.patch('shutil.rmtree') as m_shutil:
> + self._unpack_test_fmt(
> + 'dir',
> + 'virtBootstrap.utils.untar_layers',
> + m_self=m_self
> + )
> + m_shutil.assert_called_once_with(m_self.images_dir)
>
> def test_unpack_no_cache_clean_up_on_failure(self):
> """
> diff --git a/tests/test_file_source.py b/tests/test_file_source.py
> index 6e89aa2..a55ae4e 100644
> --- a/tests/test_file_source.py
> +++ b/tests/test_file_source.py
> @@ -87,29 +87,6 @@ class TestFileSource(unittest.TestCase):
>
> m_untar.assert_called_once_with(m_self.path, dest)
>
> - def test_unpack_to_qcow2(self):
> - """
> - Ensures that unpack() calls create_qcow2() when the output
> - format is set to 'qcow2'.
> - """
> - m_self = mock.Mock(spec=sources.FileSource)
> - m_self.progress = mock.Mock()
> - m_self.path = 'foo'
> - m_self.output_format = 'qcow2'
> - dest = 'bar'
> - qcow2_file_path = 'foobar'
> -
> - with mock.patch.multiple('os.path',
> - isfile=mock.DEFAULT,
> - realpath=mock.DEFAULT) as mocked:
> -
> - mocked['isfile'].return_value = True
> - mocked['realpath'].return_value = qcow2_file_path
> - with mock.patch('virtBootstrap.utils.create_qcow2') as m_qcow2:
> - sources.FileSource.unpack(m_self, dest)
> -
> - m_qcow2.assert_called_once_with(m_self.path, qcow2_file_path)
> -
> def _unpack_raise_error_test(self,
> output_format,
> side_effect=None,
> @@ -157,15 +134,3 @@ class TestFileSource(unittest.TestCase):
> side_effect=Exception(msg),
> patch_method=patch_method,
> msg=msg)
> -
> - def test_unpack_raise_error_if_extract_in_qcow2_fail(self):
> - """
> - Ensures that unpack() throws an Exception when create_qcow2()
> - fails.
> - """
> - msg = 'Caught extract_layers_in_qcow2 failure'
> - patch_method = 'virtBootstrap.utils.create_qcow2'
> - self._unpack_raise_error_test(output_format='qcow2',
> - side_effect=Exception(msg),
> - patch_method=patch_method,
> - msg=msg)
> diff --git a/tests/test_utils.py b/tests/test_utils.py
> index 0b6ccc0..e45a2c9 100644
> --- a/tests/test_utils.py
> +++ b/tests/test_utils.py
> @@ -226,105 +226,6 @@ class TestUtils(unittest.TestCase):
> mocked['safe_untar'].assert_has_calls(expected_calls)
>
> ###################################
> - # Tests for: create_qcow2()
> - ###################################
> - def _apply_test_to_create_qcow2(self, expected_calls, *args):
> - """
> - This method contains common test pattern used in the next two
> - test cases.
> - """
> - with mock.patch.multiple(utils,
> - execute=mock.DEFAULT,
> - logger=mock.DEFAULT,
> - get_mime_type=mock.DEFAULT) as mocked:
> - mocked['get_mime_type'].return_value = 'application/x-gzip'
> - utils.create_qcow2(*args)
> - mocked['execute'].assert_has_calls(expected_calls)
> -
> - def test_utils_create_qcow2_base_layer(self):
> - """
> - Ensures that create_qcow2() creates base layer when
> - backing_file = None.
> - """
> - tar_file = 'foo'
> - layer_file = 'bar'
> - size = '5G'
> - backing_file = None
> -
> - expected_calls = [
> - mock.call(["qemu-img", "create", "-f", "qcow2", layer_file, size]),
> -
> - mock.call(['virt-format',
> - '--format=qcow2',
> - '--partition=none',
> - '--filesystem=ext3',
> - '-a', layer_file]),
> -
> - mock.call(['guestfish',
> - '-a', layer_file,
> - '-m', '/dev/sda',
> - 'tar-in', tar_file, '/', 'compress:gzip'])
> - ]
> -
> - self._apply_test_to_create_qcow2(expected_calls, tar_file, layer_file,
> - backing_file, size)
> -
> - def test_utils_create_qcow2_layer_with_backing_chain(self):
> - """
> - Ensures that create_qcow2() creates new layer with backing chains
> - when backing_file is specified.
> - """
> - tar_file = 'foo'
> - layer_file = 'bar'
> - backing_file = 'base'
> - size = '5G'
> -
> - expected_calls = [
> - mock.call(['qemu-img', 'create',
> - '-b', backing_file,
> - '-f', 'qcow2',
> - layer_file, size]),
> -
> - mock.call(['guestfish',
> - '-a', layer_file,
> - '-m', '/dev/sda',
> - 'tar-in', tar_file, '/', 'compress:gzip'])
> - ]
> -
> - self._apply_test_to_create_qcow2(expected_calls, tar_file, layer_file,
> - backing_file, size)
> -
> - ###################################
> - # Tests for: extract_layers_in_qcow2()
> - ###################################
> - def test_utils_if_all_layers_extracted_in_order_in_qcow2(self):
> - """
> - Ensures that extract_layers_in_qcow2() iterates through all
> - layers in order.
> - """
> - layers = ['l1', 'l2', 'l3']
> - layers_list = [['', '', layer] for layer in layers]
> - dest_dir = '/foo'
> -
> - # Generate expected calls
> - expected_calls = []
> - qcow2_backing_file = None
> - for index, layer in enumerate(layers):
> - qcow2_layer_file = dest_dir + "/layer-%s.qcow2" % index
> - expected_calls.append(
> - mock.call(layer, qcow2_layer_file, qcow2_backing_file))
> - qcow2_backing_file = qcow2_layer_file
> -
> - # Mocking out and execute
> - with mock.patch.multiple(utils,
> - create_qcow2=mock.DEFAULT,
> - log_layer_extract=mock.DEFAULT) as mocked:
> - utils.extract_layers_in_qcow2(layers_list, dest_dir, mock.Mock())
> -
> - # Check actual calls
> - mocked['create_qcow2'].assert_has_calls(expected_calls)
> -
> - ###################################
> # Tests for: get_image_dir()
> ###################################
> def test_utils_getimage_dir(self):
More information about the virt-tools-list
mailing list