From 7942cc876d7646896d942544eccd173b0c50c1ab Mon Sep 17 00:00:00 2001 From: Salvatore Orlando Date: Thu, 14 Mar 2013 01:05:45 +0100 Subject: [PATCH] Ensure DB pooling code works with newer eventlet versions Bug 1097992 Change-Id: Id14697a0a4815d0aacbae769bf538a96d6846567 --- quantum/db/api.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/quantum/db/api.py b/quantum/db/api.py index d27a0c21c..9fe66cfea 100644 --- a/quantum/db/api.py +++ b/quantum/db/api.py @@ -137,8 +137,16 @@ def configure_db(): 'max_size': cfg.CONF.DATABASE.sql_max_pool_size, 'max_idle': cfg.CONF.DATABASE.sql_idle_timeout } - creator = db_pool.ConnectionPool(MySQLdb, **pool_args) - engine_args['creator'] = creator.create + pool = db_pool.ConnectionPool(MySQLdb, **pool_args) + + def creator(): + conn = pool.create() + # NOTE(belliott) eventlet >= 0.10 returns a tuple + if isinstance(conn, tuple): + _1, _2, conn = conn + return conn + + engine_args['creator'] = creator if (MySQLdb is None and cfg.CONF.DATABASE.sql_dbpool_enable): LOG.warn(_("Eventlet connection pooling will not work without " "python-mysqldb!")) -- 2.45.2