A simplified version of setup_new_user.rb script, where all the create user and links...
authorradhika chippada <radhika@radhika.curoverse>
Mon, 17 Mar 2014 18:14:10 +0000 (14:14 -0400)
committerradhika chippada <radhika@radhika.curoverse>
Mon, 17 Mar 2014 18:14:10 +0000 (14:14 -0400)
services/api/script/setup-new-user.rb [new file with mode: 0755]

diff --git a/services/api/script/setup-new-user.rb b/services/api/script/setup-new-user.rb
new file mode 100755 (executable)
index 0000000..c8bc098
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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')
+
+begin
+       new_user = arv.user.create(user_param: user_arg, repo_name: user_repo_name, vm_uuid: vm_uuid, openid_prefix: opts.openid_prefix, just_probe: opts.n, user: {})
+       log.warn new_user
+rescue Exception => e #Arvados::TransactionFailedError
+       log.warn e.message
+end
+