Class: Kazoo::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/kazoo/cli.rb

Instance Method Summary collapse

Instance Method Details

#clusterObject



9
10
11
12
13
14
15
# File 'lib/kazoo/cli.rb', line 9

def cluster
  validate_class_options!

  kafka_cluster.brokers.values.sort_by(&:id).each do |broker|
    $stdout.puts "#{broker.id}:\t#{broker.addr}\t(hosts #{broker.replicated_partitions.length} partitions, leads #{broker.led_partitions.length})"
  end
end

#critical(broker_name) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/kazoo/cli.rb', line 44

def critical(broker_name)
  validate_class_options!

  if broker(broker_name).critical?(replicas: options[:replicas])
    raise Thor::Error, "WARNING: broker #{broker_name} is critical and cannot be stopped safely!"
  else
    $stdout.puts "Broker #{broker_name} is non-critical and can be stopped safely."
  end
end

#partitionsObject



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/kazoo/cli.rb', line 28

def partitions
  validate_class_options!

  topics = kafka_cluster.topics.values
  topics.select! { |t| t.name == options[:topic] } if options[:topic]
  topics.sort_by!(&:name)

  topics.each do |topic|
    topic.partitions.each do |partition|
      $stdout.puts "#{partition.topic.name}/#{partition.id}\tReplicas: #{partition.replicas.map(&:id).join(",")}"
    end
  end
end

#topicsObject



18
19
20
21
22
23
24
# File 'lib/kazoo/cli.rb', line 18

def topics
  validate_class_options!

  kafka_cluster.topics.values.sort_by(&:name).each do |topic|
    $stdout.puts topic.name
  end
end