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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user