Module: Shipitron::ConsulKeys

Extended by:
ConsulKeys
Included in:
ConsulKeys, Server::Docker::Configure, Server::Git::Configure, Server::UpdateDeployRef
Defined in:
lib/shipitron/consul_keys.rb

Instance Method Summary collapse

Instance Method Details

#configure_consul_client!Object



8
9
10
11
12
13
14
15
16
# File 'lib/shipitron/consul_keys.rb', line 8

def configure_consul_client!
  if ENV['CONSUL_HOST'].nil?
    raise 'Environment variable CONSUL_HOST required'
  end

  Diplomat.configure do |config|
    config.url = "http://#{ENV['CONSUL_HOST']}:8500"
  end
end

#fetch_key(key:) ⇒ Object



18
19
20
21
22
23
# File 'lib/shipitron/consul_keys.rb', line 18

def fetch_key(key:)
  Logger.debug "Fetching key #{key}"
  value = Diplomat::Kv.get(key, {}, :return)
  value = nil if value == ''
  value
end

#fetch_key!(key:) ⇒ Object



25
26
27
28
29
30
31
# File 'lib/shipitron/consul_keys.rb', line 25

def fetch_key!(key:)
  fetch_key(key: key).tap do |value|
    if value.nil?
      raise "Key #{key} not found in consul!"
    end
  end
end

#set_key(key:, value:) ⇒ Object



33
34
35
36
# File 'lib/shipitron/consul_keys.rb', line 33

def set_key(key:, value:)
  Logger.debug "Setting key #{key}"
  Diplomat::Kv.put(key, value)
end

#set_key!(key:, value:) ⇒ Object



38
39
40
41
42
# File 'lib/shipitron/consul_keys.rb', line 38

def set_key!(key:, value:)
  set_key(key: key, value: value).tap do |retval|
    raise "Unable to set #{key}!" if retval != true
  end
end