[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