pygmy 0.9.4 → 0.9.5

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: a01f3f5b33da9753d56df7bb251645e1cf0cc961
4
- data.tar.gz: a9e466393f6eaeb238e55f6ee9716dd01e7dd6f2
3
+ metadata.gz: 9a1b8a1903a6a6c6635518fb6b6a8a9225db999c
4
+ data.tar.gz: 81beb618fec3d6955b000a5808d0df49dad002a5
5
5
  SHA512:
6
- metadata.gz: 1902a2367c478394ef2b162aace8a8a5dc2c36a0e1ca20c4e46b066949742ee5b34e7e5f5e6924efe2018ba249a3ee0b9b4c65840b5aba6daab54fa001d119e5
7
- data.tar.gz: c032329491620456068a6fa59f127b325963dcb60d323626ec5662e4e153d3c385a3aea1a632997c9e02ae4d5fe33acc5f09e317cabe7c8dff49d490312743b3
6
+ metadata.gz: 38cc7bdd63d1d441c3c2b074e91bb8ff791d75a07a4be801938a375729652e836ebfe801510a33785287fce38a929fb709aee84990fe767aaca704289d89cb26
7
+ data.tar.gz: e9b2904bde94f66c555cc38f184d5333f3ccea8697ef9f82f6158ac177577b43d7ff3f12b96e97e2dee2f96fdbab3e95780e9235b31c84dc99cb6db620f6d1be
data/bin/pygmy CHANGED
@@ -8,7 +8,7 @@ require 'pygmy'
8
8
  class PygmyBin < Thor
9
9
  class_option :verbose, type: :boolean, aliases: '-v', default: false
10
10
 
11
- desc 'up', 'Bring up pygmy services (dnsmasq, resolv, ssh-agent)'
11
+ desc 'up', 'Bring up pygmy services (dnsmasq, haproxt, resolv, ssh-agent)'
12
12
  long_desc <<-LONGDESC
13
13
  Bring up pygmy services (dnsmasq, haproxy, resolv, ssh-agent)
14
14
 
@@ -21,8 +21,11 @@ class PygmyBin < Thor
21
21
  - ssh-agent: to keep the ssh-agent at one single place, so that all other docker containers
22
22
  can consume the ssh key.
23
23
 
24
- Additionally the local resolver (/etc/resolv.conf) will be configured to use the dnsmasq
25
- instance as a nameserver
24
+ On Linux: The local resolver (/etc/resolv.conf) will be configured to use the dnsmasq
25
+ instance as a nameserver.
26
+
27
+ On Mac: A resolver file (/etc/resolver/docker.amazee.io) will be created to use the dnsmasq
28
+ instance as a nameserver for all *.docker.amazee.io domains.
26
29
 
27
30
  > $ pygmy up
28
31
  LONGDESC
@@ -30,6 +33,15 @@ class PygmyBin < Thor
30
33
  exec_up(options)
31
34
  end
32
35
 
36
+ desc 'update', 'Pulls Docker Images and recreates the Containers'
37
+ long_desc <<-LONGDESC
38
+ Runs 'docker pull' on the Docker images in order to get their newest versions.
39
+ After that restarts all containers with removing them, so that the new images are used.
40
+ LONGDESC
41
+ def update
42
+ exec_update
43
+ end
44
+
33
45
  desc 'stop', 'Stop all pygmy services'
34
46
  long_desc <<-LONGDESC
35
47
  Stops all pygmy services. Can optionally pass [-d|--destroy]
@@ -94,6 +106,13 @@ class PygmyBin < Thor
94
106
 
95
107
  private
96
108
 
109
+ def exec_update
110
+ Pygmy::Haproxy.pull
111
+ Pygmy::SshAgent.pull
112
+ puts "Done. Recreating containers...".yellow
113
+ exec_stop({:destroy => true})
114
+ exec_up({})
115
+ end
97
116
 
98
117
  def exec_up(options)
99
118
 
@@ -18,6 +18,16 @@ module Pygmy
18
18
  self.running?
19
19
  end
20
20
 
21
+ def pull
22
+ puts "Pulling Docker Image #{Shellwords.escape(self.image_name)}".yellow
23
+ success = Sh.run_command("docker pull #{Shellwords.escape(self.image_name)}").success?
24
+ unless success
25
+ raise RuntimeError.new(
26
+ "Failed to update #{self.container_name}. Command #{self.pull_cmd} failed"
27
+ )
28
+ end
29
+ end
30
+
21
31
  def running?(container_name = self.container_name)
22
32
  !!(self.ps =~ /#{container_name}/)
23
33
  end
@@ -13,7 +13,7 @@ module Pygmy
13
13
  end
14
14
 
15
15
  def self.create_resolver?
16
- puts "setting up DNS resolution, this may require sudo".green
16
+ puts "setting up DNS resolution and loopback alias IP, this may require sudo".green
17
17
  unless self.resolver_dir.directory?
18
18
  self.system!("creating #{self.resolver_dir}", "sudo", "mkdir", "-p", self.resolver_dir)
19
19
  end
@@ -23,11 +23,15 @@ module Pygmy
23
23
  self.system!("creating #{self.resolver_file}", "sudo", "cp", f.path, self.resolver_file)
24
24
  self.system!("creating #{self.resolver_file}", "sudo", "chmod", "644", self.resolver_file)
25
25
  end
26
+ self.system!("creating loopback IP alias 172.16.172.16", "sudo", "ifconfig", "lo0", "alias", "172.16.172.16")
26
27
  self.system!("restarting mDNSResponder", "sudo", "killall", "mDNSResponder")
27
28
  end
28
29
 
29
30
  def self.clean?
31
+ puts "Removing resolver file and loopback alias IP, this may require sudo".green
30
32
  self.system!("removing resolverfile", "sudo", "rm", "-f", self.resolver_file)
33
+ self.system!("removing loopback IP alias 172.16.172.16", "sudo", "ifconfig", "lo0", "-alias", "172.16.172.16")
34
+ system!("restarting mDNSResponder", "sudo", "killall", "mDNSResponder")
31
35
  end
32
36
 
33
37
  def self.system!(step, *args)
@@ -1,4 +1,4 @@
1
1
  module Pygmy
2
- VERSION = '0.9.4'
2
+ VERSION = '0.9.5'
3
3
  DATE = '2016-04-30'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pygmy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Schmid