class Opsicle::Instances

Attributes

client[RW]
client[RW]

Public Class Methods

find_by_eip(client) click to toggle source
# File lib/opsicle/instances.rb, line 37
def self.find_by_eip(client)
  instances =  new(client).data.reject { |instance| instance[:elastic_ip] == nil }
  instances.empty? ? nil : instances
end
find_by_ip(client, ips) click to toggle source
# File lib/opsicle/instances.rb, line 25
def self.find_by_ip(client, ips)
  instances = new(client).data.reject { |instance| instances_matching_ips(instance, ips) }
  instances.empty? ? nil : instances
end
new(client) click to toggle source
# File lib/opsicle/instances.rb, line 9
def initialize(client)
  @client = client
end
pretty_ip(instance) click to toggle source
# File lib/opsicle/instances.rb, line 17
def self.pretty_ip(instance)
  instance[:elastic_ip] ? "#{instance[:elastic_ip]} EIP" : instance[:public_ip]
end
private_ip(instance) click to toggle source
# File lib/opsicle/instances.rb, line 21
def self.private_ip(instance)
  instance[:private_ip]
end

Private Class Methods

instances_matching_ips(instance, ip_addresses) click to toggle source
# File lib/opsicle/instances.rb, line 30
def self.instances_matching_ips(instance, ip_addresses)
  instance_ips = [instance[:public_ip], instance[:elastic_ip], instance[:private_ip]].compact
  (ip_addresses & instance_ips).empty?
end

Public Instance Methods

data() click to toggle source
# File lib/opsicle/instances.rb, line 13
def data
  instances(reload: true)
end

Private Instance Methods

instances(options={}) click to toggle source
# File lib/opsicle/instances.rb, line 42
def instances(options={})
  # Only call the API again if you need to
  @instances = nil if options[:reload]
  @instances ||= client.api_call('describe_instances',
                                   :stack_id => client.config.opsworks_config[:stack_id]
                                  )[:instances]
end