Declare serialize / accept json fields, start working on states
[arvados.git] / services / api / app / models / container_request.rb
index 352e41473119bdff1319d4238a0761363ef59500..9356a70f1c1579c1cce302026d5edd4d94a5387a 100644 (file)
@@ -3,6 +3,14 @@ class ContainerRequest < ArvadosModel
   include KindAndEtag
   include CommonApiTemplate
 
+  serialize :properties, Hash
+  serialize :environment, Hash
+  serialize :mounts, Hash
+  serialize :runtime_constraints, Hash
+  serialize :command, Array
+
+  before_create :set_state_before_save
+
   api_accessible :user, extend: :common do |t|
     t.add :command
     t.add :container_count_max
@@ -23,10 +31,18 @@ class ContainerRequest < ArvadosModel
     t.add :state
   end
 
-  serialize :properties, Hash
-  serialize :environment, Hash
-  serialize :mounts, Hash
-  serialize :runtime_constraints, Hash
-  serialize :command, Array
+  # Supported states for a container request
+  States =
+    [
+     (Uncommitted = 'Uncommitted'),
+     (Committed = 'Committed'),
+     (Final = 'Final'),
+    ]
+
+  def set_state_before_save
+    self.state ||= Uncommitted
+  end
+
+
 
 end