Sha256: 56e93c056f6ec8e18801e4e7edc89347c3f436ea8a13d86f9792037691491873

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

module Rudy
  class Addresses
    include Rudy::Huxtable
    
    def create
      address = @@ec2.addresses.create
      raise ErrorCreatingAddress unless address.is_a?(Rudy::AWS::EC2::Address)
      address
    end
    
    def destroy(address)
      address = address
      @@ec2.addresses.destroy(address)
    end
    
    def assign(address, instance)
      raise "Not an instance object" unless instance.is_a?(Rudy::AWS::EC2::Instance)
      raise "Address not available for this account" unless @@ec2.addresses.valid?(address)
      @@ec2.addresses.associate(instance.awsid, address)
    end
    
    
    # Lists the addresses registered with Amazon
    def list(n=nil, &each_object)
      n = [n].flatten.compact
      addresses = @@ec2.addresses.list(n)
      addresses.each { |n,kp| each_object.call(kp) } if each_object
      addresses || []
    end
    
    def get(n=nil)
      raise "Address cannot be nil" if n.nil?
      @@ec2.addresses.get(n)
    end
    
    def associated?(n=nil)
      raise "Address cannot be nil" if n.nil?
      @@ec2.addresses.associated?(n)
    end
    
    def list_as_hash(n=nil, &each_object)
      n &&= [n].flatten.compact
      addresses = @@ec2.addresses.list_as_hash(n)
      addresses.each_pair { |n,kp| each_object.call(kp) } if each_object
      addresses || {}
    end
    
    def exists?(n=nil)
      n ||= name(n)
      @@ec2.addresses.exists?(n)
    end
    
    def any?(n=nil)
      n ||= name(n)
      @@ec2.addresses.any?    
    end
    
  end
  
end


module Rudy
  class Addresses 
    class ErrorCreatingAddress < RuntimeError; end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
solutious-rudy-0.5.0 lib/rudy/command/addresses.rb
solutious-rudy-0.5.1 lib/rudy/command/addresses.rb