Class: AwsRo::ElasticLoadBalancing::LoadBalancer

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/aws_ro/elastic_load_balancing/load_balancer.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(load_balancer, ec2_repository = nil) ⇒ LoadBalancer

Returns a new instance of LoadBalancer.



13
14
15
16
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 13

def initialize(load_balancer, ec2_repository = nil)
  @load_balancer = load_balancer
  @ec2_repository = ec2_repository
end

Instance Attribute Details

#ec2_repositoryObject

Returns the value of attribute ec2_repository.



9
10
11
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 9

def ec2_repository
  @ec2_repository
end

#instance_statesObject (readonly)

Returns the value of attribute instance_states.



8
9
10
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 8

def instance_states
  @instance_states
end

#load_balancerObject (readonly) Also known as: elb

Returns the value of attribute load_balancer.



8
9
10
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 8

def load_balancer
  @load_balancer
end

Instance Method Details

#health(instance_id) ⇒ Object



29
30
31
32
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 29

def health(instance_id)
  fail "Empty instance_states." if instance_states.nil?
  instance_states[instance_id.to_s]
end

#instance_idsObject



25
26
27
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 25

def instance_ids
  elb.instances.map(&:instance_id)
end

#instancesObject



18
19
20
21
22
23
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 18

def instances
  unless ec2_repository.respond_to?(:instance_ids)
    fail "Cannot use AwsRo::EC2::Repository"
  end
  @instances ||= elb.instances.empty? ? [] : ec2_repository.instance_ids(instance_ids)
end

#store_instance_states(instance_states) ⇒ Object



34
35
36
37
38
# File 'lib/aws_ro/elastic_load_balancing/load_balancer.rb', line 34

def store_instance_states(instance_states)
  @instance_states = instance_states.each_with_object({}) do |state, hash|
    hash[state.instance_id] = state
  end
end