The branch, master has been updated via 30cd766d9e8ac9b0ce52b7129dab52fca5068430 (commit) from 0bed3dcbd4cda88b18e140617902a0458a98906f (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 30cd766d9e8ac9b0ce52b7129dab52fca5068430 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Dec 11 11:36:02 2013 +0100 Add new helper tool: x2gobroker-daemon-debug. ----------------------------------------------------------------------- Summary of changes: bin/x2gobroker | 14 ++++++++++-- debian/changelog | 1 + sbin/x2gobroker-daemon-debug | 13 ++++++++++++ x2gobroker/defaults.py | 4 ++++ x2gobroker/loggers.py | 48 ++++++++++++++++++++++++++---------------- 5 files changed, 60 insertions(+), 20 deletions(-) create mode 100755 sbin/x2gobroker-daemon-debug The diff of changes is: diff --git a/bin/x2gobroker b/bin/x2gobroker index caaa103..765aca2 100755 --- a/bin/x2gobroker +++ b/bin/x2gobroker @@ -88,6 +88,7 @@ if __name__ == "__main__": {'args':['-M','--mode'], 'default': 'SSH', 'metavar': 'BROKER_MODE', 'help': 'Mode of the X2Go Session Broker to run ins (available: SSH, HTTP)', }, {'args':['-C','--config-file'], 'default': None, 'metavar': 'CONFIG_FILE', 'help': 'Specify a special configuration file name, default is: {default}'.format(default=x2gobroker.defaults.X2GOBROKER_CONFIG), }, {'args':['-d','--debug'], 'default': False, 'action': 'store_true', 'help': 'enable debugging code; also: allow testing in web browser (make http\'s POST method available as GET method, as well)', }, + {'args':['-i','--debug-interactively'], 'default': False, 'action': 'store_true', 'help': 'force output of log message to the stderr (rather than to the log files)', }, ] daemon_options = [ {'args':['-b', '--bind'], 'default': None, 'metavar': 'BIND_ADDRESS', 'help': 'The [address:]port that the web.py http-engine shall bind to (default: 127.0.0.1:8080)', }, @@ -117,6 +118,15 @@ if __name__ == "__main__": if cmdline_args.config_file is not None: x2gobroker.defaults.X2GOBROKER_CONFIG = cmdline_args.config_file + if cmdline_args.debug_interactively: + # recreate loggers... + logger_broker, logger_access, logger_error = x2gobroker.loggers.init_console_loggers() + # override loggers in x2gobroker module... + x2gobroker.loggers.logger_broker = logger_broker + x2gobroker.loggers.logger_broker = logger_access + x2gobroker.loggers.logger_error = logger_error + cmdline_args.debug = True + # override X2GOBROKER_DEBUG=0 in os.environ with the command line switch if cmdline_args.debug: x2gobroker.defaults.X2GOBROKER_DEBUG = cmdline_args.debug @@ -230,8 +240,8 @@ else: ### tornado.web.HTTPError. Commenting out for now, may be removed ### later. # some WSGI implementations do not like the SCRIPT_NAME env var - #if 'SCRIPT_NAME' in environ: - # del environ['SCRIPT_NAME'] + if 'SCRIPT_NAME' in environ: + del environ['SCRIPT_NAME'] # make sure the httpd server's environment is set as os.environ for key in environ.keys(): diff --git a/debian/changelog b/debian/changelog index 141e2e9..f3d71b3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -60,6 +60,7 @@ x2gobroker (0.0.3.0-0x2go1) UNRELEASED; urgency=low - Fix check-credentials = false for UCCS web frontend. - Add a start page (,,It works''). - Use IP addresses in apache2 config rather than hostnames. + - Add new helper tool: x2gobroker-daemon-debug. * debian/control: + Replace LDAP support with session brokerage support in LONG_DESCRIPTION. + Recommend apache2 and libapache2-mod-wsgi for x2gobroker-wsgi. diff --git a/sbin/x2gobroker-daemon-debug b/sbin/x2gobroker-daemon-debug new file mode 100755 index 0000000..e80fb1f --- /dev/null +++ b/sbin/x2gobroker-daemon-debug @@ -0,0 +1,13 @@ +#!/bin/bash + +if [ -e /etc/default/python-x2gobroker ]; then + . /etc/default/python-x2gobroker +fi + +if [ -e /etc/default/x2gobroker-daemon ]; then + . /etc/default/x2gobroker-daemon +fi + +export X2GOBROKER_DEBUG=true + +su - x2gobroker -c "x2gobroker -M http -i" \ No newline at end of file diff --git a/x2gobroker/defaults.py b/x2gobroker/defaults.py index ab9844e..2d069d3 100644 --- a/x2gobroker/defaults.py +++ b/x2gobroker/defaults.py @@ -47,6 +47,10 @@ if os.environ.has_key('X2GOBROKER_DEBUG'): X2GOBROKER_DEBUG = ( os.environ['X2GOBROKER_DEBUG'].lower() in ('1', 'on', 'true', 'yes', ) ) else: X2GOBROKER_DEBUG = False +if os.environ.has_key('X2GOBROKER_DEBUG_INTERACTIVELY'): + X2GOBROKER_DEBUG_INTERACTIVELY = ( os.environ['X2GOBROKER_DEBUG_INTERACTIVELY'].lower() in ('1', 'on', 'true', 'yes', ) ) +else: + X2GOBROKER_DEBUG_INTERACTIVELY = False if os.environ.has_key('X2GOBROKER_TESTSUITE'): X2GOBROKER_TESTSUITE = ( os.environ['X2GOBROKER_TESTSUITE'].lower() in ('1', 'on', 'true', 'yes', ) ) else: diff --git a/x2gobroker/loggers.py b/x2gobroker/loggers.py index dd5e258..c0c0f2d 100644 --- a/x2gobroker/loggers.py +++ b/x2gobroker/loggers.py @@ -25,6 +25,35 @@ import getpass import logging import logging.config +def init_console_loggers(): + """\ + Initialize loggers that log to stderr. + + @return: a 3-tuple of (logger_broker, logger_access, logger_error) + @rtype: C{tuple] + """ + logger_root = logging.getLogger() + stderr_handler = logging.StreamHandler(sys.stderr) + stderr_handler.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='')) + + # all loggers stream to stderr... + logger_root.addHandler(stderr_handler) + + logger_broker = logging.getLogger('broker') + logger_broker.addHandler(stderr_handler) + logger_broker.propagate = 0 + + logger_access = logging.getLogger('access') + logger_access.addHandler(stderr_handler) + logger_access.propagate = 0 + + logger_error = logging.getLogger('error') + logger_error.addHandler(stderr_handler) + logger_error.propagate = 0 + + return (logger_broker, logger_access, logger_error) + + # normally this would go into defaults.py, however, we do not want to create a dependency loop between loggers.py and defaults.py... if os.environ.has_key('X2GOBROKER_DAEMON_USER'): X2GOBROKER_DAEMON_USER=os.environ['X2GOBROKER_DAEMON_USER'] @@ -47,24 +76,7 @@ if getpass.getuser() in (X2GOBROKER_DAEMON_USER, 'root') and os.path.exists(X2GO logger_error = logging.getLogger('error') else: - logger_root = logging.getLogger() - stderr_handler = logging.StreamHandler(sys.stderr) - stderr_handler.setFormatter(logging.Formatter(fmt='%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='')) - - # all loggers stream to stderr... - logger_root.addHandler(stderr_handler) - - logger_broker = logging.getLogger('broker') - logger_broker.addHandler(stderr_handler) - logger_broker.propagate = 0 - - logger_access = logging.getLogger('access') - logger_access.addHandler(stderr_handler) - logger_access.propagate = 0 - - logger_error = logging.getLogger('error') - logger_error.addHandler(stderr_handler) - logger_error.propagate = 0 + logger_broker, logger_access, logger_error = init_console_loggers() def tornado_log_request(handler): """\ hooks/post-receive -- x2gobroker.git (HTTP(S) Session broker for X2Go) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).