class ConfigKit::Client::ConsulConnection

Attributes

config[R]
connection[R]

Public Class Methods

new(url, acl_token) click to toggle source
# File lib/config_kit/client.rb, line 16
def initialize(url, acl_token)
  setup_consul(url, acl_token)
end

Public Instance Methods

create_txn(data) click to toggle source
# File lib/config_kit/client.rb, line 34
def create_txn(data)
  prepare_txn_data(data,type='create')
  self
end
delete_txn(data,recurse=false) click to toggle source
# File lib/config_kit/client.rb, line 49
def delete_txn(data,recurse=false)
  prepare_txn_data(data,type='delete',recurse)
  self
end
determine_verb(_type, recurse) click to toggle source
# File lib/config_kit/client.rb, line 87
def determine_verb(_type, recurse)
  verb = nil
  type = _type.to_s
  case type
  when 'read'
    if recurse
      verb = 'get-tree'
    else
      verb = 'get'
    end
  when 'update'
    verb = 'set'
  when 'create'
    verb = 'set'
  when 'delete'
    if recurse
      verb = 'delete-tree'
    else
     verb = 'delete'
    end
  else
    verb = nil
  end
  verb
end
init_txn() click to toggle source
# File lib/config_kit/client.rb, line 54
def init_txn
  reset_txn_data
end
perform_txn() click to toggle source
# File lib/config_kit/client.rb, line 58
def perform_txn
  begin
    txn(@txn_data)
  rescue => e
    raise ConfigKitTxnError.new "perform txn error:#{e.message}"
  ensure
    reset_txn_data
  end
end
prepare_txn_data(data, type='read', recurse=false) click to toggle source
# File lib/config_kit/client.rb, line 72
def prepare_txn_data(data, type='read', recurse=false)
  init_txn if @txn_data.nil?
  verb = determine_verb(type, recurse)
  data.each_pair do |k,v|
    kv = {
       "Verb" => verb,
        "Key" => k.to_s,
      "Value" => v.to_s
    }

    @txn_data << {"KV" => kv}
  end
  @txn_data
end
put!(key, value, options = nil) click to toggle source
# File lib/config_kit/client.rb, line 28
def put!(key, value, options = nil)
  response = put(key, value, options = nil)
  raise ConfigKitUpdateError, "Config Kit Update key:#{key} error" unless response
  response
end
read_txn(data,recurse=false) click to toggle source
# File lib/config_kit/client.rb, line 39
def read_txn(data,recurse=false)
  prepare_txn_data(data,type='read',recurse)
  self
end
reset_txn_data() click to toggle source
# File lib/config_kit/client.rb, line 68
def reset_txn_data
  @txn_data = []
end
setup_consul(url, acl_token) click to toggle source
# File lib/config_kit/client.rb, line 20
def setup_consul(url, acl_token)
  @config = Diplomat.configure do |config|
    config.url = url
    config.acl_token = acl_token unless acl_token.nil?
  end
  @connection = Diplomat
end
update_txn(data) click to toggle source
# File lib/config_kit/client.rb, line 44
def update_txn(data)
  prepare_txn_data(data,type='read')
  self
end