@@ -11728,23 +11728,38 @@ def test_create_images_and_backing_images_not_exist_fallback(self,
11728
11728
instance = objects.Instance(**self.test_instance)
11729
11729
11730
11730
backing_file = imagecache.get_cache_fname(instance.image_ref)
11731
+ backfile_path = os.path.join(base_dir, backing_file)
11732
+ disk_size = 10747904
11733
+ virt_disk_size = 25165824
11731
11734
disk_info = [
11732
11735
{u'backing_file': backing_file,
11733
- u'disk_size': 10747904 ,
11736
+ u'disk_size': disk_size ,
11734
11737
u'path': u'disk_path',
11735
11738
u'type': u'qcow2',
11736
- u'virt_disk_size': 25165824}]
11737
-
11739
+ u'virt_disk_size': virt_disk_size}]
11740
+
11741
+ def fake_copy_image(src, dest, **kwargs):
11742
+ # backing file should be present and have a smaller size
11743
+ # than instance root disk in order to assert resize_image()
11744
+ if dest == backfile_path:
11745
+ # dest is created under TempDir() fixture,
11746
+ # it will go away after test cleanup
11747
+ with open(dest, 'a'):
11748
+ pass
11738
11749
with test.nested(
11739
- mock.patch.object(libvirt_driver.libvirt_utils, 'copy_image'),
11750
+ mock.patch.object(libvirt_driver.libvirt_utils, 'copy_image',
11751
+ side_effect=fake_copy_image),
11740
11752
mock.patch.object(libvirt_driver.libvirt_utils, 'fetch_image',
11741
11753
side_effect=exception.ImageNotFound(
11742
11754
image_id=uuids.fake_id)),
11743
- ) as (copy_image_mock, fetch_image_mock):
11755
+ mock.patch.object(imagebackend.Qcow2, 'resize_image'),
11756
+ mock.patch.object(imagebackend.Image, 'get_disk_size',
11757
+ return_value=disk_size),
11758
+ ) as (copy_image_mock, fetch_image_mock, resize_image_mock,
11759
+ get_disk_size_mock):
11744
11760
conn._create_images_and_backing(self.context, instance,
11745
11761
"/fake/instance/dir", disk_info,
11746
11762
fallback_from_host="fake_host")
11747
- backfile_path = os.path.join(base_dir, backing_file)
11748
11763
kernel_path = os.path.join(CONF.instances_path,
11749
11764
self.test_instance['uuid'],
11750
11765
'kernel')
@@ -11769,6 +11784,7 @@ def test_create_images_and_backing_images_not_exist_fallback(self,
11769
11784
mock.call(self.context, ramdisk_path, instance.ramdisk_id,
11770
11785
trusted_certs)
11771
11786
])
11787
+ resize_image_mock.assert_called_once_with(virt_disk_size)
11772
11788
11773
11789
mock_utime.assert_called()
11774
11790
0 commit comments