class Reschedule::Reschedulers::Base
Attributes
options[R]
Public Class Methods
new(options={})
click to toggle source
# File lib/reschedule/reschedulers/base.rb, line 8 def initialize(options={}) @options = options || {} @options.reverse_merge!(self.class.defaults) end
Public Instance Methods
run()
click to toggle source
# File lib/reschedule/reschedulers/base.rb, line 13 def run Reschedule.logger.debug "Starting #{self.class.name}" Reschedule.logger.debug "Dry run mode is on" if Reschedule.configuration.dry_run end
Private Instance Methods
reschedule_replication_controller(replication_controller_name)
click to toggle source
# File lib/reschedule/reschedulers/base.rb, line 20 def reschedule_replication_controller(replication_controller_name) Reschedule.logger.debug "Rescheduling #{replication_controller_name}" unless Reschedule.configuration.dry_run replication_controller = kubernetes_api.get_replication_controllers(label_selector: "name=#{replication_controller_name}").first original_replicas = replication_controller.spec.replicas replication_controller.spec.replicas = 0 kubernetes_api.update_replication_controller(replication_controller) sleep 0.5 replication_controller = kubernetes_api.get_replication_controllers(label_selector: "name=#{replication_controller_name}").first replication_controller.spec.replicas = original_replicas kubernetes_api.update_replication_controller(replication_controller) end Reschedule.logger.debug "Rescheduled #{replication_controller_name}" end