class Kafkat::ClusterRestart::Subcommands::Next
Attributes
session[R]
topics[R]
Public Instance Methods
run()
click to toggle source
# File lib/kafkat/command/cluster_restart.rb, line 94 def run unless Session.exists? puts "ERROR: no session in progress" puts "\n[Action] Please run 'start' command" exit 1 end @session = Session.load! if @session.all_restarted? puts "All the brokers have been restarted" else pendings = @session.pending_brokers if pendings.size > 1 puts "ERROR Illegal state: multiple brokers are in Pending state" exit 1 elsif pendings.size == 1 next_broker = pendings[0] puts "Broker #{next_broker} is in Pending state" else @topics = zookeeper.get_topics next_broker, cost = ClusterRestartHelper.select_broker_with_min_cost(session, topics) @session.update_states!(Session::STATE_PENDING, [next_broker]) @session.save! puts "The next broker is: #{next_broker}" end puts "\n[Action-1] Restart broker #{next_broker} aka #{zookeeper.get_broker(next_broker).host}" puts "\n[Action-2] Run 'good #{next_broker}' to mark it as restarted." end end