ensure that necessary autoscaling processes are not suspended
This commit is contained in:
parent
8c24fa8dbf
commit
5f4b9b59bf
|
@ -20,6 +20,12 @@ class AwsHaRelease
|
||||||
end
|
end
|
||||||
|
|
||||||
def execute!
|
def execute!
|
||||||
|
%w(RemoveFromLoadBalancerLowPriority Terminate Launch HealthCheck AddToLoadBalancer).each do |process|
|
||||||
|
if @group.suspended_processes.keys.include? process
|
||||||
|
raise "AutoScaling process #{process} is currently suspended on #{@group.name} but is necessary for this script."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
@group.suspend_processes @processes_to_suspend
|
@group.suspend_processes @processes_to_suspend
|
||||||
|
|
||||||
if @group.max_size == @group.desired_capacity
|
if @group.max_size == @group.desired_capacity
|
||||||
|
|
|
@ -46,7 +46,10 @@ describe 'aws-ha-release' do
|
||||||
@aws_ha_release.execute!
|
@aws_ha_release.execute!
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'requires certain autoscaling processes to not be suspended'
|
it 'requires certain autoscaling processes to not be suspended' do
|
||||||
|
@aws_ha_release.group.suspend_processes %w(RemoveFromLoadBalancerLowPriority Terminate Launch HealthCheck AddToLoadBalancer)
|
||||||
|
expect{ @aws_ha_release.execute! }.to raise_error
|
||||||
|
end
|
||||||
|
|
||||||
it 'adjusts the max size as well as the desired capacity if the desired capacity is equal to it' do
|
it 'adjusts the max size as well as the desired capacity if the desired capacity is equal to it' do
|
||||||
@group.update(max_size: 1, desired_capacity: 1)
|
@group.update(max_size: 1, desired_capacity: 1)
|
||||||
|
|
|
@ -22,7 +22,7 @@ module AWS
|
||||||
end
|
end
|
||||||
|
|
||||||
class Group
|
class Group
|
||||||
attr_reader :name, :max_size, :desired_capacity
|
attr_reader :name, :max_size, :desired_capacity, :suspended_processes
|
||||||
|
|
||||||
def initialize(name)
|
def initialize(name)
|
||||||
@name = name
|
@name = name
|
||||||
|
@ -31,7 +31,7 @@ module AWS
|
||||||
@desired_capacity = 1
|
@desired_capacity = 1
|
||||||
end
|
end
|
||||||
|
|
||||||
def suspend_processes(*processes)
|
def suspend_processes(processes)
|
||||||
processes.each do |process|
|
processes.each do |process|
|
||||||
@suspended_processes[process] = 'test'
|
@suspended_processes[process] = 'test'
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user