3220: Merge branch '3220-http-status-codes' closes #3220
[arvados.git] / services / api / app / models / job_task.rb
1 class JobTask < ArvadosModel
2   include HasUuid
3   include KindAndEtag
4   include CommonApiTemplate
5   serialize :parameters, Hash
6   before_create :set_default_qsequence
7   after_update :delete_created_job_tasks_if_failed
8
9   api_accessible :user, extend: :common do |t|
10     t.add :job_uuid
11     t.add :created_by_job_task_uuid
12     t.add :sequence
13     t.add :qsequence
14     t.add :parameters
15     t.add :output
16     t.add :progress
17     t.add :success
18   end
19
20   protected
21
22   def delete_created_job_tasks_if_failed
23     if self.success == false and self.success != self.success_was
24       JobTask.delete_all ['created_by_job_task_uuid = ?', self.uuid]
25     end
26   end
27
28   def set_default_qsequence
29     self.qsequence ||= self.class.connection.
30       select_value("SELECT nextval('job_tasks_qsequence_seq')")
31   end
32 end