]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Ensure DB pooling code works with newer eventlet versions
authorSalvatore Orlando <salv.orlando@gmail.com>
Thu, 14 Mar 2013 00:05:45 +0000 (01:05 +0100)
committerSalvatore Orlando <salv.orlando@gmail.com>
Thu, 14 Mar 2013 00:07:12 +0000 (01:07 +0100)
Bug 1097992

Change-Id: Id14697a0a4815d0aacbae769bf538a96d6846567

quantum/db/api.py

index d27a0c21c1f716d41be9284bed1956a7b7edca71..9fe66cfeaf5231eef41f2edceb6601faab3af4e6 100644 (file)
@@ -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!"))