From 6b19db4ec7046ad582928e428b896ad4cfd5f287 Mon Sep 17 00:00:00 2001 From: Gary Kotton Date: Thu, 24 Jan 2013 09:15:32 +0000 Subject: [PATCH] Fix database reconnection Fixes bug 1103904 Change-Id: I2f3bc450d5d7ea04c20b3be2afed3c0c5a00435a --- quantum/db/api.py | 2 +- quantum/tests/unit/test_db.py | 31 +++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 quantum/tests/unit/test_db.py diff --git a/quantum/db/api.py b/quantum/db/api.py index 1c43231bc9..a1e0abf450 100644 --- a/quantum/db/api.py +++ b/quantum/db/api.py @@ -146,7 +146,7 @@ def configure_db(): sql.event.listen(_ENGINE, 'checkin', greenthread_yield) if not register_models(): - if 'reconnect_interval' in options: + if cfg.CONF.DATABASE.reconnect_interval: remaining = cfg.CONF.DATABASE.sql_max_retries reconnect_interval = cfg.CONF.DATABASE.reconnect_interval retry_registration(remaining, reconnect_interval) diff --git a/quantum/tests/unit/test_db.py b/quantum/tests/unit/test_db.py new file mode 100644 index 0000000000..5fa660f5a1 --- /dev/null +++ b/quantum/tests/unit/test_db.py @@ -0,0 +1,31 @@ +# Copyright (c) 2013 OpenStack, LLC. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Test of DB API""" + +import unittest2 as unittest + +import mock + +import quantum.db.api as db +from quantum.openstack.common import cfg + + +class DBTestCase(unittest.TestCase): + def test_db_reconnect(self): + cfg.CONF.set_override('sql_max_retries', 3, 'DATABASE') + with mock.patch.object(db, 'register_models') as mock_register: + mock_register.return_value = False + db.configure_db()