module Rudy::Routines::Handlers::Keypair

Public Instance Methods

create(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 24
def create(name=nil)
  name ||= current_machine_root
  keyname = user_keypairname name
  kp_file = pkey name

  if registered? name && !@@global.force 
    raise PrivateKeyNotFound, kp_file if !File.exists?(kp_file)
  end

  if Rudy::AWS::EC2::Keypairs.exists? keyname
    if @@global.force
      li "Destroying existing keypair: #{keyname}"
      Rudy::AWS::EC2::Keypairs.destroy keyname
    else
      raise Rudy::AWS::EC2::KeypairAlreadyDefined, keyname
    end
  end
  
  if File.exists?(kp_file)
    if @@global.force
      delete_pkey name
    else
      raise PrivateKeyFileExists, kp_file 
    end
  end
  
  li "Creating keypair: #{keyname}"
  kp = Rudy::AWS::EC2::Keypairs.create(keyname)
  li "Saving #{kp_file}"
  Rudy::Utils.write_to_file(kp_file, kp.private_key, 'w', 0600)
  
  kp
end
delete_pkey(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 65
def delete_pkey(name=nil)
  name ||= current_machine_root
  kp_file = pkey name
  raise PrivateKeyNotFound, kp_file unless pkey?(name)
  File.unlink kp_file
end
exists?(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 72
def exists?(name=nil)
  name ||= current_machine_root
  registered?(name) && pkey?(name)
end
pkey(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 83
def pkey(name=nil)
  name ||= current_machine_root
  user_keypairpath name
end
pkey?(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 88
def pkey?(name=nil)
  name ||= current_machine_root
  File.exists? pkey(name)
end
raise_early_exceptions(name=nil) click to toggle source

Rudy::Routines.add_handler :machines, self

# File lib/rudy/routines/handlers/keypair.rb, line 10
def raise_early_exceptions(name=nil)
  name ||= current_machine_root
  keyname = user_keypairname name
  kp_file = pkey name
  if registered? keyname
    # This means no keypair file can be found
    raise PrivateKeyNotFound, keyname if kp_file.nil?
    # This means we found a keypair in the config but we cannot find the private key file. 
    raise PrivateKeyNotFound, kp_file if !File.exists?(kp_file)
  else
    raise PrivateKeyFileExists, kp_file if File.exists?(kp_file)
  end 
end
registered?(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 77
def registered?(name=nil)
  name ||= current_machine_root
  keyname = user_keypairname name
  Rudy::AWS::EC2::Keypairs.exists?(keyname)
end
unregister(name=nil) click to toggle source
# File lib/rudy/routines/handlers/keypair.rb, line 58
def unregister(name=nil)
  name ||= current_machine_root
  keyname = user_keypairname name
  raise "Keypair not registered: #{keyname}" unless registered?(name)
  Rudy::AWS::EC2::Keypairs.destroy keyname
end