Loading lib/galaxy/model/store/discover.py +4 −2 Original line number Diff line number Diff line Loading @@ -134,7 +134,8 @@ class ModelPersistenceContext(metaclass=abc.ABCMeta): primary_data.created_from_basename = created_from_basename if tag_list: self.tag_handler.add_tags_from_list(self.job.user, primary_data, tag_list, flush=False) job = getattr(self, "job", None) self.tag_handler.add_tags_from_list(job and job.user, primary_data, tag_list, flush=False) # If match specified a name use otherwise generate one from # designation. Loading Loading @@ -415,7 +416,6 @@ class SessionlessModelPersistenceContext(ModelPersistenceContext): self.object_store = object_store self.export_store = export_store self.flush_per_n_datasets = None self.job_working_directory = working_directory # TODO: rename... @property Loading Loading @@ -626,6 +626,7 @@ def persist_hdas(elements, model_persistence_context, final_job_state='ok'): ext = fields_match.ext dbkey = fields_match.dbkey info = element.get("info", None) tag_list = element.get("tags") link_data = discovered_file.match.link_data # Create new primary dataset Loading Loading @@ -654,6 +655,7 @@ def persist_hdas(elements, model_persistence_context, final_job_state='ok'): filename=discovered_file.path, extra_files=extra_files, info=info, tag_list=tag_list, link_data=link_data, primary_data=primary_dataset, sources=sources, Loading lib/galaxy/model/tags.py +4 −2 Original line number Diff line number Diff line Loading @@ -248,8 +248,10 @@ class TagHandler: def _create_tag_instance(self, tag_name): # For good performance caller should first check if there's already an appropriate tag Session = sessionmaker(self.sa_session.bind) tag = galaxy.model.Tag(type=0, name=tag_name) if not self.sa_session: return tag Session = sessionmaker(self.sa_session.bind) with Session() as separate_session: separate_session.add(tag) try: Loading Loading @@ -424,7 +426,7 @@ class GalaxySessionlessTagHandler(GalaxyTagHandlerSession): return self.created_tags.get(tag_name) def get_tag_by_name(self, tag_name): self.created_tags.get(tag_name) return self.created_tags.get(tag_name) class CommunityTagHandler(TagHandler): Loading test/unit/test_model_discovery.py +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ def test_model_create_context_persist_hdas(): "dbkey": "hg19", "name": "my file", "md5": "e5d21b1ea57fc9a31f8ea0110531bf3d", "tags": ["name:value"] }], } app = _mock_app(store_by="uuid") Loading @@ -37,6 +38,9 @@ def test_model_create_context_persist_hdas(): assert imported_hda.metadata.data_lines == 2 assert len(imported_hda.dataset.hashes) == 1 assert imported_hda.dataset.hashes[0].hash_value == "e5d21b1ea57fc9a31f8ea0110531bf3d" tags = imported_hda.tags assert len(tags) == 1 assert tags[0].value == "value" with open(imported_hda.file_name) as f: assert f.read().startswith("hello world\n") Loading Loading @@ -228,7 +232,7 @@ def _import_directory_to_history(app, target, work_directory): assert len(import_history.datasets) == 0 import_options = store.ImportOptions(allow_dataset_object_edit=True) import_model_store = store.get_import_model_store_for_directory(target, app=app, user=u, import_options=import_options) import_model_store = store.get_import_model_store_for_directory(target, app=app, user=u, import_options=import_options, tag_handler=app.tag_handler.create_tag_handler_session()) with import_model_store.target_history(default_history=import_history): import_model_store.perform_import(import_history) Loading Loading
lib/galaxy/model/store/discover.py +4 −2 Original line number Diff line number Diff line Loading @@ -134,7 +134,8 @@ class ModelPersistenceContext(metaclass=abc.ABCMeta): primary_data.created_from_basename = created_from_basename if tag_list: self.tag_handler.add_tags_from_list(self.job.user, primary_data, tag_list, flush=False) job = getattr(self, "job", None) self.tag_handler.add_tags_from_list(job and job.user, primary_data, tag_list, flush=False) # If match specified a name use otherwise generate one from # designation. Loading Loading @@ -415,7 +416,6 @@ class SessionlessModelPersistenceContext(ModelPersistenceContext): self.object_store = object_store self.export_store = export_store self.flush_per_n_datasets = None self.job_working_directory = working_directory # TODO: rename... @property Loading Loading @@ -626,6 +626,7 @@ def persist_hdas(elements, model_persistence_context, final_job_state='ok'): ext = fields_match.ext dbkey = fields_match.dbkey info = element.get("info", None) tag_list = element.get("tags") link_data = discovered_file.match.link_data # Create new primary dataset Loading Loading @@ -654,6 +655,7 @@ def persist_hdas(elements, model_persistence_context, final_job_state='ok'): filename=discovered_file.path, extra_files=extra_files, info=info, tag_list=tag_list, link_data=link_data, primary_data=primary_dataset, sources=sources, Loading
lib/galaxy/model/tags.py +4 −2 Original line number Diff line number Diff line Loading @@ -248,8 +248,10 @@ class TagHandler: def _create_tag_instance(self, tag_name): # For good performance caller should first check if there's already an appropriate tag Session = sessionmaker(self.sa_session.bind) tag = galaxy.model.Tag(type=0, name=tag_name) if not self.sa_session: return tag Session = sessionmaker(self.sa_session.bind) with Session() as separate_session: separate_session.add(tag) try: Loading Loading @@ -424,7 +426,7 @@ class GalaxySessionlessTagHandler(GalaxyTagHandlerSession): return self.created_tags.get(tag_name) def get_tag_by_name(self, tag_name): self.created_tags.get(tag_name) return self.created_tags.get(tag_name) class CommunityTagHandler(TagHandler): Loading
test/unit/test_model_discovery.py +5 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ def test_model_create_context_persist_hdas(): "dbkey": "hg19", "name": "my file", "md5": "e5d21b1ea57fc9a31f8ea0110531bf3d", "tags": ["name:value"] }], } app = _mock_app(store_by="uuid") Loading @@ -37,6 +38,9 @@ def test_model_create_context_persist_hdas(): assert imported_hda.metadata.data_lines == 2 assert len(imported_hda.dataset.hashes) == 1 assert imported_hda.dataset.hashes[0].hash_value == "e5d21b1ea57fc9a31f8ea0110531bf3d" tags = imported_hda.tags assert len(tags) == 1 assert tags[0].value == "value" with open(imported_hda.file_name) as f: assert f.read().startswith("hello world\n") Loading Loading @@ -228,7 +232,7 @@ def _import_directory_to_history(app, target, work_directory): assert len(import_history.datasets) == 0 import_options = store.ImportOptions(allow_dataset_object_edit=True) import_model_store = store.get_import_model_store_for_directory(target, app=app, user=u, import_options=import_options) import_model_store = store.get_import_model_store_for_directory(target, app=app, user=u, import_options=import_options, tag_handler=app.tag_handler.create_tag_handler_session()) with import_model_store.target_history(default_history=import_history): import_model_store.perform_import(import_history) Loading