diff --git a/lib/galaxy/tools/data_manager/manager.py b/lib/galaxy/tools/data_manager/manager.py index 05d3a9b3e1b..0d6e8ea157d 100644 --- a/lib/galaxy/tools/data_manager/manager.py +++ b/lib/galaxy/tools/data_manager/manager.py @@ -317,10 +317,10 @@ class DataManager(object): self.process_move(data_table_name, name, output_ref_values[name].extra_files_path, **data_table_value) data_table_value[name] = self.process_value_translation(data_table_name, name, **data_table_value) data_table.add_entry(data_table_value, persist=True, entry_source=self) - send_control_task(self.data_managers.app, - 'reload_tool_data_tables', - noop_self=True, - kwargs={'table_name': data_table_name}) + send_control_task(self.data_managers.app, + 'reload_tool_data_tables', + noop_self=True, + kwargs={'table_name': data_table_name}) if self.undeclared_tables and data_tables_dict: # We handle the data move, by just moving all the data out of the extra files path # moving a directory and the target already exists, we move the contents instead @@ -338,9 +338,9 @@ class DataManager(object): if name in path_column_names: data_table_value[name] = os.path.abspath(os.path.join(self.data_managers.app.config.galaxy_data_manager_data_path, value)) data_table.add_entry(data_table_value, persist=True, entry_source=self) - send_control_task(self.data_managers.app, 'reload_tool_data_tables', - noop_self=True, - kwargs={'table_name': data_table_name}) + send_control_task(self.data_managers.app, 'reload_tool_data_tables', + noop_self=True, + kwargs={'table_name': data_table_name}) else: for data_table_name, data_table_values in data_tables_dict.items(): # tool returned extra data table entries, but data table was not declared in data manager diff --git a/lib/galaxy/tools/error_reports/plugins/sentry.py b/lib/galaxy/tools/error_reports/plugins/sentry.py index b5030cc361a..7913746e27c 100644 --- a/lib/galaxy/tools/error_reports/plugins/sentry.py +++ b/lib/galaxy/tools/error_reports/plugins/sentry.py @@ -73,6 +73,17 @@ class SentryPlugin(ErrorPlugin): error_message = ERROR_TEMPLATE.format(**extra) # Update context with user information in a sentry-specific manner + + # Getting the url allows us to link to the dataset info page in case + # anything is missing from this report. + try: + url = web.url_for(controller="dataset", + action="show_params", + dataset_id=self.app.security.encode_id(dataset.id), + qualified=True) + except AttributeError: + # The above does not work when handlers are separate from the web handlers + url = None self.sentry_client.context.merge({ # User information here also places email links + allows seeing # a list of affected users in the tags/filtering. @@ -80,14 +91,8 @@ class SentryPlugin(ErrorPlugin): 'name': user.username, 'email': user.email, }, - # This allows us to link to the dataset info page in case - # anything is missing from this report. 'request': { - 'url': web.url_for( - controller="dataset", action="show_params", - dataset_id=self.app.security.encode_id(dataset.id), - qualified=True - ) + 'url': url } }) diff --git a/lib/galaxy/tools/toolbox/watcher.py b/lib/galaxy/tools/toolbox/watcher.py index ffe1144b53e..23f8d2423ee 100644 --- a/lib/galaxy/tools/toolbox/watcher.py +++ b/lib/galaxy/tools/toolbox/watcher.py @@ -252,6 +252,10 @@ class LocFileEventHandler(FileSystemEventHandler): if self.loc_watcher.path_hash.get(path) == cur_hash: return else: + time.sleep(0.5) + if cur_hash != md5_hash_file(path): + # We're still modifying the file, it'll be picked up later + return self.loc_watcher.path_hash[path] = cur_hash self.loc_watcher.tool_data_tables.reload_tables(path=path) diff --git a/templates/webapps/galaxy/history/display_structured.mako b/templates/webapps/galaxy/history/display_structured.mako index c9b4193693b..6ce3c00b539 100644 --- a/templates/webapps/galaxy/history/display_structured.mako +++ b/templates/webapps/galaxy/history/display_structured.mako @@ -231,7 +231,7 @@ elif entity_name == "WorkflowInvocation": <% id = trans.security.encode_id( hda.id ) %> <% folder = hda.copied_from_library_dataset_dataset_association.library_dataset.folder - folder_id = 'F' + trans.security.encode_id( folder.id ) + folder_id = trans.security.encode_id( folder.id ) %>