class AcquiaToolbelt::CLI::SSH

Public Instance Methods

add() click to toggle source
# File lib/acquia_toolbelt/cli/ssh.rb, line 74
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
delete() click to toggle source
# File lib/acquia_toolbelt/cli/ssh.rb, line 48
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
list() click to toggle source
# 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

  ui.say

  rows = []
  headings = [
    'ID',
    'Nickname',
    'Fingerprint',
    'Shell access',
    'VCS access'
  ]

  users = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys"
  users.each do |user|
    row_data = []
    row_data << user['id']
    row_data << user['nickname']
    row_data << SSHKey.fingerprint(user['ssh_pub_key'])
    row_data << user['shell_access']
    row_data << user['vcs_access']
    rows << row_data
  end

  ui.output_table('', headings, rows)
end