[ARVADOS] created: 1.1.4-491-g36da5d97f
Git user
git at public.curoverse.com
Wed Jun 20 07:48:33 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