facter 4.0.34 → 4.0.39
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
}
|