class Asg::Rebooter::Configuration::AutoScalingGroup

Constants

ASG_MIN_SIZE_DELTA
AZREBALANCE

Attributes

asg[R]
original_min_size[R]
original_suspended_processes[R]

Public Class Methods

new(asg) click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 10
def initialize(asg)
  @asg = asg

  set_original_values
end

Public Instance Methods

prepare() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 16
def prepare
  suspend_az_rebalance
  decrease_min_size
end
restore() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 21
def restore
  restore_az_rebalance
  restore_min_size
end

Private Instance Methods

adjust_az_rebalance?() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 63
def adjust_az_rebalance?
  !original_suspended_processes.include?(AZREBALANCE)
end
adjust_min_size?() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 59
def adjust_min_size?
  @original_min_size > 0
end
decrease_min_size() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 45
def decrease_min_size
  return unless adjust_min_size?

  new_min_size = @original_min_size - ASG_MIN_SIZE_DELTA

  asg.update_min_size(new_min_size)
end
restore_az_rebalance() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 39
def restore_az_rebalance
  return unless adjust_az_rebalance?

  asg.resume_processes([AZREBALANCE])
end
restore_min_size() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 53
def restore_min_size
  return unless adjust_min_size?

  asg.update_min_size(original_min_size)
end
set_original_values() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 28
def set_original_values
  @original_min_size = asg.min_size
  @original_suspended_processes = asg.suspended_processes
end
suspend_az_rebalance() click to toggle source
# File lib/asg/rebooter/configuration/auto_scaling_group.rb, line 33
def suspend_az_rebalance
  return unless adjust_az_rebalance?

  asg.suspend_processes([AZREBALANCE])
end