Class: ConfigKit::Manager

Inherits:
Object
  • Object
show all
Defined in:
lib/config_kit/manager.rb

Defined Under Namespace

Classes: IDCEnvMissing

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app, opts) ⇒ Manager

Returns a new instance of Manager.



40
41
42
43
44
45
46
47
48
49
50
# File 'lib/config_kit/manager.rb', line 40

def initialize(app, opts)
  @app = app
  @opts = opts
  @tool = ConfigKit::Tool.new
  unless opts['skip_env_check'] == true
    env = @tool.get_idc_env 
    raise ConfigKit::Manager::IDCEnvMissing.new 'IDC environment missing, pls init it first!' if env.nil?
    @opts['env'] = env
  end
  
end

Class Method Details

.bootstrap(app, from, uri_kls, version, opts = {}) ⇒ Object



6
7
8
9
10
11
# File 'lib/config_kit/manager.rb', line 6

def self.bootstrap(app, from, uri_kls, version, opts={})
  opts['uri_kls'] = uri_kls
  opts['version'] = version
  opts['from'] = from
  new(app, opts).bootstrap
end

.deploy(app, version, opts = {}) ⇒ Object



23
24
25
26
# File 'lib/config_kit/manager.rb', line 23

def self.deploy(app, version, opts={})
  opts['version'] = version
  new(app, opts).deploy
end

.describe(app, version, opts = {}) ⇒ Object



13
14
15
16
# File 'lib/config_kit/manager.rb', line 13

def self.describe(app, version, opts={})
  opts['version'] = version
  new(app, opts).describe
end

.get(app, opts = {}) ⇒ Object



36
37
38
# File 'lib/config_kit/manager.rb', line 36

def self.get(app,opts={})
  new(app, opts).get
end

.init(name, env = 'int0', opts = {}) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/config_kit/manager.rb', line 28

def self.init(name, env='int0', opts={})
  app = 'idc'
  opts['name'] = name
  opts['env'] = env
  opts['skip_env_check'] = true
  new(app,opts).init
end

.rollback(app, version, opts = {}) ⇒ Object



18
19
20
21
# File 'lib/config_kit/manager.rb', line 18

def self.rollback(app, version, opts={})
  opts['version'] = version
  new(app, opts).rollback
end

Instance Method Details

#bootstrapObject



65
66
67
68
# File 'lib/config_kit/manager.rb', line 65

def bootstrap
  create
  {app: @app, version: @opts['version']}
end

#change_defaultObject



100
101
102
# File 'lib/config_kit/manager.rb', line 100

def change_default
  @tool.deploy_txn(@app, @opts['version'], :default_only)
end

#create(extra = :no_default) ⇒ Object



70
71
72
73
74
75
76
77
78
79
80
# File 'lib/config_kit/manager.rb', line 70

def create(extra=:no_default)
  ConfigKit::Data::Loader.load(@app, @opts['from'], @opts['uri_kls'], @opts['env'], @opts['version']) do |data|
    @tool.init_txn
    data.each_pair do |k,v|
      @tool.bootstrap_txn(v, k)
      version, cs = get_deploy_info(@tool.config_data)
      @tool.deploy_txn(k, version, extra,cs)
    end
    @tool.perform_txn
  end
end

#deployObject



92
93
94
# File 'lib/config_kit/manager.rb', line 92

def deploy
  change_default
end

#describeObject



60
61
62
63
# File 'lib/config_kit/manager.rb', line 60

def describe
  version = @opts['version']
  @tool.describe(@app, version)
end

#getObject



87
88
89
90
# File 'lib/config_kit/manager.rb', line 87

def get
  data = @tool.get(@app)[@app]
  data || {}
end

#get_deploy_info(config_data) ⇒ Object



82
83
84
85
# File 'lib/config_kit/manager.rb', line 82

def get_deploy_info(config_data)
  return [] unless config_data.kind_of?(ConfigKit::ConfigData)
  [config_data.data_version, config_data.data_cs]
end

#initObject



52
53
54
55
56
57
58
# File 'lib/config_kit/manager.rb', line 52

def init
  name = @opts.delete('name')
  env = @opts.delete('env')
  @tool.init_txn
  @tool.idc_init_txn(name, env, @opts)
  @tool.perform_txn
end

#rollbackObject



96
97
98
# File 'lib/config_kit/manager.rb', line 96

def rollback
  change_default
end