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