module Rudy::AWS::EC2::Keypairs

Public Instance Methods

any?() click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 72
def any?
  keypairs = list || []
  !keypairs.empty?
end
create(name) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 27
def create(name)
  raise "No name provided" unless name
  ret = @@ec2.create_keypair(:key_name => name)
  from_hash(ret)
end
destroy(name) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 33
def destroy(name)
  name = name.name if name.is_a?(Rudy::AWS::EC2::Keypair)
  raise "No name provided" unless name.is_a?(String)
  ret = @@ec2.delete_keypair(:key_name => name)
  (ret && ret['return'] == 'true') # BUG? Always returns true
end
exists?(name) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 83
def exists?(name)
  return false unless name
  kp = get(name) rescue nil
  !kp.nil?
end
from_hash(h) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 59
def from_hash(h)
  # keyName: test-c5g4v3pe
  # keyFingerprint: 65:d0:ce:e7:6a:b0:88:4a:9c:c7:2d:b8:33:0c:fd:3b:c8:0f:0a:3c
  # keyMaterial: |-
  #   -----BEGIN RSA PRIVATE KEY-----
  # 
  keypair = Rudy::AWS::EC2::Keypair.new
  keypair.fingerprint = h['keyFingerprint']
  keypair.name = h['keyName']
  keypair.private_key = h['keyMaterial']
  keypair
end
get(name) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 77
def get(name)
  keypairs = list(name) || []
  return if keypairs.empty?
  keypairs.first
end
list(*names) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 40
def list(*names)
  keypairs = list_as_hash(names)
  keypairs &&= keypairs.values
  keypairs
end
list_as_hash(*names) click to toggle source
# File lib/rudy/aws/ec2/keypair.rb, line 46
def list_as_hash(*names)
  names = names.flatten
  klist = @@ec2.describe_keypairs(:key_name => names)
  return unless klist['keySet'].is_a?(Hash)
  keypairs = {}
  klist['keySet']['item'].each do |oldkp| 
    kp = from_hash(oldkp)
    keypairs[kp.name] = kp
  end
  keypairs = nil if keypairs.empty?
  keypairs
end