diff --git a/nova/cmd/manage.py b/nova/cmd/manage.py index 4bd0819aac18..0478c2578463 100644 --- a/nova/cmd/manage.py +++ b/nova/cmd/manage.py @@ -45,7 +45,6 @@ import six import six.moves.urllib.parse as urlparse from sqlalchemy.engine import url as sqla_url -from nova.api.openstack.placement import db_api as placement_db from nova.api.openstack.placement.objects import consumer as consumer_obj from nova.cmd import common as cmd_common from nova.compute import api as compute_api @@ -860,8 +859,6 @@ class ApiDbCommands(object): # the placement sync to and with the api sync. result = True if CONF.placement_database.connection is not None: - # Establish the independent context manager for the placement db. - placement_db.configure(CONF) result = migration.db_sync(version2, database='placement') return migration.db_sync(version2, database='api') and result diff --git a/nova/config.py b/nova/config.py index b5064b4783f7..de2d10c8264f 100644 --- a/nova/config.py +++ b/nova/config.py @@ -18,6 +18,7 @@ from oslo_log import log from oslo_utils import importutils +from nova.api.openstack.placement import db_api as placement_db from nova.common import config import nova.conf from nova.db.sqlalchemy import api as sqlalchemy_api @@ -61,3 +62,4 @@ def parse_args(argv, default_config_files=None, configure_db=True, if configure_db: sqlalchemy_api.configure(CONF) + placement_db.configure(CONF) diff --git a/nova/tests/unit/test_conf.py b/nova/tests/unit/test_conf.py index 6fcd2f89254a..95f3ec41e966 100644 --- a/nova/tests/unit/test_conf.py +++ b/nova/tests/unit/test_conf.py @@ -86,14 +86,27 @@ class ConfTest(test.NoDBTestCase): class TestParseArgs(test.NoDBTestCase): + def setUp(self): + super(TestParseArgs, self).setUp() + m = mock.patch('nova.db.sqlalchemy.api.configure') + self.nova_db_config_mock = m.start() + self.addCleanup(self.nova_db_config_mock.stop) + m = mock.patch('nova.api.openstack.placement.db_api.configure') + self.placement_db_config_mock = m.start() + self.addCleanup(self.placement_db_config_mock.stop) + @mock.patch.object(config.log, 'register_options') def test_parse_args_glance_debug_false(self, register_options): self.flags(debug=False, group='glance') config.parse_args([], configure_db=False, init_rpc=False) self.assertIn('glanceclient=WARN', config.CONF.default_log_levels) + self.nova_db_config_mock.assert_not_called() + self.placement_db_config_mock.assert_not_called() @mock.patch.object(config.log, 'register_options') def test_parse_args_glance_debug_true(self, register_options): self.flags(debug=True, group='glance') - config.parse_args([], configure_db=False, init_rpc=False) + config.parse_args([], configure_db=True, init_rpc=False) self.assertIn('glanceclient=DEBUG', config.CONF.default_log_levels) + self.nova_db_config_mock.assert_called_once_with(config.CONF) + self.placement_db_config_mock.assert_called_once_with(config.CONF)