From 93494a833ee390811bdc1d13c1ef54b52ed005f2 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Fri, 19 Feb 2016 10:44:39 -0500 Subject: [PATCH 1/3] This silences logging when display whitelist isn't explicitly defined and the default file doesn't exist. Explicit usage still logs a failure. --- lib/galaxy/config.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index f7627d5580a..296c45187a0 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -259,7 +259,7 @@ class Configuration( object ): self.log_events = string_as_bool( kwargs.get( 'log_events', 'False' ) ) self.sanitize_all_html = string_as_bool( kwargs.get( 'sanitize_all_html', True ) ) self.sanitize_whitelist_file = resolve_path( kwargs.get( 'sanitize_whitelist_file', "config/sanitize_whitelist.txt" ), self.root ) - self.reload_sanitize_whitelist() + self.reload_sanitize_whitelist(explicit='sanitize_whitelist_file' in kwargs) self.serve_xss_vulnerable_mimetypes = string_as_bool( kwargs.get( 'serve_xss_vulnerable_mimetypes', False ) ) self.trust_ipython_notebook_conversion = string_as_bool( kwargs.get( 'trust_ipython_notebook_conversion', False ) ) self.enable_old_display_applications = string_as_bool( kwargs.get( "enable_old_display_applications", "True" ) ) @@ -473,7 +473,7 @@ class Configuration( object ): else: return None - def reload_sanitize_whitelist( self ): + def reload_sanitize_whitelist( self, explicit=True ): self.sanitize_whitelist = [] try: with open(self.sanitize_whitelist_file, 'rt') as f: @@ -481,7 +481,8 @@ class Configuration( object ): if not line.startswith("#"): self.sanitize_whitelist.append(line.strip()) except IOError: - log.warning("Sanitize log file %s does not exist, continuing with no tools whitelisted.", self.sanitize_whitelist_file) + if explicit: + log.warning("Sanitize log file explicitly specified as '%s' but does not exist, continuing with no tools whitelisted.", self.sanitize_whitelist_file) def __parse_config_file_options( self, kwargs ): """ From 16280c63236621082ce4c3b3d93eb679294cd515 Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Mon, 29 Feb 2016 11:20:15 -0500 Subject: [PATCH 2/3] Only attempt to read/load sanitize_whitelist_file when starting an actual galaxy application. --- lib/galaxy/app.py | 1 + lib/galaxy/config.py | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index 607118a83bc..a13c992724d 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -40,6 +40,7 @@ class UniverseApplication( object, config.ConfiguresGalaxyMixin ): config.configure_logging( self.config ) self.configure_fluent_log() + self.config.reload_sanitize_whitelist(explicit='sanitize_whitelist_file' in kwargs) self.amqp_internal_connection_obj = galaxy.queues.connection_from_config(self.config) # control_worker *can* be initialized with a queue, but here we don't # want to and we'll allow postfork to bind and start it. diff --git a/lib/galaxy/config.py b/lib/galaxy/config.py index 296c45187a0..264a22e216b 100644 --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -259,7 +259,6 @@ class Configuration( object ): self.log_events = string_as_bool( kwargs.get( 'log_events', 'False' ) ) self.sanitize_all_html = string_as_bool( kwargs.get( 'sanitize_all_html', True ) ) self.sanitize_whitelist_file = resolve_path( kwargs.get( 'sanitize_whitelist_file', "config/sanitize_whitelist.txt" ), self.root ) - self.reload_sanitize_whitelist(explicit='sanitize_whitelist_file' in kwargs) self.serve_xss_vulnerable_mimetypes = string_as_bool( kwargs.get( 'serve_xss_vulnerable_mimetypes', False ) ) self.trust_ipython_notebook_conversion = string_as_bool( kwargs.get( 'trust_ipython_notebook_conversion', False ) ) self.enable_old_display_applications = string_as_bool( kwargs.get( "enable_old_display_applications", "True" ) ) From 7534182d7afd8c997df7d919d0633345ee5c4dfa Mon Sep 17 00:00:00 2001 From: Dannon Baker Date: Tue, 1 Mar 2016 08:59:14 -0500 Subject: [PATCH 3/3] Add a default logger prior to full logging configuration. We currently attempt to log at various places in config parsing/etc that fail with 'No handlers could be found for logger ...', and this resolves that. --- lib/galaxy/app.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/galaxy/app.py b/lib/galaxy/app.py index a13c992724d..60e515ea221 100644 --- a/lib/galaxy/app.py +++ b/lib/galaxy/app.py @@ -31,6 +31,11 @@ app = None class UniverseApplication( object, config.ConfiguresGalaxyMixin ): """Encapsulates the state of a Universe application""" def __init__( self, **kwargs ): + if not log.handlers: + # Paste didn't handle it, so we need a temporary basic log + # configured. The handler added here gets dumped and replaced with + # an appropriately configured logger in configure_logging below. + logging.basicConfig(level=logging.DEBUG) log.debug( "python path is: %s", ", ".join( sys.path ) ) self.name = 'galaxy' self.new_installation = False @@ -39,7 +44,6 @@ class UniverseApplication( object, config.ConfiguresGalaxyMixin ): self.config.check() config.configure_logging( self.config ) self.configure_fluent_log() - self.config.reload_sanitize_whitelist(explicit='sanitize_whitelist_file' in kwargs) self.amqp_internal_connection_obj = galaxy.queues.connection_from_config(self.config) # control_worker *can* be initialized with a queue, but here we don't