decking 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fc3e349f7fa27cafe70b4a5e2fb901715bb52159
4
- data.tar.gz: b01316554056df885d230d9c3632fec9e012469a
3
+ metadata.gz: 137023f8b0cee236fbc5612645883599181aa57c
4
+ data.tar.gz: 6113261cd16e5f695baf937476c02fa0cae5c6a2
5
5
  SHA512:
6
- metadata.gz: a3ab5bf1ff01a0e210174b3cc574c8b28f45fc3e723e50ff9964815dd91dccccf4d534101d8677a05b1b74372304469214bf62c22cebafc160cdb7a7e57da8ec
7
- data.tar.gz: ab3d2c5a3d2c0fea722f8481476e43a5e5a50201b15e6ca54fe0cc44dba991c7912afb25fa8a12a48f2211e6983a23f33070983798c550ffcc9545aa4749ff03
6
+ metadata.gz: 9cde73896e63d00db56db0e273f84beb560d418c4e4ad03fc68c83ce66c1b26c175eeadb298ea12adbd812c0a9fe4d61348a40ea3393a9eca52ea775d69f1ba2
7
+ data.tar.gz: bcd1ef4c2e421304b8005a85cc0c95e96b0ebaa6c69f10f40d03ee84b33f6f21bfbd9a3694a30a17e6924d4b70fd833dc961adfd35791f082f058b4c32c25b78
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- decking (0.0.2)
4
+ decking (0.0.4)
5
5
  docker-api (~> 1.22.2)
6
6
  gli
7
7
  hashie
data/bin/decking CHANGED
@@ -6,6 +6,16 @@ require 'decking'
6
6
  module Decking::CLI
7
7
  @@logger = Log4r::Logger.new('decking::cli')
8
8
  extend GLI::App
9
+
10
+ accept(Hash) do |value|
11
+ result = {}
12
+ value.split(/,/).each do |pair|
13
+ k,v = pair.split(/=/)
14
+ result[k] = v
15
+ end
16
+ result
17
+ end
18
+
9
19
  sort_help :manually
10
20
  subcommand_option_handling :normal
11
21
  config_file '.deckingrc'
@@ -18,11 +28,18 @@ module Decking::CLI
18
28
  desc 'The name of the cluster to use for all commands'
19
29
  flag [:cluster], :default_value => "unknown"
20
30
 
31
+ desc 'Add or override environment variables on all containers in cluster'
32
+ flag [:e, :env], :type => Hash, :default_value => {}
21
33
 
22
34
  pre do |global_options,options,args|
23
35
  @@logger.debug "Using #{global_options[:config]} for decking config"
24
36
  Decking::Parser.config_file global_options[:config]
25
37
  Decking::Parser.parse global_options[:cluster]
38
+ if !global_options[:env].nil?
39
+ Decking::Parser.config.containers.each_key do |container|
40
+ global_options[:env].each{|k, v| Decking::Parser.config.containers[container].env[k] = v}
41
+ end
42
+ end
26
43
  Decking::Parser.config.containers.map { |name, config| Decking::Container.add config }
27
44
  end
28
45
 
@@ -15,7 +15,7 @@ module Decking
15
15
  port_bindings[vars[0]] = [ { 'HostPort' => vars[0] } ]
16
16
  end
17
17
  end
18
- Docker::Container.get(name).start! 'Links' => links,
18
+ Docker::Container.get(name).start! 'Links' => links,
19
19
  'Binds' => binds,
20
20
  'LxcConf' => lxc_conf,
21
21
  'PortBindings' => port_bindings
@@ -97,7 +97,6 @@ module Decking
97
97
  if (!config.clusters[key].key? 'group') && (config.groups.key? key)
98
98
  config.clusters[key].group = key
99
99
  end
100
-
101
100
  raise "Cluster '" + key + "' is empty" unless config.clusters[key].key? "containers"
102
101
  raise "Cluster '" + key + "' containers should be an Array" unless config.clusters[key].containers.instance_of? Array
103
102
  end
@@ -105,7 +104,6 @@ module Decking
105
104
 
106
105
  def parse_groups
107
106
  config.groups.each do |key, val|
108
- config.groups[key] = Hashie::Mash.new if config.groups[key].nil?
109
107
  config.groups[key].options = Hashie::Mash.new unless config.groups[key].key? 'options'
110
108
  config.groups[key].containers = Hashie::Mash.new unless config.groups[key].key? 'containers'
111
109
  config.groups[key].containers.each do |c_key, c_val|
@@ -132,10 +130,12 @@ module Decking
132
130
  # Merge Global Overrides
133
131
  c.containers[k] = c.containers[k].deep_merge(config.global) if config.key? 'global'
134
132
  # Merge Group Overrides
135
- c.containers[k] = c.containers[k].deep_merge(config.groups[config.clusters[cluster].group].options)
136
- # Merge Group Container Overrides
137
- if config.groups[config.clusters[cluster].group].containers.key? k
138
- c.containers[k] = c.containers[k].deep_merge(config.groups[config.clusters[cluster].group].containers[k])
133
+ unless config.clusters[cluster].group.nil?
134
+ c.containers[k] = c.containers[k].deep_merge(config.groups[config.clusters[cluster].group].options)
135
+ # Merge Group Container Overrides
136
+ if config.groups[config.clusters[cluster].group].containers.key? k
137
+ c.containers[k] = c.containers[k].deep_merge(config.groups[config.clusters[cluster].group].containers[k])
138
+ end
139
139
  end
140
140
  c.containers[k].name = k + '.' + cluster
141
141
  c.containers[k].env.CONTAINER_NAME = k + '.' + cluster
@@ -1,3 +1,3 @@
1
1
  module Decking
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.4"
3
3
  end
@@ -29,6 +29,8 @@ containers:
29
29
  command: /bin/sh -c "while true; do echo 'Hello Brandon!!'; sleep 0.5; done"
30
30
 
31
31
  clusters:
32
+ test-no-group:
33
+ - hello-chris
32
34
  container-tests:
33
35
  - hello-chris
34
36
  - hello-brandon
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decking
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Randy D. Wallace Jr.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-05 00:00:00.000000000 Z
11
+ date: 2015-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie