class RHC::Commands::Sshkey

Public Instance Methods

add(name, key) click to toggle source
# File lib/rhc/commands/sshkey.rb, line 47
def add(name, key)
  begin
    file = File.open(key)
  rescue Errno::ENOENT => e
    raise ::RHC::KeyFileNotExistentException.new("File '#{key}' does not exist.")
  rescue Errno::EACCES => e
    raise ::RHC::KeyFileAccessDeniedException.new("Access denied to '#{key}'.")
  end
  type, content, comment = file.gets.chomp.split
  
  # validate the user input before sending it to the server
  begin
    Net::SSH::KeyFactory.load_data_public_key "#{type} #{content}"
  rescue NotImplementedError, Net::SSH::Exception => e
    raise ::RHC::KeyDataInvalidException.new("File '#{key}' contains invalid data")
  end

  rest_client.add_key(name, content, type)
  results { say "SSH key #{key} has been added as '#{name}'" }
  
  0
end
list() click to toggle source
# File lib/rhc/commands/sshkey.rb, line 16
def list
  ssh_keys = rest_client.sshkeys
  results do
    result = ''

    ssh_keys.each do |key|
      result += format(key, erb)
    end
    
    say result
  end
  
  0
end
remove(name) click to toggle source
# File lib/rhc/commands/sshkey.rb, line 75
def remove(name)
  rest_client.delete_key(name)
  results { say "SSH key '#{name}' has been removed" }
  
  0
end
show(name) click to toggle source
# File lib/rhc/commands/sshkey.rb, line 35
def show(name)
  key = rest_client.find_key(name)
  say format(key, erb)
  
  0
end