2 new commits in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/525b1fc16a58/ Changeset: 525b1fc16a58 Branch: release_15.03 User: jmchilton Date: 2015-02-22 05:32:46+00:00 Summary: Fix for watching tools on some more interesting file systems. Affected #: 3 files diff -r 33fd43f7590f17ed611ce07178cae8c2b70525d0 -r 525b1fc16a587e91d60cdc4f9152f8e881b7e7de config/galaxy.ini.sample --- a/config/galaxy.ini.sample +++ b/config/galaxy.ini.sample @@ -176,11 +176,15 @@ # install from in the admin interface (.sample used if default does not exist). #tool_sheds_config_file = config/tool_sheds_conf.xml -# Enable monitoring of tools and tool directories listed in any tool config file -# specified in tool_config_file option. If changes are found, tools are -# automatically reloaded. -# Watchdog ( https://pypi.python.org/pypi/watchdog ) must be installed and -# available to Galaxy to use this option. +# Set to True to Enable monitoring of tools and tool directories +# listed in any tool config file specified in tool_config_file option. +# If changes are found, tools are automatically reloaded. Watchdog ( +# https://pypi.python.org/pypi/watchdog ) must be installed and +# available to Galaxy to use this option. Other options include 'auto' +# which will attempt to watch tools if the watchdog library is available +# but won't fail to load Galaxy if it is not and 'polling' which will use +# a less efficient monitoring scheme that may work in wider range of scenarios +# then the watchdog default montiory. #watch_tools = False # Enable automatic polling of relative tool sheds to see if any updates diff -r 33fd43f7590f17ed611ce07178cae8c2b70525d0 -r 525b1fc16a587e91d60cdc4f9152f8e881b7e7de lib/galaxy/config.py --- a/lib/galaxy/config.py +++ b/lib/galaxy/config.py @@ -272,7 +272,7 @@ self.ftp_upload_site = kwargs.get( 'ftp_upload_site', None ) self.allow_library_path_paste = kwargs.get( 'allow_library_path_paste', False ) self.disable_library_comptypes = kwargs.get( 'disable_library_comptypes', '' ).lower().split( ',' ) - self.watch_tools = string_as_bool( kwargs.get( 'watch_tools', False ) ) + self.watch_tools = kwargs.get( 'watch_tools', 'false' ) # On can mildly speed up Galaxy startup time by disabling index of help, # not needed on production systems but useful if running many functional tests. self.index_tool_help = string_as_bool( kwargs.get( "index_tool_help", True ) ) diff -r 33fd43f7590f17ed611ce07178cae8c2b70525d0 -r 525b1fc16a587e91d60cdc4f9152f8e881b7e7de lib/galaxy/tools/toolbox/watcher.py --- a/lib/galaxy/tools/toolbox/watcher.py +++ b/lib/galaxy/tools/toolbox/watcher.py @@ -2,9 +2,11 @@ try: from watchdog.events import FileSystemEventHandler from watchdog.observers import Observer + from watchdog.observers.polling import PollingObserver can_watch = True except ImportError: FileSystemEventHandler = object + PollingObserver = object can_watch = False import logging @@ -12,23 +14,34 @@ def get_watcher(toolbox, config): - watch_tools = getattr(config, "watch_tools", False) - if watch_tools: + watch_tools_val = str( getattr(config, "watch_tools", False) ).lower() + if watch_tools_val in ( 'true', 'yes', 'on' ): return ToolWatcher(toolbox) + elif watch_tools_val == "auto": + try: + return ToolWatcher(toolbox) + except Exception: + log.info("Failed to load ToolWatcher (watchdog is likely unavailable) - proceeding without tool monitoring.") + return NullWatcher() + elif watch_tools_val == "polling": + log.info("Using less ineffecient polling toolbox watcher.") + return ToolWatcher(toolbox, observer_class=PollingObserver) else: return NullWatcher() class ToolWatcher(object): - def __init__(self, toolbox): + def __init__(self, toolbox, observer_class=None): if not can_watch: raise Exception("Watchdog library unavailble, cannot watch tools.") + if observer_class is None: + observer_class = Observer self.toolbox = toolbox self.tool_file_ids = {} self.tool_dir_callbacks = {} self.monitored_dirs = {} - self.observer = Observer() + self.observer = observer_class() self.event_handler = ToolFileEventHandler(self) self.start() https://bitbucket.org/galaxy/galaxy-central/commits/d1c3d84a7e06/ Changeset: d1c3d84a7e06 Branch: release_15.03 User: jmchilton Date: 2015-02-24 04:09:19+00:00 Summary: Comment out broken liftOver tests. liftOver loc file handling is problematic (https://trello.com/c/A6I6zQvF). If it weren't this wouldn't be a problem. I could fix the API functional test framework to mimic the older form driven approach but it would take a week and would be rendered moot by fixing liftOver. Unfortunately, fixing liftOver would likely break a lot of existing workflows and tool reruns so I am not fixing that either. Only option left, admittedly a crappy one, is to comment out the tests. Affected #: 1 file diff -r 525b1fc16a587e91d60cdc4f9152f8e881b7e7de -r d1c3d84a7e06553cf948fcbd8c00b45bebcfb059 tools/extract/liftOver_wrapper.xml --- a/tools/extract/liftOver_wrapper.xml +++ b/tools/extract/liftOver_wrapper.xml @@ -62,6 +62,7 @@ <requirement type="package">ucsc_tools</requirement></requirements><tests> + <!-- <test><param name="input" value="5.bed" dbkey="hg18" ftype="bed" /><param name="to_dbkey" value="panTro2" /> @@ -100,6 +101,7 @@ <output name="out_file1" file="cuffcompare_in1_mult_liftover_mapped.bed"/><output name="out_file2" file="cuffcompare_in1_mult_liftover_unmapped.bed"/></test> + --></tests><help> .. class:: warningmark Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.