2879: Job Docker filters respect reader tokens.
authorBrett Smith <brett@curoverse.com>
Thu, 19 Jun 2014 17:24:47 +0000 (13:24 -0400)
committerBrett Smith <brett@curoverse.com>
Thu, 19 Jun 2014 17:25:07 +0000 (13:25 -0400)
services/api/app/controllers/arvados/v1/jobs_controller.rb
services/api/test/functional/arvados/v1/job_reuse_controller_test.rb

index 3e3150b70be0fd40ff1bf13b4473612af47ad70f..7ce5a62471c3ad527c6e9cf2cee6223aa1355b3b 100644 (file)
@@ -190,7 +190,9 @@ class Arvados::V1::JobsController < ApplicationController
         false
       when ["docker_image_locator", "in docker"], ["docker_image_locator", "not in docker"]
         filter[1].sub!(/ docker$/, '')
-        filter[2] = Collection.uuids_for_docker_image(*filter[2].split(':', 2))
+        image_search, image_tag = filter[2].split(':', 2)
+        filter[2] = Collection.
+          uuids_for_docker_image(image_search, image_tag, @read_users)
         true
       else
         true
index 5cdf6c75b55ef3c3ad5f141e79139c01d1c2c17e..6a3fbe44f6abc08fde05a0b8ef5f50a37ae6c62f 100644 (file)
@@ -514,4 +514,19 @@ class Arvados::V1::JobReuseControllerTest < ActionController::TestCase
     refute_includes(assigns(:objects).map { |job| job.uuid },
                     jobs(:previous_job_run).uuid)
   end
+
+  test "find Job with Docker image using reader tokens" do
+    authorize_with :inactive
+    get(:index, {
+          filters: [["docker_image_locator", "in docker",
+                     "arvados/apitestfixture"]],
+          reader_tokens: [api_token(:active)],
+        })
+    assert_response :success
+    assert_not_nil assigns(:objects)
+    assert_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_docker_job_run).uuid)
+    refute_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_job_run).uuid)
+  end
 end