facter 4.0.20 → 4.0.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/actions/presuite.rb +109 -0
- data/.github/workflows/acceptance_tests.yml +61 -0
- data/.github/workflows/checks.yaml +71 -0
- data/.github/workflows/unit_tests.yaml +41 -0
- data/.rubocop.yml +71 -52
- data/.rubocop_todo.yml +5 -28
- data/CHANGELOG.md +25 -0
- data/README.md +5 -2
- data/VERSION +1 -1
- data/facter.conf +4 -0
- data/facter.gemspec +1 -2
- data/lib/custom_facts/core/execution.rb +8 -1
- data/lib/custom_facts/core/execution/base.rb +16 -8
- data/lib/custom_facts/util/normalization.rb +1 -1
- data/lib/custom_facts/util/parser.rb +10 -2
- data/lib/facter.rb +18 -12
- data/lib/facts/{el → aix}/processors/count.rb +2 -2
- data/lib/facts/{el → aix}/processors/isa.rb +1 -10
- data/lib/facts/{sles → aix}/processors/models.rb +2 -2
- data/lib/facts/aix/processors/speed.rb +17 -0
- data/lib/facts/debian/{os/architecture.rb → architecture.rb} +1 -0
- data/lib/facts/debian/os/distro/release.rb +9 -21
- data/lib/facts/debian/os/release.rb +9 -21
- data/lib/facts/freebsd/os/release.rb +43 -0
- data/lib/facts/{sles → linux}/augeas/version.rb +1 -1
- data/lib/facts/linux/dhcp_servers.rb +27 -0
- data/lib/facts/{sles → linux}/disks.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/bios/release_date.rb +1 -1
- data/lib/facts/{el → linux}/dmi/bios/vendor.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/bios/version.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/board/manufacturer.rb +1 -1
- data/lib/facts/{el → linux}/dmi/board/product.rb +1 -1
- data/lib/facts/{el → linux}/dmi/board/serial_number.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/chassis/asset_tag.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/chassis/type.rb +1 -1
- data/lib/facts/{el → linux}/dmi/manufacturer.rb +1 -1
- data/lib/facts/{el → linux}/dmi/product/name.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/product/serial_number.rb +1 -1
- data/lib/facts/{sles → linux}/dmi/product/uuid.rb +1 -1
- data/lib/facts/{debian → linux}/facterversion.rb +1 -1
- data/lib/facts/{el → linux}/filesystems.rb +1 -1
- data/lib/facts/{el → linux}/fips_enabled.rb +1 -1
- data/lib/facts/{sles → linux}/identity/gid.rb +1 -1
- data/lib/facts/{el → linux}/identity/group.rb +1 -1
- data/lib/facts/{el → linux}/identity/privileged.rb +1 -1
- data/lib/facts/{sles → linux}/identity/uid.rb +1 -1
- data/lib/facts/{el → linux}/identity/user.rb +1 -1
- data/lib/facts/{el → linux}/interfaces.rb +1 -1
- data/lib/facts/linux/ipaddress6_interfaces.rb +20 -0
- data/lib/facts/linux/ipaddress_interfaces.rb +20 -0
- data/lib/facts/{debian → linux}/kernel.rb +1 -1
- data/lib/facts/{debian → linux}/kernelmajversion.rb +1 -1
- data/lib/facts/{el → linux}/kernelrelease.rb +1 -1
- data/lib/facts/{debian → linux}/kernelversion.rb +1 -1
- data/lib/facts/{el → linux}/load_averages.rb +1 -1
- data/lib/facts/{debian → linux}/lsbdistrelease.rb +1 -1
- data/lib/facts/linux/macaddress_interfaces.rb +20 -0
- data/lib/facts/{el → linux}/memory/swap/available.rb +1 -1
- data/lib/facts/{debian → linux}/memory/swap/available_bytes.rb +1 -1
- data/lib/facts/{sles → linux}/memory/swap/capacity.rb +1 -1
- data/lib/facts/{el → linux}/memory/swap/total.rb +1 -1
- data/lib/facts/{el → linux}/memory/swap/total_bytes.rb +1 -1
- data/lib/facts/{el → linux}/memory/swap/used.rb +1 -1
- data/lib/facts/{el → linux}/memory/swap/used_bytes.rb +1 -1
- data/lib/facts/{debian → linux}/memory/system/available.rb +1 -1
- data/lib/facts/{debian → linux}/memory/system/available_bytes.rb +1 -1
- data/lib/facts/{el → linux}/memory/system/capacity.rb +1 -1
- data/lib/facts/{sles → linux}/memory/system/total.rb +1 -1
- data/lib/facts/{sles → linux}/memory/system/total_bytes.rb +1 -1
- data/lib/facts/{sles → linux}/memory/system/used.rb +1 -1
- data/lib/facts/{el → linux}/memory/system/used_bytes.rb +1 -1
- data/lib/facts/{sles → linux}/mountpoints.rb +1 -1
- data/lib/facts/linux/mtu_interfaces.rb +20 -0
- data/lib/facts/linux/netmask6_interfaces.rb +20 -0
- data/lib/facts/linux/netmask_interfaces.rb +20 -0
- data/lib/facts/linux/network6_interfaces.rb +20 -0
- data/lib/facts/linux/network_interfaces.rb +20 -0
- data/lib/facts/linux/networking/dhcp.rb +20 -0
- data/lib/facts/{el → linux}/networking/domain.rb +1 -1
- data/lib/facts/{el → linux}/networking/fqdn.rb +1 -1
- data/lib/facts/{el → linux}/networking/hostname.rb +1 -1
- data/lib/facts/{sles → linux}/networking/interfaces.rb +1 -1
- data/lib/facts/{sles → linux}/networking/ip.rb +5 -2
- data/lib/facts/linux/networking/ip6.rb +21 -0
- data/lib/facts/{debian → linux}/networking/mac.rb +5 -2
- data/lib/facts/linux/networking/mtu.rb +20 -0
- data/lib/facts/linux/networking/netmask.rb +21 -0
- data/lib/facts/linux/networking/netmask6.rb +21 -0
- data/lib/facts/linux/networking/network.rb +21 -0
- data/lib/facts/linux/networking/network6.rb +21 -0
- data/lib/facts/{sles → linux}/networking/primary.rb +1 -1
- data/lib/facts/linux/networking/scope6.rb +20 -0
- data/lib/facts/{el → linux}/os/architecture.rb +3 -1
- data/lib/facts/{sles/os/distro/specification.rb → linux/os/distro/codename.rb} +5 -5
- data/lib/facts/{debian/os/distro/specification.rb → linux/os/distro/description.rb} +5 -5
- data/lib/facts/linux/os/distro/id.rb +21 -0
- data/lib/facts/linux/os/distro/release.rb +31 -0
- data/lib/facts/{el → linux}/os/distro/specification.rb +1 -1
- data/lib/facts/{debian → linux}/os/family.rb +1 -1
- data/lib/facts/{el → linux}/os/hardware.rb +1 -1
- data/lib/facts/{sles → linux}/os/name.rb +1 -1
- data/lib/facts/{el → linux}/os/release.rb +1 -1
- data/lib/facts/{el → linux}/os/selinux/config_mode.rb +1 -1
- data/lib/facts/{sles → linux}/os/selinux/config_policy.rb +1 -1
- data/lib/facts/{el → linux}/os/selinux/current_mode.rb +1 -1
- data/lib/facts/{el → linux}/os/selinux/enabled.rb +1 -1
- data/lib/facts/{el → linux}/os/selinux/enforced.rb +1 -1
- data/lib/facts/{el → linux}/os/selinux/policy_version.rb +1 -1
- data/lib/facts/{sles → linux}/partitions.rb +1 -1
- data/lib/facts/{debian → linux}/path.rb +1 -1
- data/lib/facts/{el → linux}/processor.rb +1 -1
- data/lib/facts/{sles → linux}/processors/count.rb +1 -1
- data/lib/facts/{debian → linux}/processors/isa.rb +1 -1
- data/lib/facts/{el → linux}/processors/models.rb +1 -1
- data/lib/facts/{sles → linux}/processors/physicalcount.rb +1 -2
- data/lib/facts/{el → linux}/puppet_version.rb +1 -1
- data/lib/facts/{sles → linux}/ruby/platform.rb +1 -1
- data/lib/facts/{sles → linux}/ruby/sitedir.rb +1 -1
- data/lib/facts/{sles → linux}/ruby/version.rb +1 -1
- data/lib/facts/linux/scope6_interfaces.rb +26 -0
- data/lib/facts/{el → linux}/ssh.rb +1 -1
- data/lib/facts/{sles → linux}/sshalgorithmkey.rb +1 -1
- data/lib/facts/{el → linux}/sshfp_algorithm.rb +1 -1
- data/lib/facts/{sles → linux}/system_uptime/days.rb +1 -1
- data/lib/facts/{el → linux}/system_uptime/hours.rb +1 -1
- data/lib/facts/{el → linux}/system_uptime/seconds.rb +1 -1
- data/lib/facts/{el → linux}/system_uptime/uptime.rb +1 -1
- data/lib/facts/{el → linux}/timezone.rb +1 -1
- data/lib/facts/{el → rhel}/os/distro/codename.rb +1 -1
- data/lib/facts/{el → rhel}/os/distro/description.rb +1 -1
- data/lib/facts/{el → rhel}/os/distro/id.rb +1 -1
- data/lib/facts/{el → rhel}/os/distro/release.rb +1 -1
- data/lib/facts/{el → rhel}/os/family.rb +1 -1
- data/lib/facts/{el → rhel}/os/name.rb +1 -1
- data/lib/facts/rhel/os/release.rb +36 -0
- data/lib/facts/ubuntu/os/distro/release.rb +31 -0
- data/lib/facts/ubuntu/os/release.rb +20 -0
- data/lib/facts/windows/dhcp_servers.rb +5 -2
- data/lib/facts/windows/networking/primary.rb +1 -1
- data/lib/facts_utils/uptime_parser.rb +6 -3
- data/lib/framework/config/config_reader.rb +4 -0
- data/lib/framework/config/fact_groups.rb +2 -1
- data/lib/framework/core/cache_manager.rb +19 -21
- data/lib/framework/core/fact_loaders/internal_fact_loader.rb +2 -2
- data/lib/framework/core/options/config_file_options.rb +19 -10
- data/lib/framework/core/options/option_store.rb +14 -5
- data/lib/framework/detector/os_detector.rb +2 -0
- data/lib/framework/formatters/yaml_fact_formatter.rb +50 -4
- data/lib/resolvers/aix/mountpoints.rb +3 -3
- data/lib/resolvers/aix/networking_resolver.rb +1 -1
- data/lib/resolvers/aix/os_level_resolver.rb +1 -1
- data/lib/resolvers/aix/partitions.rb +3 -6
- data/lib/resolvers/aix/processors.rb +80 -0
- data/lib/resolvers/aix/utils/odm_query.rb +2 -1
- data/lib/resolvers/augeas_resolver.rb +1 -1
- data/lib/resolvers/eos_release_resolver.rb +3 -1
- data/lib/resolvers/freebsd/freebsd_version_resolver.rb +37 -0
- data/lib/resolvers/hostname_resolver.rb +1 -2
- data/lib/resolvers/lpar_resolver.rb +1 -2
- data/lib/resolvers/lsb_release_resolver.rb +2 -5
- data/lib/resolvers/macosx/dmi_resolver.rb +1 -2
- data/lib/resolvers/macosx/filesystems_resolver.rb +1 -2
- data/lib/resolvers/macosx/ipaddress_resolver.rb +3 -4
- data/lib/resolvers/macosx/load_averages_resolver.rb +1 -2
- data/lib/resolvers/macosx/mountpoints_resolver.rb +0 -1
- data/lib/resolvers/macosx/processor_resolver.rb +1 -2
- data/lib/resolvers/macosx/swap_memory_resolver.rb +2 -3
- data/lib/resolvers/macosx/system_memory_resolver.rb +3 -4
- data/lib/resolvers/macosx/system_profiler_resolver.rb +3 -1
- data/lib/resolvers/mountpoints_resolver.rb +3 -3
- data/lib/resolvers/networking_linux_resolver.rb +78 -19
- data/lib/resolvers/os_level_resolver.rb +3 -2
- data/lib/resolvers/partitions.rb +7 -4
- data/lib/resolvers/processors_resolver.rb +5 -0
- data/lib/resolvers/selinux_resolver.rb +1 -1
- data/lib/resolvers/solaris/filesystems_resolver.rb +1 -1
- data/lib/resolvers/solaris/ipaddress_resolver.rb +2 -3
- data/lib/resolvers/solaris/processors.rb +2 -6
- data/lib/resolvers/solaris/solaris_os_release_resolver.rb +2 -12
- data/lib/resolvers/solaris/solaris_zone_name.rb +2 -8
- data/lib/resolvers/solaris/zfs_resolver.rb +1 -2
- data/lib/resolvers/solaris/zone_resolver.rb +3 -9
- data/lib/resolvers/solaris/zpool_resolver.rb +1 -2
- data/lib/resolvers/sw_vers_resolver.rb +1 -1
- data/lib/resolvers/uname_resolver.rb +2 -2
- data/lib/resolvers/utils/filesystem_helper.rb +1 -1
- data/lib/resolvers/windows/ffi/network_utils.rb +1 -1
- data/lib/resolvers/windows/networking_resolver.rb +8 -7
- data/lib/resolvers/windows/virtualization_resolver.rb +5 -4
- data/lib/resolvers/wpar_resolver.rb +3 -3
- data/os_hierarchy.json +7 -4
- data/tasks/fact_list_generator.rake +26 -0
- metadata +130 -262
- data/.github/workflows/rtc.yml +0 -11
- data/.travis.yml +0 -47
- data/lib/facts/debian/augeas/version.rb +0 -19
- data/lib/facts/debian/disks.rb +0 -15
- data/lib/facts/debian/dmi/bios/release_date.rb +0 -19
- data/lib/facts/debian/dmi/bios/vendor.rb +0 -19
- data/lib/facts/debian/dmi/bios/version.rb +0 -19
- data/lib/facts/debian/dmi/board/manufacturer.rb +0 -19
- data/lib/facts/debian/dmi/board/product.rb +0 -19
- data/lib/facts/debian/dmi/board/serial_number.rb +0 -19
- data/lib/facts/debian/dmi/chassis/asset_tag.rb +0 -19
- data/lib/facts/debian/dmi/chassis/type.rb +0 -19
- data/lib/facts/debian/dmi/manufacturer.rb +0 -17
- data/lib/facts/debian/dmi/product/name.rb +0 -19
- data/lib/facts/debian/dmi/product/serial_number.rb +0 -18
- data/lib/facts/debian/dmi/product/uuid.rb +0 -18
- data/lib/facts/debian/filesystems.rb +0 -14
- data/lib/facts/debian/fips_enabled.rb +0 -14
- data/lib/facts/debian/identity/gid.rb +0 -16
- data/lib/facts/debian/identity/group.rb +0 -18
- data/lib/facts/debian/identity/privileged.rb +0 -16
- data/lib/facts/debian/identity/uid.rb +0 -16
- data/lib/facts/debian/identity/user.rb +0 -17
- data/lib/facts/debian/interfaces.rb +0 -16
- data/lib/facts/debian/kernelrelease.rb +0 -14
- data/lib/facts/debian/load_averages.rb +0 -14
- data/lib/facts/debian/memory/swap/available.rb +0 -20
- data/lib/facts/debian/memory/swap/capacity.rb +0 -18
- data/lib/facts/debian/memory/swap/total.rb +0 -20
- data/lib/facts/debian/memory/swap/total_bytes.rb +0 -20
- data/lib/facts/debian/memory/swap/used.rb +0 -19
- data/lib/facts/debian/memory/swap/used_bytes.rb +0 -18
- data/lib/facts/debian/memory/system/capacity.rb +0 -18
- data/lib/facts/debian/memory/system/total.rb +0 -20
- data/lib/facts/debian/memory/system/total_bytes.rb +0 -20
- data/lib/facts/debian/memory/system/used.rb +0 -19
- data/lib/facts/debian/memory/system/used_bytes.rb +0 -18
- data/lib/facts/debian/mountpoints.rb +0 -21
- data/lib/facts/debian/networking/domain.rb +0 -17
- data/lib/facts/debian/networking/fqdn.rb +0 -17
- data/lib/facts/debian/networking/hostname.rb +0 -17
- data/lib/facts/debian/networking/interfaces.rb +0 -16
- data/lib/facts/debian/networking/ip.rb +0 -18
- data/lib/facts/debian/networking/primary.rb +0 -17
- data/lib/facts/debian/os/hardware.rb +0 -18
- data/lib/facts/debian/os/name.rb +0 -18
- data/lib/facts/debian/os/selinux/config_mode.rb +0 -21
- data/lib/facts/debian/os/selinux/config_policy.rb +0 -21
- data/lib/facts/debian/os/selinux/current_mode.rb +0 -21
- data/lib/facts/debian/os/selinux/enabled.rb +0 -21
- data/lib/facts/debian/os/selinux/enforced.rb +0 -21
- data/lib/facts/debian/os/selinux/policy_version.rb +0 -21
- data/lib/facts/debian/partitions.rb +0 -26
- data/lib/facts/debian/processors/count.rb +0 -17
- data/lib/facts/debian/processors/models.rb +0 -16
- data/lib/facts/debian/processors/physicalcount.rb +0 -17
- data/lib/facts/debian/puppet_version.rb +0 -15
- data/lib/facts/debian/ruby/platform.rb +0 -18
- data/lib/facts/debian/ruby/sitedir.rb +0 -18
- data/lib/facts/debian/ruby/version.rb +0 -18
- data/lib/facts/debian/ssh.rb +0 -26
- data/lib/facts/debian/system_uptime/days.rb +0 -18
- data/lib/facts/debian/system_uptime/hours.rb +0 -18
- data/lib/facts/debian/system_uptime/seconds.rb +0 -18
- data/lib/facts/debian/system_uptime/uptime.rb +0 -18
- data/lib/facts/debian/timezone.rb +0 -14
- data/lib/facts/el/augeas/version.rb +0 -19
- data/lib/facts/el/disks.rb +0 -15
- data/lib/facts/el/dmi/bios/release_date.rb +0 -19
- data/lib/facts/el/dmi/bios/version.rb +0 -19
- data/lib/facts/el/dmi/board/manufacturer.rb +0 -19
- data/lib/facts/el/dmi/chassis/asset_tag.rb +0 -19
- data/lib/facts/el/dmi/chassis/type.rb +0 -19
- data/lib/facts/el/dmi/product/serial_number.rb +0 -19
- data/lib/facts/el/dmi/product/uuid.rb +0 -19
- data/lib/facts/el/facterversion.rb +0 -14
- data/lib/facts/el/identity/gid.rb +0 -16
- data/lib/facts/el/identity/uid.rb +0 -16
- data/lib/facts/el/kernel.rb +0 -14
- data/lib/facts/el/kernelmajversion.rb +0 -23
- data/lib/facts/el/kernelversion.rb +0 -21
- data/lib/facts/el/memory/swap/available_bytes.rb +0 -20
- data/lib/facts/el/memory/swap/capacity.rb +0 -18
- data/lib/facts/el/memory/system/available.rb +0 -20
- data/lib/facts/el/memory/system/available_bytes.rb +0 -20
- data/lib/facts/el/memory/system/total.rb +0 -20
- data/lib/facts/el/memory/system/total_bytes.rb +0 -20
- data/lib/facts/el/memory/system/used.rb +0 -19
- data/lib/facts/el/mountpoints.rb +0 -21
- data/lib/facts/el/networking/interfaces.rb +0 -16
- data/lib/facts/el/networking/ip.rb +0 -18
- data/lib/facts/el/networking/mac.rb +0 -18
- data/lib/facts/el/networking/primary.rb +0 -17
- data/lib/facts/el/os/selinux/config_policy.rb +0 -21
- data/lib/facts/el/partitions.rb +0 -26
- data/lib/facts/el/path.rb +0 -14
- data/lib/facts/el/processors/physicalcount.rb +0 -18
- data/lib/facts/el/ruby/platform.rb +0 -18
- data/lib/facts/el/ruby/sitedir.rb +0 -18
- data/lib/facts/el/ruby/version.rb +0 -18
- data/lib/facts/el/sshalgorithmkey.rb +0 -17
- data/lib/facts/el/system_uptime/days.rb +0 -18
- data/lib/facts/sles/dmi/bios/vendor.rb +0 -19
- data/lib/facts/sles/dmi/board/product.rb +0 -19
- data/lib/facts/sles/dmi/board/serial_number.rb +0 -19
- data/lib/facts/sles/dmi/manufacturer.rb +0 -17
- data/lib/facts/sles/dmi/product/name.rb +0 -19
- data/lib/facts/sles/facterversion.rb +0 -14
- data/lib/facts/sles/filesystems.rb +0 -14
- data/lib/facts/sles/fips_enabled.rb +0 -14
- data/lib/facts/sles/identity/group.rb +0 -18
- data/lib/facts/sles/identity/privileged.rb +0 -16
- data/lib/facts/sles/identity/user.rb +0 -17
- data/lib/facts/sles/interfaces.rb +0 -16
- data/lib/facts/sles/kernel.rb +0 -14
- data/lib/facts/sles/kernelmajversion.rb +0 -15
- data/lib/facts/sles/kernelrelease.rb +0 -14
- data/lib/facts/sles/kernelversion.rb +0 -15
- data/lib/facts/sles/load_averages.rb +0 -14
- data/lib/facts/sles/memory/swap/available.rb +0 -20
- data/lib/facts/sles/memory/swap/available_bytes.rb +0 -20
- data/lib/facts/sles/memory/swap/total.rb +0 -20
- data/lib/facts/sles/memory/swap/total_bytes.rb +0 -20
- data/lib/facts/sles/memory/swap/used.rb +0 -19
- data/lib/facts/sles/memory/swap/used_bytes.rb +0 -18
- data/lib/facts/sles/memory/system/available.rb +0 -20
- data/lib/facts/sles/memory/system/available_bytes.rb +0 -20
- data/lib/facts/sles/memory/system/capacity.rb +0 -18
- data/lib/facts/sles/memory/system/used_bytes.rb +0 -18
- data/lib/facts/sles/networking/domain.rb +0 -17
- data/lib/facts/sles/networking/fqdn.rb +0 -17
- data/lib/facts/sles/networking/hostname.rb +0 -17
- data/lib/facts/sles/networking/mac.rb +0 -18
- data/lib/facts/sles/os/architecture.rb +0 -18
- data/lib/facts/sles/os/hardware.rb +0 -18
- data/lib/facts/sles/os/selinux/config_mode.rb +0 -21
- data/lib/facts/sles/os/selinux/current_mode.rb +0 -21
- data/lib/facts/sles/os/selinux/enabled.rb +0 -21
- data/lib/facts/sles/os/selinux/enforced.rb +0 -21
- data/lib/facts/sles/os/selinux/policy_version.rb +0 -21
- data/lib/facts/sles/path.rb +0 -14
- data/lib/facts/sles/processor.rb +0 -20
- data/lib/facts/sles/processors/isa.rb +0 -27
- data/lib/facts/sles/puppet_version.rb +0 -15
- data/lib/facts/sles/ssh.rb +0 -26
- data/lib/facts/sles/sshfp_algorithm.rb +0 -20
- data/lib/facts/sles/system_uptime/hours.rb +0 -18
- data/lib/facts/sles/system_uptime/seconds.rb +0 -18
- data/lib/facts/sles/system_uptime/uptime.rb +0 -18
- data/lib/facts/sles/timezone.rb +0 -14
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Linux
|
5
|
+
class Scope6Interfaces
|
6
|
+
FACT_NAME = 'scope6_.*'
|
7
|
+
TYPE = :legacy
|
8
|
+
|
9
|
+
def call_the_resolver
|
10
|
+
resolved_facts = []
|
11
|
+
scope6_interfaces = {}
|
12
|
+
interfaces = Facter::Resolvers::NetworkingLinux.resolve(:interfaces)
|
13
|
+
primary = Facter::Resolvers::NetworkingLinux.resolve(:primary_interface)
|
14
|
+
interfaces&.each do |interface_name, info|
|
15
|
+
scope6_interfaces["scope6_#{interface_name}"] = info[:scope6] if info[:scope6]
|
16
|
+
end
|
17
|
+
|
18
|
+
scope6_interfaces.each { |fact, value| resolved_facts << Facter::ResolvedFact.new(fact, value, :legacy) }
|
19
|
+
if interfaces && primary
|
20
|
+
resolved_facts << Facter::ResolvedFact.new('scope6', interfaces[primary][:scope6], :legacy)
|
21
|
+
end
|
22
|
+
resolved_facts
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Rhel
|
5
|
+
module Os
|
6
|
+
class Release
|
7
|
+
FACT_NAME = 'os.release'
|
8
|
+
ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
version = determine_release_version
|
12
|
+
|
13
|
+
return Facter::ResolvedFact.new(FACT_NAME, nil) unless version
|
14
|
+
|
15
|
+
[Facter::ResolvedFact.new(FACT_NAME, version),
|
16
|
+
Facter::ResolvedFact.new(ALIASES.first, version['major'], :legacy),
|
17
|
+
Facter::ResolvedFact.new(ALIASES.last, version['full'], :legacy)]
|
18
|
+
end
|
19
|
+
|
20
|
+
def determine_release_version
|
21
|
+
version = Facter::Resolvers::OsRelease.resolve(:version_id)
|
22
|
+
version ||= Facter::Resolvers::RedHatRelease.resolve(:version)
|
23
|
+
|
24
|
+
return unless version
|
25
|
+
|
26
|
+
versions = version.split('.')
|
27
|
+
fact_value = {}
|
28
|
+
fact_value['full'] = version
|
29
|
+
fact_value['major'] = versions[0]
|
30
|
+
fact_value['minor'] = versions[1].gsub(/^0([1-9])/, '\1') if versions[1]
|
31
|
+
fact_value
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Ubuntu
|
5
|
+
module Os
|
6
|
+
module Distro
|
7
|
+
class Release
|
8
|
+
FACT_NAME = 'os.distro.release'
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
fact_value = determine_release_for_os
|
12
|
+
|
13
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def determine_release_for_os
|
19
|
+
release = Facter::Resolvers::OsRelease.resolve(:version_id)
|
20
|
+
return unless release
|
21
|
+
|
22
|
+
{
|
23
|
+
'full' => release,
|
24
|
+
'major' => release
|
25
|
+
}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facts
|
4
|
+
module Ubuntu
|
5
|
+
module Os
|
6
|
+
class Release
|
7
|
+
FACT_NAME = 'os.release'
|
8
|
+
ALIASES = %w[operatingsystemmajrelease operatingsystemrelease].freeze
|
9
|
+
|
10
|
+
def call_the_resolver
|
11
|
+
version = Facter::Resolvers::OsRelease.resolve(:version_id)
|
12
|
+
|
13
|
+
[Facter::ResolvedFact.new(FACT_NAME, full: version, major: version),
|
14
|
+
Facter::ResolvedFact.new(ALIASES.first, version, :legacy),
|
15
|
+
Facter::ResolvedFact.new(ALIASES.last, version, :legacy)]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -7,14 +7,17 @@ module Facts
|
|
7
7
|
|
8
8
|
def call_the_resolver
|
9
9
|
fact_value = construct_addresses_hash
|
10
|
-
|
10
|
+
fact_value = !fact_value || fact_value.empty? ? nil : fact_value
|
11
|
+
Facter::ResolvedFact.new(FACT_NAME, fact_value, :legacy)
|
11
12
|
end
|
12
13
|
|
13
14
|
private
|
14
15
|
|
15
16
|
def construct_addresses_hash
|
16
|
-
servers = { system: Facter::Resolvers::Networking.resolve(:dhcp) }
|
17
17
|
interfaces = Facter::Resolvers::Networking.resolve(:interfaces)
|
18
|
+
return unless interfaces
|
19
|
+
|
20
|
+
servers = { system: Facter::Resolvers::Networking.resolve(:dhcp) }
|
18
21
|
interfaces&.each { |interface_name, info| servers[interface_name] = info[:dhcp] if info[:dhcp] }
|
19
22
|
servers
|
20
23
|
end
|
@@ -7,7 +7,7 @@ module Facts
|
|
7
7
|
FACT_NAME = 'networking.primary'
|
8
8
|
|
9
9
|
def call_the_resolver
|
10
|
-
fact_value = Facter::Resolvers::Networking.resolve(:
|
10
|
+
fact_value = Facter::Resolvers::Networking.resolve(:primary_interface)
|
11
11
|
|
12
12
|
Facter::ResolvedFact.new(FACT_NAME, fact_value)
|
13
13
|
end
|
@@ -8,6 +8,8 @@ module Facter
|
|
8
8
|
SECS_IN_AN_HOUR = 3_600
|
9
9
|
SECS_IN_A_MINUTE = 60
|
10
10
|
|
11
|
+
@log = Facter::Log.new(self)
|
12
|
+
|
11
13
|
class << self
|
12
14
|
def uptime_seconds_unix
|
13
15
|
uptime_proc_uptime || uptime_sysctl || uptime_executable
|
@@ -16,19 +18,20 @@ module Facter
|
|
16
18
|
private
|
17
19
|
|
18
20
|
def uptime_proc_uptime
|
19
|
-
output
|
21
|
+
output = Facter::Core::Execution.execute("/bin/cat #{uptime_file}", logger: @log)
|
20
22
|
|
21
23
|
output.chomp.split(' ').first.to_i unless output.empty?
|
22
24
|
end
|
23
25
|
|
24
26
|
def uptime_sysctl
|
25
|
-
output
|
27
|
+
output = Facter::Core::Execution.execute("sysctl -n #{uptime_sysctl_variable}", logger: @log)
|
26
28
|
|
27
29
|
compute_uptime(Time.at(output.match(/\d+/)[0].to_i)) unless output.empty?
|
28
30
|
end
|
29
31
|
|
30
32
|
def uptime_executable
|
31
|
-
output
|
33
|
+
output = Facter::Core::Execution.execute(uptime_executable_cmd, logger: @log)
|
34
|
+
|
32
35
|
return unless output
|
33
36
|
|
34
37
|
up = 0
|
@@ -44,7 +44,8 @@ module Facter
|
|
44
44
|
def load_groups
|
45
45
|
config = ConfigReader.init(Options[:config])
|
46
46
|
@block_list = config.block_list || {}
|
47
|
-
@groups_ttls =
|
47
|
+
@groups_ttls = config.ttls || {}
|
48
|
+
@groups.merge!(config.fact_groups) if config.fact_groups
|
48
49
|
end
|
49
50
|
|
50
51
|
def ttls_to_seconds(ttls)
|
@@ -6,14 +6,11 @@ module Facter
|
|
6
6
|
@groups = {}
|
7
7
|
@log = Log.new(self)
|
8
8
|
@fact_groups = Facter::FactGroups.new
|
9
|
-
|
10
|
-
|
11
|
-
def cache_dir
|
12
|
-
LegacyFacter::Util::Config.facts_cache_dir
|
9
|
+
@cache_dir = LegacyFacter::Util::Config.facts_cache_dir
|
13
10
|
end
|
14
11
|
|
15
12
|
def resolve_facts(searched_facts)
|
16
|
-
return searched_facts, [] if !File.directory?(cache_dir) || !Options[:cache]
|
13
|
+
return searched_facts, [] if !File.directory?(@cache_dir) || !Options[:cache]
|
17
14
|
|
18
15
|
facts = []
|
19
16
|
searched_facts.each do |fact|
|
@@ -48,7 +45,7 @@ module Facter
|
|
48
45
|
|
49
46
|
return unless group_cached?(group_name)
|
50
47
|
|
51
|
-
return
|
48
|
+
return unless check_ttls?(group_name)
|
52
49
|
|
53
50
|
data = read_group_json(group_name)
|
54
51
|
return unless data
|
@@ -73,16 +70,16 @@ module Facter
|
|
73
70
|
end
|
74
71
|
|
75
72
|
def write_cache
|
76
|
-
unless File.directory?(cache_dir)
|
73
|
+
unless File.directory?(@cache_dir)
|
77
74
|
require 'fileutils'
|
78
|
-
FileUtils.mkdir_p(cache_dir)
|
75
|
+
FileUtils.mkdir_p(@cache_dir)
|
79
76
|
end
|
80
77
|
|
81
78
|
@groups.each do |group_name, data|
|
82
|
-
next
|
79
|
+
next unless check_ttls?(group_name)
|
83
80
|
|
84
81
|
@log.debug("caching values for #{group_name} facts")
|
85
|
-
cache_file_name = File.join(cache_dir, group_name)
|
82
|
+
cache_file_name = File.join(@cache_dir, group_name)
|
86
83
|
File.write(cache_file_name, JSON.pretty_generate(data))
|
87
84
|
end
|
88
85
|
end
|
@@ -90,7 +87,7 @@ module Facter
|
|
90
87
|
def read_group_json(group_name)
|
91
88
|
return @groups[group_name] if @groups.key?(group_name)
|
92
89
|
|
93
|
-
cache_file_name = File.join(cache_dir, group_name)
|
90
|
+
cache_file_name = File.join(@cache_dir, group_name)
|
94
91
|
data = nil
|
95
92
|
file = Util::FileHelper.safe_read(cache_file_name)
|
96
93
|
begin
|
@@ -107,24 +104,25 @@ module Facter
|
|
107
104
|
cached
|
108
105
|
end
|
109
106
|
|
110
|
-
def check_ttls(group_name)
|
107
|
+
def check_ttls?(group_name)
|
111
108
|
ttls = @fact_groups.get_group_ttls(group_name)
|
112
|
-
return
|
109
|
+
return false unless ttls
|
113
110
|
|
114
|
-
cache_file_name = File.join(cache_dir, group_name)
|
115
|
-
|
111
|
+
cache_file_name = File.join(@cache_dir, group_name)
|
112
|
+
if File.readable?(cache_file_name)
|
113
|
+
file_time = File.mtime(cache_file_name)
|
114
|
+
expire_date = file_time + ttls
|
115
|
+
return true if expire_date > Time.now
|
116
116
|
|
117
|
-
file_time = File.mtime(cache_file_name)
|
118
|
-
expire_date = file_time + ttls
|
119
|
-
if expire_date < Time.now
|
120
117
|
File.delete(cache_file_name)
|
121
|
-
return ttls
|
122
118
|
end
|
123
|
-
|
119
|
+
|
120
|
+
@log.debug("#{group_name} facts cache file expired/missing")
|
121
|
+
true
|
124
122
|
end
|
125
123
|
|
126
124
|
def delete_cache(group_name)
|
127
|
-
cache_file_name = File.join(cache_dir, group_name)
|
125
|
+
cache_file_name = File.join(@cache_dir, group_name)
|
128
126
|
File.delete(cache_file_name) if File.readable?(cache_file_name)
|
129
127
|
end
|
130
128
|
end
|