facter 4.0.34 → 4.0.39
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.rb +111 -11
- data/lib/facter/custom_facts/core/execution/base.rb +36 -6
- data/lib/facter/custom_facts/util/directory_loader.rb +12 -2
- data/lib/facter/custom_facts/util/fact.rb +4 -1
- data/lib/facter/fact_groups.conf +140 -1
- data/lib/facter/facts/aix/disks.rb +17 -2
- data/lib/facter/facts/aix/kernel.rb +1 -1
- data/lib/facter/facts/aix/kernelmajversion.rb +1 -1
- data/lib/facter/facts/aix/kernelrelease.rb +1 -1
- data/lib/facter/facts/aix/kernelversion.rb +1 -1
- data/lib/facter/facts/aix/networking/scope6.rb +3 -1
- data/lib/facter/facts/aix/os/release.rb +1 -1
- data/lib/facter/facts/aix/scope6_interfaces.rb +0 -2
- data/lib/facter/facts/aix/serialnumber.rb +20 -0
- data/lib/facter/facts/aix/ssh.rb +3 -1
- data/lib/facter/facts/aix/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/aix/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/debian/os/distro/release.rb +6 -1
- data/lib/facter/facts/freebsd/augeas/version.rb +19 -0
- data/lib/facter/facts/freebsd/facterversion.rb +14 -0
- data/lib/facter/facts/freebsd/identity/gid.rb +16 -0
- data/lib/facter/facts/{solaris/solaris_zones/current.rb → freebsd/identity/group.rb} +6 -6
- data/lib/facter/facts/freebsd/identity/privileged.rb +16 -0
- data/lib/facter/facts/freebsd/identity/uid.rb +16 -0
- data/lib/facter/facts/freebsd/identity/user.rb +17 -0
- data/lib/facter/facts/freebsd/kernel.rb +14 -0
- data/lib/facter/facts/freebsd/kernelrelease.rb +14 -0
- data/lib/facter/facts/freebsd/mountpoints.rb +21 -0
- data/lib/facter/facts/freebsd/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/network6_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/network_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/networking/dhcp.rb +17 -0
- data/lib/facter/facts/freebsd/networking/domain.rb +18 -0
- data/lib/facter/facts/freebsd/networking/fqdn.rb +18 -0
- data/lib/facter/facts/freebsd/networking/hostname.rb +18 -0
- data/lib/facter/facts/freebsd/networking/interfaces.rb +17 -0
- data/lib/facter/facts/freebsd/networking/ip.rb +18 -0
- data/lib/facter/facts/freebsd/networking/ip6.rb +18 -0
- data/lib/facter/facts/freebsd/networking/mac.rb +18 -0
- data/lib/facter/facts/freebsd/networking/mtu.rb +17 -0
- data/lib/facter/facts/freebsd/networking/netmask.rb +18 -0
- data/lib/facter/facts/freebsd/networking/netmask6.rb +18 -0
- data/lib/facter/facts/freebsd/networking/network.rb +18 -0
- data/lib/facter/facts/freebsd/networking/network6.rb +18 -0
- data/lib/facter/facts/freebsd/networking/primary.rb +17 -0
- data/lib/facter/facts/freebsd/networking/scope6.rb +17 -0
- data/lib/facter/facts/freebsd/os/architecture.rb +18 -0
- data/lib/facter/facts/freebsd/os/hardware.rb +18 -0
- data/lib/facter/facts/freebsd/os/name.rb +18 -0
- data/lib/facter/facts/{bsd/bsd_example_fact.rb → freebsd/path.rb} +5 -4
- data/lib/facter/facts/freebsd/processors/isa.rb +17 -0
- data/lib/facter/facts/freebsd/puppet_version.rb +15 -0
- data/lib/facter/facts/freebsd/ruby/platform.rb +18 -0
- data/lib/facter/facts/freebsd/ruby/sitedir.rb +18 -0
- data/lib/facter/facts/freebsd/ruby/version.rb +18 -0
- data/lib/facter/facts/freebsd/ssh.rb +26 -0
- data/lib/facter/facts/freebsd/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/freebsd/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/freebsd/system_uptime/days.rb +18 -0
- data/lib/facter/facts/freebsd/system_uptime/hours.rb +18 -0
- data/lib/facter/facts/freebsd/system_uptime/seconds.rb +18 -0
- data/lib/facter/facts/freebsd/system_uptime/uptime.rb +18 -0
- data/lib/facter/facts/freebsd/timezone.rb +15 -0
- data/lib/facter/facts/freebsd/zfs_featurenumbers.rb +14 -0
- data/lib/facter/facts/freebsd/zfs_version.rb +14 -0
- data/lib/facter/facts/freebsd/zpool_featureflags.rb +14 -0
- data/lib/facter/facts/freebsd/zpool_featurenumbers.rb +14 -0
- data/lib/facter/facts/freebsd/zpool_version.rb +14 -0
- data/lib/facter/facts/linux/cloud.rb +15 -0
- data/lib/facter/facts/linux/disks.rb +20 -1
- data/lib/facter/facts/linux/dmi/board/asset_tag.rb +19 -0
- data/lib/facter/facts/linux/ec2_metadata.rb +9 -5
- data/lib/facter/facts/linux/ec2_userdata.rb +5 -3
- data/lib/facter/facts/linux/gce.rb +16 -0
- data/lib/facter/facts/linux/is_virtual.rb +1 -3
- data/lib/facter/facts/linux/mountpoints.rb +1 -1
- data/lib/facter/facts/linux/networking/scope6.rb +3 -1
- data/lib/facter/facts/linux/partitions.rb +2 -2
- data/lib/facter/facts/linux/processors/speed.rb +17 -0
- data/lib/facter/facts/linux/scope6_interfaces.rb +1 -2
- data/lib/facter/facts/linux/ssh.rb +19 -9
- data/lib/facter/facts/linux/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/linux/system_uptime/days.rb +7 -1
- data/lib/facter/facts/linux/system_uptime/hours.rb +7 -1
- data/lib/facter/facts/linux/system_uptime/seconds.rb +7 -1
- data/lib/facter/facts/linux/system_uptime/uptime.rb +7 -1
- data/lib/facter/facts/linux/xen.rb +28 -0
- data/lib/facter/facts/macosx/dhcp_servers.rb +2 -2
- data/lib/facter/facts/macosx/interfaces.rb +1 -1
- data/lib/facter/facts/macosx/ipaddress6_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/ipaddress_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/macaddress_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/mtu_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/netmask6_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/netmask_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/network6_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/network_interfaces.rb +1 -1
- data/lib/facter/facts/macosx/networking/dhcp.rb +1 -1
- data/lib/facter/facts/macosx/networking/interfaces.rb +1 -1
- data/lib/facter/facts/macosx/networking/ip.rb +1 -1
- data/lib/facter/facts/macosx/networking/ip6.rb +1 -1
- data/lib/facter/facts/macosx/networking/mac.rb +1 -1
- data/lib/facter/facts/macosx/networking/mtu.rb +1 -1
- data/lib/facter/facts/macosx/networking/netmask.rb +1 -1
- data/lib/facter/facts/macosx/networking/netmask6.rb +1 -1
- data/lib/facter/facts/macosx/networking/network.rb +1 -1
- data/lib/facter/facts/macosx/networking/network6.rb +1 -1
- data/lib/facter/facts/macosx/networking/primary.rb +1 -1
- data/lib/facter/facts/macosx/networking/scope6.rb +4 -2
- data/lib/facter/facts/macosx/scope6_interfaces.rb +1 -3
- data/lib/facter/facts/macosx/ssh.rb +19 -11
- data/lib/facter/facts/macosx/sshfp_algorithm.rb +1 -1
- data/lib/facter/facts/rhel/os/release.rb +2 -2
- data/lib/facter/facts/solaris/current_zone.rb +16 -0
- data/lib/facter/facts/solaris/disks.rb +33 -0
- data/lib/facter/facts/solaris/dmi/bios/release_date.rb +24 -0
- data/lib/facter/facts/solaris/dmi/bios/vendor.rb +24 -0
- data/lib/facter/facts/solaris/dmi/bios/version.rb +24 -0
- data/lib/facter/facts/solaris/dmi/chassis/asset_tag.rb +24 -0
- data/lib/facter/facts/solaris/dmi/chassis/type.rb +24 -0
- data/lib/facter/facts/solaris/dmi/manufacturer.rb +25 -0
- data/lib/facter/facts/solaris/dmi/product/name.rb +27 -0
- data/lib/facter/facts/solaris/dmi/product/serial_number.rb +27 -0
- data/lib/facter/facts/solaris/dmi/product/uuid.rb +24 -0
- data/lib/facter/facts/solaris/hypervisors/ldom.rb +24 -0
- data/lib/facter/facts/solaris/hypervisors/zone.rb +39 -0
- data/lib/facter/facts/solaris/is_virtual.rb +64 -0
- data/lib/facter/facts/solaris/kernelmajversion.rb +1 -1
- data/lib/facter/facts/solaris/ldom.rb +35 -0
- data/lib/facter/facts/solaris/mountpoints.rb +1 -1
- data/lib/facter/facts/solaris/os/release.rb +3 -3
- data/lib/facter/facts/solaris/ssh.rb +19 -9
- data/lib/facter/facts/solaris/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/solaris/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/solaris/virtual.rb +60 -0
- data/lib/facter/facts/solaris/zfs_featurenumbers.rb +1 -1
- data/lib/facter/facts/solaris/zfs_version.rb +1 -1
- data/lib/facter/facts/solaris/zones.rb +60 -0
- data/lib/facter/facts/solaris/zpool_featureflags.rb +1 -1
- data/lib/facter/facts/solaris/zpool_featurenumbers.rb +1 -1
- data/lib/facter/facts/solaris/zpool_version.rb +1 -1
- data/lib/facter/facts/ubuntu/lsbdistrelease.rb +23 -0
- data/lib/facter/facts/windows/dhcp_servers.rb +2 -2
- data/lib/facter/facts/windows/ec2_metadata.rb +5 -3
- data/lib/facter/facts/windows/ec2_userdata.rb +5 -3
- data/lib/facter/facts/windows/gce.rb +16 -0
- data/lib/facter/facts/windows/interfaces.rb +1 -1
- data/lib/facter/facts/windows/ipaddress6_interfaces.rb +1 -1
- data/lib/facter/facts/windows/ipaddress_interfaces.rb +1 -1
- data/lib/facter/facts/windows/macaddress_interfaces.rb +1 -1
- data/lib/facter/facts/windows/mtu_interfaces.rb +1 -1
- data/lib/facter/facts/windows/netmask6_interfaces.rb +1 -1
- data/lib/facter/facts/windows/netmask_interfaces.rb +1 -1
- data/lib/facter/facts/windows/network6_interfaces.rb +1 -1
- data/lib/facter/facts/windows/network_interfaces.rb +1 -1
- data/lib/facter/facts/windows/networking/dhcp.rb +1 -1
- data/lib/facter/facts/windows/networking/domain.rb +1 -1
- data/lib/facter/facts/windows/networking/fqdn.rb +1 -1
- data/lib/facter/facts/windows/networking/interfaces.rb +1 -1
- data/lib/facter/facts/windows/networking/ip.rb +1 -1
- data/lib/facter/facts/windows/networking/ip6.rb +1 -1
- data/lib/facter/facts/windows/networking/mac.rb +1 -1
- data/lib/facter/facts/windows/networking/mtu.rb +1 -1
- data/lib/facter/facts/windows/networking/netmask.rb +1 -1
- data/lib/facter/facts/windows/networking/netmask6.rb +1 -1
- data/lib/facter/facts/windows/networking/network.rb +1 -1
- data/lib/facter/facts/windows/networking/network6.rb +1 -1
- data/lib/facter/facts/windows/networking/primary.rb +1 -1
- data/lib/facter/facts/windows/networking/scope6.rb +4 -2
- data/lib/facter/facts/windows/scope6_interfaces.rb +1 -1
- data/lib/facter/facts/windows/sshalgorithmkey.rb +22 -0
- data/lib/facter/facts/windows/sshfp_algorithm.rb +25 -0
- data/lib/facter/facts_utils/facts_utils.rb +2 -0
- data/lib/facter/framework/benchmarking/timer.rb +23 -0
- data/lib/facter/framework/cli/cli.rb +21 -4
- data/lib/facter/framework/config/fact_groups.rb +13 -0
- data/lib/facter/framework/core/fact/internal/core_fact.rb +2 -0
- data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +11 -25
- data/lib/facter/framework/core/fact_filter.rb +13 -0
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +24 -1
- data/lib/facter/framework/core/fact_loaders/internal_fact_loader.rb +7 -7
- data/lib/facter/framework/core/file_loader.rb +2 -0
- data/lib/facter/framework/core/options/option_store.rb +3 -1
- data/lib/facter/framework/core/session_cache.rb +1 -4
- data/lib/facter/framework/formatters/legacy_fact_formatter.rb +8 -1
- data/lib/facter/framework/formatters/yaml_fact_formatter.rb +1 -1
- data/lib/facter/framework/logging/logger.rb +2 -6
- data/lib/facter/os_hierarchy.json +3 -6
- data/lib/facter/patches/sysfilesystem/sys/statvfs.rb +92 -0
- data/lib/facter/resolvers/aio_agent_version.rb +0 -1
- data/lib/facter/resolvers/aix/architecture_resolver.rb +0 -1
- data/lib/facter/resolvers/aix/disks.rb +2 -3
- data/lib/facter/resolvers/aix/filesystem_resolver.rb +0 -1
- data/lib/facter/resolvers/aix/hardware_resolver.rb +0 -1
- data/lib/facter/resolvers/aix/load_averages_resolver.rb +0 -1
- data/lib/facter/resolvers/aix/memory.rb +2 -3
- data/lib/facter/resolvers/aix/mountpoints.rb +0 -1
- data/lib/facter/resolvers/aix/networking_resolver.rb +0 -1
- data/lib/facter/resolvers/aix/nim.rb +0 -1
- data/lib/facter/resolvers/aix/os_level.rb +27 -0
- data/lib/facter/resolvers/aix/partitions.rb +2 -3
- data/lib/facter/resolvers/aix/processors.rb +0 -1
- data/lib/facter/resolvers/aix/serialnumber.rb +36 -0
- data/lib/facter/resolvers/augeas_resolver.rb +0 -1
- data/lib/facter/resolvers/base_resolver.rb +10 -5
- data/lib/facter/resolvers/bsd/processors.rb +0 -1
- data/lib/facter/resolvers/cloud.rb +39 -0
- data/lib/facter/resolvers/containers.rb +0 -1
- data/lib/facter/resolvers/debian_version.rb +0 -1
- data/lib/facter/resolvers/disk_resolver.rb +0 -1
- data/lib/facter/resolvers/dmi_decode.rb +0 -1
- data/lib/facter/resolvers/dmi_resolver.rb +4 -4
- data/lib/facter/resolvers/ec2.rb +4 -19
- data/lib/facter/resolvers/eos_release_resolver.rb +0 -1
- data/lib/facter/resolvers/facterversion_resolver.rb +0 -1
- data/lib/facter/resolvers/filesystems_resolver.rb +1 -2
- data/lib/facter/resolvers/fips_enabled_resolver.rb +0 -1
- data/lib/facter/resolvers/freebsd/dmi_resolver.rb +0 -1
- data/lib/facter/resolvers/freebsd/freebsd_version_resolver.rb +0 -1
- data/lib/facter/resolvers/freebsd/geom_resolver.rb +0 -1
- data/lib/facter/resolvers/freebsd/processors.rb +0 -1
- data/lib/facter/resolvers/freebsd/swap_memory_resolver.rb +0 -1
- data/lib/facter/resolvers/freebsd/system_memory_resolver.rb +0 -1
- data/lib/facter/resolvers/gce.rb +53 -0
- data/lib/facter/resolvers/hostname_resolver.rb +0 -1
- data/lib/facter/resolvers/identity_resolver.rb +0 -1
- data/lib/facter/resolvers/linux/docker_uptime.rb +44 -0
- data/lib/facter/resolvers/linux/load_averages.rb +0 -2
- data/lib/facter/resolvers/load_averages.rb +2 -1
- data/lib/facter/resolvers/lpar_resolver.rb +0 -1
- data/lib/facter/resolvers/lsb_release_resolver.rb +0 -1
- data/lib/facter/resolvers/lspci.rb +0 -1
- data/lib/facter/resolvers/macosx/dmi_resolver.rb +0 -1
- data/lib/facter/resolvers/macosx/filesystems_resolver.rb +1 -6
- data/lib/facter/resolvers/macosx/load_averages_resolver.rb +0 -1
- data/lib/facter/resolvers/macosx/mountpoints_resolver.rb +3 -3
- data/lib/facter/resolvers/macosx/processor_resolver.rb +0 -1
- data/lib/facter/resolvers/macosx/swap_memory_resolver.rb +0 -1
- data/lib/facter/resolvers/macosx/system_memory_resolver.rb +0 -1
- data/lib/facter/resolvers/macosx/system_profiler_resolver.rb +0 -1
- data/lib/facter/resolvers/memory_resolver.rb +13 -2
- data/lib/facter/resolvers/mountpoints_resolver.rb +41 -44
- data/lib/facter/resolvers/networking_linux_resolver.rb +0 -1
- data/lib/facter/resolvers/networking_resolver.rb +105 -0
- data/lib/facter/resolvers/open_vz.rb +0 -1
- data/lib/facter/resolvers/os_release_resolver.rb +0 -1
- data/lib/facter/resolvers/partitions.rb +37 -2
- data/lib/facter/resolvers/path_resolver.rb +0 -1
- data/lib/facter/resolvers/processors_resolver.rb +24 -3
- data/lib/facter/resolvers/puppet_version_resolver.rb +0 -1
- data/lib/facter/resolvers/redhat_release_resolver.rb +0 -1
- data/lib/facter/resolvers/ruby_resolver.rb +0 -1
- data/lib/facter/resolvers/selinux_resolver.rb +0 -1
- data/lib/facter/resolvers/solaris/disks.rb +50 -0
- data/lib/facter/resolvers/solaris/dmi.rb +56 -0
- data/lib/facter/resolvers/solaris/dmi_sparc.rb +46 -0
- data/lib/facter/resolvers/solaris/{filesystems_resolver.rb → filesystems.rb} +0 -1
- data/lib/facter/resolvers/solaris/{ipaddress_resolver.rb → ipaddress.rb} +0 -1
- data/lib/facter/resolvers/solaris/ldom.rb +69 -0
- data/lib/facter/resolvers/solaris/memory.rb +0 -1
- data/lib/facter/resolvers/solaris/{networking_resolver.rb → networking.rb} +0 -1
- data/lib/facter/resolvers/solaris/os_release.rb +43 -0
- data/lib/facter/resolvers/solaris/processors.rb +0 -1
- data/lib/facter/resolvers/solaris/zone.rb +50 -0
- data/lib/facter/resolvers/solaris/zone_name.rb +30 -0
- data/lib/facter/resolvers/ssh_resolver.rb +0 -1
- data/lib/facter/resolvers/suse_release_resolver.rb +0 -1
- data/lib/facter/resolvers/sw_vers_resolver.rb +0 -1
- data/lib/facter/resolvers/timezone_resolver.rb +0 -1
- data/lib/facter/resolvers/uname_resolver.rb +0 -1
- data/lib/facter/resolvers/uptime_resolver.rb +1 -28
- data/lib/facter/resolvers/utils/filesystem_helper.rb +3 -1
- data/lib/facter/resolvers/utils/http.rb +68 -0
- data/lib/facter/resolvers/utils/uptime_helper.rb +32 -0
- data/lib/facter/resolvers/virt_what.rb +0 -1
- data/lib/facter/resolvers/vmware.rb +0 -1
- data/lib/facter/resolvers/windows/aio_agent_version.rb +0 -1
- data/lib/facter/resolvers/windows/dmi_bios_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/dmi_computersystem_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/fips_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/hardware_architecture_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/identity_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/kernel_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/memory_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/netkvm_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/networking_resolver.rb +99 -98
- data/lib/facter/resolvers/windows/processors_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/product_release_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/ssh.rb +0 -1
- data/lib/facter/resolvers/windows/system32_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/uptime_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/virtualization_resolver.rb +0 -1
- data/lib/facter/resolvers/windows/win_os_description_resolver.rb +0 -1
- data/lib/facter/resolvers/wpar_resolver.rb +0 -1
- data/lib/facter/resolvers/xen.rb +28 -1
- data/lib/facter/resolvers/zfs.rb +31 -0
- data/lib/facter/resolvers/zpool.rb +33 -0
- data/lib/facter/version.rb +1 -1
- metadata +106 -18
- data/lib/facter/facts/freebsd/solaris_zones/current.rb +0 -15
- data/lib/facter/facts/freebsd/solaris_zones/zone.rb +0 -15
- data/lib/facter/facts/solaris/solaris_zones/zone.rb +0 -62
- data/lib/facter/resolvers/aix/os_level_resolver.rb +0 -26
- data/lib/facter/resolvers/macosx/networking_resolver.rb +0 -108
- data/lib/facter/resolvers/os_level_resolver.rb +0 -29
- data/lib/facter/resolvers/solaris/solaris_os_release_resolver.rb +0 -42
- data/lib/facter/resolvers/solaris/solaris_zone_name.rb +0 -28
- data/lib/facter/resolvers/solaris/zfs_resolver.rb +0 -34
- data/lib/facter/resolvers/solaris/zone_resolver.rb +0 -48
- data/lib/facter/resolvers/solaris/zpool_resolver.rb +0 -36
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e1cc7c2dc4026c1c24f4140c319b3ac68c5b77dd1b42e61c46f07facff044380
|
|
4
|
+
data.tar.gz: 3565addd16973284508cfc3058aab779dcf3bb30d4c65257fc9831cee898a380
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ca715b689b8b050d20021ed104770a75737fed542236826592068d01066adfc369b222dbf94f2d1eb867c5b3d2023689f8ebd458f690f3f969e98c1c39375ddb
|
|
7
|
+
data.tar.gz: cf6be422f902d75dcbf6fb6d147c3c95f718ab2129a18756b0ffe0626f3cfb3fd4f652a8c9f3278801826a7e15e35e9574cf11e22780593f79db315c6aa3b87b
|
data/lib/facter.rb
CHANGED
|
@@ -13,6 +13,8 @@ module Facter
|
|
|
13
13
|
Options.init
|
|
14
14
|
Log.output(STDOUT)
|
|
15
15
|
@already_searched = {}
|
|
16
|
+
@debug_once = []
|
|
17
|
+
@warn_once = []
|
|
16
18
|
|
|
17
19
|
class << self
|
|
18
20
|
def clear_messages
|
|
@@ -54,6 +56,8 @@ module Facter
|
|
|
54
56
|
# @api public
|
|
55
57
|
def clear
|
|
56
58
|
@already_searched = {}
|
|
59
|
+
@debug_once = []
|
|
60
|
+
@warn_once = []
|
|
57
61
|
LegacyFacter.clear
|
|
58
62
|
Options[:custom_dir] = []
|
|
59
63
|
LegacyFacter.collection.invalidate_custom_facts
|
|
@@ -68,24 +72,54 @@ module Facter
|
|
|
68
72
|
fact_collection.dig(*splitted_user_query)
|
|
69
73
|
end
|
|
70
74
|
|
|
71
|
-
#
|
|
72
|
-
# @param
|
|
75
|
+
# Logs debug message when debug option is set to true
|
|
76
|
+
# @param message [Object] Message object to be logged
|
|
73
77
|
#
|
|
74
78
|
# @return [nil]
|
|
75
79
|
#
|
|
76
80
|
# @api public
|
|
77
|
-
def debug(
|
|
81
|
+
def debug(message)
|
|
78
82
|
return unless debugging?
|
|
79
83
|
|
|
80
|
-
logger.debug(
|
|
84
|
+
logger.debug(message.to_s)
|
|
81
85
|
nil
|
|
82
86
|
end
|
|
83
87
|
|
|
88
|
+
# Logs the same debug message only once when debug option is set to true
|
|
89
|
+
# @param message [Object] Message object to be logged
|
|
90
|
+
#
|
|
91
|
+
# @return [nil]
|
|
92
|
+
#
|
|
93
|
+
# @api public
|
|
94
|
+
def debugonce(message)
|
|
95
|
+
return unless debugging?
|
|
96
|
+
|
|
97
|
+
message_string = message.to_s
|
|
98
|
+
return if @debug_once.include? message_string
|
|
99
|
+
|
|
100
|
+
@debug_once << message_string
|
|
101
|
+
logger.debug(message_string)
|
|
102
|
+
nil
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Define a new fact or extend an existing fact.
|
|
106
|
+
#
|
|
107
|
+
# @param name [Symbol] The name of the fact to define
|
|
108
|
+
# @param options [Hash] A hash of options to set on the fact
|
|
109
|
+
#
|
|
110
|
+
# @return [Facter::Util::Fact] The fact that was defined
|
|
111
|
+
#
|
|
112
|
+
# @api public
|
|
113
|
+
def define_fact(name, options = {}, &block)
|
|
114
|
+
options[:fact_type] = :custom
|
|
115
|
+
LegacyFacter.define_fact(name, options, &block)
|
|
116
|
+
end
|
|
117
|
+
|
|
84
118
|
def on_message(&block)
|
|
85
119
|
Facter::Log.on_message(&block)
|
|
86
120
|
end
|
|
87
121
|
|
|
88
|
-
# Check whether
|
|
122
|
+
# Check whether debugging is enabled
|
|
89
123
|
#
|
|
90
124
|
# @return [bool]
|
|
91
125
|
#
|
|
@@ -104,11 +138,31 @@ module Facter
|
|
|
104
138
|
Facter::Options[:debug] = debug_bool
|
|
105
139
|
end
|
|
106
140
|
|
|
141
|
+
# Iterates over fact names and values
|
|
142
|
+
#
|
|
143
|
+
# @yieldparam [String] name the fact name
|
|
144
|
+
# @yieldparam [String] value the current value of the fact
|
|
145
|
+
#
|
|
146
|
+
# @return [Facter]
|
|
147
|
+
#
|
|
148
|
+
# @api public
|
|
149
|
+
def each
|
|
150
|
+
log_blocked_facts
|
|
151
|
+
resolved_facts = Facter::FactManager.instance.resolve_facts
|
|
152
|
+
SessionCache.invalidate_all_caches
|
|
153
|
+
|
|
154
|
+
resolved_facts.each do |fact|
|
|
155
|
+
yield(fact.name, fact.value)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
self
|
|
159
|
+
end
|
|
160
|
+
|
|
107
161
|
# Returns a fact object by name. If you use this, you still have to
|
|
108
162
|
# call {Facter::Util::Fact#value `value`} on it to retrieve the actual
|
|
109
163
|
# value.
|
|
110
164
|
#
|
|
111
|
-
# @param
|
|
165
|
+
# @param user_query [String] the name of the fact
|
|
112
166
|
#
|
|
113
167
|
# @return [Facter::Util::Fact, nil] The fact object, or nil if no fact
|
|
114
168
|
# is found.
|
|
@@ -134,6 +188,16 @@ module Facter
|
|
|
134
188
|
nil
|
|
135
189
|
end
|
|
136
190
|
|
|
191
|
+
# Loads all facts
|
|
192
|
+
#
|
|
193
|
+
# @return [nil]
|
|
194
|
+
#
|
|
195
|
+
# @api public
|
|
196
|
+
def loadfacts
|
|
197
|
+
LegacyFacter.loadfacts
|
|
198
|
+
nil
|
|
199
|
+
end
|
|
200
|
+
|
|
137
201
|
# Register directories to be searched for custom facts. The registered directories
|
|
138
202
|
# must be absolute paths or they will be ignored.
|
|
139
203
|
#
|
|
@@ -199,7 +263,7 @@ module Facter
|
|
|
199
263
|
end
|
|
200
264
|
|
|
201
265
|
# Enable or disable trace
|
|
202
|
-
# @param
|
|
266
|
+
# @param bool [bool] Set trace on debug state
|
|
203
267
|
#
|
|
204
268
|
# @return [type] [description]
|
|
205
269
|
#
|
|
@@ -210,7 +274,7 @@ module Facter
|
|
|
210
274
|
|
|
211
275
|
# Gets the value for a fact. Returns `nil` if no such fact exists.
|
|
212
276
|
#
|
|
213
|
-
# @param
|
|
277
|
+
# @param user_query [String] the fact name
|
|
214
278
|
# @return [String] the value of the fact, or nil if no fact is found
|
|
215
279
|
#
|
|
216
280
|
# @api public
|
|
@@ -262,6 +326,43 @@ module Facter
|
|
|
262
326
|
logger.error(arr.flatten.join("\n"))
|
|
263
327
|
end
|
|
264
328
|
|
|
329
|
+
# Returns a list with the names of all solved facts
|
|
330
|
+
#
|
|
331
|
+
# @return [Array] the list with all the fact names
|
|
332
|
+
#
|
|
333
|
+
# @api public
|
|
334
|
+
def list
|
|
335
|
+
to_hash.keys.sort
|
|
336
|
+
end
|
|
337
|
+
|
|
338
|
+
# Logs the message parameter as a warning.
|
|
339
|
+
#
|
|
340
|
+
# @param message [Object] the warning object to be displayed
|
|
341
|
+
#
|
|
342
|
+
# @return [nil]
|
|
343
|
+
#
|
|
344
|
+
# @api public
|
|
345
|
+
def warn(message)
|
|
346
|
+
logger.warn(message.to_s)
|
|
347
|
+
nil
|
|
348
|
+
end
|
|
349
|
+
|
|
350
|
+
# Logs only once the same warning message.
|
|
351
|
+
#
|
|
352
|
+
# @param message [Object] the warning message object
|
|
353
|
+
#
|
|
354
|
+
# @return [nil]
|
|
355
|
+
#
|
|
356
|
+
# @api public
|
|
357
|
+
def warnonce(message)
|
|
358
|
+
message_string = message.to_s
|
|
359
|
+
return if @warn_once.include? message_string
|
|
360
|
+
|
|
361
|
+
@warn_once << message_string
|
|
362
|
+
logger.warn(message_string)
|
|
363
|
+
nil
|
|
364
|
+
end
|
|
365
|
+
|
|
265
366
|
private
|
|
266
367
|
|
|
267
368
|
def logger
|
|
@@ -303,10 +404,9 @@ module Facter
|
|
|
303
404
|
# Returns exit status when user query contains facts that do
|
|
304
405
|
# not exist
|
|
305
406
|
#
|
|
306
|
-
# @param
|
|
307
|
-
# @param dirs [Array] List of resolved facts
|
|
407
|
+
# @param resolved_facts [Array] List of resolved facts
|
|
308
408
|
#
|
|
309
|
-
# @return [
|
|
409
|
+
# @return [1/nil] Will return status 1 if user query contains
|
|
310
410
|
# facts that are not found or resolved, otherwise it will return nil
|
|
311
411
|
#
|
|
312
412
|
# @api private
|
|
@@ -6,6 +6,10 @@ module Facter
|
|
|
6
6
|
class Base
|
|
7
7
|
STDERR_MESSAGE = 'Command %s resulted with the following stderr message: %s'
|
|
8
8
|
|
|
9
|
+
def initialize
|
|
10
|
+
@log = Log.new(self)
|
|
11
|
+
end
|
|
12
|
+
|
|
9
13
|
# This is part of the public API. No race condition can happen
|
|
10
14
|
# here because custom facts are executed sequentially
|
|
11
15
|
def with_env(values)
|
|
@@ -36,9 +40,7 @@ module Facter
|
|
|
36
40
|
end
|
|
37
41
|
|
|
38
42
|
def execute(command, options = {})
|
|
39
|
-
on_fail = options
|
|
40
|
-
expand = options.fetch(:expand, true)
|
|
41
|
-
logger = options[:logger]
|
|
43
|
+
on_fail, expand, logger, time_limit = extract_options(options)
|
|
42
44
|
|
|
43
45
|
expanded_command = if !expand && builtin_command?(command) || logger
|
|
44
46
|
command
|
|
@@ -55,11 +57,21 @@ module Facter
|
|
|
55
57
|
return on_fail
|
|
56
58
|
end
|
|
57
59
|
|
|
58
|
-
execute_command(expanded_command, on_fail, logger)
|
|
60
|
+
execute_command(expanded_command, on_fail, logger, time_limit)
|
|
59
61
|
end
|
|
60
62
|
|
|
61
63
|
private
|
|
62
64
|
|
|
65
|
+
def extract_options(options)
|
|
66
|
+
on_fail = options.fetch(:on_fail, :raise)
|
|
67
|
+
expand = options.fetch(:expand, true)
|
|
68
|
+
logger = options[:logger]
|
|
69
|
+
time_limit = options[:limit].to_i
|
|
70
|
+
time_limit = time_limit.positive? ? time_limit : nil
|
|
71
|
+
|
|
72
|
+
[on_fail, expand, logger, time_limit]
|
|
73
|
+
end
|
|
74
|
+
|
|
63
75
|
def log_stderr(msg, command, logger)
|
|
64
76
|
return if !msg || msg.empty?
|
|
65
77
|
|
|
@@ -77,12 +89,30 @@ module Facter
|
|
|
77
89
|
output.chomp =~ /builtin/ ? true : false
|
|
78
90
|
end
|
|
79
91
|
|
|
80
|
-
def execute_command(command, on_fail, logger = nil)
|
|
92
|
+
def execute_command(command, on_fail, logger = nil, time_limit = nil)
|
|
93
|
+
time_limit ||= 1.5
|
|
81
94
|
begin
|
|
82
95
|
# Set LC_ALL and LANG to force i18n to C for the duration of this exec;
|
|
83
96
|
# this ensures that any code that parses the
|
|
84
97
|
# output of the command can expect it to be in a consistent / predictable format / locale
|
|
85
|
-
|
|
98
|
+
opts = { 'LC_ALL' => 'C', 'LANG' => 'C' }
|
|
99
|
+
require 'timeout'
|
|
100
|
+
@log.debug("Executing command: #{command}")
|
|
101
|
+
out, stderr = Open3.popen3(opts, command.to_s) do |_, stdout, stderr, wait_thr|
|
|
102
|
+
pid = wait_thr.pid
|
|
103
|
+
output = +''
|
|
104
|
+
err = +''
|
|
105
|
+
begin
|
|
106
|
+
Timeout.timeout(time_limit) do
|
|
107
|
+
output << stdout.read
|
|
108
|
+
err << stderr.read
|
|
109
|
+
end
|
|
110
|
+
rescue Timeout::Error
|
|
111
|
+
@log.debug("Timeout encounter after #{time_limit}s, killing process with pid: #{pid}")
|
|
112
|
+
Process.kill('KILL', pid)
|
|
113
|
+
end
|
|
114
|
+
[output, err]
|
|
115
|
+
end
|
|
86
116
|
log_stderr(stderr, command, logger)
|
|
87
117
|
rescue StandardError => e
|
|
88
118
|
return '' if logger
|
|
@@ -35,6 +35,7 @@ module LegacyFacter
|
|
|
35
35
|
def initialize(dir = LegacyFacter::Util::Config.external_facts_dirs, weight = EXTERNAL_FACT_WEIGHT)
|
|
36
36
|
@directories = [dir].flatten
|
|
37
37
|
@weight = weight
|
|
38
|
+
@log ||= Facter::Log.new(self)
|
|
38
39
|
end
|
|
39
40
|
|
|
40
41
|
# Load facts from files in fact directory using the relevant parser classes to
|
|
@@ -83,11 +84,12 @@ module LegacyFacter
|
|
|
83
84
|
parser = LegacyFacter::Util::Parser.parser_for(fact.file)
|
|
84
85
|
next if parser.nil?
|
|
85
86
|
|
|
86
|
-
data = parser
|
|
87
|
+
data = resolve_fact(fact, parser)
|
|
88
|
+
|
|
87
89
|
if data == false
|
|
88
90
|
LegacyFacter.warn "Could not interpret fact file #{fact.file}"
|
|
89
91
|
elsif (data == {}) || data.nil?
|
|
90
|
-
|
|
92
|
+
@log.debug("Fact file #{fact.file} was parsed but no key=>value data was returned")
|
|
91
93
|
else
|
|
92
94
|
data.each do |p, v|
|
|
93
95
|
collection.add(p, value: v, fact_type: :external,
|
|
@@ -97,6 +99,14 @@ module LegacyFacter
|
|
|
97
99
|
end
|
|
98
100
|
end
|
|
99
101
|
|
|
102
|
+
def resolve_fact(fact, parser)
|
|
103
|
+
data = nil
|
|
104
|
+
fact_name = File.basename(fact.file)
|
|
105
|
+
Facter::Framework::Benchmarking::Timer.measure(fact_name) { data = parser.results }
|
|
106
|
+
|
|
107
|
+
data
|
|
108
|
+
end
|
|
109
|
+
|
|
100
110
|
def entries
|
|
101
111
|
dirs = @directories.select { |directory| File.directory?(directory) }.map do |directory|
|
|
102
112
|
Dir.entries(directory).map { |directory_entry| File.join(directory, directory_entry) }
|
|
@@ -118,7 +118,10 @@ module Facter
|
|
|
118
118
|
|
|
119
119
|
searching do
|
|
120
120
|
suitable_resolutions = sort_by_weight(find_suitable_resolutions(@resolves))
|
|
121
|
-
|
|
121
|
+
|
|
122
|
+
Facter::Framework::Benchmarking::Timer.measure(@name) do
|
|
123
|
+
@value = find_first_real_value(suitable_resolutions)
|
|
124
|
+
end
|
|
122
125
|
|
|
123
126
|
announce_when_no_suitable_resolution(suitable_resolutions)
|
|
124
127
|
announce_when_no_value_found(@value)
|
data/lib/facter/fact_groups.conf
CHANGED
|
@@ -165,5 +165,144 @@
|
|
|
165
165
|
"virtual",
|
|
166
166
|
"is_virtual",
|
|
167
167
|
"cloud"
|
|
168
|
+
],
|
|
169
|
+
"legacy": [
|
|
170
|
+
"architecture",
|
|
171
|
+
"augeasversion",
|
|
172
|
+
"bios_release_date",
|
|
173
|
+
"bios_vendor",
|
|
174
|
+
"bios_version",
|
|
175
|
+
"blockdevice_*_model",
|
|
176
|
+
"blockdevice_*_size",
|
|
177
|
+
"blockdevice_*_vendor",
|
|
178
|
+
"blockdevices",
|
|
179
|
+
"boardassettag",
|
|
180
|
+
"boardmanufacturer",
|
|
181
|
+
"boardproductname",
|
|
182
|
+
"boardserialnumber",
|
|
183
|
+
"chassisassettag",
|
|
184
|
+
"chassistype",
|
|
185
|
+
"dhcp_servers",
|
|
186
|
+
"domain",
|
|
187
|
+
"fqdn",
|
|
188
|
+
"gid",
|
|
189
|
+
"hardwareisa",
|
|
190
|
+
"hardwaremodel",
|
|
191
|
+
"hostname",
|
|
192
|
+
"id",
|
|
193
|
+
"interfaces",
|
|
194
|
+
"ipaddress",
|
|
195
|
+
"ipaddress_.*",
|
|
196
|
+
"ipaddress_*",
|
|
197
|
+
"ipaddress6",
|
|
198
|
+
"ipaddress6_.*",
|
|
199
|
+
"ipaddress6_*",
|
|
200
|
+
"ldom_*",
|
|
201
|
+
"lsbdistcodename",
|
|
202
|
+
"lsbdistdescription",
|
|
203
|
+
"lsbdistid",
|
|
204
|
+
"lsbdistrelease",
|
|
205
|
+
"lsbmajdistrelease",
|
|
206
|
+
"lsbminordistrelease",
|
|
207
|
+
"lsbrelease",
|
|
208
|
+
"macaddress",
|
|
209
|
+
"macaddress_.*",
|
|
210
|
+
"macaddress_*",
|
|
211
|
+
"macosx_buildversion",
|
|
212
|
+
"macosx_productname",
|
|
213
|
+
"macosx_productversion",
|
|
214
|
+
"macosx_productversion_major",
|
|
215
|
+
"macosx_productversion_minor",
|
|
216
|
+
"manufacturer",
|
|
217
|
+
"memoryfree",
|
|
218
|
+
"memoryfree_mb",
|
|
219
|
+
"memorysize",
|
|
220
|
+
"memorysize_mb",
|
|
221
|
+
"mtu_.*",
|
|
222
|
+
"mtu_*",
|
|
223
|
+
"netmask",
|
|
224
|
+
"netmask_.*",
|
|
225
|
+
"netmask_*",
|
|
226
|
+
"netmask6",
|
|
227
|
+
"netmask6_.*",
|
|
228
|
+
"netmask6_*",
|
|
229
|
+
"network",
|
|
230
|
+
"network_.*",
|
|
231
|
+
"network_*",
|
|
232
|
+
"network6",
|
|
233
|
+
"network6_.*",
|
|
234
|
+
"network6_*",
|
|
235
|
+
"operatingsystem",
|
|
236
|
+
"operatingsystemmajrelease",
|
|
237
|
+
"operatingsystemrelease",
|
|
238
|
+
"osfamily",
|
|
239
|
+
"physicalprocessorcount",
|
|
240
|
+
"processor.*",
|
|
241
|
+
"processor*",
|
|
242
|
+
"processorcount",
|
|
243
|
+
"productname",
|
|
244
|
+
"rubyplatform",
|
|
245
|
+
"rubysitedir",
|
|
246
|
+
"rubyversion",
|
|
247
|
+
"scope6",
|
|
248
|
+
"scope6_.*",
|
|
249
|
+
"selinux",
|
|
250
|
+
"selinux_config_mode",
|
|
251
|
+
"selinux_config_policy",
|
|
252
|
+
"selinux_current_mode",
|
|
253
|
+
"selinux_enforced",
|
|
254
|
+
"selinux_policyversion",
|
|
255
|
+
"serialnumber",
|
|
256
|
+
"sp_*",
|
|
257
|
+
"sp_boot_mode",
|
|
258
|
+
"sp_boot_rom_version",
|
|
259
|
+
"sp_boot_volume",
|
|
260
|
+
"sp_cpu_type",
|
|
261
|
+
"sp_current_processor_speed",
|
|
262
|
+
"sp_kernel_version",
|
|
263
|
+
"sp_l2_cache_core",
|
|
264
|
+
"sp_l3_cache",
|
|
265
|
+
"sp_local_host_name",
|
|
266
|
+
"sp_machine_model",
|
|
267
|
+
"sp_machine_name",
|
|
268
|
+
"sp_number_processors",
|
|
269
|
+
"sp_os_version",
|
|
270
|
+
"sp_packages",
|
|
271
|
+
"sp_physical_memory",
|
|
272
|
+
"sp_platform_uuid",
|
|
273
|
+
"sp_secure_vm",
|
|
274
|
+
"sp_serial_number",
|
|
275
|
+
"sp_smc_version_system",
|
|
276
|
+
"sp_uptime",
|
|
277
|
+
"sp_user_name",
|
|
278
|
+
"ssh.*key",
|
|
279
|
+
"ssh*key",
|
|
280
|
+
"sshfp_.*",
|
|
281
|
+
"sshfp_*",
|
|
282
|
+
"swapencrypted",
|
|
283
|
+
"swapfree",
|
|
284
|
+
"swapfree_mb",
|
|
285
|
+
"swapsize",
|
|
286
|
+
"swapsize_mb",
|
|
287
|
+
"system32",
|
|
288
|
+
"uptime",
|
|
289
|
+
"uptime_days",
|
|
290
|
+
"uptime_hours",
|
|
291
|
+
"uptime_seconds",
|
|
292
|
+
"uuid",
|
|
293
|
+
"windows_edition_id",
|
|
294
|
+
"windows_installation_type",
|
|
295
|
+
"windows_product_name",
|
|
296
|
+
"windows_release_id",
|
|
297
|
+
"xendomains",
|
|
298
|
+
"zone_*_brand",
|
|
299
|
+
"zone_*_id",
|
|
300
|
+
"zone_*_iptype",
|
|
301
|
+
"zone_*_name",
|
|
302
|
+
"zone_*_path",
|
|
303
|
+
"zone_*_status",
|
|
304
|
+
"zone_*_uuid",
|
|
305
|
+
"zonename",
|
|
306
|
+
"zones"
|
|
168
307
|
]
|
|
169
|
-
}
|
|
308
|
+
}
|