class Fog::AWS::AutoScaling::Group

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method
# File lib/fog/aws/models/auto_scaling/group.rb, line 26
def initialize(attributes={})
  self.instances = []
  self.default_cooldown = 300
  self.desired_capacity = 0
  self.enabled_metrics = []
  self.health_check_grace_period = 0
  self.health_check_type = 'EC2'
  self.load_balancer_names = []
  self.max_size = 0
  self.min_size = 0
  self.suspended_processes = []
  self.tags = {}
  self.termination_policies = ['Default']
  self.target_group_arns = []
  super
end

Public Instance Methods

activities() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 43
def activities
  requires :id

  activities = Fog::AWS::AutoScaling::Activities.new(:service => service, :filters => {'AutoScalingGroupName' => id})
end
attach_instances(*instance_ids) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 72
def attach_instances(*instance_ids)
  requires :id
  service.attach_instances(id, 'InstanceIds' => instance_ids)
  reload
end
attach_load_balancer_target_groups(*target_group_arns) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 78
def attach_load_balancer_target_groups(*target_group_arns)
  requires :id
  service.attach_load_balancer_target_groups(id, 'TargetGroupARNs' => target_group_arns)
  reload
end
attach_load_balancers(*load_balancer_names) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 49
def attach_load_balancers(*load_balancer_names)
  requires :id
  service.attach_load_balancers(id, 'LoadBalancerNames' => load_balancer_names)
  reload
end
configuration() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 55
def configuration
  requires :launch_configuration_name
  service.configurations.get(launch_configuration_name)
end
destroy(options = { :force => false }) click to toggle source

def reload

super
self

end

# File lib/fog/aws/models/auto_scaling/group.rb, line 158
def destroy(options = { :force => false })
  requires :id

  opts = {}
  opts.merge!({'ForceDelete' => true}) if options[:force]

  service.delete_auto_scaling_group(id, opts)
end
detach_instances(*instance_ids) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 66
def detach_instances(*instance_ids)
  requires :id
  service.detach_instances(id, 'InstanceIds' => instance_ids)
  reload
end
detach_load_balancer_target_groups(*target_group_arns) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 84
def detach_load_balancer_target_groups(*target_group_arns)
  requires :id
  service.detach_load_balancer_target_groups(id, 'TargetGroupARNs' => target_group_arns)
  reload
end
detach_load_balancers(*load_balancer_names) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 60
def detach_load_balancers(*load_balancer_names)
  requires :id
  service.detach_load_balancers(id, 'LoadBalancerNames' => load_balancer_names)
  reload
end
disable_metrics_collection(metrics = {}) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 90
def disable_metrics_collection(metrics = {})
  requires :id
  service.disable_metrics_collection(id, 'Metrics' => metrics)
  reload
end
enable_metrics_collection(granularity = '1Minute', metrics = {}) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 96
def enable_metrics_collection(granularity = '1Minute', metrics = {})
  requires :id
  service.enable_metrics_collection(id, granularity, 'Metrics' => metrics)
  reload
end
filtered_options(method) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 173
def filtered_options(method)
  Hash[options.select{|k,_| ExpectedOptions[method].include?(k)}]
end
instances() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 112
def instances
  Fog::AWS::AutoScaling::Instances.new(:service => service).load(attributes[:instances])
end
instances_in_service() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 116
def instances_in_service
  attributes[:instances].select {|hash| hash['LifecycleState'] == 'InService'}.map {|hash| hash['InstanceId']}
end
instances_out_service() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 120
def instances_out_service
  attributes[:instances].select {|hash| hash['LifecycleState'] == 'OutOfService'}.map {|hash| hash['InstanceId']}
end
options() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 177
def options
  ret = Hash[self.class.aliases.map { |key, value| [key, send(value)] }]
  ret.delete_if { |key, value| value.nil? }
  ret
end
ready?() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 136
def ready?
  # Is this useful?
  #instances_in_service.length == desired_capacity
  #instances_in_service.length >= min_size
  true
end
resume_processes(processes = []) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 124
def resume_processes(processes = [])
  requires :id
  service.resume_processes(id, 'ScalingProcesses' => processes)
  reload
end
save() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 143
def save
  requires :id
  requires :availability_zones
  requires :launch_configuration_name
  requires :max_size
  requires :min_size
  service.create_auto_scaling_group(id, availability_zones, launch_configuration_name, max_size, min_size, filtered_options(:create_auto_scaling_group))
  reload
end
set_instance_protection(instance_ids, protected_from_scale_in) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 102
def set_instance_protection(instance_ids, protected_from_scale_in)
  requires :id
  service.set_instance_protection(
    id,
    'InstanceIds' => instance_ids,
    'ProtectedFromScaleIn' => protected_from_scale_in
  )
  reload
end
suspend_processes(processes = []) click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 130
def suspend_processes(processes = [])
  requires :id
  service.suspend_processes(id, 'ScalingProcesses' => processes)
  reload
end
update() click to toggle source
# File lib/fog/aws/models/auto_scaling/group.rb, line 167
def update
  requires :id
  service.update_auto_scaling_group(id, filtered_options(:update_auto_scaling_group) )
  reload
end