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