Declare serialize / accept json fields, start working on states
[arvados.git] / services / api / app / models / container_request.rb
1 class ContainerRequest < ArvadosModel
2   include HasUuid
3   include KindAndEtag
4   include CommonApiTemplate
5
6   serialize :properties, Hash
7   serialize :environment, Hash
8   serialize :mounts, Hash
9   serialize :runtime_constraints, Hash
10   serialize :command, Array
11
12   before_create :set_state_before_save
13
14   api_accessible :user, extend: :common do |t|
15     t.add :command
16     t.add :container_count_max
17     t.add :container_image
18     t.add :container_uuid
19     t.add :cwd
20     t.add :description
21     t.add :environment
22     t.add :expires_at
23     t.add :filters
24     t.add :mounts
25     t.add :name
26     t.add :output_path
27     t.add :priority
28     t.add :properties
29     t.add :requesting_container_uuid
30     t.add :runtime_constraints
31     t.add :state
32   end
33
34   # Supported states for a container request
35   States =
36     [
37      (Uncommitted = 'Uncommitted'),
38      (Committed = 'Committed'),
39      (Final = 'Final'),
40     ]
41
42   def set_state_before_save
43     self.state ||= Uncommitted
44   end
45
46
47
48 end