class Opsicle::SSHKey

Public Class Methods

new(environment, keyfile) click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 4
def initialize(environment, keyfile)
  @client = Client.new(environment)
  @keyfile = keyfile
end

Public Instance Methods

execute(options={}) click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 9
def execute(options={})
  validate!
  update
  Output.say "ssh-key updated successfully"
end
key() click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 29
def key
  @key ||= File.read(@keyfile)
end
public_key?() click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 25
def public_key?
  !key.match(/PRIVATE KEY/)
end
update() click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 33
def update
  @client.api_call(:update_my_user_profile, {ssh_public_key: key})
end
valid_key_file?() click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 21
def valid_key_file?
  system("ssh-keygen -l -f #{@keyfile} > /dev/null")
end
validate!() click to toggle source
# File lib/opsicle/commands/ssh_key.rb, line 15
def validate!
  raise KeyFileNotFound, "No key file could be found" unless File.exists?(@keyfile)
  raise InvalidKeyFile, "Key file is invalid" unless valid_key_file?
  raise InvalidKeyFile, "Key file is a private key" unless public_key?
end