Fix traceback in image cache manager.

When nova is running as a different user, the image
cache manager can cause tracebacks because it is not
able to access the file. This fixes bug: 973377

Change-Id: I7902b024e7d564fbda97ce8532c1de84ab1a4206
Signed-off-by: Chuck Short <chuck.short@canonical.com>
This commit is contained in:
Chuck Short 2012-04-04 12:36:42 -04:00 committed by Vishvananda Ishaya
parent f5bdaed0d5
commit 2c7365c3b5
2 changed files with 6 additions and 0 deletions

View File

@ -436,6 +436,7 @@ class ImageCacheManagerTestCase(test.TestCase):
self.assertEquals(image_cache_manager.corrupt_base_files, [])
def test_handle_base_image_used(self):
self.stubs.Set(virtutils, 'chown', lambda x, y: None)
img = '123'
with self._make_base_file() as fname:
@ -496,6 +497,8 @@ class ImageCacheManagerTestCase(test.TestCase):
self.assertEquals(image_cache_manager.corrupt_base_files, [])
def test_handle_base_image_checksum_fails(self):
self.stubs.Set(virtutils, 'chown', lambda x, y: None)
img = '123'
with self._make_base_file() as fname:
@ -563,6 +566,8 @@ class ImageCacheManagerTestCase(test.TestCase):
self.stubs.Set(os.path, 'exists', lambda x: exists(x))
self.stubs.Set(virtutils, 'chown', lambda x, y: None)
# We need to stub utime as well
orig_utime = os.utime
self.stubs.Set(os, 'utime', lambda x, y: None)

View File

@ -355,6 +355,7 @@ class ImageCacheManager(object):
{'id': img_id,
'base_file': base_file})
if os.path.exists(base_file):
virtutils.chown(base_file, os.getuid())
os.utime(base_file, None)
def verify_base_images(self, context):