Opened 17 years ago
Closed 17 years ago
#972 closed enhancement (fixed)
Assign job to experiment when the job is created
Reported by: | Johan Vallon-Christersson | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | major | Milestone: | BASE 2.7 |
Component: | core | Version: | |
Keywords: | Cc: |
Description
This ticket concerns jobs running in experiments.
Typically, a user will check on current jobs in the View -> Jobs table. One of the available property columns for jobs is Experiment. The experiment property is a useful way of locating the experiment a job was run in (for jobs running in experiments).
However, when a job is created the property Experiment is set to -none-. When a job is completed the property is set to the correct experiment and provided as a hyperlink.
If a job fails with an error the experiment property remains set to -none-. Unless the experiment is specified in the job parameters this means that a user may have difficulties to locate the experiment in which the job was run.
It would be good if job property Experiment could be set when the job is started.
Change History (6)
follow-up: 2 comment:1 by , 17 years ago
Component: | web → core |
---|---|
Type: | defect → enhancement |
comment:2 by , 17 years ago
Replying to nicklas:
Hmmm... the problem is that a job doesn't become part of an experiment until it has created a transformation.
For plugins that can run in experiments, would it be a plausible solution to have plugin definitions/configurations per default set current experiment as a parameter (possibly as a hidden string/value) and then have this information stored as a job property? This information could them be stored as the job is started.
comment:3 by , 17 years ago
Plug-ins may do that, but none of them do it today except intensity calculator plug-ins. But it will not help in locating the jobs since it is not possible to filter/search on the job parameters. A possible option is that we open up the Job.setExperiment() method and then expect plug-ins to call this method in the end of job configuration phase.
Hmm... to avoid transactional problems it may be safer to have that information go through the Response object: Response.setDone(...., Experiment);
. In any case, part of the information from the setDone() method is already written into the jobs table.
comment:4 by , 17 years ago
Milestone: | → BASE 2.7 |
---|
comment:5 by , 17 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
Summary: | Job property Experiment - set when job is started → Assign job to experiment when the job is created |
comment:6 by , 17 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [4254]) Fixes #972: Assign job to experiment when the job is created
The final fix was to add a parameter for the experiment in the Job.getNew() method. The web client code for creating new jobs checks the context and if it is EXPERIMENT, BIOASSAYSET or BIOASSAY it sets the current experiment as the job's experiment.
Hmmm... the problem is that a job doesn't become part of an experiment until it has created a transformation. It is actually the transformation that plays the key part in this and creates the job->experiment link when the result is committed to the database. That is why new jobs and jobs that fails doesn't have the link.