decking 0.0.2 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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