[ARVADOS] updated: 31bb970d362490abc5238e895e04ab41d828e64c

git at public.curoverse.com git at public.curoverse.com
Mon Mar 24 19:27:56 EDT 2014


Summary of changes:
 apps/workbench/lib/tasks/config_check.rake         |   13 ++++-
 .../app/controllers/arvados/v1/users_controller.rb |    7 +--
 services/api/app/models/user.rb                    |   54 ++++++++++----------
 services/api/lib/tasks/config_check.rake           |   13 ++++-
 services/api/script/setup-new-user.rb              |    5 +-
 .../functional/arvados/v1/users_controller_test.rb |   16 +-----
 services/api/test/unit/user_test.rb                |   12 ----
 7 files changed, 59 insertions(+), 61 deletions(-)

       via  31bb970d362490abc5238e895e04ab41d828e64c (commit)
       via  48b87a694a78f09e8e7c6d05212f1e21aa2423d3 (commit)
       via  de10e681e82e0cb987ffb95109a6c09a13f49944 (commit)
       via  545b33abf34ebbc74fe16e5e541e82d5a79e8457 (commit)
       via  1d3810b3150d653314437471d7858cdbf76b62c7 (commit)
      from  91526e84bf213e08b602fdbd4e7b69a18d401483 (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 31bb970d362490abc5238e895e04ab41d828e64c
Author: radhika chippada <radhika at radhika.curoverse>
Date:   Mon Mar 24 19:27:35 2014 -0400

    some minor refactoring

diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index e2c4130..ae3f31a 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -111,8 +111,12 @@ class User < ArvadosModel
 
   def self.setup(user, openid_prefix, repo_name=nil, vm_uuid=nil)
     login_perm_props = {identity_url_prefix: openid_prefix}
+
     if user.uuid
       found = User.find_by_uuid user.uuid
+      if found
+        user = found
+      end
     end
 
     if !found
@@ -120,22 +124,17 @@ class User < ArvadosModel
         raise "No email found in the input. Aborting user creation."
       end
 
-      if !user.save
-        raise "Save failed"
-      end
-    else
-      user = found
-    end
-
-    # Check oid_login_perm
-    oid_login_perms = Link.where(tail_uuid: user.email,
-                                head_kind: 'arvados#user',
-                                link_class: 'permission',
-                                name: 'can_login')
+      user.save!
+    
+      # Check oid_login_perm
+      oid_login_perms = Link.where(tail_uuid: user.email,
+                                   head_kind: 'arvados#user',
+                                   link_class: 'permission',
+                                   name: 'can_login')
 
-    if !oid_login_perms.any?
-      # create openid login permission
-      oid_login_perm = Link.create(link_class: 'permission',
+      if !oid_login_perms.any?
+        # create openid login permission
+        oid_login_perm = Link.create(link_class: 'permission',
                                    name: 'can_login',
                                    tail_kind: 'email',
                                    tail_uuid: user.email,
@@ -143,9 +142,10 @@ class User < ArvadosModel
                                    head_uuid: user.uuid,
                                    properties: login_perm_props
                                   )
-      logger.info { "openid login permission: " + oid_login_perm[:uuid] }
-    else
-      oid_login_perm = oid_login_perms.first
+        logger.info { "openid login permission: " + oid_login_perm[:uuid] }
+      else
+        oid_login_perm = oid_login_perms.first
+      end
     end
 
     # create repo, vm, and group links
diff --git a/services/api/test/functional/arvados/v1/users_controller_test.rb b/services/api/test/functional/arvados/v1/users_controller_test.rb
index c364613..702209b 100644
--- a/services/api/test/functional/arvados/v1/users_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/users_controller_test.rb
@@ -106,8 +106,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
     post :setup, {
       uuid: 'bogus_uuid',
       repo_name: 'test_repo',
-      vm_uuid: @vm_uuid,
-      openid_prefix: 'https://www.google.com/accounts/o8/id'
+      vm_uuid: @vm_uuid
     }
     response_body = JSON.parse(@response.body)
     response_errors = response_body['errors']
@@ -135,7 +134,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
     authorize_with :admin
 
     post :setup, {
-      #uuid: 'not_an_existing_uuid_and_not_email_format',
       repo_name: 'test_repo',
       vm_uuid: @vm_uuid,
       openid_prefix: 'https://www.google.com/accounts/o8/id'
@@ -174,8 +172,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
     post :setup, {
       uuid: inactive_user['uuid'],
       repo_name: 'test_repo',
-      vm_uuid: @vm_uuid,
-      openid_prefix: 'https://www.google.com/accounts/o8/id'
+      vm_uuid: @vm_uuid
     }
 
     assert_response :success
@@ -230,8 +227,7 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
 
     post :setup, {
       uuid: inactive_user['uuid'],
-      user: {email: 'junk_email'},
-      openid_prefix: 'https://www.google.com/accounts/o8/id'
+      user: {email: 'junk_email'}
     }
 
     assert_response :success
@@ -550,9 +546,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
     assert_equal 'test at abc.com', created['email'], 'expected input email'
 
      # verify links
-    verify_link response_items, 'oid_login_perm', true, 'permission', 'can_login',
-        created['uuid'], created['email'], 'arvados#user', false, 'User'
-
     verify_link response_items, 'group_perm', true, 'permission', 'can_read',
         'All users', created['uuid'], 'arvados#group', true, 'Group'
 
@@ -580,9 +573,6 @@ class Arvados::V1::UsersControllerTest < ActionController::TestCase
     assert_equal created['email'], 'test at abc.com', 'expected original email'
 
     # verify links
-    verify_link response_items, 'oid_login_perm', true, 'permission', 'can_login',
-        created['uuid'], created['email'], 'arvados#user', false, 'User'
-
     verify_link response_items, 'group_perm', true, 'permission', 'can_read',
         'All users', created['uuid'], 'arvados#group', true, 'Group'
 
diff --git a/services/api/test/unit/user_test.rb b/services/api/test/unit/user_test.rb
index e9886af..2b67864 100644
--- a/services/api/test/unit/user_test.rb
+++ b/services/api/test/unit/user_test.rb
@@ -258,12 +258,6 @@ class UserTest < ActiveSupport::TestCase
     verify_user resp_user, email
     assert_equal user.uuid, resp_user[:uuid], 'expected uuid not found'
 
-    oid_login_perm = response[:oid_login_perm]
-    verify_link oid_login_perm, 'permission', 'can_login', resp_user[:email],
-        resp_user[:uuid]
-    assert_equal openid_prefix, oid_login_perm[:properties][:identity_url_prefix],
-        'expected identity_url_prefix not found for oid_login_perm'
-
     verify_link response[:group_perm], 'permission', 'can_read', 
         resp_user[:uuid], nil
 
@@ -279,12 +273,6 @@ class UserTest < ActiveSupport::TestCase
     verify_user resp_user, email
     assert_equal user.uuid, resp_user[:uuid], 'expected uuid not found'
 
-    oid_login_perm = response[:oid_login_perm]
-    verify_link oid_login_perm, 'permission', 'can_login', resp_user[:email],
-        resp_user[:uuid]
-    assert_equal openid_prefix, oid_login_perm[:properties][:identity_url_prefix],
-        'expected identity_url_prefix not found for oid_login_perm'
-
     verify_link response[:group_perm], 'permission', 'can_read', 
         resp_user[:uuid], nil
 

commit 48b87a694a78f09e8e7c6d05212f1e21aa2423d3
Author: radhika chippada <radhika at radhika.curoverse>
Date:   Mon Mar 24 18:53:58 2014 -0400

    When uuid is passed, openid_prefix can be optional

diff --git a/services/api/app/controllers/arvados/v1/users_controller.rb b/services/api/app/controllers/arvados/v1/users_controller.rb
index bf3dda0..3d6e61c 100644
--- a/services/api/app/controllers/arvados/v1/users_controller.rb
+++ b/services/api/app/controllers/arvados/v1/users_controller.rb
@@ -100,10 +100,9 @@ class Arvados::V1::UsersController < ApplicationController
         raise ArgumentError.new "Required uuid or email"
       end
       @object = model_class.new resource_attrs
-    end
-
-    if !params[:openid_prefix]
-      raise ArgumentError.new "Required openid_prefix parameter is missing."
+      if !params[:openid_prefix]
+        raise ArgumentError.new "Required openid_prefix parameter is missing."
+      end
     end
 
     @response = User.setup @object, params[:openid_prefix],
diff --git a/services/api/app/models/user.rb b/services/api/app/models/user.rb
index 4858a9b..e2c4130 100644
--- a/services/api/app/models/user.rb
+++ b/services/api/app/models/user.rb
@@ -111,12 +111,12 @@ class User < ArvadosModel
 
   def self.setup(user, openid_prefix, repo_name=nil, vm_uuid=nil)
     login_perm_props = {identity_url_prefix: openid_prefix}
-    if user[:uuid]
-      found = User.find_by_uuid user[:uuid]
+    if user.uuid
+      found = User.find_by_uuid user.uuid
     end
 
     if !found
-      if !user[:email]
+      if !user.email
         raise "No email found in the input. Aborting user creation."
       end
 
@@ -128,7 +128,7 @@ class User < ArvadosModel
     end
 
     # Check oid_login_perm
-    oid_login_perms = Link.where(tail_uuid: user[:email],
+    oid_login_perms = Link.where(tail_uuid: user.email,
                                 head_kind: 'arvados#user',
                                 link_class: 'permission',
                                 name: 'can_login')
@@ -138,9 +138,9 @@ class User < ArvadosModel
       oid_login_perm = Link.create(link_class: 'permission',
                                    name: 'can_login',
                                    tail_kind: 'email',
-                                   tail_uuid: user[:email],
+                                   tail_uuid: user.email,
                                    head_kind: 'arvados#user',
-                                   head_uuid: user[:uuid],
+                                   head_uuid: user.uuid,
                                    properties: login_perm_props
                                   )
       logger.info { "openid login permission: " + oid_login_perm[:uuid] }
@@ -151,13 +151,13 @@ class User < ArvadosModel
     # create repo, vm, and group links
     response = {user: user, oid_login_perm: oid_login_perm}
 
-    user.setup_links(repo_name, vm_uuid, openid_prefix, response)
+    user.setup_repo_vm_links(repo_name, vm_uuid, response)
 
     return response
   end 
 
   # create links
-  def setup_links(repo_name, vm_uuid, openid_prefix, response)
+  def setup_repo_vm_links(repo_name, vm_uuid, response)
     repo_perm = create_user_repo_link repo_name
     if repo_perm
       response[:repo_perm] = repo_perm
@@ -168,7 +168,7 @@ class User < ArvadosModel
       response[:vm_login_perm] = vm_login_perm
     end
 
-    group_perm = create_user_group_links
+    group_perm = create_user_group_link
     if group_perm
       response[:group_perm] = group_perm
     end
@@ -324,7 +324,7 @@ class User < ArvadosModel
   end
 
   # add the user to the 'All users' group
-  def create_user_group_links
+  def create_user_group_link
     # Look up the "All users" group (we expect uuid *-*-fffffffffffffff).
     group = Group.where(name: 'All users').select do |g|
       g[:uuid].match /-f+$/
diff --git a/services/api/script/setup-new-user.rb b/services/api/script/setup-new-user.rb
index 10df472..19f5aeb 100755
--- a/services/api/script/setup-new-user.rb
+++ b/services/api/script/setup-new-user.rb
@@ -38,7 +38,7 @@ arv = Arvados.new(api_version: 'v1')
 begin
   found_user = arv.user.get(uuid: user_arg)
 rescue Arvados::TransactionFailedError
-  found = arv.user.list(where: {email: ARGV[0]})[:items]
+  found = arv.user.list(where: {email: user_arg})[:items]
     
   if found.count == 0 
     if !user_arg.match(/\w\@\w+\.\w+/)
@@ -46,8 +46,7 @@ rescue Arvados::TransactionFailedError
                "does not look like an email address. Stop."
     end
   elsif found.count != 1
-    abort "Found #{found.count} users " +
-              "with uuid or email #{user_arg.inspect}. Stop."
+    abort "Found #{found.count} users with email. Stop."
   else
     found_user = found.first
   end

commit de10e681e82e0cb987ffb95109a6c09a13f49944
Merge: 91526e8 545b33a
Author: radhika chippada <radhika at radhika.curoverse>
Date:   Mon Mar 24 18:10:32 2014 -0400

    Merge branch 'master' into 2187-enhance-user-setup


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


hooks/post-receive
-- 




More information about the arvados-commits mailing list