mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Merge pull request #5331 from mvdbeek/data_manager_reload_fix
[17.09] Prevent reloading when data table is being modified
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user