pygmy 0.9.4 → 0.9.5

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: 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