Merge "Start metadata agent without trying to connect db"

This commit is contained in:
Jenkins 2015-03-23 16:45:05 +00:00 committed by Gerrit Code Review
commit de3bd2e61a
4 changed files with 24 additions and 2 deletions

View File

@ -36,5 +36,7 @@ def main():
config.init(sys.argv[1:])
config.setup_logging()
utils.log_opt_values(LOG)
# metadata agent need not connect DB
cfg.CONF.set_override("connection", "", "database")
proxy = agent.UnixDomainMetadataProxy(cfg.CONF)
proxy.run()

View File

@ -585,6 +585,8 @@ class TestUnixDomainMetadataProxy(base.BaseTestCase):
mock.call(cfg.CONF),
mock.call().run()]
)
cfg.CONF.set_override.assert_called_once_with(
"connection", "", "database")
def test_init_state_reporting(self):
with mock.patch('os.makedirs'):

View File

@ -49,6 +49,23 @@ def open_no_proxy(*args, **kwargs):
return opener.open(*args, **kwargs)
class TestWorkerService(base.BaseTestCase):
"""WorkerService tests."""
@mock.patch('neutron.db.api')
def test_start_withoutdb_call(self, apimock):
_service = mock.Mock()
_service.pool = mock.Mock()
_service.pool.spawn = mock.Mock()
_service.pool.spawn.return_value = None
_app = mock.Mock()
cfg.CONF.set_override("connection", "", "database")
workerservice = wsgi.WorkerService(_service, _app)
workerservice.start()
self.assertFalse(apimock.get_engine.called)
class TestWSGIServer(base.BaseTestCase):
"""WSGI server tests."""

View File

@ -99,9 +99,10 @@ class WorkerService(object):
def start(self):
# We may have just forked from parent process. A quick disposal of the
# existing sql connections avoids producting 500 errors later when they
# existing sql connections avoids producing 500 errors later when they
# are discovered to be broken.
api.get_engine().pool.dispose()
if CONF.database.connection:
api.get_engine().pool.dispose()
self._server = self._service.pool.spawn(self._service._run,
self._application,
self._service._socket)