class ConfigKit::Tool

Attributes

api_version[R]
config_data[R]
deploy_data[R]
idc_data[R]
kind[R]
namespace[R]

Public Class Methods

new(opts={}, api_version=ConfigKit.config.api_version, kind=ConfigKit.config.kind) click to toggle source
# File lib/config_kit/tool.rb, line 10
def initialize(opts={}, api_version=ConfigKit.config.api_version, kind=ConfigKit.config.kind)
  @kind = kind
  @api_version = api_version
  @url = opts.fetch(:url, ConfigKit.config.url)
  @acl_token = opts.fetch(:acl_token, ConfigKit.config.acl_token)
  @client = ConfigKit::Client.new(@url, @acl_token)
end

Public Instance Methods

all_apps() click to toggle source
# File lib/config_kit/tool.rb, line 134
def all_apps
  apps = @client.read(deploy_path)[kind]['deploy'].keys
  apps
end
bootstrap_config(data, name) click to toggle source
# File lib/config_kit/tool.rb, line 18
def bootstrap_config(data, name)
  ConfigKit::ConfigData.new(data, name, api_version, kind)
end
bootstrap_txn(data,name) click to toggle source
# File lib/config_kit/tool.rb, line 22
def bootstrap_txn(data,name)
  @config_data = bootstrap_config(data, name)
  @client.create_txn(@config_data)  
end
check_version_for?(app, version) click to toggle source
# File lib/config_kit/tool.rb, line 43
def check_version_for?(app, version)
  path = path_for(app, version)
  @client.read(path).nil?
end
delete_txn(data, name, version=nil) click to toggle source
# File lib/config_kit/tool.rb, line 91
def delete_txn(data, name, version=nil)
  config = bootstrap_config(data)
end
deploy_app_path(app) click to toggle source
# File lib/config_kit/tool.rb, line 151
def deploy_app_path(app)
  "#{deploy_path}/#{app}/default"
end
deploy_config(name, version,extra,cs) click to toggle source
# File lib/config_kit/tool.rb, line 27
def deploy_config(name, version,extra,cs)
  ConfigKit::DeployData.new(name, version, extra: extra, cs: cs)
end
deploy_path() click to toggle source
# File lib/config_kit/tool.rb, line 155
def deploy_path
  "/#{kind}/deploy"
end
deploy_txn(app,version,extra,cs=nil) click to toggle source
# File lib/config_kit/tool.rb, line 31
def deploy_txn(app,version,extra,cs=nil)
  if extra != :no_default && check_version_for?(app,version)
    ConfigKit.logger.debug "Missing version(#{version}) for app(#{app}) to set default"
    raise MissingDefaultVersionError.new "Missing default version for app(#{app}), pls set default version first.\n"
  end
  ConfigKit.logger.debug "compose deploy data for app(#{app}:#{version})"
  @deploy_data = deploy_config(app,version,extra, cs)
  @client.create_txn(@deploy_data)
  @client.perform_txn
  @deploy_data
end
describe(app, version) click to toggle source
# File lib/config_kit/tool.rb, line 69
def describe(app, version)
  @content = {}
  data = @client.read(idc_path)
  return @content if data.nil?
  @content['idc'] = data['config_kit']['idc']
  data = @client.read(deploy_path)
  return @content if data.nil?
  @content['deploy'] = data['config_kit']['deploy']
  unless app == 'idc'
    if version.nil?
      data = @client.read(path_for(app))
      return @content if data.nil?
      @content[app] = data['config_kit'][app]
    else
      data = @client.read(path_for(app))
      return @content if data.nil?
      @content[app] = data['config_kit'][app][version]
    end
  end
  @content
end
get(app) click to toggle source
# File lib/config_kit/tool.rb, line 95
def get(app)
  return get_all if app == 'all'
  get_one(app)
end
get_all() click to toggle source
# File lib/config_kit/tool.rb, line 100
def get_all()
  config_data = {}
  all_apps.each do |app|
    config_data = config_data.deep_merge(get_one(app))
  end
  config_data
end
get_app(app) click to toggle source
# File lib/config_kit/tool.rb, line 120
def get_app(app)
  version = version_for(app)
  if version.nil?
    ConfigKit.logger.debug "Missing default version for app(#{app})"
    raise MissingDefaultVersionError.new "Missing default version for app(#{app}), pls set default version first.\n"
  end
  app_path = path_for(app, version)
  pp app_path
  pp @client.read(app_path)
  app_version = @client.read(app_path)[kind]
  app_data = {}
  app_data[app] = app_version[app][version]
end
get_idc() click to toggle source
# File lib/config_kit/tool.rb, line 57
def get_idc
  data =  @client.read(idc_path)
  return {'idc' => 'N/A'} if data.nil?
  data['config_kit']['idc']
end
get_idc_env() click to toggle source
# File lib/config_kit/tool.rb, line 63
def get_idc_env
  data =  @client.read(idc_path)
  return nil if data.nil?
  data['config_kit']['idc']['env'] 
end
get_one(app) click to toggle source
# File lib/config_kit/tool.rb, line 108
def get_one(app)
  context = {}
  app_data = get_app(app)
  context[app] = app_data
  context[app]['idc'] = get_idc
  unless app == 'infra'
    infra_data = get_app('infra')['service'] 
    context[app]['service'] = infra_data
  end
  context
end
idc_config(name, env, opts) click to toggle source
# File lib/config_kit/tool.rb, line 48
def idc_config(name, env, opts)
  ConfigKit::IDCData.new(name, env, opts)
end
idc_init_txn(name, env, opts={}) click to toggle source
# File lib/config_kit/tool.rb, line 52
def idc_init_txn(name, env, opts={})
  @idc_data = idc_config(name, env, opts)
  @client.create_txn(@idc_data)
end
idc_path() click to toggle source
# File lib/config_kit/tool.rb, line 164
def idc_path
  "/#{kind}/idc"
end
init_txn() click to toggle source
# File lib/config_kit/tool.rb, line 143
def init_txn
  @client.init_txn
end
path_for(app, version=nil) click to toggle source
# File lib/config_kit/tool.rb, line 159
def path_for(app, version=nil)
  return "/#{kind}/#{app}" if version.nil?
  "/#{kind}/#{app}/#{version}" 
end
perform_txn() click to toggle source
# File lib/config_kit/tool.rb, line 147
def perform_txn
  @client.perform_txn
end
version_for(app) click to toggle source
# File lib/config_kit/tool.rb, line 139
def version_for(app)
  @client.read(deploy_app_path(app),false)
end