facter 2.4.4 → 2.4.5
Sign up to get free protection for your applications and to get access to all the features.
- 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: ruby
|
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
|
description: You can prove anything with facts!
|
15
15
|
email: info@puppetlabs.com
|
@@ -201,6 +201,7 @@ files:
|
|
201
201
|
- spec/fixtures/cpuinfo/two_multicore-grep
|
202
202
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
|
203
203
|
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
|
204
|
+
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
|
204
205
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
|
205
206
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
|
206
207
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
|
@@ -219,8 +220,12 @@ files:
|
|
219
220
|
- spec/fixtures/processorcount/solaris-psrinfo
|
220
221
|
- spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt
|
221
222
|
- spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt
|
223
|
+
- spec/fixtures/unit/netmask/net_route_ubuntu_1204.txt
|
224
|
+
- spec/fixtures/unit/netmask/net_route_multiple_127_addresses.txt
|
222
225
|
- spec/fixtures/unit/netmask/ifconfig_aix_7.txt
|
223
|
-
- spec/fixtures/unit/netmask/
|
226
|
+
- spec/fixtures/unit/netmask/net_route_non_english_locale.txt
|
227
|
+
- spec/fixtures/unit/netmask/net_route_net_tools_1.60.txt
|
228
|
+
- spec/fixtures/unit/netmask/ifconfig_darwin_10_8_5.txt
|
224
229
|
- spec/fixtures/unit/selinux/selinux_sestatus2
|
225
230
|
- spec/fixtures/unit/selinux/selinux_sestatus
|
226
231
|
- spec/fixtures/unit/filesystems/linux
|
@@ -298,8 +303,12 @@ files:
|
|
298
303
|
- spec/fixtures/unit/ec2/rest/meta-data/root
|
299
304
|
- spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt
|
300
305
|
- spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt
|
306
|
+
- spec/fixtures/unit/ipaddress/net_route_ubuntu_1204.txt
|
307
|
+
- spec/fixtures/unit/ipaddress/net_route_multiple_127_addresses.txt
|
301
308
|
- spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt
|
309
|
+
- spec/fixtures/unit/ipaddress/net_route_non_english_locale.txt
|
302
310
|
- spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt
|
311
|
+
- spec/fixtures/unit/ipaddress/net_route_net_tools_1.60.txt
|
303
312
|
- spec/fixtures/unit/processors/os/darwin-system-profiler
|
304
313
|
- spec/fixtures/unit/zfs_version/zfs_new
|
305
314
|
- spec/fixtures/unit/zfs_version/solaris_11
|
@@ -344,6 +353,7 @@ files:
|
|
344
353
|
- spec/fixtures/unit/zpool_version/freebsd_8.2
|
345
354
|
- spec/fixtures/unit/zpool_version/solaris_10
|
346
355
|
- spec/fixtures/ifconfig/open_solaris_b132
|
356
|
+
- spec/fixtures/ifconfig/net_route_all_with_multiple_interfaces
|
347
357
|
- spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt
|
348
358
|
- spec/fixtures/ifconfig/freebsd_6_0
|
349
359
|
- spec/fixtures/ifconfig/linux_ifconfig_venet
|
@@ -367,6 +377,7 @@ files:
|
|
367
377
|
- spec/fixtures/ifconfig/darwin_10_3_0_en0
|
368
378
|
- spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces
|
369
379
|
- spec/fixtures/ifconfig/open_solaris_10
|
380
|
+
- spec/fixtures/ifconfig/net_route_net_tools_1.60.txt
|
370
381
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1
|
371
382
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack
|
372
383
|
- spec/fixtures/ifconfig/ubuntu_7_04_eth0
|
@@ -549,6 +560,7 @@ test_files:
|
|
549
560
|
- spec/fixtures/cpuinfo/two_multicore-grep
|
550
561
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_container
|
551
562
|
- spec/fixtures/virtual/proc_1_cgroup/not_in_a_container
|
563
|
+
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices
|
552
564
|
- spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container
|
553
565
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/guest
|
554
566
|
- spec/fixtures/virtual/proc_self_status/vserver_2_1/host
|
@@ -567,8 +579,12 @@ test_files:
|
|
567
579
|
- spec/fixtures/processorcount/solaris-psrinfo
|
568
580
|
- spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt
|
569
581
|
- spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt
|
582
|
+
- spec/fixtures/unit/netmask/net_route_ubuntu_1204.txt
|
583
|
+
- spec/fixtures/unit/netmask/net_route_multiple_127_addresses.txt
|
570
584
|
- spec/fixtures/unit/netmask/ifconfig_aix_7.txt
|
571
|
-
- spec/fixtures/unit/netmask/
|
585
|
+
- spec/fixtures/unit/netmask/net_route_non_english_locale.txt
|
586
|
+
- spec/fixtures/unit/netmask/net_route_net_tools_1.60.txt
|
587
|
+
- spec/fixtures/unit/netmask/ifconfig_darwin_10_8_5.txt
|
572
588
|
- spec/fixtures/unit/selinux/selinux_sestatus2
|
573
589
|
- spec/fixtures/unit/selinux/selinux_sestatus
|
574
590
|
- spec/fixtures/unit/filesystems/linux
|
@@ -646,8 +662,12 @@ test_files:
|
|
646
662
|
- spec/fixtures/unit/ec2/rest/meta-data/root
|
647
663
|
- spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt
|
648
664
|
- spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt
|
665
|
+
- spec/fixtures/unit/ipaddress/net_route_ubuntu_1204.txt
|
666
|
+
- spec/fixtures/unit/ipaddress/net_route_multiple_127_addresses.txt
|
649
667
|
- spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt
|
668
|
+
- spec/fixtures/unit/ipaddress/net_route_non_english_locale.txt
|
650
669
|
- spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt
|
670
|
+
- spec/fixtures/unit/ipaddress/net_route_net_tools_1.60.txt
|
651
671
|
- spec/fixtures/unit/processors/os/darwin-system-profiler
|
652
672
|
- spec/fixtures/unit/zfs_version/zfs_new
|
653
673
|
- spec/fixtures/unit/zfs_version/solaris_11
|
@@ -692,6 +712,7 @@ test_files:
|
|
692
712
|
- spec/fixtures/unit/zpool_version/freebsd_8.2
|
693
713
|
- spec/fixtures/unit/zpool_version/solaris_10
|
694
714
|
- spec/fixtures/ifconfig/open_solaris_b132
|
715
|
+
- spec/fixtures/ifconfig/net_route_all_with_multiple_interfaces
|
695
716
|
- spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt
|
696
717
|
- spec/fixtures/ifconfig/freebsd_6_0
|
697
718
|
- spec/fixtures/ifconfig/linux_ifconfig_venet
|
@@ -715,6 +736,7 @@ test_files:
|
|
715
736
|
- spec/fixtures/ifconfig/darwin_10_3_0_en0
|
716
737
|
- spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces
|
717
738
|
- spec/fixtures/ifconfig/open_solaris_10
|
739
|
+
- spec/fixtures/ifconfig/net_route_net_tools_1.60.txt
|
718
740
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1
|
719
741
|
- spec/fixtures/ifconfig/darwin_10_6_6_dualstack
|
720
742
|
- spec/fixtures/ifconfig/ubuntu_7_04_eth0
|