specinfra 2.52.0 → 2.53.0
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 +4 -4
- data/lib/specinfra/command/darwin/base/interface.rb +9 -0
- data/lib/specinfra/command/freebsd/base/interface.rb +16 -7
- data/lib/specinfra/command/linux/base/interface.rb +8 -1
- data/lib/specinfra/command/openbsd/base/interface.rb +17 -8
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/darwin/interface_spec.rb +8 -1
- data/spec/command/freebsd/interface_spec.rb +8 -0
- data/spec/command/linux/interface_spec.rb +8 -0
- data/spec/command/openbsd/interface_spec.rb +10 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b02d08de2e1a388e5dd42aa9ff31b33baa4f2ce2
|
4
|
+
data.tar.gz: 00fb96fe4dab29973dea33064f9c388917e3f7b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 778e52d2d12eb06670a45da2ef3400021e733507e45cc4a316df84b7f46bbe9d71ecb164f63bf1e4be29450891d1d1850a6c1c6e5db5df97eac56d44d53ebe4b
|
7
|
+
data.tar.gz: 146a3c424c10225a18e8b828a0b12dbfc82a43269af8eb8871435deaff35dc423142d44376b782a394bacb556731bff074ee453c673d0dbe0fa98285d71e3c3d
|
@@ -32,6 +32,15 @@ class Specinfra::Command::Darwin::Base::Interface < Specinfra::Command::Base::In
|
|
32
32
|
"ifconfig #{interface} inet6 | grep 'inet6 #{ip_address}'"
|
33
33
|
end
|
34
34
|
|
35
|
+
def get_ipv4_address(interface)
|
36
|
+
"ifconfig #{interface} inet | grep inet | awk '{print $2}'"
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_ipv6_address(interface)
|
40
|
+
# Awk refuses to print '/' even with using escapes or hex so workaround with sed employed here.
|
41
|
+
"ifconfig #{interface} inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit"
|
42
|
+
end
|
43
|
+
|
35
44
|
def get_link_state(interface)
|
36
45
|
# Checks if interfaces is administratively up with the -u arg.
|
37
46
|
# L1 check via status. Virtual interfaces like tapX missing the status will report up.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class Specinfra::Command::Freebsd::Base::Interface < Specinfra::Command::Base::Interface
|
1
|
+
class Specinfra::Command::Freebsd::Base::Interface < Specinfra::Command::Base::Interface
|
2
2
|
class << self
|
3
3
|
def check_exists(name)
|
4
4
|
"ifconfig #{name}"
|
@@ -8,7 +8,7 @@ class Specinfra::Command::Freebsd::Base::Interface < Specinfra::Command::Base::I
|
|
8
8
|
ip_address = ip_address.dup
|
9
9
|
if ip_address =~ /\/\d+$/
|
10
10
|
# remove the prefix - better would be to calculate the netmask
|
11
|
-
ip_address.gsub!(/\/\d+$/, "")
|
11
|
+
ip_address.gsub!(/\/\d+$/, "")
|
12
12
|
end
|
13
13
|
ip_address << " "
|
14
14
|
ip_address.gsub!(".", "\\.")
|
@@ -20,18 +20,27 @@ class Specinfra::Command::Freebsd::Base::Interface < Specinfra::Command::Base::I
|
|
20
20
|
(ip_address, prefixlen) = ip_address.split(/\//)
|
21
21
|
ip_address.downcase!
|
22
22
|
if ip_address =~ /^fe80::/i
|
23
|
-
# link local needs the scope (interface) appended
|
23
|
+
# link local needs the scope (interface) appended
|
24
24
|
ip_address << "%#{interface}"
|
25
|
-
end
|
26
|
-
unless prefixlen.to_s.empty?
|
27
|
-
# append prefixlen
|
25
|
+
end
|
26
|
+
unless prefixlen.to_s.empty?
|
27
|
+
# append prefixlen
|
28
28
|
ip_address << " prefixlen #{prefixlen}"
|
29
|
-
else
|
29
|
+
else
|
30
30
|
ip_address << " "
|
31
31
|
end
|
32
32
|
"ifconfig #{interface} inet6 | grep 'inet6 #{ip_address}'"
|
33
33
|
end
|
34
34
|
|
35
|
+
def get_ipv4_address(interface)
|
36
|
+
"ifconfig #{interface} inet | grep inet | awk '{print $2}'"
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_ipv6_address(interface)
|
40
|
+
# Awk refuses to print '/' even with using escapes or hex so workaround with sed employed here.
|
41
|
+
"ifconfig #{interface} inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit"
|
42
|
+
end
|
43
|
+
|
35
44
|
def get_link_state(interface)
|
36
45
|
# Checks if interfaces is administratively up with the -u arg.
|
37
46
|
# L1 check via status. Virtual interfaces like tapX missing the status will report up.
|
@@ -34,9 +34,16 @@ class Specinfra::Command::Linux::Base::Interface < Specinfra::Command::Base::Int
|
|
34
34
|
"ip -6 addr show #{interface} | grep 'inet6 #{ip_address}'"
|
35
35
|
end
|
36
36
|
|
37
|
+
def get_ipv4_address(interface)
|
38
|
+
"ip -4 addr show #{interface} | grep #{interface}$ | awk '{print $2}'"
|
39
|
+
end
|
40
|
+
|
41
|
+
def get_ipv6_address(interface)
|
42
|
+
"ip -6 addr show #{interface} | grep inet6 | awk '{print $2}'"
|
43
|
+
end
|
44
|
+
|
37
45
|
def get_link_state(name)
|
38
46
|
"cat /sys/class/net/#{name}/operstate"
|
39
47
|
end
|
40
48
|
end
|
41
49
|
end
|
42
|
-
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class Specinfra::Command::Openbsd::Base::Interface < Specinfra::Command::Base::Interface
|
1
|
+
class Specinfra::Command::Openbsd::Base::Interface < Specinfra::Command::Base::Interface
|
2
2
|
class << self
|
3
3
|
def check_exists(name)
|
4
4
|
"ifconfig #{name}"
|
@@ -12,7 +12,7 @@ class Specinfra::Command::Openbsd::Base::Interface < Specinfra::Command::Base::I
|
|
12
12
|
ip_address = ip_address.dup
|
13
13
|
if ip_address =~ /\/\d+$/
|
14
14
|
# remove the prefix - better would be to calculate the netmask
|
15
|
-
ip_address.gsub!(/\/\d+$/, "")
|
15
|
+
ip_address.gsub!(/\/\d+$/, "")
|
16
16
|
end
|
17
17
|
ip_address << " "
|
18
18
|
ip_address.gsub!(".", "\\.")
|
@@ -24,22 +24,31 @@ class Specinfra::Command::Openbsd::Base::Interface < Specinfra::Command::Base::I
|
|
24
24
|
(ip_address, prefixlen) = ip_address.split(/\//)
|
25
25
|
ip_address.downcase!
|
26
26
|
if ip_address =~ /^fe80::/i
|
27
|
-
# link local needs the scope (interface) appended
|
27
|
+
# link local needs the scope (interface) appended
|
28
28
|
ip_address << "%#{interface}"
|
29
|
-
end
|
30
|
-
unless prefixlen.to_s.empty?
|
31
|
-
# append prefixlen
|
29
|
+
end
|
30
|
+
unless prefixlen.to_s.empty?
|
31
|
+
# append prefixlen
|
32
32
|
ip_address << " prefixlen #{prefixlen}"
|
33
|
-
else
|
33
|
+
else
|
34
34
|
ip_address << " "
|
35
35
|
end
|
36
36
|
"ifconfig #{interface} inet6 | grep 'inet6 #{ip_address}'"
|
37
37
|
end
|
38
38
|
|
39
|
+
def get_ipv4_address(interface)
|
40
|
+
"ifconfig #{interface} inet | grep inet | awk '{print $2}'"
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_ipv6_address(interface)
|
44
|
+
# Awk refuses to print '/' even with using escapes or hex so workaround with sed employed here.
|
45
|
+
"ifconfig #{interface} inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit"
|
46
|
+
end
|
47
|
+
|
39
48
|
def get_link_state(interface)
|
40
49
|
# Checks if interfaces is administratively up by parsing the options.
|
41
50
|
# L1 check via status. Virtual interfaces like tapX missing the status will report up.
|
42
|
-
# Emulates operstate in linux with exception of the unknown status.
|
51
|
+
# Emulates operstate in linux with exception of the unknown status.
|
43
52
|
%Q{ifconfig #{interface} 2>&1 | awk -v s=down -F '[:<>,]' } +
|
44
53
|
%Q{'NR == 1 && $3 == "UP" { s="up" }; /status:/ && $2 != " active" { s="down" }; END{ print s }'}
|
45
54
|
end
|
data/lib/specinfra/version.rb
CHANGED
@@ -32,7 +32,14 @@ describe get_command(:check_interface_has_ipv4_address, 'en0', '192.168.0.123/24
|
|
32
32
|
it { should eq "ifconfig en0 inet | grep 'inet 192\\.168\\.0\\.123 '" }
|
33
33
|
end
|
34
34
|
|
35
|
+
describe get_command(:get_interface_ipv4_address, 'en0') do
|
36
|
+
it { should eq "ifconfig en0 inet | grep inet | awk '{print $2}'" }
|
37
|
+
end
|
38
|
+
|
39
|
+
describe get_command(:get_interface_ipv6_address, 'en0') do
|
40
|
+
it { should eq "ifconfig en0 inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit" }
|
41
|
+
end
|
42
|
+
|
35
43
|
describe get_command(:get_interface_link_state, 'en0') do
|
36
44
|
it { should eq %Q{ifconfig -u en0 2>&1 | awk -v s=up '/status:/ && $2 != "active" { s="down" }; END {print s}'} }
|
37
45
|
end
|
38
|
-
|
@@ -27,6 +27,14 @@ describe get_command(:check_interface_has_ipv4_address, 'vtnet0', '192.168.0.123
|
|
27
27
|
it { should eq "ifconfig vtnet0 inet | grep 'inet 192\\.168\\.0\\.123 '" }
|
28
28
|
end
|
29
29
|
|
30
|
+
describe get_command(:get_interface_ipv4_address, 'vtnet0') do
|
31
|
+
it { should eq "ifconfig vtnet0 inet | grep inet | awk '{print $2}'" }
|
32
|
+
end
|
33
|
+
|
34
|
+
describe get_command(:get_interface_ipv6_address, 'vtnet0') do
|
35
|
+
it { should eq "ifconfig vtnet0 inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit" }
|
36
|
+
end
|
37
|
+
|
30
38
|
describe get_command(:get_interface_link_state, 'vtnet0') do
|
31
39
|
it { should eq %Q{ifconfig -u vtnet0 2>&1 | awk -v s=up '/status:/ && $2 != "active" { s="down" }; END {print s}'} }
|
32
40
|
end
|
@@ -19,6 +19,14 @@ describe get_command(:check_interface_has_ipv4_address, 'eth0', '192.168.0.123/2
|
|
19
19
|
it { should eq "ip -4 addr show eth0 | grep 'inet 192\\.168\\.0\\.123/24 '" }
|
20
20
|
end
|
21
21
|
|
22
|
+
describe get_command(:get_interface_ipv4_address, 'eth0') do
|
23
|
+
it { should eq "ip -4 addr show eth0 | grep eth0$ | awk '{print $2}'" }
|
24
|
+
end
|
25
|
+
|
26
|
+
describe get_command(:get_interface_ipv6_address, 'eth0') do
|
27
|
+
it { should eq "ip -6 addr show eth0 | grep inet6 | awk '{print $2}'" }
|
28
|
+
end
|
29
|
+
|
22
30
|
describe get_command(:get_interface_link_state, 'eth0') do
|
23
31
|
it { should eq "cat /sys/class/net/eth0/operstate" }
|
24
32
|
end
|
@@ -4,7 +4,7 @@ property[:os] = nil
|
|
4
4
|
set :os, :family => 'openbsd'
|
5
5
|
|
6
6
|
describe get_command(:get_interface_speed_of, 'vio0') do
|
7
|
-
it { should eq "ifconfig vio0 | grep 'media\:' | perl -pe 's|.*media\:.*\\((.*?)\\)|\\1|'" }
|
7
|
+
it { should eq "ifconfig vio0 | grep 'media\:' | perl -pe 's|.*media\:.*\\((.*?)\\)|\\1|'" }
|
8
8
|
end
|
9
9
|
|
10
10
|
describe get_command(:check_interface_has_ipv6_address, 'vio0', '2001:0db8:bd05:01d2:288a:1fc0:0001:10ee') do
|
@@ -31,8 +31,16 @@ describe get_command(:check_interface_has_ipv4_address, 'vio0', '192.168.0.123/2
|
|
31
31
|
it { should eq "ifconfig vio0 inet | grep 'inet 192\\.168\\.0\\.123 '" }
|
32
32
|
end
|
33
33
|
|
34
|
+
describe get_command(:get_interface_ipv4_address, 'vio0') do
|
35
|
+
it { should eq "ifconfig vio0 inet | grep inet | awk '{print $2}'" }
|
36
|
+
end
|
37
|
+
|
38
|
+
describe get_command(:get_interface_ipv6_address, 'vio0') do
|
39
|
+
it { should eq "ifconfig vio0 inet6 | grep inet6 | awk '{print $2$3$4}' | sed 's/prefixlen/\//'; exit" }
|
40
|
+
end
|
41
|
+
|
34
42
|
describe get_command(:get_interface_link_state, 'vio0') do
|
35
43
|
it do should eq %Q{ifconfig vio0 2>&1 | awk -v s=down -F '[:<>,]' } +
|
36
44
|
%Q{'NR == 1 && $3 == "UP" { s="up" }; /status:/ && $2 != " active" { s="down" }; END{ print s }'}
|
37
|
-
end
|
45
|
+
end
|
38
46
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: specinfra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.53.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-scp
|