mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-21 13:50:20 +08:00
Use TagHandlerSession in ModelPersistenceContext
Eliminates an unnecessary flush
This commit is contained in:
@@ -207,6 +207,13 @@ class JobContext(ModelPersistenceContext, BaseJobContext):
|
||||
self.object_store = object_store
|
||||
self.final_job_state = final_job_state
|
||||
self.flush_per_n_datasets = flush_per_n_datasets
|
||||
self._tag_handler = None
|
||||
|
||||
@property
|
||||
def tag_handler(self):
|
||||
if self._tag_handler is None:
|
||||
self._tag_handler = self.app.tag_handler.create_tag_handler_session()
|
||||
return self._tag_handler
|
||||
|
||||
@property
|
||||
def work_context(self):
|
||||
@@ -221,10 +228,6 @@ class JobContext(ModelPersistenceContext, BaseJobContext):
|
||||
user = None
|
||||
return user
|
||||
|
||||
@property
|
||||
def tag_handler(self):
|
||||
return self.app.tag_handler
|
||||
|
||||
def persist_object(self, obj):
|
||||
self.sa_session.add(obj)
|
||||
|
||||
|
||||
@@ -129,13 +129,7 @@ class ModelPersistenceContext(metaclass=abc.ABCMeta):
|
||||
if created_from_basename is not None:
|
||||
primary_data.created_from_basename = created_from_basename
|
||||
|
||||
has_flushed = False
|
||||
if tag_list:
|
||||
# If we have a tag we need a primary id, so need to flush here
|
||||
# TODO: eliminate creating tag associations within create dataset
|
||||
# We can do this incrementally by not passing in a tag list.
|
||||
self.flush()
|
||||
has_flushed = True
|
||||
self.tag_handler.add_tags_from_list(self.job.user, primary_data, tag_list)
|
||||
|
||||
# Move data from temp location to dataset location
|
||||
|
||||
@@ -55,6 +55,7 @@ def test_job_context_discover_outputs_flushes_once(mocker):
|
||||
job = model.Job()
|
||||
job.history = h
|
||||
sa_session.add(job)
|
||||
sa_session.flush()
|
||||
job_working_directory = tempfile.mkdtemp()
|
||||
setup_data(job_working_directory)
|
||||
permission_provider = PermissionProvider()
|
||||
|
||||
Reference in New Issue
Block a user