Switch to using eventlet_backdoor from oslo.

Instead of using the copy of eventlet_backdoor in nova.common
this switches over to the synced version from oslo.

Change-Id: Ice2e38b9da66b34e19f04af0a99bcdc2cb5b5cd3
Signed-off-by: Matthew Treinish <treinish@linux.vnet.ibm.com>
This commit is contained in:
Matthew Treinish 2012-11-15 11:10:29 -05:00
parent 1a4700f5e9
commit 0d30aa23b4
2 changed files with 1 additions and 84 deletions

View File

@ -1,83 +0,0 @@
# vim: tabstop=4 shiftwidth=4 softtabstop=4
# Copyright (c) 2012 OpenStack, LLC.
# 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.
import gc
import pprint
import sys
import traceback
import eventlet
import eventlet.backdoor
import greenlet
from nova import config
from nova import flags
from nova.openstack.common import cfg
eventlet_backdoor_opts = [
cfg.IntOpt('backdoor_port',
default=None,
help='port for eventlet backdoor to listen')
]
CONF = config.CONF
CONF.register_opts(eventlet_backdoor_opts)
def dont_use_this():
print "Don't use this, just disconnect instead"
def find_objects(t):
return filter(lambda o: isinstance(o, t), gc.get_objects())
def print_greenthreads():
for i, gt in enumerate(find_objects(greenlet.greenlet)):
print i, gt
traceback.print_stack(gt.gr_frame)
print
backdoor_locals = {
'exit': dont_use_this, # So we don't exit the entire process
'quit': dont_use_this, # So we don't exit the entire process
'fo': find_objects,
'pgt': print_greenthreads,
}
def initialize_if_enabled():
if CONF.backdoor_port is None:
return None
# NOTE(johannes): The standard sys.displayhook will print the value of
# the last expression and set it to __builtin__._, which overwrites
# the __builtin__._ that gettext sets. Let's switch to using pprint
# since it won't interact poorly with gettext, and it's easier to
# read the output too.
def displayhook(val):
if val is not None:
pprint.pprint(val)
sys.displayhook = displayhook
sock = eventlet.listen(('localhost', CONF.backdoor_port))
port = sock.getsockname()[1]
eventlet.spawn(eventlet.backdoor.backdoor_server, sock,
locals=backdoor_locals)
return port

View File

@ -30,13 +30,13 @@ import time
import eventlet import eventlet
import greenlet import greenlet
from nova.common import eventlet_backdoor
from nova import config from nova import config
from nova import context from nova import context
from nova import db from nova import db
from nova import exception from nova import exception
from nova import flags from nova import flags
from nova.openstack.common import cfg from nova.openstack.common import cfg
from nova.openstack.common import eventlet_backdoor
from nova.openstack.common import importutils from nova.openstack.common import importutils
from nova.openstack.common import log as logging from nova.openstack.common import log as logging
from nova.openstack.common import rpc from nova.openstack.common import rpc