[ARVADOS] updated: 1afcc0c00dc9f901acce6d5b166ee51c497f8555

git at public.curoverse.com git at public.curoverse.com
Tue Sep 30 21:31:03 EDT 2014


Summary of changes:
 .../app/controllers/collections_controller.rb      |  10 +-
 .../app/controllers/projects_controller.rb         |  19 +-
 .../app/helpers/pipeline_components_helper.rb      |   3 +-
 .../app/helpers/pipeline_instances_helper.rb       |  15 +-
 .../pipeline_instances/_running_component.html.erb |  14 +-
 .../_show_components_json.html.erb                 |  14 +
 .../test/functional/actions_controller_test.rb     |  12 +-
 .../test/functional/collections_controller_test.rb |   4 +-
 .../pipeline_instances_controller_test.rb          |  42 ++-
 apps/workbench/test/integration/projects_test.rb   |  23 +-
 apps/workbench/test/test_helper.rb                 |   8 +-
 sdk/cli/arvados-cli.gemspec                        |   9 +-
 sdk/python/arvados/keep.py                         |  16 +-
 sdk/python/setup.py                                |  22 +-
 sdk/python/tests/test_keep_client.py               |  38 +++
 sdk/ruby/arvados.gemspec                           |   9 +-
 .../api/app/controllers/application_controller.rb  |   1 +
 services/api/app/models/arvados_model.rb           |   7 -
 services/api/app/models/job.rb                     |   2 +-
 services/api/lib/has_uuid.rb                       |   2 +-
 services/api/test/fixtures/collections.yml         |  36 +++
 services/api/test/fixtures/logs.yml                |   9 +
 services/api/test/fixtures/pipeline_instances.yml  |  65 ++++
 .../arvados/v1/collections_controller_test.rb      |  55 +++-
 .../arvados/v1/groups_controller_test.rb           |  74 +++--
 .../functional/arvados/v1/jobs_controller_test.rb  |  82 +++--
 .../arvados/v1/keep_disks_controller_test.rb       |  22 +-
 .../functional/arvados/v1/links_controller_test.rb |  26 +-
 .../functional/arvados/v1/logs_controller_test.rb  |  22 +-
 .../functional/arvados/v1/users_controller_test.rb | 348 ++++-----------------
 services/api/test/helpers/users_test_helper.rb     | 100 ++++++
 services/api/test/integration/groups_test.rb       |  42 +++
 services/api/test/integration/jobs_api_test.rb     |   2 +-
 services/api/test/integration/users_test.rb        | 216 +++++++++++++
 services/api/test/test_helper.rb                   |   8 +-
 services/api/test/unit/job_test.rb                 |   4 +-
 services/api/test/unit/log_test.rb                 |   6 +-
 services/fuse/arvados_fuse/__init__.py             |   9 +-
 services/fuse/bin/arv-mount                        |   3 +-
 services/fuse/setup.py                             |  22 +-
 services/fuse/tests/test_mount.py                  |   7 +-
 41 files changed, 929 insertions(+), 499 deletions(-)
 create mode 100644 services/api/test/helpers/users_test_helper.rb
 create mode 100644 services/api/test/integration/groups_test.rb
 create mode 100644 services/api/test/integration/users_test.rb

       via  1afcc0c00dc9f901acce6d5b166ee51c497f8555 (commit)
       via  3dfc071494cbb0386ecd7269c72a435fc7f9cc24 (commit)
       via  84798b73902fdf81f68ec55365e3a356cb8dec95 (commit)
       via  79da2069356cf4173795501af861ec947195e183 (commit)
       via  6319bc1895aaf8d2a7f944e45e52c960f931a11e (commit)
       via  6d6de24e35e291ef9b7a0f05def9b8e8ea5f7508 (commit)
       via  dc29394d6e4df36a1cab5beae69c3331e037bdb1 (commit)
       via  b3fd3679187be8e51d31cb6bf17613cc488cda4b (commit)
       via  f1c20b66097f1bb37c0ffc8808b4a5831e91f87b (commit)
       via  c53ffcb20017ae0f99fc49095c7008555ac171cc (commit)
       via  2ca602f880757f016f8d0d212b8851818decc718 (commit)
       via  f6d1dd8018f7facf8e4c1f3c82ce777fec1d5a6a (commit)
       via  99ba15c7f425c042fb61b454bba27324c80b7649 (commit)
       via  e3927b68de6d280a4172bd862bf61d5d0cb585ce (commit)
       via  7b2d04380952ac79453bd0771679e40c81281f5c (commit)
       via  4d2b509734d1ac5351ab6da16e08a092ba77f148 (commit)
       via  0c376a152770021334e0b2c3cb7c897dd4ad74bd (commit)
       via  093bae4c914a872c501c3235f06096092725f015 (commit)
       via  33b559e83dedac970335819388b609ed01001db6 (commit)
       via  9756d91f6f1e2472184be0dc45e8849c2c9ab35b (commit)
       via  bb3ec0fefd17c68d9c0123dcfcc5e4ef616fb25e (commit)
       via  16b0697d6ea10d21381936bc9b5ad10914deb9b1 (commit)
       via  15869244560757aaa6187de437d73dbbdfb2e4db (commit)
       via  029656d8b2646bae51de03426a6496cbce0cc9d7 (commit)
       via  0fc69ec920fb2edf48a196adfbce1e7c66218f04 (commit)
       via  cad9d2f9fe930e51279a8496929857039deea2de (commit)
       via  f9ec9073f2077d81567922d612d79e8bcf3a11ba (commit)
       via  c360335c441219f20eb6c598870a6a727edc88b4 (commit)
       via  c02331eb9e7d302efdd788af0dd3ba9124352edb (commit)
       via  195b23ed7fd0c6261d0a945a9f0e541d78a0648e (commit)
       via  ebdbddd3c85ab869afcf689efd7cb4b6207000b3 (commit)
       via  b506247f4a34e1a409f57c3a01c07a94970fe68f (commit)
       via  b27fe91e18bec8df031e4c8bf87f4da293d7b733 (commit)
       via  93817175e247780a3aa74494e3d2f08eb1a9cd37 (commit)
       via  9bf347ea56bc74da1c0ff1a3809faf1ae58f5890 (commit)
       via  39507a40922e11e6863e4dd788ad3231e6fb3224 (commit)
       via  0b1b373da53fe7177a7f62523ef30ca79cfbea53 (commit)
       via  6d324fb5962e8425393c921c2def4aa1506c7230 (commit)
       via  44242bfe2c86302c65650cf7fe3a7187223c6304 (commit)
       via  bbaaeabfc2d28c8a24f106b81e6677832cd68b3d (commit)
       via  0226ff322cc71b540f3ca7469ad1ecf1af95d8cd (commit)
       via  88650e2c0020e1122449d7b91ad3ebf78bab9d23 (commit)
       via  bd3979a09bd74b6311e9d242bc040915d417253f (commit)
       via  90e9b3c5ef43242afc42770d03c61489d69c1de5 (commit)
       via  7e9bb68c02ff8b21747ad88c89d79395b4c091c0 (commit)
       via  c50fe608334f9fc2e19969f41c04d671cb9c0a19 (commit)
       via  9ead624f8ea10f60a6472edb2d15ac576af85515 (commit)
       via  be3b98a52ae6773913696955e2d9c6585fc89441 (commit)
       via  9b21fc7fa2702c8901a6b3f00db6c07fe7cb6849 (commit)
       via  142c18d8174004fc0665106cae71b6f18ba7980b (commit)
       via  081ffd25912e960854427a7c0531c6dbb78d1b4c (commit)
       via  586b30b8171da19a4d777c6c2edf4cd7f2fdecfe (commit)
       via  ef6972c6f0e42266220d3d256f69f817f559bf2c (commit)
       via  48694918fb3e78857d921766784f04cc49dc1ab1 (commit)
       via  36975ebf86c37148ef38a5facd10fad2a977efc9 (commit)
       via  15902f15dc95b9ecb0e0193f9bcdc437fb4fe6f9 (commit)
       via  7943691e146fecc929f1dcde2f794ab32fadc565 (commit)
       via  c5ac04b90cb26e49efb16b322d82913eae2ef423 (commit)
       via  4d44df51ee042c2acced50a838a74eb441fcf73b (commit)
       via  32a058657ee1445c4a1c86368ede5287d6274f98 (commit)
       via  44e4d85c32d5e4ea4dc651570672e59d7a10d3b3 (commit)
       via  8b4cd21c6bd056e4ebf7487132a454cb5b8aacc5 (commit)
       via  b0fa2109b62079c50c5228d227c591fde7b40ab7 (commit)
       via  77ad02138232ebf8885ceef5b4c398bf6fd39587 (commit)
       via  24fd61eb70995d505bd990a79339571294b8f6eb (commit)
       via  1a8481cd4ebacf2036090273bb6b9444dbed16a8 (commit)
       via  d7c09707b2b5146367c2988b75deffce21b5ae2c (commit)
      from  6b17ef224b600b3ce889546d648df43d8aea81f4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit 1afcc0c00dc9f901acce6d5b166ee51c497f8555
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Sep 30 21:30:56 2014 -0400

    3859: Add functional test for locking and fix tests broken by validate_state_change.

diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb
index 2a98591..376df0c 100644
--- a/services/api/app/models/arvados_model.rb
+++ b/services/api/app/models/arvados_model.rb
@@ -42,13 +42,6 @@ class ArvadosModel < ActiveRecord::Base
     end
   end
 
-  class ConflictError < StandardError
-    def http_status
-      409
-    end
-  end
-
-
   def self.kind_class(kind)
     kind.match(/^arvados\#(.+)$/)[1].classify.safe_constantize rescue nil
   end
diff --git a/services/api/app/models/job.rb b/services/api/app/models/job.rb
index 72cd381..aa9075f 100644
--- a/services/api/app/models/job.rb
+++ b/services/api/app/models/job.rb
@@ -93,7 +93,7 @@ class Job < ArvadosModel
     transaction do
       self.reload
       unless self.state == Queued and self.is_locked_by_uuid.nil?
-        raise ConflictError.new
+        raise PermissionDeniedError
       end
       self.state = Running
       self.is_locked_by_uuid = locked_by_uuid
diff --git a/services/api/test/functional/arvados/v1/jobs_controller_test.rb b/services/api/test/functional/arvados/v1/jobs_controller_test.rb
index a37c2b6..e648523 100644
--- a/services/api/test/functional/arvados/v1/jobs_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/jobs_controller_test.rb
@@ -116,8 +116,7 @@ class Arvados::V1::JobsControllerTest < ActionController::TestCase
         cancelled_at: nil
       }
     }
-    job = JSON.parse(@response.body)
-    assert_not_nil job['cancelled_at'], 'un-cancelled job stays cancelled'
+    assert_response 422
   end
 
   ['abc.py', 'hash.py'].each do |script|
@@ -348,4 +347,18 @@ class Arvados::V1::JobsControllerTest < ActionController::TestCase
     assert_response :success
     assert_equal([nodes(:busy).uuid], json_response["node_uuids"])
   end
+
+  test "job lock success" do
+    authorize_with :active
+    post :lock, {id: jobs(:queued).uuid}
+    assert_response :success
+    job = Job.where(uuid: jobs(:queued).uuid).first
+    assert_equal "Running", job.state
+  end
+
+  test "job lock conflict" do
+    authorize_with :active
+    post :lock, {id: jobs(:running).uuid}
+    assert_response 403 # forbidden
+  end
 end
diff --git a/services/api/test/integration/jobs_api_test.rb b/services/api/test/integration/jobs_api_test.rb
index 89eb84f..91d8d8f 100644
--- a/services/api/test/integration/jobs_api_test.rb
+++ b/services/api/test/integration/jobs_api_test.rb
@@ -12,7 +12,7 @@ class JobsApiTest < ActionDispatch::IntegrationTest
 
   test "cancel someone else's visible job" do
     post "/arvados/v1/jobs/#{jobs(:barbaz).uuid}/cancel", {:format => :json}, {'HTTP_AUTHORIZATION' => "OAuth2 #{api_client_authorizations(:spectator).api_token}"}
-    assert_response 403
+    assert_response 422
   end
 
   test "cancel someone else's invisible job" do
diff --git a/services/api/test/unit/job_test.rb b/services/api/test/unit/job_test.rb
index 2fce928..ed10d91 100644
--- a/services/api/test/unit/job_test.rb
+++ b/services/api/test/unit/job_test.rb
@@ -216,7 +216,7 @@ class JobTest < ActiveSupport::TestCase
     job.lock current_user.uuid
     assert_equal "Running", job.state
 
-    assert_raises ArvadosModel::ConflictError do
+    assert_raises ArvadosModel::PermissionDeniedError do
       # Can't lock it again
       job.lock current_user.uuid
     end
@@ -224,7 +224,7 @@ class JobTest < ActiveSupport::TestCase
     assert_equal "Running", job.state
 
     set_user_from_auth :project_viewer
-    assert_raises ArvadosModel::ConflictError do
+    assert_raises ArvadosModel::PermissionDeniedError do
       # Can't lock it as a different user either
       job.lock current_user.uuid
     end

commit 3dfc071494cbb0386ecd7269c72a435fc7f9cc24
Merge: 6b17ef2 84798b7
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Tue Sep 30 20:11:27 2014 -0400

    Merge branch 'master' into 3859-api-job-lock-method


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


hooks/post-receive
-- 




More information about the arvados-commits mailing list