Merge pull request #8414 from jmchilton/record_job_tool_version

Record Galaxy version job was created with.
This commit is contained in:
Marius van den Beek
2019-08-14 08:11:38 -04:00
committed by GitHub
8 changed files with 42 additions and 3 deletions
+3 -2
View File
@@ -654,8 +654,8 @@ class TaskMetricNumeric(BaseJobMetric, RepresentById):
class Job(JobLike, UsesCreateAndUpdateTime, Dictifiable, RepresentById):
dict_collection_visible_keys = ['id', 'state', 'exit_code', 'update_time', 'create_time']
dict_element_visible_keys = ['id', 'state', 'exit_code', 'update_time', 'create_time']
dict_collection_visible_keys = ['id', 'state', 'exit_code', 'update_time', 'create_time', 'galaxy_version']
dict_element_visible_keys = ['id', 'state', 'exit_code', 'update_time', 'create_time', 'galaxy_version']
"""
A job represents a request to run a tool given input datasets, tool
@@ -1018,6 +1018,7 @@ class Job(JobLike, UsesCreateAndUpdateTime, Dictifiable, RepresentById):
serialization_options.attach_identifier(id_encoder, self, job_attrs)
job_attrs['tool_id'] = self.tool_id
job_attrs['tool_version'] = self.tool_version
job_attrs['galaxy_version'] = self.galaxy_version
job_attrs['state'] = self.state
job_attrs['info'] = self.info
job_attrs['traceback'] = self.traceback
+1
View File
@@ -593,6 +593,7 @@ model.Job.table = Table(
Column("library_folder_id", Integer, ForeignKey("library_folder.id"), index=True),
Column("tool_id", String(255)),
Column("tool_version", TEXT, default="1.0.0"),
Column("galaxy_version", String(64), default=None),
Column("dynamic_tool_id", Integer, ForeignKey("dynamic_tool.id"), index=True, nullable=True),
Column("state", String(64), index=True),
Column("info", TrimmedString(255)),
@@ -0,0 +1,29 @@
"""
Add 'galaxy_version' attribute to Job table.
"""
import datetime
import logging
from sqlalchemy import Column, MetaData, String
from galaxy.model.migrate.versions.util import add_column, drop_column
now = datetime.datetime.utcnow
log = logging.getLogger(__name__)
metadata = MetaData()
def upgrade(migrate_engine):
metadata.bind = migrate_engine
print(__doc__)
metadata.reflect()
created_from_basename_column = Column("galaxy_version", String(64), default=None)
add_column(created_from_basename_column, 'job', metadata)
def downgrade(migrate_engine):
metadata.bind = migrate_engine
metadata.reflect()
drop_column('galaxy_version', 'job', metadata)
+3 -1
View File
@@ -668,6 +668,7 @@ class DefaultToolAction(object):
def _new_job_for_session(self, trans, tool, history):
job = trans.app.model.Job()
job.galaxy_version = trans.app.config.version_major
galaxy_session = None
if hasattr(trans, "get_galaxy_session"):
@@ -677,7 +678,8 @@ class DefaultToolAction(object):
job.session_id = model.cached_id(galaxy_session)
if trans.user is not None:
job.user_id = model.cached_id(trans.user)
job.history_id = model.cached_id(history)
if history:
job.history_id = model.cached_id(history)
job.tool_id = tool.id
try:
# For backward compatibility, some tools may not have versions yet.
@@ -18,6 +18,7 @@ class ImportHistoryToolAction(ToolAction):
#
trans.check_user_activation()
job = trans.app.model.Job()
job.galaxy_version = trans.app.config.version_major
session = trans.get_galaxy_session()
job.session_id = session and session.id
if history:
@@ -87,6 +88,7 @@ class ExportHistoryToolAction(ToolAction):
# Create the job and output dataset objects
#
job = trans.app.model.Job()
job.galaxy_version = trans.app.config.version_major
session = trans.get_galaxy_session()
job.session_id = session and session.id
if history:
+1
View File
@@ -52,6 +52,7 @@ class SetMetadataToolAction(ToolAction):
# Create the job object
job = app.model.Job()
job.galaxy_version = app.config.version_major
job.session_id = session_id
job.history_id = history_id
job.tool_id = tool.id
@@ -385,6 +385,7 @@ def create_job(trans, params, tool, json_file_path, outputs, folder=None, histor
Create the upload job.
"""
job = trans.app.model.Job()
job.galaxy_version = trans.app.config.version_major
galaxy_session = trans.get_galaxy_session()
if type(galaxy_session) == trans.model.GalaxySession:
job.session_id = galaxy_session.id
+2
View File
@@ -149,6 +149,8 @@ class MockAppConfig(Bunch):
self.enable_beta_gdpr = False
self.legacy_eager_objectstore_initialization = True
self.version_major = "19.09"
# set by MockDir
self.root = root