Opened 16 years ago

Closed 16 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)

comment:1 by Nicklas Nordborg, 16 years ago

Component: webcore
Type: defectenhancement

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.

in reply to:  1 comment:2 by Johan Vallon-Christersson, 16 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 Nicklas Nordborg, 16 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 Nicklas Nordborg, 16 years ago

Milestone: BASE 2.7

comment:5 by Nicklas Nordborg, 16 years ago

Owner: changed from everyone to Nicklas Nordborg
Status: newassigned
Summary: Job property Experiment - set when job is startedAssign job to experiment when the job is created

comment:6 by Nicklas Nordborg, 16 years ago

Resolution: fixed
Status: assignedclosed

(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.

Note: See TracTickets for help on using tickets.