xenapi: Image cache cannot be disabled

Image cache should be able to be disabled by setting cache_images = none
in nova.conf. Currently the condition judgment is wrong.

Change-Id: I5ebff2c1f7534b06233a4d41d7f5f2e5e3b60b5a
Closes-Bug: #1161471
This commit is contained in:
John Hua 2015-12-31 13:27:55 +08:00
parent 859ff4893f
commit 0bb080ba04
2 changed files with 42 additions and 2 deletions

View File

@ -1455,6 +1455,46 @@ class CreateKernelRamdiskTestCase(VMUtilsTestBase):
self.session, self.instance, self.name_label)
self.assertEqual(("k", None), result)
def _test_create_kernel_image(self, cache_images):
kernel_id = "kernel"
self.instance["kernel_id"] = kernel_id
args_kernel = {}
args_kernel['cached-image'] = kernel_id
args_kernel['new-image-uuid'] = "fake_uuid1"
self.flags(cache_images=cache_images, group='xenserver')
if cache_images == 'all':
uuid.uuid4().AndReturn("fake_uuid1")
self.session.call_plugin('kernel', 'create_kernel_ramdisk',
args_kernel).AndReturn("cached_image")
else:
kernel = {"kernel": {"file": "new_image", "uuid": None}}
vm_utils._fetch_disk_image(self.context, self.session,
self.instance, self.name_label,
kernel_id, 0).AndReturn(kernel)
self.mox.ReplayAll()
result = vm_utils._create_kernel_image(self.context,
self.session,
self.instance,
self.name_label,
kernel_id, 0)
if cache_images == 'all':
self.assertEqual(result, {"kernel":
{"file": "cached_image", "uuid": None}})
else:
self.assertEqual(result, {"kernel":
{"file": "new_image", "uuid": None}})
def test_create_kernel_image_cached_config(self):
self._test_create_kernel_image('all')
def test_create_kernel_image_uncached_config(self):
self._test_create_kernel_image('none')
class ScanSrTestCase(VMUtilsTestBase):
@mock.patch.object(vm_utils, "_scan_sr")

View File

@ -1179,7 +1179,7 @@ def _create_kernel_image(context, session, instance, name_label, image_id,
Returns: A list of dictionaries that describe VDIs
"""
filename = ""
if CONF.xenserver.cache_images:
if CONF.xenserver.cache_images != 'none':
args = {}
args['cached-image'] = image_id
args['new-image-uuid'] = str(uuid.uuid4())
@ -1569,7 +1569,7 @@ def _fetch_disk_image(context, session, instance, name_label, image_id,
# Let the plugin copy the correct number of bytes.
args['image-size'] = str(vdi_size)
if CONF.xenserver.cache_images:
if CONF.xenserver.cache_images != 'none':
args['cached-image'] = image_id
filename = session.call_plugin('kernel', 'copy_vdi', args)