From b50dc8c3d52b0a8637f7cab8c07e3d6c7b1d7de8 Mon Sep 17 00:00:00 2001 From: dineshbhor Date: Thu, 17 May 2018 22:53:15 -0700 Subject: [PATCH] Generalize DB conf group copying The direct access of conf.* names in _get_db_conf() method is an inappropriate usage of oslo.config [1]. Hardcoding these names prevents oslo.db from being able to easily rename or deprecate options, as well as to be able to add new database options, such as those which apply to new performance tuning or monitoring techniques. Retrieve values from the config object generically so that these names remain local to oslo.db. This usage has been supported in oslo.db enginefacade from its inception [2] as multiple projects were already doing it for LegacyEngineFacade. This patch is a copy of below nova change: I22f8a19009408fb1f1587bf399e6aee3467c8bc6 [1] http://lists.openstack.org/pipermail/openstack-dev/2017-July/119846.html [2] https://github.com/openstack/oslo.db/blob/master/oslo_db/tests/sqlalchemy/test_enginefacade.py#L2140 Change-Id: Ie1f4a8e02ff64be2125443ddcd9b95e4f42f593d --- masakari/db/sqlalchemy/api.py | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/masakari/db/sqlalchemy/api.py b/masakari/db/sqlalchemy/api.py index b871e826..ffa62580 100644 --- a/masakari/db/sqlalchemy/api.py +++ b/masakari/db/sqlalchemy/api.py @@ -44,22 +44,10 @@ main_context_manager = enginefacade.transaction_context() def _get_db_conf(conf_group, connection=None): - - return {'connection': connection or conf_group.connection, - 'slave_connection': conf_group.slave_connection, - 'sqlite_fk': False, - '__autocommit': True, - 'expire_on_commit': False, - 'mysql_sql_mode': conf_group.mysql_sql_mode, - 'idle_timeout': conf_group.idle_timeout, - 'connection_debug': conf_group.connection_debug, - 'max_pool_size': conf_group.max_pool_size, - 'max_overflow': conf_group.max_overflow, - 'pool_timeout': conf_group.pool_timeout, - 'sqlite_synchronous': conf_group.sqlite_synchronous, - 'connection_trace': conf_group.connection_trace, - 'max_retries': conf_group.max_retries, - 'retry_interval': conf_group.retry_interval} + kw = dict(conf_group.items()) + if connection is not None: + kw['connection'] = connection + return kw def _context_manager_from_context(context):