[ARVADOS] created: 1.1.4-491-g36da5d97f

Git user git at public.curoverse.com
Tue Jun 19 18:49:41 EDT 2018


        at  36da5d97f623f0c2c944829ca8410a3bea388b19 (commit)


commit 36da5d97f623f0c2c944829ca8410a3bea388b19
Author: Lucas Di Pentima <ldipentima at veritasgenetics.com>
Date:   Tue Jun 19 19:47:21 2018 -0300

    7478: Fixes default preemptible scheduling parameter setting.
    
    The API server wasn't auto-assigning this scheduling parameter on
    child container requests because the requesting_container_uuid field
    was assigned after the callback.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <ldipentima at veritasgenetics.com>

diff --git a/services/api/app/models/container_request.rb b/services/api/app/models/container_request.rb
index 799aa430f..bd0a9a341 100644
--- a/services/api/app/models/container_request.rb
+++ b/services/api/app/models/container_request.rb
@@ -29,7 +29,6 @@ class ContainerRequest < ArvadosModel
   before_validation :fill_field_defaults, :if => :new_record?
   before_validation :validate_runtime_constraints
   before_validation :set_container
-  before_validation :set_default_preemptible_scheduling_parameter
   validates :command, :container_image, :output_path, :cwd, :presence => true
   validates :output_ttl, numericality: { only_integer: true, greater_than_or_equal_to: 0 }
   validates :priority, numericality: { only_integer: true, greater_than_or_equal_to: 0, less_than_or_equal_to: 1000 }
@@ -39,6 +38,7 @@ class ContainerRequest < ArvadosModel
   validate :secret_mounts_key_conflict
   before_save :scrub_secret_mounts
   before_create :set_requesting_container_uuid
+  before_create :set_default_preemptible_scheduling_parameter
   before_destroy :set_priority_zero
   after_save :update_priority
   after_save :finalize_if_needed
diff --git a/services/api/test/unit/container_request_test.rb b/services/api/test/unit/container_request_test.rb
index 8071e05ce..5b9abeb53 100644
--- a/services/api/test/unit/container_request_test.rb
+++ b/services/api/test/unit/container_request_test.rb
@@ -765,6 +765,7 @@ class ContainerRequestTest < ActiveSupport::TestCase
       sp = {"preemptible" => true}
       common_attrs = {cwd: "test",
                       priority: 1,
+                      state: ContainerRequest::Committed,
                       command: ["echo", "hello"],
                       output_path: "test",
                       scheduling_parameters: sp,
@@ -772,15 +773,12 @@ class ContainerRequestTest < ActiveSupport::TestCase
       Rails.configuration.preemptible_instances = preemptible_conf
       set_user_from_auth :active
 
-      cr = create_minimal_req!(common_attrs)
-      cr.state = ContainerRequest::Committed
-
       if !expected.nil?
         assert_raises(expected) do
-          cr.save!
+          cr = create_minimal_req!(common_attrs)
         end
       else
-        cr.save!
+        cr = create_minimal_req!(common_attrs)
         assert_equal sp, cr.scheduling_parameters
       end
     end
@@ -793,6 +791,7 @@ class ContainerRequestTest < ActiveSupport::TestCase
     test "having preemptible instances active on the API server, a committed #{requesting_c.nil? ? 'non-':''}child CR should not ask for preemptible instance if parameter already set to false" do
       common_attrs = {cwd: "test",
                       priority: 1,
+                      state: ContainerRequest::Committed,
                       command: ["echo", "hello"],
                       output_path: "test",
                       scheduling_parameters: {"preemptible" => false},
@@ -810,7 +809,6 @@ class ContainerRequestTest < ActiveSupport::TestCase
         cr = create_minimal_req!(common_attrs)
       end
 
-      cr.state = ContainerRequest::Committed
       cr.save!
 
       assert_equal false, cr.scheduling_parameters['preemptible']
@@ -826,6 +824,7 @@ class ContainerRequestTest < ActiveSupport::TestCase
     test "having Rails.configuration.preemptible_instances=#{preemptible_conf}, #{requesting_c.nil? ? 'non-':''}child CR should #{schedule_preemptible ? '':'not'} ask for preemptible instance by default" do
       common_attrs = {cwd: "test",
                       priority: 1,
+                      state: ContainerRequest::Committed,
                       command: ["echo", "hello"],
                       output_path: "test",
                       mounts: {"test" => {"kind" => "json"}}}
@@ -842,7 +841,6 @@ class ContainerRequestTest < ActiveSupport::TestCase
         cr = create_minimal_req!(common_attrs)
       end
 
-      cr.state = ContainerRequest::Committed
       cr.save!
 
       assert_equal schedule_preemptible, cr.scheduling_parameters['preemptible']

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list