
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. To turn this off you need to set an environment variable before you do the import. Resolves bug 1164822. Change-Id: I2382db7b3ac4a2d940e0c45dfe3d48f499de2f16
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
# vim: tabstop=4 shiftwidth=4 softtabstop=4
|
|
|
|
# Copyright 2010 United States Government as represented by the
|
|
# Administrator of the National Aeronautics and Space Administration.
|
|
# All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
"""
|
|
:mod:`nova.tests` -- Nova Unittests
|
|
=====================================================
|
|
|
|
.. automodule:: nova.tests
|
|
:platform: Unix
|
|
"""
|
|
|
|
# TODO(mikal): move eventlet imports to nova.__init__ once we move to PBR
|
|
import os
|
|
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 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)
|
|
|
|
# See http://code.google.com/p/python-nose/issues/detail?id=373
|
|
# The code below enables nosetests to work with i18n _() blocks
|
|
import __builtin__
|
|
setattr(__builtin__, '_', lambda x: x)
|