teamd-installer 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/teamd/installer/cli.rb +1 -1
- data/lib/teamd/installer/interfaces.rb +15 -0
- data/lib/teamd/installer/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: 8cd920c171bede1f620e2c50bb26bdda1fd0b466
|
4
|
+
data.tar.gz: d1fce94e865befdedad145304a6f2271d175cf00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba90d8f7e64d1850965d7b854e8fa2f3556c98614538dcc005941650951969fccd7fecb5ab0ab5feb1fdf035f7ea929f6b76681d449453bf1f2d3affe0d31df9
|
7
|
+
data.tar.gz: 483a66985b78aa7ab3e3b3e45953fcb072677db007faf5b582b9b49cfd70d008a9ee974b86e72e3ce8a6adbac2659d3eebaadaf185eb26bbb1eda535ff0cb3ba
|
data/lib/teamd/installer/cli.rb
CHANGED
@@ -18,7 +18,7 @@ module Teamd
|
|
18
18
|
@token ||= options[:etcd_discovery_id]
|
19
19
|
@token ||= TeamdTokenProvider.token
|
20
20
|
@token ||= EtcdTokenProvider.token
|
21
|
-
@public_ipv4 ||= Interfaces.
|
21
|
+
@public_ipv4 ||= Interfaces.public_ipv4
|
22
22
|
@private_ipv4 ||= Interfaces.internal_ipv4 except: ["127.0.0.1",@public_ipv4]
|
23
23
|
@config = TemplateConfig.new
|
24
24
|
@config.etcd_discovery_id = @token
|
@@ -3,6 +3,9 @@ require "socket"
|
|
3
3
|
module Teamd
|
4
4
|
module Installer
|
5
5
|
class Interfaces
|
6
|
+
CLASS_A = /(10)(\.([2][0-5][0-5]|[1][0-9][0-9]|[1-9][0-9]|[0-9])){3}/
|
7
|
+
CLASS_B = /(172)\.(1[6-9]|2[0-9]|3[0-1])(\.([2][0-5][0-5]|[1][0-9][0-9]|[1-9][0-9]|[0-9])){2}/
|
8
|
+
CLASS_C = /(192)\.(168)(\.([2][0-5][0-5]|[1][0-9][0-9]|[1-9][0-9]|[0-9])){2}/
|
6
9
|
class << self
|
7
10
|
def default_ipv4
|
8
11
|
begin
|
@@ -15,7 +18,19 @@ module Teamd
|
|
15
18
|
Socket.do_not_reverse_lookup = orig
|
16
19
|
end
|
17
20
|
end
|
21
|
+
def public_ipv4
|
22
|
+
address = default_ipv4
|
23
|
+
return address unless is_private? address
|
24
|
+
nil
|
25
|
+
end
|
26
|
+
def is_private? address
|
27
|
+
return true if address =~ CLASS_A
|
28
|
+
return true if address =~ CLASS_B
|
29
|
+
return true if address =~ CLASS_C
|
30
|
+
false
|
31
|
+
end
|
18
32
|
def internal_ipv4 except:[]
|
33
|
+
except = except.compact
|
19
34
|
Socket.getifaddrs.select do |ia|
|
20
35
|
ia.addr.pfamily == Socket::AF_INET
|
21
36
|
end.collect do |ia|
|