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,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Facter
|
|
4
|
+
module Resolvers
|
|
5
|
+
class SpecificReleaseFile < BaseResolver
|
|
6
|
+
# :release
|
|
7
|
+
|
|
8
|
+
init_resolver
|
|
9
|
+
|
|
10
|
+
class << self
|
|
11
|
+
private
|
|
12
|
+
|
|
13
|
+
def post_resolve(fact_name, options)
|
|
14
|
+
@fact_list.fetch(fact_name) { read_release_file(fact_name, options) }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def read_release_file(fact_name, options)
|
|
18
|
+
release_file = options[:release_file]
|
|
19
|
+
return unless release_file
|
|
20
|
+
|
|
21
|
+
output = Facter::Util::FileHelper.safe_read(release_file, nil)
|
|
22
|
+
return @fact_list[fact_name] = nil if output.nil?
|
|
23
|
+
|
|
24
|
+
if options[:regex]
|
|
25
|
+
@fact_list[:release] = output.strip =~ /#{options[:regex]}/ ? Regexp.last_match : nil
|
|
26
|
+
return @fact_list[fact_name]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
@fact_list[:release] = output.strip
|
|
30
|
+
@fact_list[fact_name]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/facter/resolvers/ssh.rb
CHANGED
|
@@ -31,8 +31,7 @@ class NetworkUtils
|
|
|
31
31
|
|
|
32
32
|
def find_mac_address(adapter)
|
|
33
33
|
adapter[:PhysicalAddress].first(adapter[:PhysicalAddressLength])
|
|
34
|
-
.map { |e| format('%<mac_address>02x', mac_address: e.to_i) }
|
|
35
|
-
.join(':').upcase
|
|
34
|
+
.map { |e| format('%<mac_address>02x', mac_address: e.to_i) }.join(':').upcase
|
|
36
35
|
end
|
|
37
36
|
end
|
|
38
37
|
end
|
|
@@ -10,7 +10,7 @@ module Facter
|
|
|
10
10
|
class << self
|
|
11
11
|
private
|
|
12
12
|
|
|
13
|
-
def post_resolve(fact_name)
|
|
13
|
+
def post_resolve(fact_name, _options)
|
|
14
14
|
@fact_list.fetch(fact_name) { read_network_information(fact_name) }
|
|
15
15
|
end
|
|
16
16
|
|
|
@@ -24,12 +24,12 @@ module Facter
|
|
|
24
24
|
|
|
25
25
|
return unless (adapter_addresses = get_adapter_addresses(size_ptr, adapter_addresses, flags))
|
|
26
26
|
|
|
27
|
+
retrieve_domain_from_registry
|
|
28
|
+
|
|
27
29
|
iterate_list(adapter_addresses)
|
|
28
30
|
|
|
29
31
|
Facter::Util::Resolvers::Networking.expand_main_bindings(@fact_list)
|
|
30
32
|
|
|
31
|
-
retrieve_domain_from_registry if !@fact_list[:domain] || @fact_list[:domain].empty?
|
|
32
|
-
|
|
33
33
|
@fact_list[fact_name]
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -71,7 +71,11 @@ module Facter
|
|
|
71
71
|
adapter_address = IpAdapterAddressesLh.new(adapter_address[:Next])
|
|
72
72
|
next
|
|
73
73
|
end
|
|
74
|
-
|
|
74
|
+
|
|
75
|
+
if !@fact_list[:domain] || @fact_list[:domain].empty?
|
|
76
|
+
@fact_list[:domain] = adapter_address[:DnsSuffix].read_wide_string_without_length
|
|
77
|
+
end
|
|
78
|
+
|
|
75
79
|
name = adapter_address[:FriendlyName].read_wide_string_without_length
|
|
76
80
|
net_interface[name] = build_interface_info(adapter_address, name)
|
|
77
81
|
end
|
data/lib/facter/resolvers/xen.rb
CHANGED
data/lib/facter/resolvers/zfs.rb
CHANGED
|
@@ -24,6 +24,23 @@ module Facter
|
|
|
24
24
|
FAMILY_HASH.each { |key, array_value| return key if array_value.any? { |os_flavour| os =~ /#{os_flavour}/i } }
|
|
25
25
|
os
|
|
26
26
|
end
|
|
27
|
+
|
|
28
|
+
def release_hash_from_string(output)
|
|
29
|
+
return unless output
|
|
30
|
+
|
|
31
|
+
versions = output.split('.')
|
|
32
|
+
{}.tap do |release|
|
|
33
|
+
release['full'] = output
|
|
34
|
+
release['major'] = versions[0]
|
|
35
|
+
release['minor'] = versions[1] if versions[1]
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def release_hash_from_matchdata(data)
|
|
40
|
+
return if data.nil? || data[1].nil?
|
|
41
|
+
|
|
42
|
+
release_hash_from_string(data[1].to_s)
|
|
43
|
+
end
|
|
27
44
|
end
|
|
28
45
|
end
|
|
29
46
|
end
|
|
@@ -17,10 +17,9 @@ module Facter
|
|
|
17
17
|
speed = speed.to_i
|
|
18
18
|
return if !speed || speed.zero?
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
format('%<displayed_speed>.2f', displayed_speed: validated_speed).to_s + ' ' + prefix[power] + 'Hz'
|
|
20
|
+
validated_speed, metric_prefix = determine_metric_prefix(speed)
|
|
21
|
+
|
|
22
|
+
format('%<displayed_speed>.2f', displayed_speed: validated_speed).to_s + ' ' + metric_prefix + 'Hz'
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
def bytes_to_human_readable(bytes)
|
|
@@ -54,6 +53,14 @@ module Facter
|
|
|
54
53
|
converted_number = bytes if multiple == 'bytes'
|
|
55
54
|
[converted_number, multiple]
|
|
56
55
|
end
|
|
56
|
+
|
|
57
|
+
def determine_metric_prefix(num)
|
|
58
|
+
metric_prefix = { 0 => '', 3 => 'k', 6 => 'M', 9 => 'G', 12 => 'T' }
|
|
59
|
+
power = Math.log10(num).floor
|
|
60
|
+
display_exponent = power - power % 3
|
|
61
|
+
coefficient = power.zero? ? num.to_f : num.fdiv(10**display_exponent)
|
|
62
|
+
[coefficient, metric_prefix[display_exponent]]
|
|
63
|
+
end
|
|
57
64
|
end
|
|
58
65
|
end
|
|
59
66
|
end
|