Support for debug mode start in barbican
Closes-Bug: #1295903 Change-Id: I23b508a88f666009f77a3c021e2600a279068e4b
This commit is contained in:
parent
ef40e55b01
commit
177d4499af
@ -43,7 +43,7 @@ def create_main_app(global_config, **local_conf):
|
|||||||
# Configure oslo logging and configuration services.
|
# Configure oslo logging and configuration services.
|
||||||
config.parse_args()
|
config.parse_args()
|
||||||
log.setup('barbican')
|
log.setup('barbican')
|
||||||
|
config.setup_remote_pydev_debug()
|
||||||
# Crypto Plugin Manager
|
# Crypto Plugin Manager
|
||||||
crypto_mgr = ext.CryptoExtensionManager()
|
crypto_mgr = ext.CryptoExtensionManager()
|
||||||
|
|
||||||
|
@ -38,6 +38,8 @@ CONF.import_opt('log_date_format', 'barbican.openstack.common.log')
|
|||||||
CONF.import_opt('use_syslog', 'barbican.openstack.common.log')
|
CONF.import_opt('use_syslog', 'barbican.openstack.common.log')
|
||||||
CONF.import_opt('syslog_log_facility', 'barbican.openstack.common.log')
|
CONF.import_opt('syslog_log_facility', 'barbican.openstack.common.log')
|
||||||
|
|
||||||
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
def parse_args(args=None, usage=None, default_config_files=None):
|
def parse_args(args=None, usage=None, default_config_files=None):
|
||||||
CONF(args=args,
|
CONF(args=args,
|
||||||
@ -47,6 +49,9 @@ def parse_args(args=None, usage=None, default_config_files=None):
|
|||||||
usage=usage,
|
usage=usage,
|
||||||
default_config_files=default_config_files)
|
default_config_files=default_config_files)
|
||||||
|
|
||||||
|
CONF.pydev_debug_host = os.environ.get('PYDEV_DEBUG_HOST')
|
||||||
|
CONF.pydev_debug_port = os.environ.get('PYDEV_DEBUG_PORT')
|
||||||
|
|
||||||
|
|
||||||
def setup_logging():
|
def setup_logging():
|
||||||
"""
|
"""
|
||||||
@ -91,3 +96,25 @@ def setup_logging():
|
|||||||
|
|
||||||
handler.setFormatter(formatter)
|
handler.setFormatter(formatter)
|
||||||
root_logger.addHandler(handler)
|
root_logger.addHandler(handler)
|
||||||
|
|
||||||
|
|
||||||
|
def setup_remote_pydev_debug():
|
||||||
|
"""Required setup for remote debugging"""
|
||||||
|
|
||||||
|
if CONF.pydev_debug_host and CONF.pydev_debug_port:
|
||||||
|
try:
|
||||||
|
try:
|
||||||
|
from pydev import pydevd
|
||||||
|
except ImportError:
|
||||||
|
import pydevd
|
||||||
|
|
||||||
|
pydevd.settrace(CONF.pydev_debug_host,
|
||||||
|
port=int(CONF.pydev_debug_port),
|
||||||
|
stdoutToServer=True,
|
||||||
|
stderrToServer=True)
|
||||||
|
except Exception:
|
||||||
|
LOG.exception('Unable to join debugger, please '
|
||||||
|
'make sure that the debugger processes is '
|
||||||
|
'listening on debug-host \'%s\' debug-port \'%s\'.',
|
||||||
|
CONF.pydev_debug_host, CONF.pydev_debug_port)
|
||||||
|
raise
|
||||||
|
@ -17,6 +17,38 @@ LOCAL_CONFIG=$LOCAL_CONFIG_DIR/barbican-api.conf
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
echo 'DIR: '$DIR
|
echo 'DIR: '$DIR
|
||||||
|
|
||||||
|
debug_barbican()
|
||||||
|
{
|
||||||
|
# Start barbican server in debug mode.
|
||||||
|
# Note: for Eclipse IDE users
|
||||||
|
# Make sure PYTHONPATH is set with pydev
|
||||||
|
# export PYTHONPATH=/<eclipse_home>/plugins/org.python.pydev_2.8.2.2013090511/pysrc"
|
||||||
|
# Note: for Pycharm IDE users
|
||||||
|
# Follow the instruction in link below
|
||||||
|
# https://github.com/cloudkeep/barbican/wiki/Developer-Guide-for-Contributors#debugging-using-pycharm
|
||||||
|
# Following are two commands to start barbican in debug mode
|
||||||
|
# (1) ./barbican.sh debug
|
||||||
|
# (2) ./barbican.sh debug --pydev-debug-host localhost --pydev-debug-port 5678
|
||||||
|
|
||||||
|
if [ -z $3 ] ;
|
||||||
|
then
|
||||||
|
debug_host=localhost
|
||||||
|
else
|
||||||
|
debug_host=$3
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $5 ] ; then
|
||||||
|
debug_port=5678
|
||||||
|
else
|
||||||
|
debug_port=$5
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Starting barbican in debug mode ..." --pydev-debug-host $debug_host --pydev-debug-port $debug_port
|
||||||
|
PYDEV_DEBUG_PARAM="--env PYDEV_DEBUG_HOST=$debug_host --env PYDEV_DEBUG_PORT=$debug_port"
|
||||||
|
|
||||||
|
uwsgi --master --emperor $CONFIG_DIR/vassals -H $VENV_DIR $PYDEV_DEBUG_PARAM
|
||||||
|
}
|
||||||
|
|
||||||
start_barbican()
|
start_barbican()
|
||||||
{
|
{
|
||||||
# Start barbican server up.
|
# Start barbican server up.
|
||||||
@ -78,6 +110,9 @@ case "$1" in
|
|||||||
install)
|
install)
|
||||||
install_barbican
|
install_barbican
|
||||||
;;
|
;;
|
||||||
|
debug)
|
||||||
|
debug_barbican $*
|
||||||
|
;;
|
||||||
start)
|
start)
|
||||||
start_barbican
|
start_barbican
|
||||||
;;
|
;;
|
||||||
@ -91,6 +126,7 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Usage: barbican.sh {install|start|stop|restart}"
|
echo "Usage: barbican.sh {install|start|stop|debug <debug_params>|restart}"
|
||||||
|
echo "where debug_params are: --pydev-debug-host <host> --pydev-debug-port <port>, <host> defaults to 'localhost' and <port> defaults to '5678'"
|
||||||
exit 1
|
exit 1
|
||||||
esac
|
esac
|
||||||
|
Loading…
Reference in New Issue
Block a user