12573: Ensure priority is set on container requests created by other containers.
authorPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 1 Dec 2017 17:01:39 +0000 (12:01 -0500)
committerPeter Amstutz <pamstutz@veritasgenetics.com>
Fri, 1 Dec 2017 17:01:39 +0000 (12:01 -0500)
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>

services/api/app/models/container_request.rb
services/api/test/fixtures/containers.yml
services/api/test/unit/container_request_test.rb

index 178c15645abf64751da45a9371565b32ec6a02b1..68885d7411fe5081b47a5997e4eee63388fc78cc 100644 (file)
@@ -274,7 +274,10 @@ class ContainerRequest < ArvadosModel
 
     token_uuid = current_api_client_authorization.andand.uuid
     container = Container.where('auth_uuid=?', token_uuid).order('created_at desc').first
-    self.requesting_container_uuid = container.uuid if container
+    if container
+      self.requesting_container_uuid = container.uuid
+      self.priority = container.priority
+    end
     true
   end
 end
index a7ad6f0378d90679cb1ac183f69233c34fddc88a..7e2de6d8ca6207bc45738d4513507cae874dae58 100644 (file)
@@ -28,7 +28,7 @@ running:
   uuid: zzzzz-dz642-runningcontainr
   owner_uuid: zzzzz-tpzed-000000000000000
   state: Running
-  priority: 1
+  priority: 12
   created_at: <%= 1.minute.ago.to_s(:db) %>
   updated_at: <%= 1.minute.ago.to_s(:db) %>
   started_at: <%= 1.minute.ago.to_s(:db) %>
index 68f5da0363cd56efe9ca4415f5f02ffd77410bf2..8a1b7d3d9eb8c9a7c13a7b29b8f38bc454764e49 100644 (file)
@@ -324,14 +324,15 @@ class ContainerRequestTest < ActiveSupport::TestCase
   end
 
   [
-    ['running_container_auth', 'zzzzz-dz642-runningcontainr'],
-    ['active_no_prefs', nil],
-  ].each do |token, expected|
+    ['running_container_auth', 'zzzzz-dz642-runningcontainr', containers(:running).priority],
+    ['active_no_prefs', nil, 500],
+  ].each do |token, expected, expected_priority|
     test "create as #{token} and expect requesting_container_uuid to be #{expected}" do
       set_user_from_auth token
       cr = ContainerRequest.create(container_image: "img", output_path: "/tmp", command: ["echo", "foo"])
       assert_not_nil cr.uuid, 'uuid should be set for newly created container_request'
       assert_equal expected, cr.requesting_container_uuid
+      assert_equal expected_priority, cr.priority
     end
   end