docker_boss 0.1.3 → 0.1.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: fef17dd46df84f08ca1dabb724e7790b8befbe4d
4
- data.tar.gz: bddc9f196485a9a320311068c76680fd8df410cc
3
+ metadata.gz: 5c03ceae67ce9ce3052da36aeee4d4c69e39a8d5
4
+ data.tar.gz: 33ba01946a3c6349e8c31d72fa28b8a2bdcd7b58
5
5
  SHA512:
6
- metadata.gz: 85e9b3a2c78142d41459800c6c5deaf64b34f5a364cb3b6dc8fecd2f96679e655c128ce3791fa88a68dfd17656d9868c4c1e01ca0e978bb668ef8af09dd0b30d
7
- data.tar.gz: ee4f6111cf1a9c6bc533a5b7ff1d92afde6e4d08f2018293a2ca2bc1a6db146db41b2bc3ae633c041ce1128492b1c673d38f4e232318aba9d1e6ef1c7995aaef
6
+ metadata.gz: 374c2b5725ac24feab755bfa0a61127e6983a4bde7768c397b7d04ef4f2196b7378e7672fb77a662b08a1243054cbef730cd5d1839f4c233cba86ccdd2efa7ec
7
+ data.tar.gz: efdbd8dfd6e725dd8a76f914f6840c72edb43bbafaab8d0d654c38de36ab9dc1b389f51a6af77b5661297564ac0f1b5b31837d6abef02b5406c33d063e625819
data/README.md CHANGED
@@ -255,6 +255,7 @@ The `server` setting defines the host and port of the etcd server. SSL and basic
255
255
  The `setup` setting is a template, each line of which can manipulate keys in etcd. These key manipulations are run once when the module/DockerBoss starts, and can be used to ensure a clean slate, free of any old keys from a previous run. The `setup` template can use the `interface_ipv4` and `interface_ipv6` helpers. Each line must follow one of the following formats:
256
256
 
257
257
  - `ensure <key> <value>` - sets a given key in etcd to the given value.
258
+ - `ensure_dir <key>` - creates the given key as a directory in etcd.
258
259
  - `absent <key>` - removes a given key in etcd.
259
260
  - `absent_recursive <key>` removes a key and all its children.
260
261
 
@@ -275,13 +276,13 @@ etcd:
275
276
  setup: |
276
277
  absent_recursive /skydns/docker
277
278
  absent_recursive /vhosts
278
- ensure /skydns/docker/dockerhost/etcd <%= as_json(host: interface_ipv4('docker0'), port: '4001') %>
279
+ ensure /skydns/docker/dockerhost/etcd <%= as_json(host: interface_ipv4('docker0'), port: 4001) %>
279
280
 
280
281
  sets:
281
282
  skydns: |
282
283
  <% if container['Config']['Env'].has_key? 'SERVICES' %>
283
284
  <% container['Config']['Env']['SERVICES'].split(',').each do |s| %>
284
- ensure <%= "/skydns/#{s.split(':')[0].split('.').reverse.join('/')}" %> <%= as_json(host: container['NetworkSettings']['IPAddress'], port: s.split(':')[1]) %>
285
+ ensure <%= "/skydns/#{s.split(':')[0].split('.').reverse.join('/')}" %> <%= as_json(host: container['NetworkSettings']['IPAddress'], port: s.split(':')[1].to_i) %>
285
286
  <% end %>
286
287
  <% elsif container['Config']['Env'].has_key? 'SERVICE_NAME' %>
287
288
  ensure <%= "/skydns/#{container['Config']['Env']['SERVICE_NAME'].split('.').reverse.join('/')}" %> <%= as_json(host: container['NetworkSettings']['IPAddress']) %>
@@ -44,6 +44,15 @@ class DockerBoss::CLI < Thor
44
44
  rescue Docker::Error::DockerError => e
45
45
  DockerBoss.logger.fatal "Error communicating with Docker: #{e.message}"
46
46
  exit 1
47
+ rescue SignalException => e
48
+ case Signal.signame(e.signo)
49
+ when "TERM", "INT"
50
+ DockerBoss.logger.info "Received SIGTERM/SIGINT, shutting down."
51
+ exit 0
52
+ else
53
+ DockerBoss.logger.fatal "Fatal unhandled signal in event loop: #{Signal.signame(e.signo)}"
54
+ e.backtrace.each { |line| DockerBoss.logger.fatal " #{line}" }
55
+ end
47
56
  rescue Exception => e
48
57
  DockerBoss.logger.fatal "Fatal unhandled exception in event loop: #{e.class.name} -> #{e.message}"
49
58
  e.backtrace.each { |line| DockerBoss.logger.fatal " #{line}" }
@@ -34,6 +34,9 @@ class DockerBoss::Module::Etcd < DockerBoss::Module
34
34
  @client.delete(k, recursive: true)
35
35
  rescue ::Etcd::KeyNotFound
36
36
  end
37
+ when 'ensure_dir'
38
+ DockerBoss.logger.debug "etcd: (setup) Set key `#{k}` (dir)"
39
+ @client.set(k, dir: true)
37
40
  when 'ensure'
38
41
  DockerBoss.logger.debug "etcd: (setup) Set key `#{k}` => `#{v}`"
39
42
  @client.set(k, value: v)
@@ -1,3 +1,3 @@
1
1
  module DockerBoss
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker_boss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Hornung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-29 00:00:00.000000000 Z
11
+ date: 2014-12-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: docker-api