Module: EtcdTools::Watchdog::Etcd

Included in:
Init
Defined in:
lib/etcd-tools/watchdog/etcd.rb

Instance Method Summary collapse

Instance Method Details

#etcd_connect!Object

connect to ETCD



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/etcd-tools/watchdog/etcd.rb', line 5

def etcd_connect!
  (host, port) = @config[:parameters][:etcd_endpoint].gsub(/^https?:\/\//, '').gsub(/\/$/, '').split(':')
  etcd = ::Etcd.client(host: host, port: port)
  begin
    versions = JSON.parse(etcd.version)
    info "<etcd> conncted to ETCD at #{@config[:parameters][:etcd_endpoint]}"
    info "<etcd> server version: #{versions['etcdserver']}"
    info "<etcd> cluster version: #{versions['etcdcluster']}"
    info "<etcd> healthy: #{etcd.healthy?}"
    return etcd
  rescue Exception => e
    err "<etcd> couldn't connect to etcd at #{host}:#{port}"
    err "<etcd> #{e.message}"
    @exit = true
  end
end

#leader?(etcd) ⇒ Boolean

is my ETCD the leader? <IMPLEMENTED>



24
25
26
# File 'lib/etcd-tools/watchdog/etcd.rb', line 24

def leader?(etcd)
  etcd.stats(:self)['id'] == etcd.stats(:self)['leaderInfo']['leader']
end