Class: Aerosol::Instance

Inherits:
Object
  • Object
show all
Includes:
AWSModel
Defined in:
lib/aerosol/instance.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from AWSModel

#create, #default_identifier, #destroy, #exists?, included, #initialize, #namespaced_name

Class Method Details

.request_allObject



48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/aerosol/instance.rb', line 48

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) ⇒ Object



43
44
45
46
# File 'lib/aerosol/instance.rb', line 43

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

Instance Method Details

#addressObject



27
28
29
30
31
32
33
# File 'lib/aerosol/instance.rb', line 27

def address
  if public_hostname.blank?
    private_ip_address
  else
    public_hostname
  end
end

#descriptionObject



39
40
41
# File 'lib/aerosol/instance.rb', line 39

def description
  @description ||= describe!
end

#image_idObject



35
36
37
# File 'lib/aerosol/instance.rb', line 35

def image_id
  description[:image_id]
end

#instance_state_nameObject



15
16
17
# File 'lib/aerosol/instance.rb', line 15

def instance_state_name
  description[:state][:name]
end

#live?Boolean

Returns:

  • (Boolean)


10
11
12
13
# File 'lib/aerosol/instance.rb', line 10

def live?
  describe_again
  instance_state_name == 'running'
end

#private_ip_addressObject



23
24
25
# File 'lib/aerosol/instance.rb', line 23

def private_ip_address
  description[:private_ip_address]
end

#public_hostnameObject



19
20
21
# File 'lib/aerosol/instance.rb', line 19

def public_hostname
  description[:public_dns_name]
end