Merge "Allow disabling instance image cache"

This commit is contained in:
Zuul 2018-12-06 16:09:57 +00:00 committed by Gerrit Code Review
commit d01480c4e3
4 changed files with 35 additions and 2 deletions

View File

@ -36,7 +36,7 @@ opts = [
default='/var/lib/ironic/master_images',
help=_('On the ironic-conductor node, directory where master '
'instance images are stored on disk. '
'Setting to <None> disables image caching.')),
'Setting to the empty string disables image caching.')),
cfg.IntOpt('image_cache_size',
default=20480,
help=_('Maximum size (in MiB) of cache for master images, '

View File

@ -1113,8 +1113,9 @@ def direct_deploy_should_convert_raw_image(node):
class InstanceImageCache(image_cache.ImageCache):
def __init__(self):
master_path = CONF.pxe.instance_master_path or None
super(self.__class__, self).__init__(
CONF.pxe.instance_master_path,
master_path,
# MiB -> B
cache_size=CONF.pxe.image_cache_size * 1024 * 1024,
# min -> sec

View File

@ -2773,3 +2773,29 @@ class TestStorageInterfaceUtils(db_base.DbTestCase):
with task_manager.acquire(
self.context, self.node.uuid, shared=False) as task:
self.assertFalse(utils.is_iscsi_boot(task))
class InstanceImageCacheTestCase(db_base.DbTestCase):
@mock.patch.object(fileutils, 'ensure_tree')
def test_with_master_path(self, mock_ensure_tree):
self.config(instance_master_path='/fake/path', group='pxe')
self.config(image_cache_size=500, group='pxe')
self.config(image_cache_ttl=30, group='pxe')
cache = utils.InstanceImageCache()
mock_ensure_tree.assert_called_once_with('/fake/path')
self.assertEqual(500 * 1024 * 1024, cache._cache_size)
self.assertEqual(30 * 60, cache._cache_ttl)
@mock.patch.object(fileutils, 'ensure_tree')
def test_without_master_path(self, mock_ensure_tree):
self.config(instance_master_path='', group='pxe')
self.config(image_cache_size=500, group='pxe')
self.config(image_cache_ttl=30, group='pxe')
cache = utils.InstanceImageCache()
mock_ensure_tree.assert_not_called()
self.assertEqual(500 * 1024 * 1024, cache._cache_size)
self.assertEqual(30 * 60, cache._cache_ttl)

View File

@ -0,0 +1,6 @@
---
fixes:
- |
Fixes an issue where the master instance image cache could not be disabled.
The configuration option ``[pxe]/instance_master_path`` may now be set to
the empty string to disable the cache.