facter 2.4.4-x64-mingw32 → 2.4.5-x64-mingw32
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.
- data/lib/facter/core/execution/posix.rb +2 -2
- data/lib/facter/gid.rb +1 -1
- data/lib/facter/ipaddress.rb +5 -14
- data/lib/facter/ipaddress6.rb +3 -2
- data/lib/facter/macaddress.rb +3 -8
- data/lib/facter/netmask.rb +9 -1
- data/lib/facter/processors/os.rb +1 -1
- data/lib/facter/util/ip.rb +17 -0
- data/lib/facter/util/netmask.rb +0 -6
- data/lib/facter/util/virtual.rb +2 -2
- data/lib/facter/version.rb +1 -1
- data/spec/fixtures/ifconfig/net_route_all_with_multiple_interfaces +2 -0
- data/spec/fixtures/ifconfig/net_route_net_tools_1.60.txt +3 -0
- data/spec/fixtures/unit/ipaddress/net_route_multiple_127_addresses.txt +3 -0
- data/spec/fixtures/unit/ipaddress/net_route_net_tools_1.60.txt +3 -0
- data/spec/fixtures/unit/ipaddress/net_route_non_english_locale.txt +3 -0
- data/spec/fixtures/unit/ipaddress/net_route_ubuntu_1204.txt +3 -0
- data/spec/fixtures/unit/netmask/{darwin_10_8_5.txt → ifconfig_darwin_10_8_5.txt} +0 -0
- data/spec/fixtures/unit/netmask/net_route_multiple_127_addresses.txt +3 -0
- data/spec/fixtures/unit/netmask/net_route_net_tools_1.60.txt +3 -0
- data/spec/fixtures/unit/netmask/net_route_non_english_locale.txt +3 -0
- data/spec/fixtures/unit/netmask/net_route_ubuntu_1204.txt +3 -0
- data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices +10 -0
- data/spec/unit/core/execution/posix_spec.rb +10 -0
- data/spec/unit/gid_spec.rb +9 -0
- data/spec/unit/ipaddress6_spec.rb +16 -4
- data/spec/unit/ipaddress_spec.rb +12 -12
- data/spec/unit/macaddress_spec.rb +6 -1
- data/spec/unit/netmask_spec.rb +17 -4
- data/spec/unit/processors/os_spec.rb +2 -0
- data/spec/unit/util/virtual_spec.rb +11 -0
- metadata +26 -4
@@ -11,11 +11,11 @@ class Facter::Core::Execution::Posix < Facter::Core::Execution::Base
|
|
11
11
|
|
12
12
|
def which(bin)
|
13
13
|
if absolute_path?(bin)
|
14
|
-
return bin if File.executable?(bin)
|
14
|
+
return bin if File.executable?(bin) and File.file?(bin)
|
15
15
|
else
|
16
16
|
search_paths.each do |dir|
|
17
17
|
dest = File.join(dir, bin)
|
18
|
-
return dest if File.executable?(dest)
|
18
|
+
return dest if File.executable?(dest) and File.file?(dest)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
nil
|
data/lib/facter/gid.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
Facter.add(:gid) do
|
12
12
|
confine do
|
13
|
-
Facter::Core::Execution.which('id') && Facter.value(:kernel)
|
13
|
+
Facter::Core::Execution.which('id') && !["SunOS", "windows"].include?(Facter.value(:kernel))
|
14
14
|
end
|
15
15
|
setcode { Facter::Core::Execution.exec('id -ng') }
|
16
16
|
end
|
data/lib/facter/ipaddress.rb
CHANGED
@@ -3,7 +3,9 @@
|
|
3
3
|
# Purpose: Return the main IP address for a host.
|
4
4
|
#
|
5
5
|
# Resolution:
|
6
|
-
# On
|
6
|
+
# On Linux and AIX, it examines the routing table and uses the IP address
|
7
|
+
# of the default interface.
|
8
|
+
# On other Unixes does an ifconfig, and returns the first non 127.0.0.0/8
|
7
9
|
# subnetted IP it finds.
|
8
10
|
# On Windows, it attempts to use the socket library and resolve the machine's
|
9
11
|
# hostname via DNS.
|
@@ -27,19 +29,8 @@ require 'facter/util/ip'
|
|
27
29
|
Facter.add(:ipaddress) do
|
28
30
|
confine :kernel => :linux
|
29
31
|
setcode do
|
30
|
-
|
31
|
-
|
32
|
-
if output
|
33
|
-
regexp = /inet (?:addr:)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
34
|
-
output.split("\n").each do |line|
|
35
|
-
match = regexp.match(line)
|
36
|
-
if match and not /^127\./.match(match[1])
|
37
|
-
ip = match[1]
|
38
|
-
break
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
ip
|
32
|
+
iface = Facter::Util::IP.linux_default_iface
|
33
|
+
Facter.value("ipaddress_#{iface}")
|
43
34
|
end
|
44
35
|
end
|
45
36
|
|
data/lib/facter/ipaddress6.rb
CHANGED
@@ -37,11 +37,12 @@ def get_address_after_token(output, token, return_first=false)
|
|
37
37
|
ip
|
38
38
|
end
|
39
39
|
|
40
|
+
|
40
41
|
Facter.add(:ipaddress6) do
|
41
42
|
confine :kernel => :linux
|
42
43
|
setcode do
|
43
|
-
|
44
|
-
|
44
|
+
iface = Facter::Util::IP.linux_default_iface
|
45
|
+
Facter.value("ipaddress6_#{iface}")
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
data/lib/facter/macaddress.rb
CHANGED
@@ -12,15 +12,10 @@ require 'facter/util/macaddress'
|
|
12
12
|
require 'facter/util/ip'
|
13
13
|
|
14
14
|
Facter.add(:macaddress) do
|
15
|
-
confine :kernel =>
|
15
|
+
confine :kernel => :linux
|
16
16
|
setcode do
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
String(output).each_line do |s|
|
21
|
-
ether.push($1) if s =~ /(?:ether|HWaddr) ((\w{1,2}:){5,}\w{1,2})/
|
22
|
-
end
|
23
|
-
Facter::Util::Macaddress.standardize(ether[0])
|
17
|
+
iface = Facter::Util::IP.linux_default_iface
|
18
|
+
Facter.value("macaddress_#{iface}")
|
24
19
|
end
|
25
20
|
end
|
26
21
|
|
data/lib/facter/netmask.rb
CHANGED
@@ -16,8 +16,16 @@
|
|
16
16
|
#
|
17
17
|
require 'facter/util/netmask'
|
18
18
|
|
19
|
+
Facter.add(:netmask) do
|
20
|
+
confine :kernel => :linux
|
21
|
+
setcode do
|
22
|
+
iface = Facter::Util::IP.linux_default_iface
|
23
|
+
Facter.value("netmask_#{iface}")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
19
27
|
Facter.add("netmask") do
|
20
|
-
confine :kernel => [ :sunos, :
|
28
|
+
confine :kernel => [ :sunos, :freebsd, :openbsd, :netbsd, :darwin, :"gnu/kfreebsd", :dragonfly, :AIX ]
|
21
29
|
setcode do
|
22
30
|
Facter::NetMask.get_netmask
|
23
31
|
end
|
data/lib/facter/processors/os.rb
CHANGED
@@ -112,7 +112,7 @@ module Facter
|
|
112
112
|
# get each physical processor
|
113
113
|
Facter::Util::WMI.execquery("select * from Win32_Processor").each do |proc|
|
114
114
|
# not supported before 2008
|
115
|
-
if proc.
|
115
|
+
if proc.ole_respond_to?(:NumberOfLogicalProcessors)
|
116
116
|
processor_num = proc.NumberOfLogicalProcessors
|
117
117
|
else
|
118
118
|
processor_num = 1
|
data/lib/facter/util/ip.rb
CHANGED
@@ -337,4 +337,21 @@ module Facter::Util::IP
|
|
337
337
|
network = ip.mask(subnet.to_s).to_s
|
338
338
|
end
|
339
339
|
end
|
340
|
+
|
341
|
+
def self.read_proc_net_route
|
342
|
+
File.read("/proc/net/route")
|
343
|
+
end
|
344
|
+
|
345
|
+
def self.linux_default_iface
|
346
|
+
routes = read_proc_net_route
|
347
|
+
iface = nil
|
348
|
+
routes.split("\n").each do |line|
|
349
|
+
parts = line.split
|
350
|
+
if parts[1] == "00000000"
|
351
|
+
iface = alphafy(parts[0])
|
352
|
+
break
|
353
|
+
end
|
354
|
+
end
|
355
|
+
iface
|
356
|
+
end
|
340
357
|
end
|
data/lib/facter/util/netmask.rb
CHANGED
@@ -5,12 +5,6 @@ module Facter::NetMask
|
|
5
5
|
|
6
6
|
ops = nil
|
7
7
|
case Facter.value(:kernel)
|
8
|
-
when 'Linux'
|
9
|
-
ops = {
|
10
|
-
:ifconfig_opts => ['2>/dev/null'],
|
11
|
-
:regex => %r{#{Facter.value(:ipaddress)}.*?(?:Mask:|netmask)\s*(#{ipregex})}x,
|
12
|
-
:munge => nil,
|
13
|
-
}
|
14
8
|
when 'SunOS'
|
15
9
|
ops = {
|
16
10
|
:ifconfig_opts => ['-a'],
|
data/lib/facter/util/virtual.rb
CHANGED
@@ -162,7 +162,7 @@ module Facter::Util::Virtual
|
|
162
162
|
path = Pathname.new('/proc/1/cgroup')
|
163
163
|
return false unless path.readable?
|
164
164
|
begin
|
165
|
-
in_lxc = path.readlines.any? {|l| l.split(":")[2].to_s.
|
165
|
+
in_lxc = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/lxc' }
|
166
166
|
rescue Errno::EPERM => exc
|
167
167
|
# If we get "operation not permitted" here, it probably means we are
|
168
168
|
# running OpenVZ. We are not running LXC anyway, so...
|
@@ -179,7 +179,7 @@ module Facter::Util::Virtual
|
|
179
179
|
path = Pathname.new('/proc/1/cgroup')
|
180
180
|
return false unless path.readable?
|
181
181
|
begin
|
182
|
-
in_docker = path.readlines.any? {|l| l.split(":")[2].to_s.
|
182
|
+
in_docker = path.readlines.any? {|l| l.split(":")[2].to_s.include? '/docker' }
|
183
183
|
rescue Errno::EPERM => exc
|
184
184
|
# This can fail under OpenVZ, just like in .lxc?
|
185
185
|
return false
|
data/lib/facter/version.rb
CHANGED
File without changes
|
@@ -0,0 +1,10 @@
|
|
1
|
+
10:hugetlb:/
|
2
|
+
9:perf_event:/
|
3
|
+
8:blkio:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
4
|
+
7:net_cls:/
|
5
|
+
6:freezer:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
6
|
+
5:devices:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
7
|
+
4:memory:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
8
|
+
3:cpuacct,cpu:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
9
|
+
2:cpuset:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
10
|
+
1:name=systemd:/system.slice/docker-8255e18aa44c5809a33db5f324a4b34e3a73b246394e4070cff752cd84d79a6d.scope
|
@@ -16,6 +16,7 @@ describe Facter::Core::Execution::Posix, :unless => Facter::Util::Config.is_wind
|
|
16
16
|
|
17
17
|
context "and provided with an absolute path" do
|
18
18
|
it "should return the binary if executable" do
|
19
|
+
File.expects(:file?).with('/opt/foo').returns true
|
19
20
|
File.expects(:executable?).with('/opt/foo').returns true
|
20
21
|
subject.which('/opt/foo').should == '/opt/foo'
|
21
22
|
end
|
@@ -24,12 +25,21 @@ describe Facter::Core::Execution::Posix, :unless => Facter::Util::Config.is_wind
|
|
24
25
|
File.expects(:executable?).with('/opt/foo').returns false
|
25
26
|
subject.which('/opt/foo').should be_nil
|
26
27
|
end
|
28
|
+
|
29
|
+
it "should return nil if the binary is not a file" do
|
30
|
+
File.expects(:file?).with('/opt/foo').returns false
|
31
|
+
File.expects(:executable?).with('/opt/foo').returns true
|
32
|
+
subject.which('/opt/foo').should be_nil
|
33
|
+
end
|
27
34
|
end
|
28
35
|
|
29
36
|
context "and not provided with an absolute path" do
|
30
37
|
it "should return the absolute path if found" do
|
38
|
+
File.expects(:file?).with('/bin/foo').never
|
31
39
|
File.expects(:executable?).with('/bin/foo').returns false
|
40
|
+
File.expects(:file?).with('/sbin/foo').returns true
|
32
41
|
File.expects(:executable?).with('/sbin/foo').returns true
|
42
|
+
File.expects(:file?).with('/usr/sbin/foo').never
|
33
43
|
File.expects(:executable?).with('/usr/sbin/foo').never
|
34
44
|
subject.which('foo').should == '/sbin/foo'
|
35
45
|
end
|
data/spec/unit/gid_spec.rb
CHANGED
@@ -39,4 +39,13 @@ describe "gid fact" do
|
|
39
39
|
Facter.fact(:gid).value.should == nil
|
40
40
|
end
|
41
41
|
end
|
42
|
+
|
43
|
+
describe "on windows systems" do
|
44
|
+
it "is not supported" do
|
45
|
+
Facter.fact(:kernel).stubs(:value).returns("windows")
|
46
|
+
Facter::Core::Execution.expects(:which).with('id').returns(true)
|
47
|
+
|
48
|
+
Facter.fact(:gid).value.should == nil
|
49
|
+
end
|
50
|
+
end
|
42
51
|
end
|
@@ -26,8 +26,11 @@ describe "The IPv6 address fact" do
|
|
26
26
|
it "should return ipaddress6 information for Linux" do
|
27
27
|
Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
|
28
28
|
Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
|
29
|
-
Facter::Util::IP.stubs(:exec_ifconfig).
|
29
|
+
Facter::Util::IP.stubs(:exec_ifconfig).
|
30
30
|
returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces'))
|
31
|
+
routes = ifconfig_fixture('net_route_all_with_multiple_interfaces')
|
32
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
33
|
+
Facter.collection.internal_loader.load(:interfaces)
|
31
34
|
|
32
35
|
Facter.value(:ipaddress6).should == "2610:10:20:209:212:3fff:febe:2201"
|
33
36
|
end
|
@@ -35,8 +38,11 @@ describe "The IPv6 address fact" do
|
|
35
38
|
it "should return ipaddress6 information for Linux with recent net-tools" do
|
36
39
|
Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
|
37
40
|
Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
|
38
|
-
Facter::Util::IP.stubs(:exec_ifconfig).
|
41
|
+
Facter::Util::IP.stubs(:exec_ifconfig).
|
39
42
|
returns(ifconfig_fixture('ifconfig_net_tools_1.60.txt'))
|
43
|
+
routes = ifconfig_fixture('net_route_net_tools_1.60.txt')
|
44
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
45
|
+
Facter.collection.internal_loader.load(:interfaces)
|
40
46
|
|
41
47
|
Facter.value(:ipaddress6).should == "2610:10:20:209:212:3fff:febe:2201"
|
42
48
|
end
|
@@ -44,8 +50,11 @@ describe "The IPv6 address fact" do
|
|
44
50
|
it "should return ipaddress6 with fe80 in any other octet than the first for Linux" do
|
45
51
|
Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
|
46
52
|
Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
|
47
|
-
Facter::Util::IP.stubs(:exec_ifconfig).
|
53
|
+
Facter::Util::IP.stubs(:exec_ifconfig).
|
48
54
|
returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces_and_fe80'))
|
55
|
+
routes = ifconfig_fixture('net_route_all_with_multiple_interfaces')
|
56
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
57
|
+
Facter.collection.internal_loader.load(:interfaces)
|
49
58
|
|
50
59
|
Facter.value(:ipaddress6).should == "2610:10:20:209:212:3fff:fe80:2201"
|
51
60
|
end
|
@@ -53,8 +62,11 @@ describe "The IPv6 address fact" do
|
|
53
62
|
it "should not return ipaddress6 link-local address for Linux" do
|
54
63
|
Facter::Core::Execution.stubs(:exec).with('uname -s').returns('Linux')
|
55
64
|
Facter::Util::IP.stubs(:get_ifconfig).returns("/sbin/ifconfig")
|
56
|
-
Facter::Util::IP.stubs(:exec_ifconfig).
|
65
|
+
Facter::Util::IP.stubs(:exec_ifconfig).
|
57
66
|
returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces_and_no_public_ipv6'))
|
67
|
+
routes = ifconfig_fixture('net_route_all_with_multiple_interfaces')
|
68
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
69
|
+
Facter.collection.internal_loader.load(:interfaces)
|
58
70
|
|
59
71
|
Facter.value(:ipaddress6).should be_false
|
60
72
|
end
|
data/spec/unit/ipaddress_spec.rb
CHANGED
@@ -4,10 +4,6 @@ require 'spec_helper'
|
|
4
4
|
require 'facter/util/ip'
|
5
5
|
|
6
6
|
describe "ipaddress fact" do
|
7
|
-
before do
|
8
|
-
Facter.collection.internal_loader.load(:ipaddress)
|
9
|
-
end
|
10
|
-
|
11
7
|
context 'using `ifconfig`' do
|
12
8
|
before :each do
|
13
9
|
Facter.fact(:hostname).stubs(:value)
|
@@ -18,25 +14,29 @@ describe "ipaddress fact" do
|
|
18
14
|
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
19
15
|
end
|
20
16
|
|
17
|
+
after :each do
|
18
|
+
Facter.collection.flush
|
19
|
+
end
|
20
|
+
|
21
21
|
def expect_ifconfig_parse(address, fixture)
|
22
|
-
Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
|
22
|
+
Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read("ifconfig_#{fixture}"))
|
23
|
+
routes = my_fixture_read("net_route_#{fixture}")
|
24
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
25
|
+
Facter.collection.internal_loader.load(:interfaces)
|
26
|
+
Facter.collection.internal_loader.load(:ipaddress)
|
23
27
|
Facter.fact(:ipaddress).value.should == address
|
24
28
|
end
|
25
29
|
|
26
30
|
it "parses correctly on Ubuntu 12.04" do
|
27
|
-
expect_ifconfig_parse "10.87.80.110", "
|
31
|
+
expect_ifconfig_parse "10.87.80.110", "ubuntu_1204.txt"
|
28
32
|
end
|
29
33
|
|
30
34
|
it "parses correctly on Fedora 17" do
|
31
|
-
expect_ifconfig_parse "131.252.209.153", "
|
32
|
-
end
|
33
|
-
|
34
|
-
it "parses a real address over multiple loopback addresses" do
|
35
|
-
expect_ifconfig_parse "10.0.222.20", "ifconfig_multiple_127_addresses.txt"
|
35
|
+
expect_ifconfig_parse "131.252.209.153", "net_tools_1.60.txt"
|
36
36
|
end
|
37
37
|
|
38
38
|
it "parses nothing with a non-english locale" do
|
39
|
-
expect_ifconfig_parse nil, "
|
39
|
+
expect_ifconfig_parse nil, "non_english_locale.txt"
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -23,8 +23,11 @@ describe "macaddress fact" do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should return the macaddress of the first interface" do
|
26
|
-
Facter::Util::IP.stubs(:exec_ifconfig).
|
26
|
+
Facter::Util::IP.stubs(:exec_ifconfig).
|
27
27
|
returns(ifconfig_fixture('linux_ifconfig_all_with_multiple_interfaces'))
|
28
|
+
routes = ifconfig_fixture("net_route_all_with_multiple_interfaces")
|
29
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
30
|
+
Facter.collection.internal_loader.load(:interfaces)
|
28
31
|
|
29
32
|
Facter.value(:macaddress).should == "00:12:3f:be:22:01"
|
30
33
|
end
|
@@ -32,6 +35,7 @@ describe "macaddress fact" do
|
|
32
35
|
it "should return nil when no macaddress can be found" do
|
33
36
|
Facter::Util::IP.stubs(:exec_ifconfig).with(["-a","2>/dev/null"]).
|
34
37
|
returns(ifconfig_fixture('linux_ifconfig_no_mac'))
|
38
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns("")
|
35
39
|
|
36
40
|
proc { Facter.value(:macaddress) }.should_not raise_error
|
37
41
|
Facter.value(:macaddress).should be_nil
|
@@ -41,6 +45,7 @@ describe "macaddress fact" do
|
|
41
45
|
it "should return nil when no interface has a real macaddress" do
|
42
46
|
Facter::Util::IP.stubs(:exec_ifconfig).with(["-a","2>/dev/null"]).
|
43
47
|
returns(ifconfig_fixture('linux_ifconfig_venet'))
|
48
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns("")
|
44
49
|
|
45
50
|
proc { Facter.value(:macaddress) }.should_not raise_error
|
46
51
|
Facter.value(:macaddress).should be_nil
|
data/spec/unit/netmask_spec.rb
CHANGED
@@ -6,8 +6,21 @@ require 'facter/util/ip'
|
|
6
6
|
|
7
7
|
shared_examples_for "netmask from ifconfig output" do |platform, address, fixture|
|
8
8
|
it "correctly on #{platform}" do
|
9
|
-
Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
|
9
|
+
Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read("ifconfig_#{fixture}"))
|
10
10
|
Facter.collection.internal_loader.load(:netmask)
|
11
|
+
begin
|
12
|
+
routes = my_fixture_read("net_route_#{fixture}")
|
13
|
+
Facter::Util::IP.stubs(:read_proc_net_route).returns(routes)
|
14
|
+
rescue RuntimeError
|
15
|
+
# We want to try to load proc/net/route fixtures, but skip if
|
16
|
+
# they don't exist for non-linux platforms. Ideally we'd get an
|
17
|
+
# IOError here, but the fixture machinery here is dumb and
|
18
|
+
# converts this to a RuntimeError. Hopefully anything that would
|
19
|
+
# error here would also cause the actual test to fail, so I'm
|
20
|
+
# not going to worry too hard.
|
21
|
+
end
|
22
|
+
Facter.collection.internal_loader.load(:interfaces)
|
23
|
+
Facter.collection.internal_loader.load(:ipaddress)
|
11
24
|
|
12
25
|
Facter.fact(:netmask).value.should eq(address)
|
13
26
|
end
|
@@ -21,10 +34,10 @@ describe "The netmask fact" do
|
|
21
34
|
|
22
35
|
example_behavior_for "netmask from ifconfig output",
|
23
36
|
"Archlinux (net-tools 1.60)", "255.255.255.0",
|
24
|
-
"
|
37
|
+
"net_tools_1.60.txt"
|
25
38
|
example_behavior_for "netmask from ifconfig output",
|
26
39
|
"Ubuntu 12.04", "255.255.255.255",
|
27
|
-
"
|
40
|
+
"ubuntu_1204.txt"
|
28
41
|
end
|
29
42
|
|
30
43
|
context "on AIX" do
|
@@ -34,7 +47,7 @@ describe "The netmask fact" do
|
|
34
47
|
|
35
48
|
example_behavior_for "netmask from ifconfig output",
|
36
49
|
"AIX 7", "255.255.255.0",
|
37
|
-
"
|
50
|
+
"aix_7.txt"
|
38
51
|
|
39
52
|
end
|
40
53
|
|
@@ -221,6 +221,7 @@ describe Facter::Processors::Windows do
|
|
221
221
|
before :each do
|
222
222
|
proc = stubs 'proc'
|
223
223
|
proc.stubs(:Name).returns("Intel(R) Celeron(R) processor")
|
224
|
+
proc.stubs(:ole_respond_to?).with(:NumberOfLogicalProcessors).returns(false)
|
224
225
|
load(Array.new(2, proc))
|
225
226
|
end
|
226
227
|
|
@@ -235,6 +236,7 @@ describe Facter::Processors::Windows do
|
|
235
236
|
before :each do
|
236
237
|
proc = stubs 'proc'
|
237
238
|
proc.stubs(:NumberOfLogicalProcessors).returns(2)
|
239
|
+
proc.stubs(:ole_respond_to?).with(:NumberOfLogicalProcessors).returns(true)
|
238
240
|
proc.stubs(:Name).returns("Intel(R) Celeron(R) processor")
|
239
241
|
load(Array.new(2, proc))
|
240
242
|
end
|
@@ -368,6 +368,17 @@ describe Facter::Util::Virtual do
|
|
368
368
|
end
|
369
369
|
end
|
370
370
|
|
371
|
+
context '/proc/1/cgroup has at least one hierarchy with docker underneath a systemd slice parent' do
|
372
|
+
before :each do
|
373
|
+
fakepath = Pathname.new(File.join(fixture_path, 'in_a_docker_container_with_systemd_slices'))
|
374
|
+
Pathname.stubs(:new).with('/proc/1/cgroup').returns(fakepath)
|
375
|
+
end
|
376
|
+
|
377
|
+
it 'is true' do
|
378
|
+
subject.should be_true
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
371
382
|
context '/proc/1/cgroup has no hierarchies rooted in /docker/' do
|
372
383
|
before :each do
|
373
384
|
fakepath = Pathname.new(File.join(fixture_path, 'not_in_a_container'))
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: facter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.5
|
5
5
|
prerelease:
|
6
6
|
platform: x64-mingw32
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-01-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ffi
|
@@ -249,6 +249,7 @@ files:
|
|
249
249
|
- spec/fixtures/cpuinfo/two_multicore-grep
|
250
250
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
|
251
251
|
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
|
252
|
+
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
|
252
253
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
|
253
254
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
|
254
255
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
|
@@ -267,8 +268,12 @@ files:
|
|
267
268
|
- spec/fixtures/processorcount/solaris-psrinfo
|
268
269
|
- spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt
|
269
270
|
- spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt
|
271
|
+
- spec/fixtures/unit/netmask/net_route_ubuntu_1204.txt
|
272
|
+
- spec/fixtures/unit/netmask/net_route_multiple_127_addresses.txt
|
270
273
|
- spec/fixtures/unit/netmask/ifconfig_aix_7.txt
|
271
|
-
- spec/fixtures/unit/netmask/
|
274
|
+
- spec/fixtures/unit/netmask/net_route_non_english_locale.txt
|
275
|
+
- spec/fixtures/unit/netmask/net_route_net_tools_1.60.txt
|
276
|
+
- spec/fixtures/unit/netmask/ifconfig_darwin_10_8_5.txt
|
272
277
|
- spec/fixtures/unit/selinux/selinux_sestatus2
|
273
278
|
- spec/fixtures/unit/selinux/selinux_sestatus
|
274
279
|
- spec/fixtures/unit/filesystems/linux
|
@@ -346,8 +351,12 @@ files:
|
|
346
351
|
- spec/fixtures/unit/ec2/rest/meta-data/root
|
347
352
|
- spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt
|
348
353
|
- spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt
|
354
|
+
- spec/fixtures/unit/ipaddress/net_route_ubuntu_1204.txt
|
355
|
+
- spec/fixtures/unit/ipaddress/net_route_multiple_127_addresses.txt
|
349
356
|
- spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt
|
357
|
+
- spec/fixtures/unit/ipaddress/net_route_non_english_locale.txt
|
350
358
|
- spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt
|
359
|
+
- spec/fixtures/unit/ipaddress/net_route_net_tools_1.60.txt
|
351
360
|
- spec/fixtures/unit/processors/os/darwin-system-profiler
|
352
361
|
- spec/fixtures/unit/zfs_version/zfs_new
|
353
362
|
- spec/fixtures/unit/zfs_version/solaris_11
|
@@ -392,6 +401,7 @@ files:
|
|
392
401
|
- spec/fixtures/unit/zpool_version/freebsd_8.2
|
393
402
|
- spec/fixtures/unit/zpool_version/solaris_10
|
394
403
|
- spec/fixtures/ifconfig/open_solaris_b132
|
404
|
+
- spec/fixtures/ifconfig/net_route_all_with_multiple_interfaces
|
395
405
|
- spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt
|
396
406
|
- spec/fixtures/ifconfig/freebsd_6_0
|
397
407
|
- spec/fixtures/ifconfig/linux_ifconfig_venet
|
@@ -415,6 +425,7 @@ files:
|
|
415
425
|
- spec/fixtures/ifconfig/darwin_10_3_0_en0
|
416
426
|
- spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces
|
417
427
|
- spec/fixtures/ifconfig/open_solaris_10
|
428
|
+
- spec/fixtures/ifconfig/net_route_net_tools_1.60.txt
|
418
429
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1
|
419
430
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack
|
420
431
|
- spec/fixtures/ifconfig/ubuntu_7_04_eth0
|
@@ -597,6 +608,7 @@ test_files:
|
|
597
608
|
- spec/fixtures/cpuinfo/two_multicore-grep
|
598
609
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
|
599
610
|
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
|
611
|
+
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
|
600
612
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
|
601
613
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
|
602
614
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
|
@@ -615,8 +627,12 @@ test_files:
|
|
615
627
|
- spec/fixtures/processorcount/solaris-psrinfo
|
616
628
|
- spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt
|
617
629
|
- spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt
|
630
|
+
- spec/fixtures/unit/netmask/net_route_ubuntu_1204.txt
|
631
|
+
- spec/fixtures/unit/netmask/net_route_multiple_127_addresses.txt
|
618
632
|
- spec/fixtures/unit/netmask/ifconfig_aix_7.txt
|
619
|
-
- spec/fixtures/unit/netmask/
|
633
|
+
- spec/fixtures/unit/netmask/net_route_non_english_locale.txt
|
634
|
+
- spec/fixtures/unit/netmask/net_route_net_tools_1.60.txt
|
635
|
+
- spec/fixtures/unit/netmask/ifconfig_darwin_10_8_5.txt
|
620
636
|
- spec/fixtures/unit/selinux/selinux_sestatus2
|
621
637
|
- spec/fixtures/unit/selinux/selinux_sestatus
|
622
638
|
- spec/fixtures/unit/filesystems/linux
|
@@ -694,8 +710,12 @@ test_files:
|
|
694
710
|
- spec/fixtures/unit/ec2/rest/meta-data/root
|
695
711
|
- spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt
|
696
712
|
- spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt
|
713
|
+
- spec/fixtures/unit/ipaddress/net_route_ubuntu_1204.txt
|
714
|
+
- spec/fixtures/unit/ipaddress/net_route_multiple_127_addresses.txt
|
697
715
|
- spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt
|
716
|
+
- spec/fixtures/unit/ipaddress/net_route_non_english_locale.txt
|
698
717
|
- spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt
|
718
|
+
- spec/fixtures/unit/ipaddress/net_route_net_tools_1.60.txt
|
699
719
|
- spec/fixtures/unit/processors/os/darwin-system-profiler
|
700
720
|
- spec/fixtures/unit/zfs_version/zfs_new
|
701
721
|
- spec/fixtures/unit/zfs_version/solaris_11
|
@@ -740,6 +760,7 @@ test_files:
|
|
740
760
|
- spec/fixtures/unit/zpool_version/freebsd_8.2
|
741
761
|
- spec/fixtures/unit/zpool_version/solaris_10
|
742
762
|
- spec/fixtures/ifconfig/open_solaris_b132
|
763
|
+
- spec/fixtures/ifconfig/net_route_all_with_multiple_interfaces
|
743
764
|
- spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt
|
744
765
|
- spec/fixtures/ifconfig/freebsd_6_0
|
745
766
|
- spec/fixtures/ifconfig/linux_ifconfig_venet
|
@@ -763,6 +784,7 @@ test_files:
|
|
763
784
|
- spec/fixtures/ifconfig/darwin_10_3_0_en0
|
764
785
|
- spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces
|
765
786
|
- spec/fixtures/ifconfig/open_solaris_10
|
787
|
+
- spec/fixtures/ifconfig/net_route_net_tools_1.60.txt
|
766
788
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1
|
767
789
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack
|
768
790
|
- spec/fixtures/ifconfig/ubuntu_7_04_eth0
|