Merge "Adding a means to connect back to a pydevd debugger."

This commit is contained in:
Jenkins 2012-12-24 03:46:16 +00:00 committed by Gerrit Code Review
commit daf3bdae22
3 changed files with 29 additions and 0 deletions

View File

@ -91,6 +91,13 @@ if __name__ == '__main__':
sys.exit(1)
monkeypatch_thread = not CONF.standard_threads
pydev_debug_url = utils.setup_remote_pydev_debug()
if pydev_debug_url:
# in order to work around errors caused by monkey patching we have to
# set the thread to False. An explanation is here:
# http://lists.openstack.org/pipermail/openstack-dev/2012-August/
# 000794.html
monkeypatch_thread = False
eventlet.patcher.monkey_patch(all=False, socket=True, time=True,
thread=monkeypatch_thread)

View File

@ -292,3 +292,22 @@ def hash_signed_token(signed_text):
hash_ = hashlib.md5()
hash_.update(signed_text)
return hash_.hexdigest()
def setup_remote_pydev_debug():
if CONF.pydev_debug_host and CONF.pydev_debug_port:
error_msg = ('Error setting up the debug environment. Verify that the'
' option --debug-url has the format <host>:<port> and '
'that a debugger processes is listening on that port.')
try:
from pydev import pydevd
pydevd.settrace(CONF.pydev_debug_host,
port=CONF.pydev_debug_port,
stdoutToServer=True,
stderrToServer=True)
return True
except:
LOG.exception(_(error_msg))
raise

View File

@ -125,6 +125,9 @@ def register_cli_int(*args, **kw):
register_cli_bool('standard-threads', default=False)
register_cli_str('pydev-debug-host', default=None)
register_cli_int('pydev-debug-port', default=None)
register_str('admin_token', default='ADMIN')
register_str('bind_host', default='0.0.0.0')
register_str('compute_port', default=8774)