Class: Kontena::Cli::Master::User::InviteCommand

Inherits:
Kontena::Command
  • Object
show all
Includes:
Common
Defined in:
lib/kontena/cli/master/user/invite_command.rb

Instance Attribute Summary

Attributes inherited from Kontena::Command

#arguments, #exit_code, #result

Instance Method Summary collapse

Methods included from Common

#access_token=, #add_master, #any_key_to_continue, #any_key_to_continue_with_timeout, #api_url, #api_url=, #caret, #clear_current_grid, #client, #cloud_auth?, #cloud_client, #config, #confirm, #confirm_command, #current_grid, #current_master_index, #debug?, #display_account_login_info, #display_login_info, display_logo, #display_master_login_info, #error, exit_with_error, #kontena_account, #logger, #pastel, #print, #prompt, #puts, #require_api_url, #require_token, #reset_client, #reset_cloud_client, #running_quiet?, #running_silent?, #running_verbose?, #spin_if, #spinner, #sprint, #sputs, #stdin_input, #use_refresh_token, #vfakespinner, #vputs, #vspinner, #warning

Methods inherited from Kontena::Command

banner, callback_matcher, #help_requested?, inherited, #instance, load_subcommand, requires_current_account_token, requires_current_account_token?, requires_current_grid, requires_current_grid?, requires_current_master, requires_current_master?, requires_current_master_token, requires_current_master_token?, #run, #run_callbacks, #verify_current_account_token, #verify_current_grid, #verify_current_master, #verify_current_master_token

Instance Method Details

#executeObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/kontena/cli/master/user/invite_command.rb', line 18

def execute
  if self.roles
    roles = self.roles.split(',')
  else
    roles = []
  end
  external_id = nil
  if email_list.size == 1 && self.external_id
    external_id = self.external_id
  end
  email_list.each do |email|
    begin
      data = { email: email, external_id: external_id, response_type: 'invite' }
      response = client.post('/oauth2/authorize', data)
      if self.code?
        puts response['invite_code']
      elsif self.return?
        return response
      else
        puts pastel.green("Invitation created for #{response['email']}")
        puts "  * code:    #{response['invite_code']}"
        puts "  * command: kontena master join #{current_master.url} #{response['invite_code']}"
      end
      roles.each do |role|
        raise "Failed to add role" unless Kontena.run(["master", "user", "role", "add", role, email])
      end
    rescue => ex
      logger.error(ex)
      exit_with_error "Failed to invite #{email} : #{ex.message}"
    end
  end
end