Split `storage` into (message|management)_storage

We split both, data and control, planes and we were diligent in
splitting the configuration sections. However, we forgot to split the
`storage` option in the `drivers` section.

This patch does that and marks the old option as deprecated.

Closes-bug: #1462025
Change-Id: I692c35dcf217bede557ac463b2388f9a60d96c79
This commit is contained in:
Flavio Percoco 2015-06-04 20:18:57 +02:00
parent e972097b92
commit de1b3307fa
21 changed files with 38 additions and 27 deletions

View File

@ -127,14 +127,16 @@ function configure_zaqar {
if [ "$ZAQAR_BACKEND" = 'mongodb' ] ; then
iniset $ZAQAR_CONF DEFAULT pooling True
iniset $ZAQAR_CONF drivers storage mongodb
iniset $ZAQAR_CONF drivers message_store mongodb
iniset $ZAQAR_CONF 'drivers:message_store:mongodb' uri mongodb://localhost:27017/zaqar
iniset $ZAQAR_CONF 'drivers:message_store:mongodb' database zaqar
iniset $ZAQAR_CONF drivers management_store mongodb
iniset $ZAQAR_CONF 'drivers:management_store:mongodb' uri mongodb://localhost:27017/zaqar_mgmt
iniset $ZAQAR_CONF 'drivers:management_store:mongodb' database zaqar_mgmt
configure_mongodb
elif [ "$ZAQAR_BACKEND" = 'redis' ] ; then
iniset $ZAQAR_CONF drivers storage redis
iniset $ZAQAR_CONF drivers message_store redis
iniset $ZAQAR_CONF 'drivers:message_store:redis' uri redis://localhost:6379
iniset $ZAQAR_CONF 'drivers:message_store:redis' database zaqar
configure_redis

View File

@ -5,7 +5,7 @@ admin_mode = False
[drivers]
transport = wsgi
storage = invalid
message_store = invalid
[drivers:transport:wsgi]
port = 8888

View File

@ -4,7 +4,7 @@ verbose = False
[drivers]
transport = invalid
storage = sqlalchemy
message_store = sqlalchemy
[drivers:transport:wsgi]
port = 8888

View File

@ -25,7 +25,7 @@ unreliable = True
# Transport driver module (e.g., wsgi, zmq)
transport = wsgi
# Storage driver module (e.g., mongodb, sqlalchemy)
storage = mongodb
message_store = mongodb
[drivers:transport:wsgi]
bind = 127.0.0.1

View File

@ -6,7 +6,7 @@ verbose = False
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb
[drivers:transport:wsgi]
bind = 0.0.0.0:8888

View File

@ -6,7 +6,7 @@
transport = websocket
# Storage driver to use (string value)
storage = mongodb
message_store = mongodb
[drivers:management_store:mongodb]

View File

@ -4,7 +4,8 @@ verbose = False
[drivers]
transport = wsgi
storage = faulty
message_store = faulty
management_store = faulty
[drivers:transport:wsgi]
port = 8888

View File

@ -5,7 +5,7 @@ unreliable = True
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb
[drivers:transport:wsgi]
port = 8888

View File

@ -5,7 +5,7 @@ unreliable = True
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb
[drivers:transport:wsgi]
port = 8888

View File

@ -1,3 +1,3 @@
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb

View File

@ -5,7 +5,7 @@ unreliable = True
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb
[drivers:message_store:mongodb]
uri = mongodb://127.0.0.1:27017

View File

@ -1,6 +1,6 @@
[drivers]
transport = wsgi
storage = mongodb
message_store = mongodb
# Test support for deprecated options
[limits:transport]

View File

@ -4,7 +4,7 @@ verbose = False
[drivers]
transport = wsgi
storage = redis
message_store = redis
[drivers:transport:wsgi]
port = 8888

View File

@ -3,7 +3,7 @@ pooling = True
[drivers]
transport = wsgi
storage = redis
message_store = redis
[drivers:message_store:redis]
uri = redis://127.0.0.1:6379

View File

@ -5,7 +5,7 @@ admin_mode = False
[drivers]
transport = wsgi
storage = sqlalchemy
message_store = sqlalchemy
[drivers:transport:wsgi]
bind = 0.0.0.0

View File

@ -4,7 +4,7 @@ admin_mode = True
[drivers]
transport = wsgi
storage = sqlalchemy
message_store = sqlalchemy
[drivers:transport:wsgi]
bind = 0.0.0.0

View File

@ -60,8 +60,11 @@ _GENERAL_OPTIONS = (
_DRIVER_OPTIONS = (
cfg.StrOpt('transport', default='wsgi',
help='Transport driver to use.'),
cfg.StrOpt('storage', default='mongodb',
help='Storage driver to use.'),
cfg.StrOpt('message_store', default='mongodb',
deprecated_opts=[cfg.DeprecatedOpt('storage')],
help='Storage driver to use as the messaging store.'),
cfg.StrOpt('management_store', default='mongodb',
help='Storage driver to use as the management store.'),
)
_DRIVER_GROUP = 'drivers'

View File

@ -693,7 +693,7 @@ class PoolsBase(ControllerBase):
"""A controller for managing pools."""
def _check_capabilities(self, uri, group=None, name=None):
default_store = self.driver.conf.drivers.storage
default_store = self.driver.conf.drivers.message_store
pool_caps = self.capabilities(group=group, name=name)
if not pool_caps:
@ -723,7 +723,7 @@ class PoolsBase(ControllerBase):
if not len(group) > 0:
return ()
default_store = self.driver.conf.drivers.storage
default_store = self.driver.conf.drivers.message_store
pool_store = utils.load_storage_impl(group[0]['uri'],
default_store=default_store)

View File

@ -118,7 +118,7 @@ _COMMON_OPTIONS = (
MANAGEMENT_MONGODB_OPTIONS = _COMMON_OPTIONS
MESSAGE_MONGODB_OPTIONS = _COMMON_OPTIONS + (
# options used only by message_storage
# options used only by message_store
cfg.IntOpt('partitions', default=2,
deprecated_opts=[cfg.DeprecatedOpt(
'partitions',

View File

@ -585,7 +585,7 @@ class Catalog(object):
LOG.debug(ex)
conf_section = ('drivers:message_store:%s' %
self._conf.drivers.storage)
self._conf.drivers.message_store)
if conf_section not in self._conf:
# NOTE(kgriffs): Return `None`, rather than letting the

View File

@ -58,10 +58,10 @@ def dynamic_conf(uri, options, conf=None):
if 'drivers' not in conf:
# NOTE(cpp-cabrera): parse general opts: 'drivers'
driver_opts = utils.dict_to_conf({'storage': storage_type})
driver_opts = utils.dict_to_conf({'message_store': storage_type})
conf.register_opts(driver_opts, group=u'drivers')
conf.set_override('storage', storage_type, 'drivers')
conf.set_override('message_store', storage_type, 'drivers')
for opt in options:
if opt in conf[storage_group]:
@ -116,9 +116,14 @@ def load_storage_driver(conf, cache, storage_type=None,
the queue controller, mainly.
"""
mode = 'control' if control_mode else 'data'
if control_mode:
mode = 'control'
storage_type = storage_type or conf['drivers'].management_store
else:
mode = 'data'
storage_type = storage_type or conf['drivers'].message_store
driver_type = 'zaqar.{0}.storage'.format(mode)
storage_type = storage_type or conf['drivers'].storage
_invoke_args = [conf, cache]
if control_driver is not None: