[X2Go-Commits] x2gobroker.git - master (branch) updated: 0.0.2.3-79-g30cd766

X2Go dev team git-admin at x2go.org
Wed Dec 11 11:52:52 CET 2013


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 at 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).




More information about the x2go-commits mailing list