diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-05-31 04:02:58 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-05-31 04:02:58 +0000 |
| commit | 447bc401688bca9fd611ffc9e51553fceba27407 (patch) | |
| tree | accd36a7878f018430d4a6646bd35f5e9cb3e3a2 | |
| parent | ea91fc91a7a2034c5e34f8c26e69f14700be4525 (diff) | |
| parent | 489677319b416351d73044ae1336ff2a2112340e (diff) | |
Merge "Disable eventlet monkey-patching of DNS"
| -rw-r--r-- | keystone/common/wsgi_server.py | 13 | ||||
| -rw-r--r-- | keystone/test.py | 5 |
2 files changed, 13 insertions, 5 deletions
diff --git a/keystone/common/wsgi_server.py b/keystone/common/wsgi_server.py index f3c22907..d8d2512f 100644 --- a/keystone/common/wsgi_server.py +++ b/keystone/common/wsgi_server.py @@ -23,6 +23,19 @@ import socket import ssl import sys +# NOTE(mikal): All of this is because if dnspython is present in your +# environment then eventlet monkeypatches socket.getaddrinfo() with an +# implementation which doesn't work for IPv6. What we're checking here is +# that the magic environment variable was set when the import happened. +if ('eventlet' in sys.modules and + os.environ.get('EVENTLET_NO_GREENDNS', '').lower() != 'yes'): + raise ImportError('eventlet imported before ' + 'keystone.common.wsgi_server ' + '(EVENTLET_NO_GREENDNS env var set to %s)' + % os.environ.get('EVENTLET_NO_GREENDNS')) + +os.environ['EVENTLET_NO_GREENDNS'] = 'yes' + import eventlet import eventlet.wsgi diff --git a/keystone/test.py b/keystone/test.py index 3cfbd01c..fc5cd1c6 100644 --- a/keystone/test.py +++ b/keystone/test.py @@ -375,11 +375,6 @@ class TestCase(NoModule, unittest.TestCase): @staticmethod def skip_if_no_ipv6(): - - # TODO(blk-u): lp 1176204. At this time, eventlet address resolution - # doesn't support IPv6. Once it does, remove the next line. - raise nose.exc.SkipTest("Eventlet doesn't support IPv6, lp 1176204") - try: s = socket.socket(socket.AF_INET6) except socket.error as e: |
