Remove deprecated "memcached_server" in Default section
The 'memcached_server' option in DEFAULT section which was deprecated in Mitaka has been completely removed in Newton. This has been replaced by options from oslo cache section. Change-Id: I0b23fd65a04de6a35e8ce9efd1110caad63ad562
This commit is contained in:
parent
80fa358e86
commit
505bc44615
|
@ -4,7 +4,6 @@ wrap_width = 79
|
||||||
namespace = nova
|
namespace = nova
|
||||||
namespace = nova.conf
|
namespace = nova.conf
|
||||||
namespace = nova.api
|
namespace = nova.api
|
||||||
namespace = nova.cache_utils
|
|
||||||
namespace = nova.cells
|
namespace = nova.cells
|
||||||
namespace = nova.compute
|
namespace = nova.compute
|
||||||
namespace = nova.network
|
namespace = nova.network
|
||||||
|
|
|
@ -16,87 +16,34 @@
|
||||||
|
|
||||||
"""Super simple fake memcache client."""
|
"""Super simple fake memcache client."""
|
||||||
|
|
||||||
import copy
|
|
||||||
|
|
||||||
from oslo_cache import core as cache
|
from oslo_cache import core as cache
|
||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
from nova.i18n import _
|
from nova.i18n import _
|
||||||
|
|
||||||
|
|
||||||
# NOTE(dims): There are many copies of memcache_opts with memcached_servers
|
|
||||||
# in various projects as this used to be in a copy of memory_cache.py
|
|
||||||
# Since we are making a change in just our copy, oslo-config-generator fails
|
|
||||||
# with cfg.DuplicateOptError unless we override the comparison check
|
|
||||||
class _DeprecatedListOpt(cfg.ListOpt):
|
|
||||||
def __ne__(self, another):
|
|
||||||
self_dict = copy.deepcopy(vars(self))
|
|
||||||
another_dict = copy.deepcopy(vars(another))
|
|
||||||
self_dict.pop('help')
|
|
||||||
self_dict.pop('deprecated_for_removal')
|
|
||||||
another_dict.pop('help')
|
|
||||||
another_dict.pop('deprecated_for_removal')
|
|
||||||
return self_dict != another_dict
|
|
||||||
|
|
||||||
|
|
||||||
memcache_opts = [
|
|
||||||
_DeprecatedListOpt('memcached_servers',
|
|
||||||
help='DEPRECATED: Memcached servers or None for in '
|
|
||||||
'process cache. "memcached_servers" opt is '
|
|
||||||
'deprecated in Mitaka. In Newton release '
|
|
||||||
'oslo.cache config options should be used as '
|
|
||||||
'this option will be removed. Please add a '
|
|
||||||
'[cache] group in your nova.conf file and '
|
|
||||||
'add "enable" and "memcache_servers" option in '
|
|
||||||
'this section.',
|
|
||||||
deprecated_for_removal=True),
|
|
||||||
]
|
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
CONF.register_opts(memcache_opts)
|
|
||||||
|
|
||||||
WEEK = 604800
|
WEEK = 604800
|
||||||
|
|
||||||
|
|
||||||
def list_opts():
|
|
||||||
"""Entry point for oslo-config-generator."""
|
|
||||||
return [(None, copy.deepcopy(memcache_opts))]
|
|
||||||
|
|
||||||
|
|
||||||
def get_memcached_client(expiration_time=0):
|
def get_memcached_client(expiration_time=0):
|
||||||
"""Used ONLY when memcached is explicitly needed."""
|
"""Used ONLY when memcached is explicitly needed."""
|
||||||
# If the operator uses the old style [DEFAULT]/memcached_servers
|
# If the operator has [cache]/enabled flag on then we let oslo_cache
|
||||||
# then we just respect that setting
|
# configure the region from the configuration settings
|
||||||
if CONF.memcached_servers:
|
if CONF.cache.enabled and CONF.cache.memcache_servers:
|
||||||
return CacheClient(
|
|
||||||
_get_custom_cache_region(expiration_time=expiration_time,
|
|
||||||
backend='dogpile.cache.memcached',
|
|
||||||
url=CONF.memcached_servers))
|
|
||||||
# If the operator still uses the new style [cache]/memcache_servers
|
|
||||||
# and has [cache]/enabled flag on then we let oslo_cache configure
|
|
||||||
# the region from the configuration settings
|
|
||||||
elif CONF.cache.enabled and CONF.cache.memcache_servers:
|
|
||||||
return CacheClient(
|
return CacheClient(
|
||||||
_get_default_cache_region(expiration_time=expiration_time))
|
_get_default_cache_region(expiration_time=expiration_time))
|
||||||
raise RuntimeError(_('memcached_servers not defined'))
|
|
||||||
|
|
||||||
|
|
||||||
def get_client(expiration_time=0):
|
def get_client(expiration_time=0):
|
||||||
"""Used to get a caching client."""
|
"""Used to get a caching client."""
|
||||||
# If the operator still uses the old style [DEFAULT]/memcached_servers
|
|
||||||
# then we just respect that setting
|
|
||||||
if CONF.memcached_servers:
|
|
||||||
return CacheClient(
|
|
||||||
_get_custom_cache_region(expiration_time=expiration_time,
|
|
||||||
backend='dogpile.cache.memcached',
|
|
||||||
url=CONF.memcached_servers))
|
|
||||||
# If the operator has [cache]/enabled flag on then we let oslo_cache
|
# If the operator has [cache]/enabled flag on then we let oslo_cache
|
||||||
# configure the region from configuration settings.
|
# configure the region from configuration settings.
|
||||||
elif CONF.cache.enabled:
|
if CONF.cache.enabled:
|
||||||
return CacheClient(
|
return CacheClient(
|
||||||
_get_default_cache_region(expiration_time=expiration_time))
|
_get_default_cache_region(expiration_time=expiration_time))
|
||||||
# If [cache]/enabled flag is off and [DEFAULT]/memcached_servers is
|
# If [cache]/enabled flag is off, we use the dictionary backend
|
||||||
# absent we use the dictionary backend
|
|
||||||
return CacheClient(
|
return CacheClient(
|
||||||
_get_custom_cache_region(expiration_time=expiration_time,
|
_get_custom_cache_region(expiration_time=expiration_time,
|
||||||
backend='oslo_cache.dict'))
|
backend='oslo_cache.dict'))
|
||||||
|
|
|
@ -28,8 +28,7 @@ class MemcachedServiceGroupTestCase(test.NoDBTestCase):
|
||||||
super(MemcachedServiceGroupTestCase, self).setUp()
|
super(MemcachedServiceGroupTestCase, self).setUp()
|
||||||
self.mc_client = mock.MagicMock()
|
self.mc_client = mock.MagicMock()
|
||||||
mgc_mock.return_value = self.mc_client
|
mgc_mock.return_value = self.mc_client
|
||||||
self.flags(memcached_servers='ignored',
|
self.flags(servicegroup_driver='mc')
|
||||||
servicegroup_driver='mc')
|
|
||||||
self.servicegroup_api = servicegroup.API()
|
self.servicegroup_api = servicegroup.API()
|
||||||
|
|
||||||
def test_is_up(self):
|
def test_is_up(self):
|
||||||
|
|
|
@ -33,16 +33,10 @@ class TestOsloCache(test.NoDBTestCase):
|
||||||
self.assertIsNotNone(
|
self.assertIsNotNone(
|
||||||
cache_utils.get_client(expiration_time=60))
|
cache_utils.get_client(expiration_time=60))
|
||||||
|
|
||||||
self.flags(memcached_servers=['localhost:11211'])
|
|
||||||
self.assertIsNotNone(
|
|
||||||
cache_utils.get_client(expiration_time=60))
|
|
||||||
|
|
||||||
self.flags(memcached_servers=None)
|
|
||||||
self.flags(group='cache', enabled=True)
|
self.flags(group='cache', enabled=True)
|
||||||
self.assertIsNotNone(
|
self.assertIsNotNone(
|
||||||
cache_utils.get_client(expiration_time=60))
|
cache_utils.get_client(expiration_time=60))
|
||||||
|
|
||||||
self.flags(memcached_servers=None)
|
|
||||||
self.flags(group='cache', enabled=False)
|
self.flags(group='cache', enabled=False)
|
||||||
client = cache_utils.get_client(expiration_time=60)
|
client = cache_utils.get_client(expiration_time=60)
|
||||||
self.assertIsNotNone(client.region)
|
self.assertIsNotNone(client.region)
|
||||||
|
@ -51,9 +45,6 @@ class TestOsloCache(test.NoDBTestCase):
|
||||||
[mock.call('oslo_cache.dict',
|
[mock.call('oslo_cache.dict',
|
||||||
arguments={'expiration_time': 60},
|
arguments={'expiration_time': 60},
|
||||||
expiration_time=60),
|
expiration_time=60),
|
||||||
mock.call('dogpile.cache.memcached',
|
|
||||||
arguments={'url': ['localhost:11211']},
|
|
||||||
expiration_time=60),
|
|
||||||
mock.call('dogpile.cache.null',
|
mock.call('dogpile.cache.null',
|
||||||
_config_argument_dict=mock.ANY,
|
_config_argument_dict=mock.ANY,
|
||||||
_config_prefix='cache.oslo.arguments.',
|
_config_prefix='cache.oslo.arguments.',
|
||||||
|
@ -86,35 +77,13 @@ class TestOsloCache(test.NoDBTestCase):
|
||||||
|
|
||||||
@mock.patch('dogpile.cache.region.CacheRegion.configure')
|
@mock.patch('dogpile.cache.region.CacheRegion.configure')
|
||||||
def test_get_memcached_client(self, mock_cacheregion):
|
def test_get_memcached_client(self, mock_cacheregion):
|
||||||
self.flags(memcached_servers=None)
|
|
||||||
self.flags(group='cache', enabled=False)
|
|
||||||
self.assertRaises(
|
|
||||||
RuntimeError,
|
|
||||||
cache_utils.get_memcached_client,
|
|
||||||
expiration_time=60)
|
|
||||||
|
|
||||||
self.flags(memcached_servers=['localhost:11211'])
|
|
||||||
self.assertIsNotNone(
|
|
||||||
cache_utils.get_memcached_client(expiration_time=60))
|
|
||||||
|
|
||||||
self.flags(memcached_servers=['localhost:11211'])
|
|
||||||
self.assertIsNotNone(
|
|
||||||
cache_utils.get_memcached_client(expiration_time=60))
|
|
||||||
|
|
||||||
self.flags(memcached_servers=None)
|
|
||||||
self.flags(group='cache', enabled=True)
|
self.flags(group='cache', enabled=True)
|
||||||
self.flags(group='cache', memcache_servers=['localhost:11211'])
|
self.flags(group='cache', memcache_servers=['localhost:11211'])
|
||||||
self.assertIsNotNone(
|
self.assertIsNotNone(
|
||||||
cache_utils.get_memcached_client(expiration_time=60))
|
cache_utils.get_memcached_client(expiration_time=60))
|
||||||
|
|
||||||
mock_cacheregion.assert_has_calls(
|
mock_cacheregion.assert_has_calls(
|
||||||
[mock.call('dogpile.cache.memcached',
|
[mock.call('dogpile.cache.null',
|
||||||
arguments={'url': ['localhost:11211']},
|
|
||||||
expiration_time=60),
|
|
||||||
mock.call('dogpile.cache.memcached',
|
|
||||||
arguments={'url': ['localhost:11211']},
|
|
||||||
expiration_time=60),
|
|
||||||
mock.call('dogpile.cache.null',
|
|
||||||
_config_argument_dict=mock.ANY,
|
_config_argument_dict=mock.ANY,
|
||||||
_config_prefix='cache.oslo.arguments.',
|
_config_prefix='cache.oslo.arguments.',
|
||||||
expiration_time=60, wrap=None)]
|
expiration_time=60, wrap=None)]
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- The 'memcached_server' option in DEFAULT section which was deprecated in
|
||||||
|
Mitaka has been completely removed in Newton. This has been replaced by
|
||||||
|
options from oslo cache section.
|
Loading…
Reference in New Issue