facter 4.0.46 → 4.0.47
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/docs/generate.rb +32 -0
- data/lib/docs/template.erb +34 -0
- data/lib/facter.rb +38 -6
- data/lib/facter/config.rb +32 -1
- data/lib/facter/custom_facts/util/collection.rb +1 -2
- data/lib/facter/custom_facts/util/directory_loader.rb +1 -1
- data/lib/facter/custom_facts/util/fact.rb +18 -1
- data/lib/facter/custom_facts/util/loader.rb +1 -1
- data/lib/facter/custom_facts/util/resolution.rb +1 -1
- data/lib/facter/facts/aix/interfaces.rb +1 -0
- data/lib/facter/facts/aix/memory/swap/available.rb +1 -1
- data/lib/facter/facts/aix/memory/swap/available_bytes.rb +1 -1
- data/lib/facter/facts/aix/memory/swap/total.rb +1 -1
- data/lib/facter/facts/aix/memory/swap/total_bytes.rb +1 -1
- data/lib/facter/facts/aix/memory/swap/used.rb +1 -1
- data/lib/facter/facts/aix/memory/system/available.rb +1 -1
- data/lib/facter/facts/aix/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/aix/memory/system/total.rb +1 -1
- data/lib/facter/facts/aix/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/aix/memory/system/used.rb +1 -1
- data/lib/facter/facts/aix/processors/speed.rb +1 -1
- data/lib/facter/facts/bsd/processors/speed.rb +1 -1
- data/lib/facter/facts/freebsd/is_virtual.rb +25 -0
- data/lib/facter/facts/freebsd/memory/swap/available.rb +1 -1
- data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +1 -1
- data/lib/facter/facts/freebsd/memory/swap/total.rb +1 -1
- data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +1 -1
- data/lib/facter/facts/freebsd/memory/swap/used.rb +1 -1
- data/lib/facter/facts/freebsd/memory/system/available.rb +1 -1
- data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/freebsd/memory/system/total.rb +1 -1
- data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/freebsd/memory/system/used.rb +1 -1
- data/lib/facter/facts/freebsd/processors/speed.rb +1 -1
- data/lib/facter/facts/freebsd/virtual.rb +22 -0
- data/lib/facter/facts/linux/dhcp_servers.rb +1 -0
- data/lib/facter/facts/linux/ec2_metadata.rb +1 -1
- data/lib/facter/facts/linux/ec2_userdata.rb +1 -1
- data/lib/facter/facts/linux/hypervisors/kvm.rb +1 -1
- data/lib/facter/facts/linux/hypervisors/xen.rb +1 -1
- data/lib/facter/facts/linux/interfaces.rb +1 -0
- data/lib/facter/facts/linux/is_virtual.rb +2 -2
- data/lib/facter/facts/linux/memory/swap/available.rb +1 -1
- data/lib/facter/facts/linux/memory/swap/available_bytes.rb +1 -1
- data/lib/facter/facts/linux/memory/swap/total.rb +1 -1
- data/lib/facter/facts/linux/memory/swap/total_bytes.rb +1 -1
- data/lib/facter/facts/linux/memory/swap/used.rb +1 -1
- data/lib/facter/facts/linux/memory/system/available.rb +1 -1
- data/lib/facter/facts/linux/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/linux/memory/system/total.rb +1 -1
- data/lib/facter/facts/linux/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/linux/memory/system/used.rb +1 -1
- data/lib/facter/facts/linux/processors/speed.rb +1 -1
- data/lib/facter/facts/linux/virtual.rb +1 -1
- data/lib/facter/facts/macosx/dhcp_servers.rb +1 -0
- data/lib/facter/facts/macosx/interfaces.rb +1 -0
- data/lib/facter/facts/macosx/memory/swap/available.rb +1 -1
- data/lib/facter/facts/macosx/memory/swap/available_bytes.rb +1 -1
- data/lib/facter/facts/macosx/memory/swap/total.rb +1 -1
- data/lib/facter/facts/macosx/memory/swap/total_bytes.rb +1 -1
- data/lib/facter/facts/macosx/memory/swap/used.rb +1 -1
- data/lib/facter/facts/macosx/memory/system/available.rb +1 -1
- data/lib/facter/facts/macosx/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/macosx/memory/system/total.rb +1 -1
- data/lib/facter/facts/macosx/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/macosx/memory/system/used.rb +1 -1
- data/lib/facter/facts/macosx/processors/speed.rb +1 -1
- data/lib/facter/facts/solaris/dhcp_servers.rb +1 -0
- data/lib/facter/facts/solaris/interfaces.rb +1 -0
- data/lib/facter/facts/solaris/is_virtual.rb +2 -2
- data/lib/facter/facts/solaris/ldom.rb +31 -4
- data/lib/facter/facts/solaris/memory/swap/available.rb +1 -1
- data/lib/facter/facts/solaris/memory/swap/available_bytes.rb +1 -1
- data/lib/facter/facts/solaris/memory/swap/total.rb +1 -1
- data/lib/facter/facts/solaris/memory/swap/total_bytes.rb +1 -1
- data/lib/facter/facts/solaris/memory/swap/used.rb +1 -1
- data/lib/facter/facts/solaris/memory/system/available.rb +1 -1
- data/lib/facter/facts/solaris/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/solaris/memory/system/total.rb +1 -1
- data/lib/facter/facts/solaris/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/solaris/memory/system/used.rb +1 -1
- data/lib/facter/facts/solaris/processors/speed.rb +1 -1
- data/lib/facter/facts/solaris/virtual.rb +1 -1
- data/lib/facter/facts/windows/dhcp_servers.rb +1 -0
- data/lib/facter/facts/windows/interfaces.rb +1 -0
- data/lib/facter/facts/windows/memory/system/available.rb +1 -1
- data/lib/facter/facts/windows/memory/system/available_bytes.rb +1 -1
- data/lib/facter/facts/windows/memory/system/total.rb +1 -1
- data/lib/facter/facts/windows/memory/system/total_bytes.rb +1 -1
- data/lib/facter/facts/windows/memory/system/used.rb +1 -1
- data/lib/facter/facts/windows/os/release.rb +1 -1
- data/lib/facter/framework/cli/cli.rb +1 -1
- data/lib/facter/framework/core/cache_manager.rb +1 -1
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +4 -2
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +16 -0
- data/lib/facter/framework/core/fact_manager.rb +14 -2
- data/lib/facter/framework/core/file_loader.rb +6 -2
- data/lib/facter/framework/core/options/option_store.rb +2 -2
- data/lib/facter/framework/logging/logger.rb +3 -3
- data/lib/facter/models/fact_collection.rb +11 -1
- data/lib/facter/models/loaded_fact.rb +2 -1
- data/lib/facter/resolvers/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/aix/architecture_resolver.rb +3 -3
- data/lib/facter/resolvers/aix/disks.rb +4 -4
- data/lib/facter/resolvers/aix/filesystem_resolver.rb +1 -1
- data/lib/facter/resolvers/aix/hardware_resolver.rb +2 -2
- data/lib/facter/resolvers/aix/memory.rb +2 -2
- data/lib/facter/resolvers/aix/mountpoints.rb +4 -4
- data/lib/facter/resolvers/aix/networking_resolver.rb +3 -2
- data/lib/facter/resolvers/aix/partitions.rb +5 -5
- data/lib/facter/resolvers/aix/processors.rb +3 -3
- data/lib/facter/resolvers/aix/serialnumber.rb +1 -1
- data/lib/facter/resolvers/base_resolver.rb +3 -0
- data/lib/facter/resolvers/cloud.rb +1 -1
- data/lib/facter/resolvers/containers.rb +3 -3
- data/lib/facter/resolvers/debian_version.rb +1 -1
- data/lib/facter/resolvers/disk_resolver.rb +2 -2
- data/lib/facter/resolvers/dmi_resolver.rb +1 -1
- data/lib/facter/resolvers/ec2.rb +3 -1
- data/lib/facter/resolvers/eos_release_resolver.rb +1 -1
- data/lib/facter/resolvers/filesystems_resolver.rb +1 -1
- data/lib/facter/resolvers/fips_enabled_resolver.rb +1 -1
- data/lib/facter/resolvers/freebsd/geom_resolver.rb +1 -1
- data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +3 -2
- data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +2 -1
- data/lib/facter/resolvers/freebsd/virtual_resolver.rb +45 -0
- data/lib/facter/resolvers/gce.rb +1 -1
- data/lib/facter/resolvers/hostname_resolver.rb +67 -20
- 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 +3 -2
- data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +7 -7
- data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +3 -3
- data/lib/facter/resolvers/memory_resolver.rb +1 -1
- data/lib/facter/resolvers/mountpoints_resolver.rb +8 -8
- data/lib/facter/resolvers/networking_linux_resolver.rb +183 -85
- data/lib/facter/resolvers/networking_resolver.rb +8 -5
- data/lib/facter/resolvers/open_vz.rb +1 -3
- data/lib/facter/resolvers/os_release_resolver.rb +1 -1
- data/lib/facter/resolvers/partitions.rb +5 -5
- data/lib/facter/resolvers/processors_resolver.rb +2 -2
- data/lib/facter/resolvers/redhat_release_resolver.rb +1 -1
- data/lib/facter/resolvers/selinux_resolver.rb +3 -3
- data/lib/facter/resolvers/solaris/disks.rb +1 -1
- data/lib/facter/resolvers/solaris/memory.rb +2 -2
- data/lib/facter/resolvers/solaris/mountpoints.rb +11 -10
- data/lib/facter/resolvers/solaris/networking.rb +49 -41
- data/lib/facter/resolvers/solaris/os_release.rb +1 -1
- data/lib/facter/resolvers/ssh_resolver.rb +3 -2
- data/lib/facter/resolvers/suse_release_resolver.rb +1 -1
- data/lib/facter/resolvers/uptime_resolver.rb +2 -2
- data/lib/facter/resolvers/windows/aio_agent_version.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +1 -1
- data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +1 -1
- data/lib/facter/resolvers/windows/memory_resolver.rb +4 -0
- data/lib/facter/resolvers/windows/networking_resolver.rb +3 -3
- data/lib/facter/resolvers/windows/processors_resolver.rb +1 -1
- data/lib/facter/resolvers/windows/ssh.rb +2 -2
- data/lib/facter/resolvers/windows/uptime_resolver.rb +1 -1
- data/lib/facter/resolvers/windows/virtualization_resolver.rb +1 -1
- data/lib/facter/resolvers/windows/win_os_description_resolver.rb +1 -1
- data/lib/facter/resolvers/xen.rb +1 -1
- data/lib/facter/util/aix/info_extractor.rb +24 -0
- data/lib/facter/util/aix/odm_query.rb +46 -0
- data/lib/facter/util/api_debugger.rb +33 -29
- data/lib/facter/util/facts/facts_utils.rb +14 -0
- data/lib/facter/util/facts/unit_converter.rb +61 -0
- data/lib/facter/util/facts/uptime_parser.rb +128 -0
- data/lib/facter/util/facts/virtual_detector.rb +90 -0
- data/lib/facter/util/facts/windows_release_finder.rb +55 -0
- data/lib/facter/{resolvers/macosx/utils → util/macosx}/system_profile_executor.rb +1 -1
- data/lib/facter/util/resolvers/aws_token.rb +37 -0
- data/lib/facter/{resolvers/utils → util/resolvers}/ffi/load_averages.rb +2 -2
- data/lib/facter/util/resolvers/filesystem_helper.rb +47 -0
- data/lib/facter/util/resolvers/fingerprint.rb +15 -0
- data/lib/facter/{resolvers/utils → util/resolvers}/http.rb +17 -10
- data/lib/facter/util/resolvers/networking.rb +90 -0
- data/lib/facter/util/resolvers/networking/dhcp.rb +21 -0
- data/lib/facter/util/resolvers/networking/networking.rb +109 -0
- data/lib/facter/util/resolvers/networking/primary_interface.rb +82 -0
- data/lib/facter/util/resolvers/ssh.rb +17 -0
- data/lib/facter/util/resolvers/ssh_helper.rb +31 -0
- data/lib/facter/{resolvers/utils → util/resolvers}/uptime_helper.rb +2 -2
- data/lib/facter/{framework/utils → util}/utils.rb +0 -0
- data/lib/facter/util/windows/win32ole.rb +30 -0
- data/lib/facter/version.rb +1 -1
- metadata +29 -41
- data/lib/facter/facts/aix/puppet_version.rb +0 -15
- data/lib/facter/facts/freebsd/puppet_version.rb +0 -15
- data/lib/facter/facts/linux/puppet_version.rb +0 -15
- data/lib/facter/facts/macosx/puppet_version.rb +0 -15
- data/lib/facter/facts/solaris/puppet_version.rb +0 -15
- data/lib/facter/facts/windows/puppet_version.rb +0 -15
- data/lib/facter/facts_utils/facts_utils.rb +0 -12
- data/lib/facter/facts_utils/unit_converter.rb +0 -59
- data/lib/facter/facts_utils/uptime_parser.rb +0 -124
- data/lib/facter/facts_utils/virtual_detector.rb +0 -78
- data/lib/facter/facts_utils/windows_release_finder.rb +0 -51
- data/lib/facter/resolvers/aix/utils/info_extractor.rb +0 -20
- data/lib/facter/resolvers/aix/utils/odm_query.rb +0 -42
- data/lib/facter/resolvers/puppet_version_resolver.rb +0 -26
- data/lib/facter/resolvers/utils/filesystem_helper.rb +0 -43
- data/lib/facter/resolvers/utils/fingerprint.rb +0 -11
- data/lib/facter/resolvers/utils/networking.rb +0 -88
- data/lib/facter/resolvers/utils/ssh.rb +0 -13
- data/lib/facter/resolvers/utils/ssh_helper.rb +0 -27
- data/lib/facter/resolvers/windows/utils/win32ole.rb +0 -24
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facts
|
|
4
|
-
module Solaris
|
|
5
|
-
class PuppetVersion
|
|
6
|
-
FACT_NAME = 'puppetversion'
|
|
7
|
-
|
|
8
|
-
def call_the_resolver
|
|
9
|
-
fact_value = Facter::Resolvers::PuppetVersionResolver.resolve(:puppetversion)
|
|
10
|
-
|
|
11
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facts
|
|
4
|
-
module Windows
|
|
5
|
-
class PuppetVersion
|
|
6
|
-
FACT_NAME = 'puppetversion'
|
|
7
|
-
|
|
8
|
-
def call_the_resolver
|
|
9
|
-
fact_value = Facter::Resolvers::PuppetVersionResolver.resolve(:puppetversion)
|
|
10
|
-
|
|
11
|
-
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
module FactsUtils
|
|
5
|
-
HYPERVISORS_HASH = { 'VMware' => 'vmware', 'VirtualBox' => 'virtualbox', 'Parallels' => 'parallels',
|
|
6
|
-
'KVM' => 'kvm', 'Virtual Machine' => 'hyperv', 'RHEV Hypervisor' => 'rhev',
|
|
7
|
-
'oVirt Node' => 'ovirt', 'HVM domU' => 'xenhvm', 'Bochs' => 'bochs', 'OpenBSD' => 'vmm',
|
|
8
|
-
'BHYVE' => 'bhyve' }.freeze
|
|
9
|
-
|
|
10
|
-
PHYSICAL_HYPERVISORS = %w[physical xen0 vmware_server vmware_workstation openvzhn vserver_host].freeze
|
|
11
|
-
end
|
|
12
|
-
end
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
module FactsUtils
|
|
5
|
-
class UnitConverter
|
|
6
|
-
class << self
|
|
7
|
-
def bytes_to_mb(value_in_bytes)
|
|
8
|
-
return unless value_in_bytes
|
|
9
|
-
|
|
10
|
-
value_in_bytes = value_in_bytes.to_i
|
|
11
|
-
|
|
12
|
-
(value_in_bytes / (1024.0 * 1024.0)).round(2)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def hertz_to_human_readable(speed)
|
|
16
|
-
speed = speed.to_i
|
|
17
|
-
return if !speed || speed.zero?
|
|
18
|
-
|
|
19
|
-
prefix = { 3 => 'k', 6 => 'M', 9 => 'G', 12 => 'T' }
|
|
20
|
-
power = Math.log10(speed).floor
|
|
21
|
-
validated_speed = power.zero? ? speed.to_f : speed.fdiv(10**power)
|
|
22
|
-
format('%<displayed_speed>.2f', displayed_speed: validated_speed).to_s + ' ' + prefix[power] + 'Hz'
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def bytes_to_human_readable(bytes)
|
|
26
|
-
return unless bytes
|
|
27
|
-
return bytes.to_s + ' bytes' if bytes < 1024
|
|
28
|
-
|
|
29
|
-
number, multiple = determine_exponent(bytes)
|
|
30
|
-
|
|
31
|
-
"#{pad_number(number)} #{multiple}"
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
def pad_number(number)
|
|
37
|
-
number = number.to_s
|
|
38
|
-
number << '0' if number.split('.').last.length == 1
|
|
39
|
-
number
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def determine_exponent(bytes)
|
|
43
|
-
prefix = %w[KiB MiB GiB TiB PiB EiB]
|
|
44
|
-
exp = (Math.log2(bytes) / 10.0).floor
|
|
45
|
-
converted_number = (100.0 * (bytes / 1024.0**exp)).round / 100.0
|
|
46
|
-
|
|
47
|
-
if (converted_number - 1024.0).abs < Float::EPSILON
|
|
48
|
-
exp += 1
|
|
49
|
-
converted_number = 1.00
|
|
50
|
-
end
|
|
51
|
-
multiple = prefix[exp - 1] || 'bytes'
|
|
52
|
-
|
|
53
|
-
converted_number = bytes if multiple == 'bytes'
|
|
54
|
-
[converted_number, multiple]
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'time'
|
|
4
|
-
|
|
5
|
-
module Facter
|
|
6
|
-
class UptimeParser
|
|
7
|
-
SECS_IN_A_DAY = 86_400
|
|
8
|
-
SECS_IN_AN_HOUR = 3_600
|
|
9
|
-
SECS_IN_A_MINUTE = 60
|
|
10
|
-
|
|
11
|
-
@log = Facter::Log.new(self)
|
|
12
|
-
|
|
13
|
-
class << self
|
|
14
|
-
def uptime_seconds_unix
|
|
15
|
-
uptime_proc_uptime || uptime_sysctl || uptime_executable
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def uptime_proc_uptime
|
|
21
|
-
output = Facter::Core::Execution.execute("/bin/cat #{uptime_file}", logger: @log)
|
|
22
|
-
|
|
23
|
-
output.chomp.split(' ').first.to_i unless output.empty?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def uptime_sysctl
|
|
27
|
-
output = Facter::Core::Execution.execute("sysctl -n #{uptime_sysctl_variable}", logger: @log)
|
|
28
|
-
|
|
29
|
-
compute_uptime(Time.at(output.match(/\d+/)[0].to_i)) unless output.empty?
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def uptime_executable
|
|
33
|
-
output = Facter::Core::Execution.execute(uptime_executable_cmd, logger: @log)
|
|
34
|
-
|
|
35
|
-
return unless output
|
|
36
|
-
|
|
37
|
-
up = 0
|
|
38
|
-
output_calculator_methods.find { |method| up = send(method, output) }
|
|
39
|
-
up || 0
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def uptime_file
|
|
43
|
-
'/proc/uptime'
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def uptime_sysctl_variable
|
|
47
|
-
'kern.boottime'
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def uptime_executable_cmd
|
|
51
|
-
'uptime'
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def output_calculator_methods
|
|
55
|
-
%i[
|
|
56
|
-
calculate_days_hours_minutes
|
|
57
|
-
calculate_days_hours
|
|
58
|
-
calculate_days_minutes
|
|
59
|
-
calculate_days
|
|
60
|
-
calculate_hours_minutes
|
|
61
|
-
calculate_hours
|
|
62
|
-
calculate_minutes
|
|
63
|
-
]
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def compute_uptime(time)
|
|
67
|
-
(Time.now - time).to_i
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
# Regexp handles Solaris, AIX, HP-UX, and Tru64.
|
|
71
|
-
# 'day(?:s|\(s\))?' says maybe 'day', 'days',
|
|
72
|
-
# or 'day(s)', and don't set $2.
|
|
73
|
-
def calculate_days_hours_minutes(output)
|
|
74
|
-
return unless output =~ /(\d+) day(?:s|\(s\))?,?\s+(\d+):-?(\d+)/
|
|
75
|
-
|
|
76
|
-
SECS_IN_A_DAY * Regexp.last_match(1).to_i +
|
|
77
|
-
SECS_IN_AN_HOUR * Regexp.last_match(2).to_i +
|
|
78
|
-
SECS_IN_A_MINUTE * Regexp.last_match(3).to_i
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
def calculate_days_hours(output)
|
|
82
|
-
return unless output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) hr(?:s|\(s\))?,/
|
|
83
|
-
|
|
84
|
-
SECS_IN_A_DAY * Regexp.last_match(1).to_i +
|
|
85
|
-
SECS_IN_AN_HOUR * Regexp.last_match(2).to_i
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
def calculate_days_minutes(output)
|
|
89
|
-
return unless output =~ /(\d+) day(?:s|\(s\))?,\s+(\d+) min(?:s|\(s\))?,/
|
|
90
|
-
|
|
91
|
-
SECS_IN_A_DAY * Regexp.last_match(1).to_i +
|
|
92
|
-
SECS_IN_A_MINUTE * Regexp.last_match(2).to_i
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def calculate_days(output)
|
|
96
|
-
return unless output =~ /(\d+) day(?:s|\(s\))?,/
|
|
97
|
-
|
|
98
|
-
SECS_IN_A_DAY * Regexp.last_match(1).to_i
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
# must anchor to 'up' to avoid matching time of day
|
|
102
|
-
# at beginning of line. Certain versions of uptime on
|
|
103
|
-
# Solaris may insert a '-' into the minutes field.
|
|
104
|
-
def calculate_hours_minutes(output)
|
|
105
|
-
return unless output =~ /up\s+(\d+):-?(\d+),/
|
|
106
|
-
|
|
107
|
-
SECS_IN_AN_HOUR * Regexp.last_match(1).to_i +
|
|
108
|
-
SECS_IN_A_MINUTE * Regexp.last_match(2).to_i
|
|
109
|
-
end
|
|
110
|
-
|
|
111
|
-
def calculate_hours(output)
|
|
112
|
-
return unless output =~ /(\d+) hr(?:s|\(s\))?,/
|
|
113
|
-
|
|
114
|
-
SECS_IN_AN_HOUR * Regexp.last_match(1).to_i
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def calculate_minutes(output)
|
|
118
|
-
return unless output =~ /(\d+) min(?:s|\(s\))?,/
|
|
119
|
-
|
|
120
|
-
SECS_IN_A_MINUTE * Regexp.last_match(1).to_i
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
class VirtualDetector
|
|
5
|
-
def initialize
|
|
6
|
-
@log = Facter::Log.new(self)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def platform # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
10
|
-
fact_value = check_docker_lxc || check_dmi || check_gce || retrieve_from_virt_what || check_vmware
|
|
11
|
-
fact_value ||= check_open_vz || check_vserver || check_xen || check_other_facts || check_lspci || 'physical'
|
|
12
|
-
|
|
13
|
-
fact_value
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def check_docker_lxc
|
|
17
|
-
@log.debug('Checking Docker and LXC')
|
|
18
|
-
Facter::Resolvers::Containers.resolve(:vm)
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def check_dmi
|
|
22
|
-
@log.debug('Checking DMI')
|
|
23
|
-
vendor = Facter::Resolvers::DmiDecode.resolve(:vendor)
|
|
24
|
-
@log.debug("dmi detected vendor: #{vendor}")
|
|
25
|
-
return 'kvm' if vendor =~ /Amazon/
|
|
26
|
-
|
|
27
|
-
'xen' if vendor =~ /Xen/
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def check_gce
|
|
31
|
-
@log.debug('Checking GCE')
|
|
32
|
-
bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
|
|
33
|
-
'gce' if bios_vendor&.include?('Google')
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
def check_vmware
|
|
37
|
-
@log.debug('Checking VMware')
|
|
38
|
-
Facter::Resolvers::Vmware.resolve(:vm)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def retrieve_from_virt_what
|
|
42
|
-
@log.debug('Checking virtual_what')
|
|
43
|
-
Facter::Resolvers::VirtWhat.resolve(:vm)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def check_open_vz
|
|
47
|
-
@log.debug('Checking OpenVZ')
|
|
48
|
-
Facter::Resolvers::OpenVz.resolve(:vm)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def check_vserver
|
|
52
|
-
@log.debug('Checking VServer')
|
|
53
|
-
Facter::Resolvers::VirtWhat.resolve(:vserver)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def check_xen
|
|
57
|
-
@log.debug('Checking XEN')
|
|
58
|
-
Facter::Resolvers::Xen.resolve(:vm)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def check_other_facts
|
|
62
|
-
@log.debug('Checking others')
|
|
63
|
-
product_name = Facter::Resolvers::Linux::DmiBios.resolve(:product_name)
|
|
64
|
-
bios_vendor = Facter::Resolvers::Linux::DmiBios.resolve(:bios_vendor)
|
|
65
|
-
return 'kvm' if bios_vendor&.include?('Amazon EC2')
|
|
66
|
-
return unless product_name
|
|
67
|
-
|
|
68
|
-
Facter::FactsUtils::HYPERVISORS_HASH.each { |key, value| return value if product_name.include?(key) }
|
|
69
|
-
|
|
70
|
-
nil
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
def check_lspci
|
|
74
|
-
@log.debug('Checking lspci')
|
|
75
|
-
Facter::Resolvers::Lspci.resolve(:vm)
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
class WindowsReleaseFinder
|
|
5
|
-
class << self
|
|
6
|
-
def find_release(input)
|
|
7
|
-
version = input[:version]
|
|
8
|
-
return unless version
|
|
9
|
-
|
|
10
|
-
consumerrel = input[:consumerrel]
|
|
11
|
-
description = input[:description]
|
|
12
|
-
kernel_version = input[:kernel_version]
|
|
13
|
-
|
|
14
|
-
if version =~ /10.0/
|
|
15
|
-
check_version_10(consumerrel, kernel_version)
|
|
16
|
-
else
|
|
17
|
-
check_version_6(version, consumerrel) || check_version_5(version, consumerrel, description) || version
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
private
|
|
22
|
-
|
|
23
|
-
def check_version_10(consumerrel, kernel_version)
|
|
24
|
-
build_number = kernel_version[/([^.]*)$/].to_i
|
|
25
|
-
if consumerrel
|
|
26
|
-
'10'
|
|
27
|
-
elsif build_number >= 17_623
|
|
28
|
-
'2019'
|
|
29
|
-
else
|
|
30
|
-
'2016'
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def check_version_6(version, consumerrel)
|
|
35
|
-
hash = {}
|
|
36
|
-
hash['6.3'] = consumerrel ? '8.1' : '2012 R2'
|
|
37
|
-
hash['6.2'] = consumerrel ? '8' : '2012'
|
|
38
|
-
hash['6.1'] = consumerrel ? '7' : '2008 R2'
|
|
39
|
-
hash['6.0'] = consumerrel ? 'Vista' : '2008'
|
|
40
|
-
hash[version]
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def check_version_5(version, consumerrel, description)
|
|
44
|
-
return unless version =~ /5.2/
|
|
45
|
-
return 'XP' if consumerrel
|
|
46
|
-
|
|
47
|
-
description == 'R2' ? '2003 R2' : '2003'
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
module InfoExtractor
|
|
5
|
-
MEGABYTES_EXPONENT = 1024**2
|
|
6
|
-
GIGABYTES_EXPONENT = 1024**3
|
|
7
|
-
|
|
8
|
-
def self.extract(content, regex)
|
|
9
|
-
content = content.each_line.map do |line|
|
|
10
|
-
next unless regex =~ line
|
|
11
|
-
|
|
12
|
-
line.split(/:\s*|\s{2,}/)
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
content.flatten!.reject!(&:nil?)
|
|
16
|
-
|
|
17
|
-
Hash[*content]
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
# CuAt (Customized Attributes) non-default attribute values
|
|
4
|
-
# CuDv (Customized Devices) the devices present on this machine
|
|
5
|
-
# PdAt (Predefined Attributes) default values for all device attributes
|
|
6
|
-
# PdDv (Predefined Devices) the list of all devices supported by this release of AIX
|
|
7
|
-
|
|
8
|
-
module Facter
|
|
9
|
-
class ODMQuery
|
|
10
|
-
REPOS = %w[CuAt CuDv PdAt PdDv].freeze
|
|
11
|
-
|
|
12
|
-
def initialize
|
|
13
|
-
@query = ''
|
|
14
|
-
@conditions = []
|
|
15
|
-
@log = Facter::Log.new(self)
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def equals(field, value)
|
|
19
|
-
@conditions << "#{field}='#{value}'"
|
|
20
|
-
self
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def like(field, value)
|
|
24
|
-
@conditions << "#{field} like '#{value}'"
|
|
25
|
-
self
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def execute
|
|
29
|
-
result = nil
|
|
30
|
-
REPOS.each do |repo|
|
|
31
|
-
break if result && !result.empty?
|
|
32
|
-
|
|
33
|
-
result = Facter::Core::Execution.execute("#{query} #{repo}", logger: @log)
|
|
34
|
-
end
|
|
35
|
-
result
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def query
|
|
39
|
-
'odmget -q "' + @conditions.join(' AND ') + '"'
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Facter
|
|
4
|
-
module Resolvers
|
|
5
|
-
class PuppetVersionResolver < BaseResolver
|
|
6
|
-
# :puppetversion
|
|
7
|
-
|
|
8
|
-
init_resolver
|
|
9
|
-
|
|
10
|
-
class << self
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
def post_resolve(fact_name)
|
|
14
|
-
@fact_list.fetch(fact_name) { puppet_version(fact_name) }
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def puppet_version(fact_name)
|
|
18
|
-
require 'puppet/version'
|
|
19
|
-
@fact_list[:puppetversion] = Puppet.version
|
|
20
|
-
|
|
21
|
-
@fact_list[fact_name]
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|