diff options
author | Yadnesh Kulkarni <ykulkarn@redhat.com> | 2022-11-08 03:01:11 -0500 |
---|---|---|
committer | Yadnesh Kulkarni <ykulkarn@redhat.com> | 2022-11-21 09:17:08 -0500 |
commit | b4a2801ec6a99df400d353d27a11de9be879c2a3 (patch) | |
tree | b80e121031f6968850dbebc4a62dc0bf82861171 /ceilometer/tests | |
parent | 9fe3674e4705837ef4dbe1a4cd433e6bfd5f9fbd (diff) | |
download | ceilometer-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.py | 65 |
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)) |