summaryrefslogtreecommitdiff
path: root/ceilometer/tests
diff options
context:
space:
mode:
authorYadnesh Kulkarni <ykulkarn@redhat.com>2022-11-08 03:01:11 -0500
committerYadnesh Kulkarni <ykulkarn@redhat.com>2022-11-21 09:17:08 -0500
commitb4a2801ec6a99df400d353d27a11de9be879c2a3 (patch)
treeb80e121031f6968850dbebc4a62dc0bf82861171 /ceilometer/tests
parent9fe3674e4705837ef4dbe1a4cd433e6bfd5f9fbd (diff)
downloadceilometer-b4a2801ec6a99df400d353d27a11de9be879c2a3.tar.gz
Change oslo_cache implementation
As of now to leverage caching, oslo_cache library has to be imported and configured everytime it's needed. This change migrates such implementatio to use `cache_utils.py` which returns a cache client to perform caching operations. This eliminates the purpose of importing oslo_cache everytime when needed. To get a cache client: ``` from ceilometer import cache_utils . cache_client = cache_utils.get_client(conf) ``` Signed-off-by: Yadnesh Kulkarni <ykulkarn@redhat.com> Change-Id: I14f9e1cbe84a953b092c3a88345d5faa9bcc9fb2
Diffstat (limited to 'ceilometer/tests')
-rw-r--r--ceilometer/tests/unit/test_cache_utils.py65
1 files changed, 65 insertions, 0 deletions
diff --git a/ceilometer/tests/unit/test_cache_utils.py b/ceilometer/tests/unit/test_cache_utils.py
new file mode 100644
index 00000000..245eaa34
--- /dev/null
+++ b/ceilometer/tests/unit/test_cache_utils.py
@@ -0,0 +1,65 @@
+#
+# Copyright 2022 Red Hat, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+from ceilometer import cache_utils
+from ceilometer import service as ceilometer_service
+from oslo_cache import core as cache
+from oslo_config import fixture as config_fixture
+from oslotest import base
+
+
+class CacheConfFixture(config_fixture.Config):
+ def setUp(self):
+ super(CacheConfFixture, self).setUp()
+ self.conf = ceilometer_service.\
+ prepare_service(argv=[], config_files=[])
+ cache.configure(self.conf)
+ self.config(enabled=True, group='cache')
+
+
+class TestOsloCache(base.BaseTestCase):
+ def setUp(self):
+ super(TestOsloCache, self).setUp()
+
+ conf = ceilometer_service.prepare_service(argv=[], config_files=[])
+
+ dict_conf_fixture = CacheConfFixture(conf)
+ self.useFixture(dict_conf_fixture)
+ dict_conf_fixture.config(expiration_time=600,
+ backend='oslo_cache.dict',
+ group='cache')
+ self.dict_conf = dict_conf_fixture.conf
+
+ # enable_retry_client is only supported by
+ # 'dogpile.cache.pymemcache' backend which makes this
+ # incorrect config
+ faulty_conf_fixture = CacheConfFixture(conf)
+ self.useFixture(faulty_conf_fixture)
+ faulty_conf_fixture.config(expiration_time=600,
+ backend='dogpile.cache.memcached',
+ group='cache',
+ enable_retry_client='true')
+ self.faulty_cache_conf = faulty_conf_fixture.conf
+
+ self.no_cache_conf = ceilometer_service.\
+ prepare_service(argv=[], config_files=[])
+
+ def test_get_cache_region(self):
+ self.assertIsNotNone(cache_utils.get_cache_region(self.dict_conf))
+
+ def test_get_client(self):
+ self.assertIsNotNone(cache_utils.get_client(self.dict_conf))
+ self.assertIsNone(cache_utils.get_client(self.no_cache_conf))
+ self.assertIsNone(cache_utils.get_client(self.faulty_cache_conf))