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 +4 -4
- data/bin/pygmy +22 -3
- data/lib/pygmy/docker_service.rb +10 -0
- data/lib/pygmy/resolv_osx.rb +5 -1
- data/lib/pygmy/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9a1b8a1903a6a6c6635518fb6b6a8a9225db999c
|
4
|
+
data.tar.gz: 81beb618fec3d6955b000a5808d0df49dad002a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
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
|
|
data/lib/pygmy/docker_service.rb
CHANGED
@@ -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
|
data/lib/pygmy/resolv_osx.rb
CHANGED
@@ -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)
|
data/lib/pygmy/version.rb
CHANGED