diff --git a/cinder/image/cache.py b/cinder/image/cache.py index ba90c1579d7..9a72f95ff82 100644 --- a/cinder/image/cache.py +++ b/cinder/image/cache.py @@ -155,8 +155,10 @@ class ImageVolumeCache(object): 'count': current_count, 'max_count': self.max_cache_size_count}) - while ((current_size > self.max_cache_size_gb - or current_count > self.max_cache_size_count) + while (((current_size > self.max_cache_size_gb and + self.max_cache_size_gb > 0) + or (current_count > self.max_cache_size_count and + self.max_cache_size_count > 0)) and len(entries)): entry = entries.pop() LOG.debug('Reclaiming image-volume cache space; removing cache ' diff --git a/cinder/tests/unit/image/test_cache.py b/cinder/tests/unit/image/test_cache.py index 2e19a4b7b14..1b23a58ce58 100644 --- a/cinder/tests/unit/image/test_cache.py +++ b/cinder/tests/unit/image/test_cache.py @@ -236,7 +236,7 @@ class ImageVolumeCacheTestCase(test.TestCase): self.assertFalse(has_space) def test_ensure_space_need_gb(self): - cache = self._build_cache(max_gb=30, max_count=10) + cache = self._build_cache(max_gb=30, max_count=0) mock_delete = mock.patch.object(cache, '_delete_image_volume').start() entries = [] @@ -258,7 +258,7 @@ class ImageVolumeCacheTestCase(test.TestCase): self.context, cluster_name=self.volume_ovo.cluster_name) def test_ensure_space_need_count(self): - cache = self._build_cache(max_gb=30, max_count=2) + cache = self._build_cache(max_gb=0, max_count=2) mock_delete = mock.patch.object(cache, '_delete_image_volume').start() entries = []