From b9ab0590234a034aaddfecc53695669ee38ae65f Mon Sep 17 00:00:00 2001 From: Brian Rosmaita Date: Wed, 14 Aug 2019 12:53:22 -0400 Subject: [PATCH] Fix "Fix upload volume to glance" The call to convert the image was set to always compress instead of paying attention to the keyword argument. Change-Id: Idc18b1c5b17d4f9b29deb87d29faba574d3432b2 Related-bug: #1824821 Related-bug: #1839069 --- cinder/image/image_utils.py | 2 +- cinder/tests/unit/test_image_utils.py | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cinder/image/image_utils.py b/cinder/image/image_utils.py index 3ce44a17de5..4d43e1b87af 100644 --- a/cinder/image/image_utils.py +++ b/cinder/image/image_utils.py @@ -670,7 +670,7 @@ def upload_volume(context, image_service, image_meta, volume_path, out_format = fixup_disk_format(image_meta['disk_format']) convert_image(volume_path, tmp, out_format, run_as_root=run_as_root, - compress=True) + compress=compress) data = qemu_img_info(tmp, run_as_root=run_as_root) if data.file_format != out_format: diff --git a/cinder/tests/unit/test_image_utils.py b/cinder/tests/unit/test_image_utils.py index 44d1e4baf2a..c382de71385 100644 --- a/cinder/tests/unit/test_image_utils.py +++ b/cinder/tests/unit/test_image_utils.py @@ -723,8 +723,10 @@ class TestTemporaryDir(test.TestCase): @ddt.ddt class TestUploadVolume(test.TestCase): - @ddt.data((mock.sentinel.disk_format, mock.sentinel.disk_format), - ('ploop', 'parallels')) + @ddt.data((mock.sentinel.disk_format, mock.sentinel.disk_format, True), + (mock.sentinel.disk_format, mock.sentinel.disk_format, False), + ('ploop', 'parallels', True), + ('ploop', 'parallels', False)) @mock.patch('eventlet.tpool.Proxy') @mock.patch('cinder.image.image_utils.CONF') @mock.patch('six.moves.builtins.open') @@ -734,7 +736,7 @@ class TestUploadVolume(test.TestCase): @mock.patch('cinder.image.image_utils.os') def test_diff_format(self, image_format, mock_os, mock_temp, mock_convert, mock_info, mock_open, mock_conf, mock_proxy): - input_format, output_format = image_format + input_format, output_format, do_compress = image_format ctxt = mock.sentinel.context image_service = mock.Mock() image_meta = {'id': 'test_id', @@ -747,14 +749,14 @@ class TestUploadVolume(test.TestCase): temp_file = mock_temp.return_value.__enter__.return_value output = image_utils.upload_volume(ctxt, image_service, image_meta, - volume_path, compress=True) + volume_path, compress=do_compress) self.assertIsNone(output) mock_convert.assert_called_once_with(volume_path, temp_file, output_format, run_as_root=True, - compress=True) + compress=do_compress) mock_info.assert_called_with(temp_file, run_as_root=True) self.assertEqual(2, mock_info.call_count) mock_open.assert_called_once_with(temp_file, 'rb')