facter 4.0.49 → 4.0.50
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/facter/config.rb +20 -7
- data/lib/facter/custom_facts/core/execution/base.rb +3 -2
- data/lib/facter/custom_facts/core/execution/popen3.rb +47 -0
- data/lib/facter/custom_facts/util/fact.rb +2 -2
- data/lib/facter/facts/alpine/os/release.rb +29 -0
- data/lib/facter/facts/amzn/os/release.rb +29 -0
- data/lib/facter/facts/devuan/os/distro/release.rb +36 -0
- data/lib/facter/facts/devuan/os/release.rb +29 -0
- data/lib/facter/facts/gentoo/os/release.rb +29 -0
- data/lib/facter/facts/linuxmint/os/name.rb +18 -0
- data/lib/facter/facts/linuxmint/os/release.rb +35 -0
- data/lib/facter/facts/mageia/os/release.rb +36 -0
- data/lib/facter/facts/meego/os/release.rb +29 -0
- data/lib/facter/facts/oel/os/release.rb +29 -0
- data/lib/facter/facts/ol/os/release.rb +29 -0
- data/lib/facter/facts/openwrt/os/release.rb +35 -0
- data/lib/facter/facts/ovs/os/release.rb +29 -0
- data/lib/facter/facts/photon/os/release.rb +45 -0
- data/lib/facter/facts/rhel/os/release.rb +1 -8
- data/lib/facter/facts/slackware/os/release.rb +35 -0
- data/lib/facter/framework/config/config_reader.rb +7 -0
- data/lib/facter/framework/config/fact_groups.rb +3 -0
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +0 -4
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +2 -0
- data/lib/facter/framework/detector/os_detector.rb +7 -0
- data/lib/facter/resolvers/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/aix/architecture.rb +1 -1
- data/lib/facter/resolvers/aix/disks.rb +1 -1
- data/lib/facter/resolvers/aix/ffi/ffi.rb +63 -0
- data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +146 -20
- data/lib/facter/resolvers/aix/ffi/structs.rb +69 -0
- data/lib/facter/resolvers/aix/filesystem.rb +1 -1
- data/lib/facter/resolvers/aix/hardware.rb +1 -1
- data/lib/facter/resolvers/aix/load_averages.rb +2 -2
- data/lib/facter/resolvers/aix/memory.rb +1 -1
- data/lib/facter/resolvers/aix/mountpoints.rb +1 -1
- data/lib/facter/resolvers/aix/networking.rb +9 -16
- data/lib/facter/resolvers/aix/nim.rb +1 -1
- data/lib/facter/resolvers/aix/os_level.rb +1 -1
- data/lib/facter/resolvers/aix/partitions.rb +1 -1
- data/lib/facter/resolvers/aix/processors.rb +1 -1
- data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
- data/lib/facter/resolvers/augeas.rb +1 -1
- data/lib/facter/resolvers/base_resolver.rb +4 -4
- data/lib/facter/resolvers/bsd/processors.rb +1 -1
- data/lib/facter/resolvers/cloud.rb +1 -1
- data/lib/facter/resolvers/containers.rb +1 -1
- data/lib/facter/resolvers/debian_version.rb +1 -1
- data/lib/facter/resolvers/disk.rb +1 -1
- data/lib/facter/resolvers/dmi.rb +1 -1
- data/lib/facter/resolvers/dmi_decode.rb +1 -1
- data/lib/facter/resolvers/ec2.rb +1 -1
- data/lib/facter/resolvers/eos_release.rb +1 -1
- data/lib/facter/resolvers/facterversion.rb +1 -1
- data/lib/facter/resolvers/filesystems.rb +1 -1
- data/lib/facter/resolvers/fips_enabled.rb +1 -1
- data/lib/facter/resolvers/freebsd/dmi.rb +1 -1
- data/lib/facter/resolvers/freebsd/freebsd_version.rb +1 -1
- data/lib/facter/resolvers/freebsd/geom.rb +1 -1
- data/lib/facter/resolvers/freebsd/processors.rb +1 -1
- data/lib/facter/resolvers/freebsd/swap_memory.rb +1 -1
- data/lib/facter/resolvers/freebsd/system_memory.rb +1 -1
- data/lib/facter/resolvers/freebsd/virtual.rb +1 -1
- data/lib/facter/resolvers/gce.rb +1 -1
- data/lib/facter/resolvers/hostname.rb +1 -1
- data/lib/facter/resolvers/identity.rb +1 -1
- data/lib/facter/resolvers/linux/docker_uptime.rb +1 -1
- data/lib/facter/resolvers/linux/load_averages.rb +1 -1
- data/lib/facter/resolvers/load_averages.rb +1 -1
- data/lib/facter/resolvers/lpar.rb +1 -1
- data/lib/facter/resolvers/lsb_release.rb +1 -1
- data/lib/facter/resolvers/lspci.rb +1 -1
- data/lib/facter/resolvers/macosx/dmi.rb +1 -1
- data/lib/facter/resolvers/macosx/filesystems.rb +1 -1
- data/lib/facter/resolvers/macosx/load_averages.rb +1 -1
- data/lib/facter/resolvers/macosx/mountpoints.rb +1 -1
- data/lib/facter/resolvers/macosx/processor.rb +1 -1
- data/lib/facter/resolvers/macosx/swap_memory.rb +1 -1
- data/lib/facter/resolvers/macosx/system_memory.rb +1 -1
- data/lib/facter/resolvers/macosx/system_profiler.rb +1 -1
- data/lib/facter/resolvers/memory.rb +1 -1
- data/lib/facter/resolvers/mountpoints.rb +1 -1
- data/lib/facter/resolvers/networking.rb +1 -1
- data/lib/facter/resolvers/networking_linux.rb +1 -1
- data/lib/facter/resolvers/open_vz.rb +1 -1
- data/lib/facter/resolvers/os_release.rb +1 -1
- data/lib/facter/resolvers/partitions.rb +1 -1
- data/lib/facter/resolvers/path.rb +1 -1
- data/lib/facter/resolvers/processors.rb +1 -1
- data/lib/facter/resolvers/redhat_release.rb +1 -1
- data/lib/facter/resolvers/release_from_first_line.rb +41 -0
- data/lib/facter/resolvers/ruby.rb +1 -1
- data/lib/facter/resolvers/selinux.rb +1 -1
- data/lib/facter/resolvers/solaris/disks.rb +1 -1
- data/lib/facter/resolvers/solaris/dmi.rb +1 -1
- data/lib/facter/resolvers/solaris/dmi_sparc.rb +1 -1
- data/lib/facter/resolvers/solaris/filesystems.rb +1 -1
- data/lib/facter/resolvers/solaris/ipaddress.rb +1 -1
- data/lib/facter/resolvers/solaris/ldom.rb +1 -1
- data/lib/facter/resolvers/solaris/memory.rb +1 -1
- data/lib/facter/resolvers/solaris/mountpoints.rb +1 -1
- data/lib/facter/resolvers/solaris/networking.rb +1 -1
- data/lib/facter/resolvers/solaris/os_release.rb +1 -1
- data/lib/facter/resolvers/solaris/processors.rb +1 -1
- data/lib/facter/resolvers/solaris/zone.rb +1 -1
- data/lib/facter/resolvers/solaris/zone_name.rb +1 -1
- data/lib/facter/resolvers/specific_release_file.rb +35 -0
- data/lib/facter/resolvers/ssh.rb +1 -1
- data/lib/facter/resolvers/suse_release.rb +1 -1
- data/lib/facter/resolvers/sw_vers.rb +1 -1
- data/lib/facter/resolvers/timezone.rb +1 -1
- data/lib/facter/resolvers/uname.rb +1 -1
- data/lib/facter/resolvers/uptime.rb +1 -1
- data/lib/facter/resolvers/virt_what.rb +1 -1
- data/lib/facter/resolvers/vmware.rb +1 -1
- data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_bios.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_computersystem.rb +1 -1
- data/lib/facter/resolvers/windows/ffi/network_utils.rb +1 -2
- data/lib/facter/resolvers/windows/fips.rb +1 -1
- data/lib/facter/resolvers/windows/hardware_architecture.rb +1 -1
- data/lib/facter/resolvers/windows/identity.rb +1 -1
- data/lib/facter/resolvers/windows/kernel.rb +1 -1
- data/lib/facter/resolvers/windows/memory.rb +1 -1
- data/lib/facter/resolvers/windows/netkvm.rb +1 -1
- data/lib/facter/resolvers/windows/networking.rb +8 -4
- data/lib/facter/resolvers/windows/processors.rb +1 -1
- data/lib/facter/resolvers/windows/product_release.rb +1 -1
- data/lib/facter/resolvers/windows/ssh.rb +1 -1
- data/lib/facter/resolvers/windows/system32.rb +1 -1
- data/lib/facter/resolvers/windows/uptime.rb +1 -1
- data/lib/facter/resolvers/windows/virtualization.rb +1 -1
- data/lib/facter/resolvers/windows/win_os_description.rb +1 -1
- data/lib/facter/resolvers/wpar.rb +1 -1
- data/lib/facter/resolvers/xen.rb +1 -1
- data/lib/facter/resolvers/zfs.rb +1 -1
- data/lib/facter/resolvers/zpool.rb +1 -1
- data/lib/facter/util/facts/facts_utils.rb +17 -0
- data/lib/facter/util/facts/unit_converter.rb +11 -4
- data/lib/facter/util/utils.rb +0 -4
- data/lib/facter/version.rb +1 -1
- metadata +22 -2
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facter
|
|
4
|
+
module Resolvers
|
|
5
|
+
module Aix
|
|
6
|
+
module FFI
|
|
7
|
+
class SockaddrDl < ::FFI::Struct
|
|
8
|
+
layout :sdl_len, :uchar,
|
|
9
|
+
:sdl_family, :uchar,
|
|
10
|
+
:sdl_index, :ushort,
|
|
11
|
+
:sdl_type, :uchar,
|
|
12
|
+
:sdl_nlen, :uchar,
|
|
13
|
+
:sdl_alen, :uchar,
|
|
14
|
+
:sdl_slen, :uchar,
|
|
15
|
+
:sdl_data, [:char, 120]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class IfMsghdr < ::FFI::Struct
|
|
19
|
+
layout :ifm_msglen, :ushort,
|
|
20
|
+
:ifm_version, :uchar,
|
|
21
|
+
:ifm_type, :uchar,
|
|
22
|
+
:ifm_addrs, :int,
|
|
23
|
+
:ifm_flags, :int,
|
|
24
|
+
:ifm_index, :ushort,
|
|
25
|
+
:ifm_addrlen, :uchar
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class Sockaddr < ::FFI::Struct
|
|
29
|
+
layout :sa_len, :uchar,
|
|
30
|
+
:sa_family, :uchar,
|
|
31
|
+
:sa_data, [:char, 14]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
class InAddr < ::FFI::Struct
|
|
35
|
+
layout :s_addr, :uint
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
class In6Addr < ::FFI::Struct
|
|
39
|
+
layout :u6_addr8, [:uchar, 16]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
class SockaddrIn < ::FFI::Struct
|
|
43
|
+
layout :sin_len, :uchar,
|
|
44
|
+
:sin_family, :uchar,
|
|
45
|
+
:sin_port, :ushort,
|
|
46
|
+
:sin_addr, InAddr,
|
|
47
|
+
:sin_zero, [:uchar, 8]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
class SockaddrIn6 < ::FFI::Struct
|
|
51
|
+
layout :sin6_len, :uchar,
|
|
52
|
+
:sin6_family, :uchar,
|
|
53
|
+
:sin6_port, :ushort,
|
|
54
|
+
:sin6_flowinfo, :uint,
|
|
55
|
+
:sin6_addr, In6Addr,
|
|
56
|
+
:sin6_scope_id, :uint
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
class SockaddrStorage < ::FFI::Struct
|
|
60
|
+
layout :ss_len, :uchar,
|
|
61
|
+
:ss_family, :uchar,
|
|
62
|
+
:ss_pad, [:char, 6],
|
|
63
|
+
:ss_align, :long_long,
|
|
64
|
+
:ss_pad2, [:char, 1264]
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -9,14 +9,14 @@ module Facter
|
|
|
9
9
|
class << self
|
|
10
10
|
private
|
|
11
11
|
|
|
12
|
-
def post_resolve(fact_name)
|
|
12
|
+
def post_resolve(fact_name, _options)
|
|
13
13
|
@fact_list.fetch(fact_name) { read_load_averages(fact_name) }
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def read_load_averages(fact_name)
|
|
17
17
|
require_relative 'ffi/ffi_helper'
|
|
18
18
|
@fact_list[:load_averages] = {}.tap do |h|
|
|
19
|
-
h['1m'], h['5m'], h['15m'] =
|
|
19
|
+
h['1m'], h['5m'], h['15m'] = FfiHelper.read_load_averages
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
@fact_list[fact_name]
|
|
@@ -9,7 +9,7 @@ module Facter
|
|
|
9
9
|
class << self
|
|
10
10
|
private
|
|
11
11
|
|
|
12
|
-
def post_resolve(fact_name)
|
|
12
|
+
def post_resolve(fact_name, _options)
|
|
13
13
|
@fact_list.fetch(fact_name) { read_netstat(fact_name) }
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ module Facter
|
|
|
17
17
|
@fact_list[:interfaces] = {}
|
|
18
18
|
output = Facter::Core::Execution.execute('netstat -rn', logger: log)
|
|
19
19
|
output = output.each_line.select { |line| (line =~ /\s\s[0-9]+.[0-9]+.[0-9]+.[0-9]+|\s\s.*:[0-9a-f]+/) }
|
|
20
|
-
|
|
20
|
+
@fact_list[:interfaces] = load_interfaces
|
|
21
21
|
|
|
22
22
|
populate_with_mtu_and_mac!(@fact_list[:interfaces])
|
|
23
23
|
get_primary_interface_info(output)
|
|
@@ -26,23 +26,10 @@ module Facter
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def get_primary_interface_info(output)
|
|
29
|
-
primary_interface_info = output.find { |line| line =~
|
|
29
|
+
primary_interface_info = output.find { |line| line =~ /default/ }&.split(' ')
|
|
30
30
|
@fact_list[:primary_interface] = primary_interface_info[5] if primary_interface_info
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
-
def extract_interfaces(netstat_output)
|
|
34
|
-
netstat_output.each do |line|
|
|
35
|
-
next if line =~ /default/
|
|
36
|
-
|
|
37
|
-
info = line.split("\s")
|
|
38
|
-
mask_length = info[0].match(%r{/([0-9]+)|%([0-9]+)})
|
|
39
|
-
next unless mask_length
|
|
40
|
-
|
|
41
|
-
is_ipv4 = info[1] =~ /[0-9]+.[0-9]+.[0-9]+.[0-9]+/
|
|
42
|
-
build_bindings(info[5], info[1], mask_length[1] || mask_length[2], is_ipv4)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
33
|
def build_bindings(name, ip, mask_length, is_ipv4)
|
|
47
34
|
bind_to_add = is_ipv4 ? :bindings : :bindings6
|
|
48
35
|
ip = ip.gsub(/%[0-9]$/, '') # remove mask information if it exists
|
|
@@ -69,6 +56,12 @@ module Facter
|
|
|
69
56
|
def format_mac_address(address)
|
|
70
57
|
address.split('.').map { |e| format('%<mac_address>02s', mac_address: e) }.join(':').tr(' ', '0')
|
|
71
58
|
end
|
|
59
|
+
|
|
60
|
+
def load_interfaces
|
|
61
|
+
require_relative 'ffi/ffi_helper'
|
|
62
|
+
|
|
63
|
+
FfiHelper.read_interfaces
|
|
64
|
+
end
|
|
72
65
|
end
|
|
73
66
|
end
|
|
74
67
|
end
|
|
@@ -20,10 +20,10 @@ module Facter
|
|
|
20
20
|
Facter::SessionCache.subscribe(self)
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
def self.resolve(fact_name)
|
|
23
|
+
def self.resolve(fact_name, options = {})
|
|
24
24
|
@semaphore.synchronize do
|
|
25
25
|
subscribe_to_manager
|
|
26
|
-
post_resolve(fact_name)
|
|
26
|
+
post_resolve(fact_name, options)
|
|
27
27
|
|
|
28
28
|
cache_nil_for_unresolved_facts(fact_name)
|
|
29
29
|
end
|
|
@@ -40,8 +40,8 @@ module Facter
|
|
|
40
40
|
@fact_list[fact_name]
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
def self.post_resolve(_fact_name)
|
|
44
|
-
raise NotImplementedError, "You must implement post_resolve(fact_name) method in #{name}"
|
|
43
|
+
def self.post_resolve(_fact_name, _options)
|
|
44
|
+
raise NotImplementedError, "You must implement post_resolve(fact_name, options) method in #{name}"
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
end
|
data/lib/facter/resolvers/dmi.rb
CHANGED
data/lib/facter/resolvers/ec2.rb
CHANGED