From 51fd0f0efd90ffe4f94eef5e03d2f900172f5f93 Mon Sep 17 00:00:00 2001 From: Tony Breeds Date: Tue, 30 Jun 2015 16:45:01 +1000 Subject: [PATCH] Fix is_image_extendable() thinko In change I34e2f29e1f068636036226a7745d88640f724d93 (virt: convert disk API over to use nova.virt.image.model) is_image_extendable() causes instances to fail to boot with: Traceback (most recent call last): File "/opt/stack/nova/nova/virt/disk/api.py", line 272, in is_image_extendable utils.execute('e2label', image.file) AttributeError: 'LocalFileImage' object has no attribute 'file' Use image.path instead Change-Id: Ia7c3375dc962b369f82c6a5ffb438a4b74330cd9 --- nova/tests/unit/virt/disk/test_api.py | 11 +++++++++++ nova/virt/disk/api.py | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/nova/tests/unit/virt/disk/test_api.py b/nova/tests/unit/virt/disk/test_api.py index bcd0273a90..9e577bf5bd 100644 --- a/nova/tests/unit/virt/disk/test_api.py +++ b/nova/tests/unit/virt/disk/test_api.py @@ -82,6 +82,17 @@ class APITestCase(test.NoDBTestCase): self.addCleanup(imgfile.close) self.assertFalse(api.is_image_extendable(image)) + def test_is_image_extendable_raw(self): + imgfile = tempfile.NamedTemporaryFile() + + self.mox.StubOutWithMock(utils, 'execute') + utils.execute('e2label', imgfile) + self.mox.ReplayAll() + + image = imgmodel.LocalFileImage(imgfile, imgmodel.FORMAT_RAW) + self.addCleanup(imgfile.close) + self.assertTrue(api.is_image_extendable(image)) + def test_resize2fs_success(self): imgfile = tempfile.NamedTemporaryFile() diff --git a/nova/virt/disk/api.py b/nova/virt/disk/api.py index 7595ffffd5..7543f668b5 100644 --- a/nova/virt/disk/api.py +++ b/nova/virt/disk/api.py @@ -269,7 +269,7 @@ def is_image_extendable(image): else: # For raw, we can directly inspect the file system try: - utils.execute('e2label', image.file) + utils.execute('e2label', image.path) except processutils.ProcessExecutionError as e: LOG.debug('Unable to determine label for image %(image)s with ' 'error %(error)s. Cannot resize.',