[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