mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +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.object_store = object_store
|
||||||
self.final_job_state = final_job_state
|
self.final_job_state = final_job_state
|
||||||
self.flush_per_n_datasets = flush_per_n_datasets
|
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
|
@property
|
||||||
def work_context(self):
|
def work_context(self):
|
||||||
@@ -221,10 +228,6 @@ class JobContext(ModelPersistenceContext, BaseJobContext):
|
|||||||
user = None
|
user = None
|
||||||
return user
|
return user
|
||||||
|
|
||||||
@property
|
|
||||||
def tag_handler(self):
|
|
||||||
return self.app.tag_handler
|
|
||||||
|
|
||||||
def persist_object(self, obj):
|
def persist_object(self, obj):
|
||||||
self.sa_session.add(obj)
|
self.sa_session.add(obj)
|
||||||
|
|
||||||
|
|||||||
@@ -129,13 +129,7 @@ class ModelPersistenceContext(metaclass=abc.ABCMeta):
|
|||||||
if created_from_basename is not None:
|
if created_from_basename is not None:
|
||||||
primary_data.created_from_basename = created_from_basename
|
primary_data.created_from_basename = created_from_basename
|
||||||
|
|
||||||
has_flushed = False
|
|
||||||
if tag_list:
|
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)
|
self.tag_handler.add_tags_from_list(self.job.user, primary_data, tag_list)
|
||||||
|
|
||||||
# Move data from temp location to dataset location
|
# 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 = model.Job()
|
||||||
job.history = h
|
job.history = h
|
||||||
sa_session.add(job)
|
sa_session.add(job)
|
||||||
|
sa_session.flush()
|
||||||
job_working_directory = tempfile.mkdtemp()
|
job_working_directory = tempfile.mkdtemp()
|
||||||
setup_data(job_working_directory)
|
setup_data(job_working_directory)
|
||||||
permission_provider = PermissionProvider()
|
permission_provider = PermissionProvider()
|
||||||
|
|||||||
Reference in New Issue
Block a user