Class: Fog::AWS::AutoScaling::Group
- Inherits:
-
Model
- Object
- Model
- Fog::AWS::AutoScaling::Group
- Defined in:
- lib/fog/aws/models/auto_scaling/group.rb
Instance Method Summary collapse
- #activities ⇒ Object
- #attach_instances(*instance_ids) ⇒ Object
- #attach_load_balancer_target_groups(*target_group_arns) ⇒ Object
- #attach_load_balancers(*load_balancer_names) ⇒ Object
- #configuration ⇒ Object
-
#destroy(options = { :force => false }) ⇒ Object
def reload super self end.
- #detach_instances(*instance_ids) ⇒ Object
- #detach_load_balancer_target_groups(*target_group_arns) ⇒ Object
- #detach_load_balancers(*load_balancer_names) ⇒ Object
- #disable_metrics_collection(metrics = {}) ⇒ Object
- #enable_metrics_collection(granularity = '1Minute', metrics = {}) ⇒ Object
- #filtered_options(method) ⇒ Object
-
#initialize(attributes = {}) ⇒ Group
constructor
A new instance of Group.
- #instances ⇒ Object
- #instances_in_service ⇒ Object
- #instances_out_service ⇒ Object
- #options ⇒ Object
- #ready? ⇒ Boolean
- #resume_processes(processes = []) ⇒ Object
- #save ⇒ Object
- #suspend_processes(processes = []) ⇒ Object
- #update ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ Group
Returns a new instance of Group.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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. = {} self.termination_policies = ['Default'] self.target_group_arns = [] super end |
Instance Method Details
#activities ⇒ Object
43 44 45 46 47 |
# 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) ⇒ Object
72 73 74 75 76 |
# 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) ⇒ Object
78 79 80 81 82 |
# 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) ⇒ Object
49 50 51 52 53 |
# 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 ⇒ Object
55 56 57 58 |
# 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 }) ⇒ Object
def reload
super
self
end
148 149 150 151 152 153 154 155 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 148 def destroy( = { :force => false }) requires :id opts = {} opts.merge!({'ForceDelete' => true}) if [:force] service.delete_auto_scaling_group(id, opts) end |
#detach_instances(*instance_ids) ⇒ Object
66 67 68 69 70 |
# 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) ⇒ Object
84 85 86 87 88 |
# 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) ⇒ Object
60 61 62 63 64 |
# 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 = {}) ⇒ Object
90 91 92 93 94 |
# 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 = {}) ⇒ Object
96 97 98 99 100 |
# 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) ⇒ Object
163 164 165 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 163 def (method) Hash[.select{|k,_| ExpectedOptions[method].include?(k)}] end |
#instances ⇒ Object
102 103 104 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 102 def instances Fog::AWS::AutoScaling::Instances.new(:service => service).load(attributes[:instances]) end |
#instances_in_service ⇒ Object
106 107 108 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 106 def instances_in_service attributes[:instances].select {|hash| hash['LifecycleState'] == 'InService'}.map {|hash| hash['InstanceId']} end |
#instances_out_service ⇒ Object
110 111 112 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 110 def instances_out_service attributes[:instances].select {|hash| hash['LifecycleState'] == 'OutOfService'}.map {|hash| hash['InstanceId']} end |
#options ⇒ Object
167 168 169 170 171 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 167 def ret = Hash[self.class.aliases.map { |key, value| [key, send(value)] }] ret.delete_if { |key, value| value.nil? } ret end |
#ready? ⇒ Boolean
126 127 128 129 130 131 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 126 def ready? # Is this useful? #instances_in_service.length == desired_capacity #instances_in_service.length >= min_size true end |
#resume_processes(processes = []) ⇒ Object
114 115 116 117 118 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 114 def resume_processes(processes = []) requires :id service.resume_processes(id, 'ScalingProcesses' => processes) reload end |
#save ⇒ Object
133 134 135 136 137 138 139 140 141 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 133 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, (:create_auto_scaling_group)) reload end |
#suspend_processes(processes = []) ⇒ Object
120 121 122 123 124 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 120 def suspend_processes(processes = []) requires :id service.suspend_processes(id, 'ScalingProcesses' => processes) reload end |
#update ⇒ Object
157 158 159 160 161 |
# File 'lib/fog/aws/models/auto_scaling/group.rb', line 157 def update requires :id service.update_auto_scaling_group(id, (:update_auto_scaling_group) ) reload end |