Method: DiplomaticBag.consul_info

Defined in:
lib/diplomatic_bag/info.rb

.consul_info(options = {}) ⇒ Object

rubocop:disable Metrics/AbcSize



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/diplomatic_bag/info.rb', line 6

def self.consul_info(options = {})
  consul_self = Diplomat::Agent.self(options)
  puts 'Server: ' + consul_self['Config']['NodeName']
  puts 'Datacenter: ' + consul_self['Config']['Datacenter']
  puts 'Consul Version: ' + consul_self['Config']['Version']
  if consul_self['Stats']['consul']['leader_addr']
    puts 'Leader Address: ' + consul_self['Stats']['consul']['leader_addr']
    puts 'applied_index: ' + consul_self['Stats']['raft']['applied_index']
    puts 'commit_index: ' + consul_self['Stats']['raft']['commit_index']
  end
  members = Diplomat::Members.get(options)
  servers = members.select { |member| member['Tags']['role'] == 'consul' }.sort_by { |n| n['Name'] }
  nodes = members.select { |member| member['Tags']['role'] == 'node' }
  leader = Diplomat::Status.leader(options).split(':')[0]
  puts 'Servers Count: ' + servers.count.to_s
  puts 'Nodes Count: ' + nodes.count.to_s
  puts 'Servers:'
  servers.map do |s|
    if s['Tags']['role'] == 'consul'
      if s['Addr'] == leader
        puts '  ' + s['Name'] + ' ' + s['Addr'] + ' *Leader*'
      else
        puts '  ' + s['Name'] + ' ' + s['Addr']
      end
    end
  end
end