From 428290399a250f217b004a4cd00b7528fb99235f 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 d27a0c21c1f..9fe66cfeaf5 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!"))