[ARVADOS] created: 5ce935688c2bac3d4ff779db5659366722f0ff54
Git user
git at public.curoverse.com
Fri Jun 10 13:44:01 EDT 2016
at 5ce935688c2bac3d4ff779db5659366722f0ff54 (commit)
commit 5ce935688c2bac3d4ff779db5659366722f0ff54
Author: radhika <radhika at curoverse.com>
Date: Fri Jun 10 13:43:03 2016 -0400
9274: while creating a ContainerRequest, set requesting_container_uuid based on the token.
diff --git a/services/api/app/models/container_request.rb b/services/api/app/models/container_request.rb
index 6353132..83ca334 100644
--- a/services/api/app/models/container_request.rb
+++ b/services/api/app/models/container_request.rb
@@ -18,6 +18,7 @@ class ContainerRequest < ArvadosModel
validate :validate_state_change
validate :validate_change
after_save :update_priority
+ before_create :set_requesting_container_uuid
api_accessible :user, extend: :common do |t|
t.add :command
@@ -170,4 +171,12 @@ class ContainerRequest < ArvadosModel
end
end
+ def set_requesting_container_uuid
+ return true if self.requesting_container_uuid # already set
+
+ 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
+ true
+ end
end
diff --git a/services/api/test/fixtures/containers.yml b/services/api/test/fixtures/containers.yml
index c049d84..8e2e95c 100644
--- a/services/api/test/fixtures/containers.yml
+++ b/services/api/test/fixtures/containers.yml
@@ -131,3 +131,4 @@ requester_container:
runtime_constraints:
ram: 12000000000
vcpus: 4
+ auth_uuid: zzzzz-gj3su-077z32aux8dg2s1
diff --git a/services/api/test/unit/container_request_test.rb b/services/api/test/unit/container_request_test.rb
index 701147c..2c7eb76 100644
--- a/services/api/test/unit/container_request_test.rb
+++ b/services/api/test/unit/container_request_test.rb
@@ -368,4 +368,15 @@ class ContainerRequestTest < ActiveSupport::TestCase
assert_equal 0, c2.priority
end
+ [
+ ['active', 'zzzzz-dz642-requestercntnr1'],
+ ['active_no_prefs', nil],
+ ].each do |token, expected|
+ 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
+ end
+ end
end
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list