class Aerosol::Instance

Public Class Methods

request_all() click to toggle source
# File lib/aerosol/instance.rb, line 53
def self.request_all
  next_token = nil
  instances = []

  begin
    new_instances = request_all_for_token(next_token)
    instances.concat(new_instances.auto_scaling_instances)
    next_token = new_instances.next_token
  end until next_token.nil?

  instances
end
request_all_for_token(next_token) click to toggle source
# File lib/aerosol/instance.rb, line 48
def self.request_all_for_token(next_token)
  options = next_token.nil? ? {} : { next_token: next_token }
  Aerosol::AWS.auto_scaling.describe_auto_scaling_instances(options)
end

Public Instance Methods

address() click to toggle source
# File lib/aerosol/instance.rb, line 32
def address
  if public_hostname.blank?
    private_ip_address
  else
    public_hostname
  end
end
description() click to toggle source
# File lib/aerosol/instance.rb, line 44
def description
  @description ||= describe!
end
image_id() click to toggle source
# File lib/aerosol/instance.rb, line 40
def image_id
  description[:image_id]
end
instance_state_name() click to toggle source
# File lib/aerosol/instance.rb, line 20
def instance_state_name
  description[:state][:name]
end
live?() click to toggle source
# File lib/aerosol/instance.rb, line 15
def live?
  describe_again
  instance_state_name == 'running'
end
private_ip_address() click to toggle source
# File lib/aerosol/instance.rb, line 28
def private_ip_address
  description[:private_ip_address]
end
public_hostname() click to toggle source
# File lib/aerosol/instance.rb, line 24
def public_hostname
  description[:public_dns_name]
end

Private Instance Methods

describe!() click to toggle source
# File lib/aerosol/instance.rb, line 67
def describe!
  ensure_present! :instance_id
  result = Aerosol::AWS.compute.describe_instances(instance_ids: [instance_id])
  result.reservations.first.instances.first.to_h rescue nil
end
describe_again() click to toggle source
# File lib/aerosol/instance.rb, line 73
def describe_again
  @description = nil
  description
end