Fix actual size calculation for storage fallback logic

When we were fixing the qemu-img related CVE, in our rush we didn't
realize that the logic for storage sizing, which only falls back to
actual size didn't match the prior interface exactly. Instead of
disk_size, we have actual_size on the format inspector.

This was not discovered because all of the code handling that side
of the unit tests were mocked.

Anyhow, easy fix.

Closes-Bug: 2083520
Change-Id: Ic4390d578f564f245d7fb4013f2ba5531aee9ea9
(cherry picked from commit 90f9fa3eb0e895f6ee2a04a55013ee84b0888fb7)
This commit is contained in:
Julia Kreger 2024-10-03 06:53:30 -07:00 committed by Dmitry Tantsur
parent 799900d1f1
commit 973c8a063e
2 changed files with 4 additions and 4 deletions

View File

@ -492,7 +492,7 @@ def converted_size(path, estimate=False):
if not estimate:
return data.virtual_size
growth_factor = CONF.raw_image_growth_factor
return int(min(data.disk_size * growth_factor, data.virtual_size))
return int(min(data.actual_size * growth_factor, data.virtual_size))
def get_image_properties(context, image_href, properties="all"):

View File

@ -373,7 +373,7 @@ class IronicImagesTestCase(base.TestCase):
autospec=True)
def test_converted_size_estimate_default(self, image_info_mock):
info = self.FakeImgInfo()
info.disk_size = 2
info.actual_size = 2
info.virtual_size = 10 ** 10
image_info_mock.return_value = info
size = images.converted_size('path', estimate=True)
@ -385,7 +385,7 @@ class IronicImagesTestCase(base.TestCase):
def test_converted_size_estimate_custom(self, image_info_mock):
CONF.set_override('raw_image_growth_factor', 3)
info = self.FakeImgInfo()
info.disk_size = 2
info.actual_size = 2
info.virtual_size = 10 ** 10
image_info_mock.return_value = info
size = images.converted_size('path', estimate=True)
@ -397,7 +397,7 @@ class IronicImagesTestCase(base.TestCase):
def test_converted_size_estimate_raw_smaller(self, image_info_mock):
CONF.set_override('raw_image_growth_factor', 3)
info = self.FakeImgInfo()
info.disk_size = 2
info.actual_size = 2
info.virtual_size = 5
image_info_mock.return_value = info
size = images.converted_size('path', estimate=True)