Class: AcquiaToolbelt::CLI::SSH

Inherits:
Thor
  • Object
show all
Defined in:
lib/acquia_toolbelt/cli/ssh.rb

Constant Summary

Constants inherited from Thor

Thor::AmbiguousTaskError, Thor::DynamicTask, Thor::HELP_MAPPINGS, Thor::HiddenTask, Thor::THOR_RESERVED_WORDS, Thor::UndefinedTaskError, Thor::VERSION

Instance Attribute Summary

Attributes included from Thor::Base

#args, #options, #parent_options

Instance Method Summary collapse

Methods inherited from Thor

check_unknown_options!, check_unknown_options?, command_help, default_command, desc, #help, help, long_desc, map, method_option, method_options, package_name, printable_commands, register, stop_on_unknown_option!, stop_on_unknown_option?, subcommand, subcommands

Methods included from Thor::Base

included, #initialize, register_klass_file, shell, shell=, subclass_files, subclasses

Instance Method Details

#addObject



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/acquia_toolbelt/cli/ssh.rb', line 58

def add
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  key      = options[:key]
  nickname = options[:nickname]
  data     = {
    :key => 'nickname',
    :value => "#{nickname}",
    :ssh_pub_key => "#{key}"
  }

  add_ssh_key = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys", 'QUERY-STRING-POST', data
  if add_ssh_key['id']
    ui.success "SSH key '#{nickname}' has been successfully added."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(add_ssh_key)
  end
end

#deleteObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/acquia_toolbelt/cli/ssh.rb', line 32

def delete
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  id = options[:id]

  delete_ssh_request = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys/#{id}", 'DELETE'

  if delete_ssh_request['id']
    ui.success "SSH key #{id} has been successfully deleted."
  else
    ui.fail AcquiaToolbelt::CLI::API.display_error(delete_ssh_key)
  end
end

#listObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/acquia_toolbelt/cli/ssh.rb', line 10

def list
  if options[:subscription]
    subscription = options[:subscription]
  else
    subscription = AcquiaToolbelt::CLI::API.default_subscription
  end

  users = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys"
  users.each do |user|
    say
    say "> ID: #{user['id']}"
    say "> Name: #{user['nickname']}"
    say "> Fingerprint: #{SSHKey.fingerprint user['ssh_pub_key']}"
  end
end