From 18518102cea329ead2c78bb1875705318c5b2afb Mon Sep 17 00:00:00 2001 From: Sean Dague Date: Mon, 8 Dec 2014 16:16:39 -0500 Subject: [PATCH] move eventlet GREENDNS override to top level Instead of working around this in 3 places, only do the import override at the top level. There were comments left by mikal to do this after the pbr switch which is now done. Change-Id: I3ec281dd016ad904e9f323630324e70a002a037d --- nova/__init__.py | 6 ++++++ nova/cmd/__init__.py | 21 --------------------- nova/tests/functional/__init__.py | 22 ---------------------- nova/tests/unit/__init__.py | 22 ---------------------- 4 files changed, 6 insertions(+), 65 deletions(-) diff --git a/nova/__init__.py b/nova/__init__.py index b8044faecee0..21403ab570ac 100644 --- a/nova/__init__.py +++ b/nova/__init__.py @@ -22,3 +22,9 @@ :platform: Unix :synopsis: Infrastructure-as-a-Service Cloud platform. """ + +import os + +os.environ['EVENTLET_NO_GREENDNS'] = 'yes' + +import eventlet # noqa diff --git a/nova/cmd/__init__.py b/nova/cmd/__init__.py index 5f1129d9c11b..d1e331c39d63 100644 --- a/nova/cmd/__init__.py +++ b/nova/cmd/__init__.py @@ -13,27 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -# TODO(mikal): move eventlet imports to nova.__init__ once we move to PBR -import os -import sys -import traceback - -# 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. -# NOTE(dims): Prevent this code from kicking in under docs generation -# as it leads to spurious errors/warning. -stack = traceback.extract_stack() -if ('eventlet' in sys.modules and - os.environ.get('EVENTLET_NO_GREENDNS', '').lower() != 'yes' and - (len(stack) < 2 or 'sphinx' not in stack[-2][0])): - raise ImportError('eventlet imported before nova/cmd/__init__ ' - '(env var set to %s)' - % os.environ.get('EVENTLET_NO_GREENDNS')) - -os.environ['EVENTLET_NO_GREENDNS'] = 'yes' - import eventlet from nova import debugger diff --git a/nova/tests/functional/__init__.py b/nova/tests/functional/__init__.py index d34fc4925abe..e74717f867e1 100644 --- a/nova/tests/functional/__init__.py +++ b/nova/tests/functional/__init__.py @@ -20,28 +20,6 @@ :platform: Unix """ -# TODO(mikal): move eventlet imports to nova.__init__ once we move to PBR -import os -import sys -import traceback - - -# 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. -# NOTE(dims): Prevent this code from kicking in under docs generation -# as it leads to spurious errors/warning. -stack = traceback.extract_stack() -if ('eventlet' in sys.modules and - os.environ.get('EVENTLET_NO_GREENDNS', '').lower() != 'yes' and - (len(stack) < 2 or 'sphinx' not in stack[-2][0])): - raise ImportError('eventlet imported before nova/cmd/__init__ ' - '(env var set to %s)' - % os.environ.get('EVENTLET_NO_GREENDNS')) - -os.environ['EVENTLET_NO_GREENDNS'] = 'yes' - import eventlet eventlet.monkey_patch(os=False) diff --git a/nova/tests/unit/__init__.py b/nova/tests/unit/__init__.py index 31822c15169c..6446a8a733ce 100644 --- a/nova/tests/unit/__init__.py +++ b/nova/tests/unit/__init__.py @@ -22,28 +22,6 @@ :platform: Unix """ -# TODO(mikal): move eventlet imports to nova.__init__ once we move to PBR -import os -import sys -import traceback - - -# 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. -# NOTE(dims): Prevent this code from kicking in under docs generation -# as it leads to spurious errors/warning. -stack = traceback.extract_stack() -if ('eventlet' in sys.modules and - os.environ.get('EVENTLET_NO_GREENDNS', '').lower() != 'yes' and - (len(stack) < 2 or 'sphinx' not in stack[-2][0])): - raise ImportError('eventlet imported before nova/cmd/__init__ ' - '(env var set to %s)' - % os.environ.get('EVENTLET_NO_GREENDNS')) - -os.environ['EVENTLET_NO_GREENDNS'] = 'yes' - import eventlet eventlet.monkey_patch(os=False)