Class: Aws::AutoScaling::LoadBalancer
- Inherits:
- 
      Object
      
        - Object
- Aws::AutoScaling::LoadBalancer
 
- Defined in:
- gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb
Defined Under Namespace
Classes: Collection
Read-Only Attributes collapse
- 
  
    
      #group_name  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #name  ⇒ String 
    
    
      (also: #load_balancer_name)
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #state  ⇒ String 
    
    
  
  
  
  
  
  
  
  
  
    One of the following load balancer states:. 
Actions collapse
- 
  
    
      #attach(options = {})  ⇒ Types::AttachLoadBalancersResultType 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #detach(options = {})  ⇒ Types::DetachLoadBalancersResultType 
    
    
  
  
  
  
  
  
  
  
  
    
Associations collapse
Instance Method Summary collapse
- 
  
    
      #client  ⇒ Client 
    
    
  
  
  
  
  
  
  
  
  
    
- 
  
    
      #data  ⇒ Types::LoadBalancerState 
    
    
  
  
  
  
  
  
  
  
  
    Returns the data for this LoadBalancer. 
- 
  
    
      #data_loaded?  ⇒ Boolean 
    
    
  
  
  
  
  
  
  
  
  
    Returns trueif this resource is loaded.
- 
  
    
      #initialize(*args)  ⇒ LoadBalancer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of LoadBalancer. 
- 
  
    
      #wait_until(options = {}) {|resource| ... } ⇒ Resource 
    
    
  
  
  
  
  
  
  deprecated
  
  
    Deprecated. Use [Aws::AutoScaling::Client] #wait_until instead 
Constructor Details
#initialize(group_name, name, options = {}) ⇒ LoadBalancer #initialize(options = {}) ⇒ LoadBalancer
Returns a new instance of LoadBalancer.
| 24 25 26 27 28 29 30 31 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 24 def initialize(*args) = Hash === args.last ? args.pop.dup : {} @group_name = extract_group_name(args, ) @name = extract_name(args, ) @data = .delete(:data) @client = .delete(:client) || Client.new() @waiter_block_warned = false end | 
Instance Method Details
#attach(options = {}) ⇒ Types::AttachLoadBalancersResultType
| 205 206 207 208 209 210 211 212 213 214 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 205 def attach( = {}) = Aws::Util.deep_merge(, auto_scaling_group_name: @group_name, load_balancer_names: [@name] ) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.attach_load_balancers() end resp.data end | 
#client ⇒ Client
| 72 73 74 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 72 def client @client end | 
#data ⇒ Types::LoadBalancerState
Returns the data for this Aws::AutoScaling::LoadBalancer.
| 87 88 89 90 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 87 def data load unless @data @data end | 
#data_loaded? ⇒ Boolean
Returns true if this resource is loaded.  Accessing attributes or
#data on an unloaded resource will trigger a call to #load.
| 95 96 97 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 95 def data_loaded? !!@data end | 
#detach(options = {}) ⇒ Types::DetachLoadBalancersResultType
| 221 222 223 224 225 226 227 228 229 230 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 221 def detach( = {}) = Aws::Util.deep_merge(, auto_scaling_group_name: @group_name, load_balancer_names: [@name] ) resp = Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do @client.detach_load_balancers() end resp.data end | 
#group ⇒ AutoScalingGroup
| 235 236 237 238 239 240 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 235 def group AutoScalingGroup.new( name: @group_name, client: @client ) end | 
#group_name ⇒ String
| 36 37 38 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 36 def group_name @group_name end | 
#name ⇒ String Also known as: load_balancer_name
| 41 42 43 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 41 def name @name end | 
#state ⇒ String
One of the following load balancer states:
- Adding- The Auto Scaling instances are being registered with the load balancer.
- Added- All Auto Scaling instances are registered with the load balancer.
- InService- At least one Auto Scaling instance passed an- ELBhealth check.
- Removing- The Auto Scaling instances are being deregistered from the load balancer. If connection draining is enabled, Elastic Load Balancing waits for in-flight requests to complete before deregistering the instances.
- Removed- All Auto Scaling instances are deregistered from the load balancer.
| 65 66 67 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 65 def state data[:state] end | 
#wait_until(options = {}) {|resource| ... } ⇒ Resource
Use [Aws::AutoScaling::Client] #wait_until instead
The waiting operation is performed on a copy. The original resource remains unchanged.
Waiter polls an API operation until a resource enters a desired state.
Basic Usage
Waiter will polls until it is successful, it fails by entering a terminal state, or until a maximum number of attempts are made.
# polls in a loop until condition is true
resource.wait_until() {|resource| condition}
Example
instance.wait_until(max_attempts:10, delay:5) do |instance|
  instance.state.name == 'running'
end
Configuration
You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. The waiting condition is set by passing a block to #wait_until:
# poll for ~25 seconds
resource.wait_until(max_attempts:5,delay:5) {|resource|...}
Callbacks
You can be notified before each polling attempt and before each
delay. If you throw :success or :failure from these callbacks,
it will terminate the waiter.
started_at = Time.now
# poll for 1 hour, instead of a number of attempts
proc = Proc.new do |attempts, response|
  throw :failure if Time.now - started_at > 3600
end
  # disable max attempts
instance.wait_until(before_wait:proc, max_attempts:nil) {...}
Handling Errors
When a waiter is successful, it returns the Resource. When a waiter fails, it raises an error.
begin
  resource.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end
attempts attempt in seconds invoked before each attempt invoked before each wait
| 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | # File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/load_balancer.rb', line 179 def wait_until( = {}, &block) self_copy = self.dup attempts = 0 [:max_attempts] = 10 unless .key?(:max_attempts) [:delay] ||= 10 [:poller] = Proc.new do attempts += 1 if block.call(self_copy) [:success, self_copy] else self_copy.reload unless attempts == [:max_attempts] :retry end end Aws::Plugins::UserAgent.metric('RESOURCE_MODEL') do Aws::Waiters::Waiter.new().wait({}) end end |