[ARVADOS] updated: 40b6a69496aa50349d07daa6b28ae36bddd8a6a4
git at public.curoverse.com
git at public.curoverse.com
Wed May 28 13:02:15 EDT 2014
Summary of changes:
apps/admin/setup-new-user.rb | 168 -------------------------------------------
1 file changed, 168 deletions(-)
delete mode 100755 apps/admin/setup-new-user.rb
via 40b6a69496aa50349d07daa6b28ae36bddd8a6a4 (commit)
via e289f5b586c24baf0bbd74e206d906297751db56 (commit)
from a01f0a9b9860ca574e0078a0e95afb783e711dc1 (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 40b6a69496aa50349d07daa6b28ae36bddd8a6a4
Merge: e289f5b a01f0a9
Author: radhika <radhika at curoverse.com>
Date: Wed May 28 12:58:11 2014 -0400
Merge branch 'master' of git.curoverse.com:arvados
commit e289f5b586c24baf0bbd74e206d906297751db56
Author: radhika <radhika at curoverse.com>
Date: Wed May 28 12:56:36 2014 -0400
An equivalent of this script is now at services/api/script. This was done as part of Feature #2272.
diff --git a/apps/admin/setup-new-user.rb b/apps/admin/setup-new-user.rb
deleted file mode 100755
index ab5aa2e..0000000
--- a/apps/admin/setup-new-user.rb
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/usr/bin/env ruby
-
-abort 'Error: Ruby >= 1.9.3 required.' if RUBY_VERSION < '1.9.3'
-
-require 'logger'
-require 'trollop'
-log = Logger.new STDERR
-log.progname = $0.split('/').last
-
-opts = Trollop::options do
- banner ''
- banner "Usage: #{log.progname} " +
- "{user_uuid_or_email} {user_and_repo_name} {vm_uuid}"
- banner ''
- opt :debug, <<-eos
-Show debug messages.
- eos
- opt :create, <<-eos
-Create a new user with the given email address if an existing user \
-is not found.
- eos
- opt :openid_prefix, <<-eos, default: 'https://www.google.com/accounts/o8/id'
-If creating a new user record, require authentication from an OpenID \
-with this OpenID prefix *and* a matching email address in order to \
-claim the account.
- eos
- opt :force, <<-eos
-Continue even if sanity checks raise flags: the given user is already \
-active, the given repository already exists, etc.
- eos
- opt :n, 'Do not change anything, just probe'
-end
-
-log.level = (ENV['DEBUG'] || opts.debug) ? Logger::DEBUG : Logger::WARN
-
-if ARGV.count != 3
- Trollop::die "required arguments are missing"
-end
-user_arg, user_repo_name, vm_uuid = ARGV
-
-require 'arvados'
-arv = Arvados.new(api_version: 'v1')
-
-# Look up the given user by uuid or, failing that, email address.
-user = begin
- arv.user.get(uuid: user_arg)
- rescue Arvados::TransactionFailedError
- found = arv.user.list(where: {email: ARGV[0]})[:items]
- if found.count == 0 and opts.create
- if !opts.force and !user_arg.match(/\w\@\w+\.\w+/)
- abort "About to create new user, but #{user_arg.inspect} " +
- "does not look like an email address. Stop."
- end
- if opts.n
- log.info "-n flag given. Stop before creating new user record."
- exit 0
- end
- new_user = arv.user.create(user: {email: user_arg})
- log.info { "created user: " + new_user[:uuid] }
- login_perm_props = {identity_url_prefix: opts.openid_prefix }
- oid_login_perm = arv.link.create(link: {
- link_class: 'permission',
- name: 'can_login',
- tail_kind: 'email',
- tail_uuid: user_arg,
- head_kind: 'arvados#user',
- head_uuid: new_user[:uuid],
- properties: login_perm_props
- })
- log.info { "openid login permission: " + oid_login_perm[:uuid] }
- found = [new_user]
- end
- if found.count != 1
- abort "Found #{found.count} users " +
- "with uuid or email #{user_arg.inspect}. Stop."
- end
- found.first
- end
-log.info { "user uuid: " + user[:uuid] }
-
-# Look up the given virtual machine just to make sure it really exists.
-begin
- vm = arv.virtual_machine.get(uuid: vm_uuid)
-rescue
- abort "Could not look up virtual machine with uuid #{vm_uuid.inspect}. Stop."
-end
-log.info { "vm uuid: " + vm[:uuid] }
-
-# Look up the "All users" group (we expect uuid *-*-fffffffffffffff).
-group = arv.group.list(where: {name: 'All users'})[:items].select do |g|
- g[:uuid].match /-f+$/
-end.first
-if not group
- abort "Could not look up the 'All users' group with uuid '*-*-fffffffffffffff'. Stop."
-end
-log.info { "\"All users\" group uuid: " + group[:uuid] }
-
-# Look for signs the user has already been activated / set up.
-
-if user[:is_active]
- log.warn "User's is_active flag is already set."
- need_force = true
-end
-
-# Look for existing repository access (perhaps using a different
-# repository/user name).
-repo_perms = arv.link.list(where: {
- tail_uuid: user[:uuid],
- head_kind: 'arvados#repository',
- link_class: 'permission',
- name: 'can_write'})[:items]
-if [] != repo_perms
- log.warn "User already has repository access " +
- repo_perms.collect { |p| p[:uuid] }.inspect + "."
- need_force = true
-end
-
-# Check for an existing repository with the same name we're about to
-# use.
-repo = arv.repository.list(where: {name: user_repo_name})[:items].first
-if repo
- log.warn "Repository already exists with name #{user_repo_name.inspect}: " +
- "#{repo[:uuid]}"
- need_force = true
-end
-
-if opts.n
- log.info "-n flag given. Done."
- exit 0
-end
-
-if need_force and not opts.force
- abort "This does not seem to be a new user[name], and -f was not given. Stop."
-end
-
-# Everything seems to be in order. Create a repository (if needed) and
-# add permissions.
-
-repo ||= arv.repository.create(repository: {name: user_repo_name})
-log.info { "repo uuid: " + repo[:uuid] }
-
-repo_perm = arv.link.create(link: {
- tail_kind: 'arvados#user',
- tail_uuid: user[:uuid],
- head_kind: 'arvados#repository',
- head_uuid: repo[:uuid],
- link_class: 'permission',
- name: 'can_write'})
-log.info { "repo permission: " + repo_perm[:uuid] }
-
-login_perm = arv.link.create(link: {
- tail_kind: 'arvados#user',
- tail_uuid: user[:uuid],
- head_kind: 'arvados#virtualMachine',
- head_uuid: vm[:uuid],
- link_class: 'permission',
- name: 'can_login',
- properties: {username: user_repo_name}})
-log.info { "login permission: " + login_perm[:uuid] }
-
-group_perm = arv.link.create(link: {
- tail_kind: 'arvados#user',
- tail_uuid: user[:uuid],
- head_kind: 'arvados#group',
- head_uuid: group[:uuid],
- link_class: 'permission',
- name: 'can_read'})
-log.info { "group permission: " + group_perm[:uuid] }
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list