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