openfact 5.0.0.rc0
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 +7 -0
- data/LICENSE +202 -0
- data/bin/facter +10 -0
- data/lib/docs/generate.rb +32 -0
- data/lib/docs/generate_cli.rb +7 -0
- data/lib/docs/template.erb +34 -0
- data/lib/facter/config.rb +405 -0
- data/lib/facter/custom_facts/core/aggregate.rb +279 -0
- data/lib/facter/custom_facts/core/directed_graph.rb +45 -0
- data/lib/facter/custom_facts/core/execution/base.rb +147 -0
- data/lib/facter/custom_facts/core/execution/popen3.rb +59 -0
- data/lib/facter/custom_facts/core/execution/posix.rb +59 -0
- data/lib/facter/custom_facts/core/execution/windows.rb +77 -0
- data/lib/facter/custom_facts/core/execution.rb +153 -0
- data/lib/facter/custom_facts/core/file_loader.rb +23 -0
- data/lib/facter/custom_facts/core/legacy_facter.rb +205 -0
- data/lib/facter/custom_facts/core/resolvable.rb +114 -0
- data/lib/facter/custom_facts/core/suitable.rb +110 -0
- data/lib/facter/custom_facts/util/collection.rb +188 -0
- data/lib/facter/custom_facts/util/composite_loader.rb +18 -0
- data/lib/facter/custom_facts/util/config.rb +96 -0
- data/lib/facter/custom_facts/util/confine.rb +81 -0
- data/lib/facter/custom_facts/util/directory_loader.rb +149 -0
- data/lib/facter/custom_facts/util/fact.rb +268 -0
- data/lib/facter/custom_facts/util/loader.rb +143 -0
- data/lib/facter/custom_facts/util/normalization.rb +89 -0
- data/lib/facter/custom_facts/util/nothing_loader.rb +12 -0
- data/lib/facter/custom_facts/util/parser.rb +221 -0
- data/lib/facter/custom_facts/util/resolution.rb +198 -0
- data/lib/facter/custom_facts/util/unix_root.rb +11 -0
- data/lib/facter/custom_facts/util/values.rb +109 -0
- data/lib/facter/custom_facts/util/windows_root.rb +15 -0
- data/lib/facter/facts/aix/aio_agent_version.rb +14 -0
- data/lib/facter/facts/aix/augeas/version.rb +19 -0
- data/lib/facter/facts/aix/disks.rb +32 -0
- data/lib/facter/facts/aix/facterversion.rb +15 -0
- data/lib/facter/facts/aix/filesystems.rb +14 -0
- data/lib/facter/facts/aix/hypervisors/lpar.rb +20 -0
- data/lib/facter/facts/aix/hypervisors/wpar.rb +19 -0
- data/lib/facter/facts/aix/identity/gid.rb +16 -0
- data/lib/facter/facts/aix/identity/group.rb +18 -0
- data/lib/facter/facts/aix/identity/privileged.rb +16 -0
- data/lib/facter/facts/aix/identity/uid.rb +16 -0
- data/lib/facter/facts/aix/identity/user.rb +17 -0
- data/lib/facter/facts/aix/interfaces.rb +17 -0
- data/lib/facter/facts/aix/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/aix/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/aix/kernel.rb +15 -0
- data/lib/facter/facts/aix/kernelmajversion.rb +16 -0
- data/lib/facter/facts/aix/kernelrelease.rb +15 -0
- data/lib/facter/facts/aix/kernelversion.rb +16 -0
- data/lib/facter/facts/aix/load_averages.rb +14 -0
- data/lib/facter/facts/aix/macaddress_interfaces.rb +20 -0
- data/lib/facter/facts/aix/memory/swap/available.rb +22 -0
- data/lib/facter/facts/aix/memory/swap/available_bytes.rb +22 -0
- data/lib/facter/facts/aix/memory/swap/capacity.rb +20 -0
- data/lib/facter/facts/aix/memory/swap/total.rb +22 -0
- data/lib/facter/facts/aix/memory/swap/total_bytes.rb +22 -0
- data/lib/facter/facts/aix/memory/swap/used.rb +21 -0
- data/lib/facter/facts/aix/memory/swap/used_bytes.rb +19 -0
- data/lib/facter/facts/aix/memory/system/available.rb +22 -0
- data/lib/facter/facts/aix/memory/system/available_bytes.rb +22 -0
- data/lib/facter/facts/aix/memory/system/capacity.rb +20 -0
- data/lib/facter/facts/aix/memory/system/total.rb +22 -0
- data/lib/facter/facts/aix/memory/system/total_bytes.rb +22 -0
- data/lib/facter/facts/aix/memory/system/used.rb +21 -0
- data/lib/facter/facts/aix/memory/system/used_bytes.rb +19 -0
- data/lib/facter/facts/aix/mountpoints.rb +15 -0
- data/lib/facter/facts/aix/mtu_interfaces.rb +20 -0
- data/lib/facter/facts/aix/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/aix/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/aix/network6_interfaces.rb +20 -0
- data/lib/facter/facts/aix/network_interfaces.rb +20 -0
- data/lib/facter/facts/aix/networking/domain.rb +17 -0
- data/lib/facter/facts/aix/networking/fqdn.rb +17 -0
- data/lib/facter/facts/aix/networking/hostname.rb +17 -0
- data/lib/facter/facts/aix/networking/interfaces.rb +18 -0
- data/lib/facter/facts/aix/networking/ip.rb +18 -0
- data/lib/facter/facts/aix/networking/ip6.rb +18 -0
- data/lib/facter/facts/aix/networking/mac.rb +18 -0
- data/lib/facter/facts/aix/networking/mtu.rb +17 -0
- data/lib/facter/facts/aix/networking/netmask.rb +18 -0
- data/lib/facter/facts/aix/networking/netmask6.rb +18 -0
- data/lib/facter/facts/aix/networking/network.rb +18 -0
- data/lib/facter/facts/aix/networking/network6.rb +18 -0
- data/lib/facter/facts/aix/networking/primary.rb +17 -0
- data/lib/facter/facts/aix/networking/scope6.rb +19 -0
- data/lib/facter/facts/aix/nim_type.rb +15 -0
- data/lib/facter/facts/aix/os/architecture.rb +18 -0
- data/lib/facter/facts/aix/os/family.rb +18 -0
- data/lib/facter/facts/aix/os/hardware.rb +18 -0
- data/lib/facter/facts/aix/os/name.rb +18 -0
- data/lib/facter/facts/aix/os/release.rb +21 -0
- data/lib/facter/facts/aix/partitions.rb +15 -0
- data/lib/facter/facts/aix/path.rb +14 -0
- data/lib/facter/facts/aix/processor.rb +20 -0
- data/lib/facter/facts/aix/processors/cores.rb +16 -0
- data/lib/facter/facts/aix/processors/count.rb +17 -0
- data/lib/facter/facts/aix/processors/isa.rb +18 -0
- data/lib/facter/facts/aix/processors/models.rb +16 -0
- data/lib/facter/facts/aix/processors/speed.rb +17 -0
- data/lib/facter/facts/aix/processors/threads.rb +16 -0
- data/lib/facter/facts/aix/ruby/platform.rb +17 -0
- data/lib/facter/facts/aix/ruby/sitedir.rb +17 -0
- data/lib/facter/facts/aix/ruby/version.rb +17 -0
- data/lib/facter/facts/aix/scope6_interfaces.rb +23 -0
- data/lib/facter/facts/aix/serialnumber.rb +20 -0
- data/lib/facter/facts/aix/ssh.rb +36 -0
- data/lib/facter/facts/aix/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/aix/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/aix/system_uptime/days.rb +17 -0
- data/lib/facter/facts/aix/system_uptime/hours.rb +17 -0
- data/lib/facter/facts/aix/system_uptime/seconds.rb +17 -0
- data/lib/facter/facts/aix/system_uptime/uptime.rb +17 -0
- data/lib/facter/facts/aix/timezone.rb +14 -0
- data/lib/facter/facts/alpine/os/release.rb +29 -0
- data/lib/facter/facts/amzn/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/amzn/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/amzn/lsbdistid.rb +16 -0
- data/lib/facter/facts/amzn/os/distro/codename.rb +24 -0
- data/lib/facter/facts/amzn/os/distro/description.rb +21 -0
- data/lib/facter/facts/amzn/os/distro/id.rb +21 -0
- data/lib/facter/facts/amzn/os/distro/release.rb +37 -0
- data/lib/facter/facts/amzn/os/release.rb +34 -0
- data/lib/facter/facts/archlinux/os/release.rb +21 -0
- data/lib/facter/facts/azurelinux/os/release.rb +35 -0
- data/lib/facter/facts/bsd/kernelmajversion.rb +16 -0
- data/lib/facter/facts/bsd/kernelversion.rb +14 -0
- data/lib/facter/facts/bsd/load_averages.rb +14 -0
- data/lib/facter/facts/bsd/os/family.rb +18 -0
- data/lib/facter/facts/bsd/processors/count.rb +17 -0
- data/lib/facter/facts/bsd/processors/models.rb +23 -0
- data/lib/facter/facts/bsd/processors/speed.rb +17 -0
- data/lib/facter/facts/debian/architecture.rb +20 -0
- data/lib/facter/facts/debian/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/debian/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/debian/lsbdistid.rb +16 -0
- data/lib/facter/facts/debian/os/distro/codename.rb +30 -0
- data/lib/facter/facts/debian/os/distro/description.rb +19 -0
- data/lib/facter/facts/debian/os/distro/id.rb +19 -0
- data/lib/facter/facts/debian/os/distro/release.rb +38 -0
- data/lib/facter/facts/debian/os/release.rb +36 -0
- data/lib/facter/facts/devuan/os/distro/release.rb +36 -0
- data/lib/facter/facts/devuan/os/release.rb +29 -0
- data/lib/facter/facts/freebsd/augeas/version.rb +19 -0
- data/lib/facter/facts/freebsd/disks.rb +15 -0
- data/lib/facter/facts/freebsd/dmi/bios/release_date.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/bios/vendor.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/bios/version.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/manufacturer.rb +17 -0
- data/lib/facter/facts/freebsd/dmi/product/name.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/product/serial_number.rb +19 -0
- data/lib/facter/facts/freebsd/dmi/product/uuid.rb +19 -0
- data/lib/facter/facts/freebsd/ec2_metadata.rb +23 -0
- data/lib/facter/facts/freebsd/ec2_userdata.rb +23 -0
- data/lib/facter/facts/freebsd/facterversion.rb +14 -0
- data/lib/facter/facts/freebsd/identity/gid.rb +16 -0
- data/lib/facter/facts/freebsd/identity/group.rb +18 -0
- 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/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/freebsd/is_virtual.rb +21 -0
- data/lib/facter/facts/freebsd/kernel.rb +14 -0
- data/lib/facter/facts/freebsd/kernelrelease.rb +14 -0
- data/lib/facter/facts/freebsd/memory/swap/available.rb +21 -0
- data/lib/facter/facts/freebsd/memory/swap/available_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/capacity.rb +18 -0
- data/lib/facter/facts/freebsd/memory/swap/encrypted.rb +19 -0
- data/lib/facter/facts/freebsd/memory/swap/total.rb +21 -0
- data/lib/facter/facts/freebsd/memory/swap/total_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/used.rb +20 -0
- data/lib/facter/facts/freebsd/memory/swap/used_bytes.rb +18 -0
- data/lib/facter/facts/freebsd/memory/system/available.rb +21 -0
- data/lib/facter/facts/freebsd/memory/system/available_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/capacity.rb +18 -0
- data/lib/facter/facts/freebsd/memory/system/total.rb +21 -0
- data/lib/facter/facts/freebsd/memory/system/total_bytes.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/used.rb +20 -0
- data/lib/facter/facts/freebsd/memory/system/used_bytes.rb +18 -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/freebsd/os/release.rb +43 -0
- data/lib/facter/facts/freebsd/partitions.rb +15 -0
- data/lib/facter/facts/freebsd/path.rb +15 -0
- data/lib/facter/facts/freebsd/processors/count.rb +17 -0
- data/lib/facter/facts/freebsd/processors/isa.rb +17 -0
- data/lib/facter/facts/freebsd/processors/models.rb +23 -0
- data/lib/facter/facts/freebsd/processors/speed.rb +17 -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/virtual.rb +21 -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/gentoo/os/release.rb +29 -0
- data/lib/facter/facts/linux/aio_agent_version.rb +14 -0
- data/lib/facter/facts/linux/augeas/version.rb +19 -0
- data/lib/facter/facts/linux/az_metadata.rb +23 -0
- data/lib/facter/facts/linux/cloud/provider.rb +27 -0
- data/lib/facter/facts/linux/dhcp_servers.rb +28 -0
- data/lib/facter/facts/linux/disks.rb +34 -0
- data/lib/facter/facts/linux/dmi/bios/release_date.rb +19 -0
- data/lib/facter/facts/linux/dmi/bios/vendor.rb +19 -0
- data/lib/facter/facts/linux/dmi/bios/version.rb +19 -0
- data/lib/facter/facts/linux/dmi/board/asset_tag.rb +19 -0
- data/lib/facter/facts/linux/dmi/board/manufacturer.rb +19 -0
- data/lib/facter/facts/linux/dmi/board/product.rb +19 -0
- data/lib/facter/facts/linux/dmi/board/serial_number.rb +19 -0
- data/lib/facter/facts/linux/dmi/chassis/asset_tag.rb +19 -0
- data/lib/facter/facts/linux/dmi/chassis/type.rb +19 -0
- data/lib/facter/facts/linux/dmi/manufacturer.rb +17 -0
- data/lib/facter/facts/linux/dmi/product/name.rb +19 -0
- data/lib/facter/facts/linux/dmi/product/serial_number.rb +19 -0
- data/lib/facter/facts/linux/dmi/product/uuid.rb +19 -0
- data/lib/facter/facts/linux/dmi/product/version.rb +19 -0
- data/lib/facter/facts/linux/ec2_metadata.rb +23 -0
- data/lib/facter/facts/linux/ec2_userdata.rb +23 -0
- data/lib/facter/facts/linux/facterversion.rb +15 -0
- data/lib/facter/facts/linux/filesystems.rb +14 -0
- data/lib/facter/facts/linux/fips_enabled.rb +14 -0
- data/lib/facter/facts/linux/gce.rb +16 -0
- data/lib/facter/facts/linux/hypervisors/docker.rb +21 -0
- data/lib/facter/facts/linux/hypervisors/hyper_v.rb +25 -0
- data/lib/facter/facts/linux/hypervisors/kvm.rb +64 -0
- data/lib/facter/facts/linux/hypervisors/lxc.rb +21 -0
- data/lib/facter/facts/linux/hypervisors/openvz.rb +25 -0
- data/lib/facter/facts/linux/hypervisors/systemd_nspawn.rb +21 -0
- data/lib/facter/facts/linux/hypervisors/virtualbox.rb +35 -0
- data/lib/facter/facts/linux/hypervisors/vmware.rb +39 -0
- data/lib/facter/facts/linux/hypervisors/xen.rb +49 -0
- data/lib/facter/facts/linux/identity/gid.rb +16 -0
- data/lib/facter/facts/linux/identity/group.rb +18 -0
- data/lib/facter/facts/linux/identity/privileged.rb +16 -0
- data/lib/facter/facts/linux/identity/uid.rb +16 -0
- data/lib/facter/facts/linux/identity/user.rb +17 -0
- data/lib/facter/facts/linux/interfaces.rb +17 -0
- data/lib/facter/facts/linux/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/linux/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/linux/is_virtual.rb +21 -0
- data/lib/facter/facts/linux/kernel.rb +15 -0
- data/lib/facter/facts/linux/kernelmajversion.rb +24 -0
- data/lib/facter/facts/linux/kernelrelease.rb +14 -0
- data/lib/facter/facts/linux/kernelversion.rb +15 -0
- data/lib/facter/facts/linux/load_averages.rb +14 -0
- data/lib/facter/facts/linux/lsbdistrelease.rb +23 -0
- data/lib/facter/facts/linux/macaddress_interfaces.rb +20 -0
- data/lib/facter/facts/linux/memory/swap/available.rb +20 -0
- data/lib/facter/facts/linux/memory/swap/available_bytes.rb +21 -0
- data/lib/facter/facts/linux/memory/swap/capacity.rb +18 -0
- data/lib/facter/facts/linux/memory/swap/total.rb +20 -0
- data/lib/facter/facts/linux/memory/swap/total_bytes.rb +20 -0
- data/lib/facter/facts/linux/memory/swap/used.rb +19 -0
- data/lib/facter/facts/linux/memory/swap/used_bytes.rb +18 -0
- data/lib/facter/facts/linux/memory/system/available.rb +21 -0
- data/lib/facter/facts/linux/memory/system/available_bytes.rb +21 -0
- data/lib/facter/facts/linux/memory/system/capacity.rb +18 -0
- data/lib/facter/facts/linux/memory/system/total.rb +20 -0
- data/lib/facter/facts/linux/memory/system/total_bytes.rb +20 -0
- data/lib/facter/facts/linux/memory/system/used.rb +19 -0
- data/lib/facter/facts/linux/memory/system/used_bytes.rb +18 -0
- data/lib/facter/facts/linux/mountpoints.rb +21 -0
- data/lib/facter/facts/linux/mtu_interfaces.rb +20 -0
- data/lib/facter/facts/linux/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/linux/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/linux/network6_interfaces.rb +20 -0
- data/lib/facter/facts/linux/network_interfaces.rb +20 -0
- data/lib/facter/facts/linux/networking/dhcp.rb +17 -0
- data/lib/facter/facts/linux/networking/domain.rb +18 -0
- data/lib/facter/facts/linux/networking/fqdn.rb +18 -0
- data/lib/facter/facts/linux/networking/hostname.rb +18 -0
- data/lib/facter/facts/linux/networking/interfaces.rb +17 -0
- data/lib/facter/facts/linux/networking/ip.rb +18 -0
- data/lib/facter/facts/linux/networking/ip6.rb +18 -0
- data/lib/facter/facts/linux/networking/mac.rb +18 -0
- data/lib/facter/facts/linux/networking/mtu.rb +17 -0
- data/lib/facter/facts/linux/networking/netmask.rb +18 -0
- data/lib/facter/facts/linux/networking/netmask6.rb +18 -0
- data/lib/facter/facts/linux/networking/network.rb +18 -0
- data/lib/facter/facts/linux/networking/network6.rb +18 -0
- data/lib/facter/facts/linux/networking/primary.rb +17 -0
- data/lib/facter/facts/linux/networking/scope6.rb +19 -0
- data/lib/facter/facts/linux/os/architecture.rb +20 -0
- data/lib/facter/facts/linux/os/distro/codename.rb +21 -0
- data/lib/facter/facts/linux/os/distro/description.rb +21 -0
- data/lib/facter/facts/linux/os/distro/id.rb +21 -0
- data/lib/facter/facts/linux/os/distro/release.rb +31 -0
- data/lib/facter/facts/linux/os/distro/specification.rb +21 -0
- data/lib/facter/facts/linux/os/family.rb +22 -0
- data/lib/facter/facts/linux/os/hardware.rb +18 -0
- data/lib/facter/facts/linux/os/name.rb +18 -0
- data/lib/facter/facts/linux/os/release.rb +20 -0
- data/lib/facter/facts/linux/os/selinux/config_mode.rb +21 -0
- data/lib/facter/facts/linux/os/selinux/config_policy.rb +21 -0
- data/lib/facter/facts/linux/os/selinux/current_mode.rb +21 -0
- data/lib/facter/facts/linux/os/selinux/enabled.rb +21 -0
- data/lib/facter/facts/linux/os/selinux/enforced.rb +21 -0
- data/lib/facter/facts/linux/os/selinux/policy_version.rb +21 -0
- data/lib/facter/facts/linux/partitions.rb +30 -0
- data/lib/facter/facts/linux/path.rb +15 -0
- data/lib/facter/facts/linux/processor.rb +20 -0
- data/lib/facter/facts/linux/processors/cores.rb +16 -0
- data/lib/facter/facts/linux/processors/count.rb +17 -0
- data/lib/facter/facts/linux/processors/extensions.rb +16 -0
- data/lib/facter/facts/linux/processors/isa.rb +17 -0
- data/lib/facter/facts/linux/processors/models.rb +16 -0
- data/lib/facter/facts/linux/processors/physicalcount.rb +17 -0
- data/lib/facter/facts/linux/processors/speed.rb +17 -0
- data/lib/facter/facts/linux/processors/threads.rb +16 -0
- data/lib/facter/facts/linux/ruby/platform.rb +18 -0
- data/lib/facter/facts/linux/ruby/sitedir.rb +18 -0
- data/lib/facter/facts/linux/ruby/version.rb +18 -0
- data/lib/facter/facts/linux/scope6_interfaces.rb +23 -0
- data/lib/facter/facts/linux/ssh.rb +36 -0
- data/lib/facter/facts/linux/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/linux/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/linux/system_uptime/days.rb +24 -0
- data/lib/facter/facts/linux/system_uptime/hours.rb +24 -0
- data/lib/facter/facts/linux/system_uptime/seconds.rb +24 -0
- data/lib/facter/facts/linux/system_uptime/uptime.rb +24 -0
- data/lib/facter/facts/linux/timezone.rb +14 -0
- data/lib/facter/facts/linux/virtual.rb +21 -0
- data/lib/facter/facts/linux/xen.rb +28 -0
- data/lib/facter/facts/linux/zfs_featurenumbers.rb +14 -0
- data/lib/facter/facts/linux/zfs_version.rb +14 -0
- data/lib/facter/facts/linux/zpool_featureflags.rb +14 -0
- data/lib/facter/facts/linux/zpool_featurenumbers.rb +14 -0
- data/lib/facter/facts/linux/zpool_version.rb +14 -0
- data/lib/facter/facts/linuxmint/os/name.rb +18 -0
- data/lib/facter/facts/linuxmint/os/release.rb +35 -0
- data/lib/facter/facts/macosx/aio_agent_version.rb +14 -0
- data/lib/facter/facts/macosx/augeas/version.rb +19 -0
- data/lib/facter/facts/macosx/dhcp_servers.rb +28 -0
- data/lib/facter/facts/macosx/dmi/product/name.rb +19 -0
- data/lib/facter/facts/macosx/facterversion.rb +15 -0
- data/lib/facter/facts/macosx/filesystems.rb +14 -0
- data/lib/facter/facts/macosx/identity/gid.rb +16 -0
- data/lib/facter/facts/macosx/identity/group.rb +18 -0
- data/lib/facter/facts/macosx/identity/privileged.rb +16 -0
- data/lib/facter/facts/macosx/identity/uid.rb +16 -0
- data/lib/facter/facts/macosx/identity/user.rb +17 -0
- data/lib/facter/facts/macosx/interfaces.rb +16 -0
- data/lib/facter/facts/macosx/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/is_virtual.rb +30 -0
- data/lib/facter/facts/macosx/kernel.rb +14 -0
- data/lib/facter/facts/macosx/kernelmajversion.rb +15 -0
- data/lib/facter/facts/macosx/kernelrelease.rb +14 -0
- data/lib/facter/facts/macosx/kernelversion.rb +14 -0
- data/lib/facter/facts/macosx/load_averages.rb +14 -0
- data/lib/facter/facts/macosx/macaddress_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/memory/swap/available.rb +21 -0
- data/lib/facter/facts/macosx/memory/swap/available_bytes.rb +20 -0
- data/lib/facter/facts/macosx/memory/swap/capacity.rb +18 -0
- data/lib/facter/facts/macosx/memory/swap/encrypted.rb +19 -0
- data/lib/facter/facts/macosx/memory/swap/total.rb +21 -0
- data/lib/facter/facts/macosx/memory/swap/total_bytes.rb +20 -0
- data/lib/facter/facts/macosx/memory/swap/used.rb +20 -0
- data/lib/facter/facts/macosx/memory/swap/used_bytes.rb +18 -0
- data/lib/facter/facts/macosx/memory/system/available.rb +21 -0
- data/lib/facter/facts/macosx/memory/system/available_bytes.rb +20 -0
- data/lib/facter/facts/macosx/memory/system/capacity.rb +18 -0
- data/lib/facter/facts/macosx/memory/system/total.rb +21 -0
- data/lib/facter/facts/macosx/memory/system/total_bytes.rb +20 -0
- data/lib/facter/facts/macosx/memory/system/used.rb +20 -0
- data/lib/facter/facts/macosx/memory/system/used_bytes.rb +18 -0
- data/lib/facter/facts/macosx/mountpoints.rb +16 -0
- data/lib/facter/facts/macosx/mtu_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/network6_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/network_interfaces.rb +20 -0
- data/lib/facter/facts/macosx/networking/dhcp.rb +17 -0
- data/lib/facter/facts/macosx/networking/domain.rb +18 -0
- data/lib/facter/facts/macosx/networking/fqdn.rb +18 -0
- data/lib/facter/facts/macosx/networking/hostname.rb +18 -0
- data/lib/facter/facts/macosx/networking/interfaces.rb +17 -0
- data/lib/facter/facts/macosx/networking/ip.rb +18 -0
- data/lib/facter/facts/macosx/networking/ip6.rb +18 -0
- data/lib/facter/facts/macosx/networking/mac.rb +18 -0
- data/lib/facter/facts/macosx/networking/mtu.rb +17 -0
- data/lib/facter/facts/macosx/networking/netmask.rb +18 -0
- data/lib/facter/facts/macosx/networking/netmask6.rb +18 -0
- data/lib/facter/facts/macosx/networking/network.rb +18 -0
- data/lib/facter/facts/macosx/networking/network6.rb +18 -0
- data/lib/facter/facts/macosx/networking/primary.rb +17 -0
- data/lib/facter/facts/macosx/networking/scope6.rb +19 -0
- data/lib/facter/facts/macosx/os/architecture.rb +17 -0
- data/lib/facter/facts/macosx/os/family.rb +18 -0
- data/lib/facter/facts/macosx/os/hardware.rb +17 -0
- data/lib/facter/facts/macosx/os/macosx/build.rb +19 -0
- data/lib/facter/facts/macosx/os/macosx/product.rb +19 -0
- data/lib/facter/facts/macosx/os/macosx/version.rb +40 -0
- data/lib/facter/facts/macosx/os/name.rb +18 -0
- data/lib/facter/facts/macosx/os/release.rb +26 -0
- data/lib/facter/facts/macosx/path.rb +15 -0
- data/lib/facter/facts/macosx/processors/cores.rb +16 -0
- data/lib/facter/facts/macosx/processors/count.rb +17 -0
- data/lib/facter/facts/macosx/processors/isa.rb +17 -0
- data/lib/facter/facts/macosx/processors/models.rb +21 -0
- data/lib/facter/facts/macosx/processors/physicalcount.rb +17 -0
- data/lib/facter/facts/macosx/processors/speed.rb +17 -0
- data/lib/facter/facts/macosx/processors/threads.rb +16 -0
- data/lib/facter/facts/macosx/ruby/platform.rb +17 -0
- data/lib/facter/facts/macosx/ruby/sitedir.rb +17 -0
- data/lib/facter/facts/macosx/ruby/version.rb +18 -0
- data/lib/facter/facts/macosx/scope6_interfaces.rb +22 -0
- data/lib/facter/facts/macosx/ssh.rb +36 -0
- data/lib/facter/facts/macosx/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/macosx/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/macosx/system_profiler/boot_mode.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/boot_rom_version.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/boot_volume.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/computer_name.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/cores.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/hardware_uuid.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/kernel_version.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/l2_cache_per_core.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/l3_cache.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/memory.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/model_identifier.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/model_name.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/processor_name.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/processor_speed.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/processors.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/secure_virtual_memory.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/serial_number.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/smc_version.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/system_version.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/uptime.rb +17 -0
- data/lib/facter/facts/macosx/system_profiler/username.rb +17 -0
- data/lib/facter/facts/macosx/system_uptime/days.rb +17 -0
- data/lib/facter/facts/macosx/system_uptime/hours.rb +17 -0
- data/lib/facter/facts/macosx/system_uptime/seconds.rb +17 -0
- data/lib/facter/facts/macosx/system_uptime/uptime.rb +17 -0
- data/lib/facter/facts/macosx/timezone.rb +14 -0
- data/lib/facter/facts/macosx/virtual.rb +32 -0
- data/lib/facter/facts/mageia/os/release.rb +36 -0
- data/lib/facter/facts/mariner/os/release.rb +35 -0
- data/lib/facter/facts/meego/os/release.rb +29 -0
- data/lib/facter/facts/oel/os/release.rb +29 -0
- data/lib/facter/facts/ol/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/ol/lsbdistid.rb +16 -0
- data/lib/facter/facts/ol/os/distro/description.rb +19 -0
- data/lib/facter/facts/ol/os/distro/id.rb +19 -0
- data/lib/facter/facts/ol/os/release.rb +29 -0
- data/lib/facter/facts/openbsd/augeas/version.rb +19 -0
- data/lib/facter/facts/openbsd/dmi/bios/vendor.rb +19 -0
- data/lib/facter/facts/openbsd/dmi/bios/version.rb +19 -0
- data/lib/facter/facts/openbsd/dmi/manufacturer.rb +17 -0
- data/lib/facter/facts/openbsd/dmi/product/name.rb +19 -0
- data/lib/facter/facts/openbsd/dmi/product/serial_number.rb +19 -0
- data/lib/facter/facts/openbsd/dmi/product/uuid.rb +19 -0
- data/lib/facter/facts/openbsd/ec2_metadata.rb +23 -0
- data/lib/facter/facts/openbsd/ec2_userdata.rb +23 -0
- data/lib/facter/facts/openbsd/facterversion.rb +14 -0
- data/lib/facter/facts/openbsd/identity/gid.rb +16 -0
- data/lib/facter/facts/openbsd/identity/group.rb +18 -0
- data/lib/facter/facts/openbsd/identity/privileged.rb +16 -0
- data/lib/facter/facts/openbsd/identity/uid.rb +16 -0
- data/lib/facter/facts/openbsd/identity/user.rb +17 -0
- data/lib/facter/facts/openbsd/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/is_virtual.rb +21 -0
- data/lib/facter/facts/openbsd/kernel.rb +14 -0
- data/lib/facter/facts/openbsd/kernelrelease.rb +14 -0
- data/lib/facter/facts/openbsd/mountpoints.rb +21 -0
- data/lib/facter/facts/openbsd/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/network6_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/network_interfaces.rb +20 -0
- data/lib/facter/facts/openbsd/networking/dhcp.rb +17 -0
- data/lib/facter/facts/openbsd/networking/domain.rb +18 -0
- data/lib/facter/facts/openbsd/networking/fqdn.rb +18 -0
- data/lib/facter/facts/openbsd/networking/hostname.rb +18 -0
- data/lib/facter/facts/openbsd/networking/interfaces.rb +17 -0
- data/lib/facter/facts/openbsd/networking/ip.rb +18 -0
- data/lib/facter/facts/openbsd/networking/ip6.rb +18 -0
- data/lib/facter/facts/openbsd/networking/mac.rb +18 -0
- data/lib/facter/facts/openbsd/networking/mtu.rb +17 -0
- data/lib/facter/facts/openbsd/networking/netmask.rb +18 -0
- data/lib/facter/facts/openbsd/networking/netmask6.rb +18 -0
- data/lib/facter/facts/openbsd/networking/network.rb +18 -0
- data/lib/facter/facts/openbsd/networking/network6.rb +18 -0
- data/lib/facter/facts/openbsd/networking/primary.rb +17 -0
- data/lib/facter/facts/openbsd/networking/scope6.rb +17 -0
- data/lib/facter/facts/openbsd/os/architecture.rb +18 -0
- data/lib/facter/facts/openbsd/os/hardware.rb +18 -0
- data/lib/facter/facts/openbsd/os/name.rb +18 -0
- data/lib/facter/facts/openbsd/os/release.rb +23 -0
- data/lib/facter/facts/openbsd/path.rb +15 -0
- data/lib/facter/facts/openbsd/processors/isa.rb +17 -0
- data/lib/facter/facts/openbsd/ruby/platform.rb +18 -0
- data/lib/facter/facts/openbsd/ruby/sitedir.rb +18 -0
- data/lib/facter/facts/openbsd/ruby/version.rb +18 -0
- data/lib/facter/facts/openbsd/ssh.rb +26 -0
- data/lib/facter/facts/openbsd/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/openbsd/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/openbsd/system_uptime/days.rb +18 -0
- data/lib/facter/facts/openbsd/system_uptime/hours.rb +18 -0
- data/lib/facter/facts/openbsd/system_uptime/seconds.rb +18 -0
- data/lib/facter/facts/openbsd/system_uptime/uptime.rb +18 -0
- data/lib/facter/facts/openbsd/timezone.rb +15 -0
- data/lib/facter/facts/openbsd/virtual.rb +15 -0
- data/lib/facter/facts/openwrt/os/release.rb +35 -0
- data/lib/facter/facts/ovs/os/release.rb +29 -0
- data/lib/facter/facts/photon/os/release.rb +45 -0
- data/lib/facter/facts/rhel/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/rhel/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/rhel/lsbdistid.rb +16 -0
- data/lib/facter/facts/rhel/os/distro/codename.rb +19 -0
- data/lib/facter/facts/rhel/os/distro/description.rb +19 -0
- data/lib/facter/facts/rhel/os/distro/id.rb +19 -0
- data/lib/facter/facts/rhel/os/distro/release.rb +32 -0
- data/lib/facter/facts/rhel/os/family.rb +16 -0
- data/lib/facter/facts/rhel/os/name.rb +19 -0
- data/lib/facter/facts/rhel/os/release.rb +29 -0
- data/lib/facter/facts/slackware/os/release.rb +35 -0
- data/lib/facter/facts/sles/lsbdistcodename.rb +16 -0
- data/lib/facter/facts/sles/lsbdistdescription.rb +16 -0
- data/lib/facter/facts/sles/lsbdistid.rb +16 -0
- data/lib/facter/facts/sles/os/distro/codename.rb +20 -0
- data/lib/facter/facts/sles/os/distro/description.rb +18 -0
- data/lib/facter/facts/sles/os/distro/id.rb +22 -0
- data/lib/facter/facts/sles/os/distro/release.rb +36 -0
- data/lib/facter/facts/sles/os/family.rb +16 -0
- data/lib/facter/facts/sles/os/release.rb +29 -0
- data/lib/facter/facts/solaris/aio_agent_version.rb +14 -0
- data/lib/facter/facts/solaris/augeas/version.rb +19 -0
- data/lib/facter/facts/solaris/current_zone.rb +16 -0
- data/lib/facter/facts/solaris/dhcp_servers.rb +28 -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/facterversion.rb +14 -0
- data/lib/facter/facts/solaris/filesystems.rb +14 -0
- data/lib/facter/facts/solaris/hypervisors/ldom.rb +27 -0
- data/lib/facter/facts/solaris/hypervisors/zone.rb +39 -0
- data/lib/facter/facts/solaris/identity/gid.rb +16 -0
- data/lib/facter/facts/solaris/identity/group.rb +18 -0
- data/lib/facter/facts/solaris/identity/privileged.rb +16 -0
- data/lib/facter/facts/solaris/identity/uid.rb +16 -0
- data/lib/facter/facts/solaris/identity/user.rb +17 -0
- data/lib/facter/facts/solaris/interfaces.rb +17 -0
- data/lib/facter/facts/solaris/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/is_virtual.rb +64 -0
- data/lib/facter/facts/solaris/kernel.rb +14 -0
- data/lib/facter/facts/solaris/kernelmajversion.rb +16 -0
- data/lib/facter/facts/solaris/kernelrelease.rb +14 -0
- data/lib/facter/facts/solaris/kernelversion.rb +14 -0
- data/lib/facter/facts/solaris/ldom.rb +65 -0
- data/lib/facter/facts/solaris/load_averages.rb +14 -0
- data/lib/facter/facts/solaris/macaddress_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/memory/swap/available.rb +22 -0
- data/lib/facter/facts/solaris/memory/swap/available_bytes.rb +22 -0
- data/lib/facter/facts/solaris/memory/swap/capacity.rb +20 -0
- data/lib/facter/facts/solaris/memory/swap/total.rb +22 -0
- data/lib/facter/facts/solaris/memory/swap/total_bytes.rb +22 -0
- data/lib/facter/facts/solaris/memory/swap/used.rb +21 -0
- data/lib/facter/facts/solaris/memory/swap/used_bytes.rb +19 -0
- data/lib/facter/facts/solaris/memory/system/available.rb +22 -0
- data/lib/facter/facts/solaris/memory/system/available_bytes.rb +22 -0
- data/lib/facter/facts/solaris/memory/system/capacity.rb +20 -0
- data/lib/facter/facts/solaris/memory/system/total.rb +22 -0
- data/lib/facter/facts/solaris/memory/system/total_bytes.rb +22 -0
- data/lib/facter/facts/solaris/memory/system/used.rb +21 -0
- data/lib/facter/facts/solaris/memory/system/used_bytes.rb +19 -0
- data/lib/facter/facts/solaris/mountpoints.rb +21 -0
- data/lib/facter/facts/solaris/mtu_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/network6_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/network_interfaces.rb +20 -0
- data/lib/facter/facts/solaris/networking/dhcp.rb +17 -0
- data/lib/facter/facts/solaris/networking/domain.rb +17 -0
- data/lib/facter/facts/solaris/networking/fqdn.rb +17 -0
- data/lib/facter/facts/solaris/networking/hostname.rb +17 -0
- data/lib/facter/facts/solaris/networking/interfaces.rb +16 -0
- data/lib/facter/facts/solaris/networking/ip.rb +18 -0
- data/lib/facter/facts/solaris/networking/ip6.rb +18 -0
- data/lib/facter/facts/solaris/networking/mac.rb +18 -0
- data/lib/facter/facts/solaris/networking/mtu.rb +17 -0
- data/lib/facter/facts/solaris/networking/netmask.rb +18 -0
- data/lib/facter/facts/solaris/networking/netmask6.rb +18 -0
- data/lib/facter/facts/solaris/networking/network.rb +18 -0
- data/lib/facter/facts/solaris/networking/network6.rb +18 -0
- data/lib/facter/facts/solaris/networking/primary.rb +17 -0
- data/lib/facter/facts/solaris/os/architecture.rb +18 -0
- data/lib/facter/facts/solaris/os/family.rb +16 -0
- data/lib/facter/facts/solaris/os/hardware.rb +18 -0
- data/lib/facter/facts/solaris/os/name.rb +19 -0
- data/lib/facter/facts/solaris/os/release.rb +22 -0
- data/lib/facter/facts/solaris/path.rb +14 -0
- data/lib/facter/facts/solaris/processors/cores.rb +16 -0
- data/lib/facter/facts/solaris/processors/count.rb +17 -0
- data/lib/facter/facts/solaris/processors/isa.rb +17 -0
- data/lib/facter/facts/solaris/processors/models.rb +21 -0
- data/lib/facter/facts/solaris/processors/physicalcount.rb +17 -0
- data/lib/facter/facts/solaris/processors/speed.rb +17 -0
- data/lib/facter/facts/solaris/processors/threads.rb +16 -0
- data/lib/facter/facts/solaris/ruby/platform.rb +18 -0
- data/lib/facter/facts/solaris/ruby/sitedir.rb +17 -0
- data/lib/facter/facts/solaris/ruby/version.rb +17 -0
- data/lib/facter/facts/solaris/ssh.rb +36 -0
- data/lib/facter/facts/solaris/sshalgorithmkey.rb +17 -0
- data/lib/facter/facts/solaris/sshfp_algorithm.rb +20 -0
- data/lib/facter/facts/solaris/system_uptime/days.rb +18 -0
- data/lib/facter/facts/solaris/system_uptime/hours.rb +18 -0
- data/lib/facter/facts/solaris/system_uptime/seconds.rb +18 -0
- data/lib/facter/facts/solaris/system_uptime/uptime.rb +18 -0
- data/lib/facter/facts/solaris/timezone.rb +14 -0
- data/lib/facter/facts/solaris/virtual.rb +60 -0
- data/lib/facter/facts/solaris/zfs_featurenumbers.rb +14 -0
- data/lib/facter/facts/solaris/zfs_version.rb +14 -0
- data/lib/facter/facts/solaris/zones.rb +60 -0
- data/lib/facter/facts/solaris/zpool_featureflags.rb +14 -0
- data/lib/facter/facts/solaris/zpool_featurenumbers.rb +14 -0
- data/lib/facter/facts/solaris/zpool_version.rb +14 -0
- data/lib/facter/facts/ubuntu/lsbdistrelease.rb +23 -0
- data/lib/facter/facts/ubuntu/os/distro/release.rb +31 -0
- data/lib/facter/facts/ubuntu/os/release.rb +20 -0
- data/lib/facter/facts/windows/aio_agent_version.rb +14 -0
- data/lib/facter/facts/windows/az_metadata.rb +23 -0
- data/lib/facter/facts/windows/cloud/provider.rb +28 -0
- data/lib/facter/facts/windows/dhcp_servers.rb +27 -0
- data/lib/facter/facts/windows/dmi/manufacturer.rb +18 -0
- data/lib/facter/facts/windows/dmi/product/name.rb +20 -0
- data/lib/facter/facts/windows/dmi/product/serial_number.rb +20 -0
- data/lib/facter/facts/windows/dmi/product/uuid.rb +20 -0
- data/lib/facter/facts/windows/ec2_metadata.rb +25 -0
- data/lib/facter/facts/windows/ec2_userdata.rb +25 -0
- data/lib/facter/facts/windows/facterversion.rb +15 -0
- data/lib/facter/facts/windows/fips_enabled.rb +15 -0
- data/lib/facter/facts/windows/gce.rb +16 -0
- data/lib/facter/facts/windows/hypervisors/hyperv.rb +24 -0
- data/lib/facter/facts/windows/hypervisors/kvm.rb +37 -0
- data/lib/facter/facts/windows/hypervisors/virtualbox.rb +37 -0
- data/lib/facter/facts/windows/hypervisors/vmware.rb +24 -0
- data/lib/facter/facts/windows/hypervisors/xen.rb +25 -0
- data/lib/facter/facts/windows/identity/privileged.rb +17 -0
- data/lib/facter/facts/windows/identity/user.rb +18 -0
- data/lib/facter/facts/windows/interfaces.rb +16 -0
- data/lib/facter/facts/windows/ipaddress6_interfaces.rb +20 -0
- data/lib/facter/facts/windows/ipaddress_interfaces.rb +20 -0
- data/lib/facter/facts/windows/is_virtual.rb +15 -0
- data/lib/facter/facts/windows/kernel.rb +15 -0
- data/lib/facter/facts/windows/kernelmajversion.rb +15 -0
- data/lib/facter/facts/windows/kernelrelease.rb +15 -0
- data/lib/facter/facts/windows/kernelversion.rb +15 -0
- data/lib/facter/facts/windows/macaddress_interfaces.rb +20 -0
- data/lib/facter/facts/windows/memory/system/available.rb +21 -0
- data/lib/facter/facts/windows/memory/system/available_bytes.rb +21 -0
- data/lib/facter/facts/windows/memory/system/capacity.rb +19 -0
- data/lib/facter/facts/windows/memory/system/total.rb +21 -0
- data/lib/facter/facts/windows/memory/system/total_bytes.rb +21 -0
- data/lib/facter/facts/windows/memory/system/used.rb +20 -0
- data/lib/facter/facts/windows/memory/system/used_bytes.rb +19 -0
- data/lib/facter/facts/windows/mtu_interfaces.rb +20 -0
- data/lib/facter/facts/windows/netmask6_interfaces.rb +20 -0
- data/lib/facter/facts/windows/netmask_interfaces.rb +20 -0
- data/lib/facter/facts/windows/network6_interfaces.rb +20 -0
- data/lib/facter/facts/windows/network_interfaces.rb +20 -0
- data/lib/facter/facts/windows/networking/dhcp.rb +17 -0
- data/lib/facter/facts/windows/networking/domain.rb +18 -0
- data/lib/facter/facts/windows/networking/fqdn.rb +22 -0
- data/lib/facter/facts/windows/networking/hostname.rb +18 -0
- data/lib/facter/facts/windows/networking/interfaces.rb +17 -0
- data/lib/facter/facts/windows/networking/ip.rb +18 -0
- data/lib/facter/facts/windows/networking/ip6.rb +18 -0
- data/lib/facter/facts/windows/networking/mac.rb +18 -0
- data/lib/facter/facts/windows/networking/mtu.rb +17 -0
- data/lib/facter/facts/windows/networking/netmask.rb +18 -0
- data/lib/facter/facts/windows/networking/netmask6.rb +18 -0
- data/lib/facter/facts/windows/networking/network.rb +18 -0
- data/lib/facter/facts/windows/networking/network6.rb +18 -0
- data/lib/facter/facts/windows/networking/primary.rb +17 -0
- data/lib/facter/facts/windows/networking/scope6.rb +19 -0
- data/lib/facter/facts/windows/os/architecture.rb +18 -0
- data/lib/facter/facts/windows/os/family.rb +18 -0
- data/lib/facter/facts/windows/os/hardware.rb +18 -0
- data/lib/facter/facts/windows/os/name.rb +18 -0
- data/lib/facter/facts/windows/os/release.rb +35 -0
- data/lib/facter/facts/windows/os/windows/display_version.rb +20 -0
- data/lib/facter/facts/windows/os/windows/edition_id.rb +20 -0
- data/lib/facter/facts/windows/os/windows/installation_type.rb +20 -0
- data/lib/facter/facts/windows/os/windows/product_name.rb +20 -0
- data/lib/facter/facts/windows/os/windows/release_id.rb +20 -0
- data/lib/facter/facts/windows/os/windows/system32.rb +20 -0
- data/lib/facter/facts/windows/path.rb +15 -0
- data/lib/facter/facts/windows/processor.rb +20 -0
- data/lib/facter/facts/windows/processors/cores.rb +17 -0
- data/lib/facter/facts/windows/processors/count.rb +18 -0
- data/lib/facter/facts/windows/processors/isa.rb +18 -0
- data/lib/facter/facts/windows/processors/models.rb +17 -0
- data/lib/facter/facts/windows/processors/physicalcount.rb +18 -0
- data/lib/facter/facts/windows/processors/threads.rb +17 -0
- data/lib/facter/facts/windows/ruby/platform.rb +18 -0
- data/lib/facter/facts/windows/ruby/sitedir.rb +18 -0
- data/lib/facter/facts/windows/ruby/version.rb +18 -0
- data/lib/facter/facts/windows/scope6_interfaces.rb +20 -0
- data/lib/facter/facts/windows/ssh.rb +27 -0
- data/lib/facter/facts/windows/sshalgorithmkey.rb +22 -0
- data/lib/facter/facts/windows/sshfp_algorithm.rb +25 -0
- data/lib/facter/facts/windows/system_uptime/days.rb +18 -0
- data/lib/facter/facts/windows/system_uptime/hours.rb +18 -0
- data/lib/facter/facts/windows/system_uptime/seconds.rb +18 -0
- data/lib/facter/facts/windows/system_uptime/uptime.rb +18 -0
- data/lib/facter/facts/windows/timezone.rb +15 -0
- data/lib/facter/facts/windows/virtual.rb +15 -0
- data/lib/facter/framework/benchmarking/timer.rb +25 -0
- data/lib/facter/framework/cli/cli.rb +233 -0
- data/lib/facter/framework/cli/cli_launcher.rb +55 -0
- data/lib/facter/framework/config/config_reader.rb +63 -0
- data/lib/facter/framework/config/fact_groups.rb +132 -0
- data/lib/facter/framework/core/cache_manager.rb +234 -0
- data/lib/facter/framework/core/fact/external/external_fact_manager.rb +31 -0
- data/lib/facter/framework/core/fact/internal/core_fact.rb +22 -0
- data/lib/facter/framework/core/fact/internal/internal_fact_manager.rb +85 -0
- data/lib/facter/framework/core/fact_filter.rb +30 -0
- data/lib/facter/framework/core/fact_loaders/class_discoverer.rb +33 -0
- data/lib/facter/framework/core/fact_loaders/external_fact_loader.rb +47 -0
- data/lib/facter/framework/core/fact_loaders/fact_loader.rb +129 -0
- data/lib/facter/framework/core/fact_loaders/internal_fact_loader.rb +53 -0
- data/lib/facter/framework/core/fact_manager.rb +159 -0
- data/lib/facter/framework/core/file_loader.rb +995 -0
- data/lib/facter/framework/core/options/config_file_options.rb +114 -0
- data/lib/facter/framework/core/options/option_store.rb +220 -0
- data/lib/facter/framework/core/options/options_validator.rb +90 -0
- data/lib/facter/framework/core/options.rb +79 -0
- data/lib/facter/framework/core/session_cache.rb +16 -0
- data/lib/facter/framework/detector/os_detector.rb +87 -0
- data/lib/facter/framework/detector/os_hierarchy.rb +49 -0
- data/lib/facter/framework/formatters/formatter_factory.rb +13 -0
- data/lib/facter/framework/formatters/formatter_helper.rb +37 -0
- data/lib/facter/framework/formatters/hocon_fact_formatter.rb +51 -0
- data/lib/facter/framework/formatters/json_fact_formatter.rb +35 -0
- data/lib/facter/framework/formatters/legacy_fact_formatter.rb +101 -0
- data/lib/facter/framework/formatters/yaml_fact_formatter.rb +64 -0
- data/lib/facter/framework/logging/logger.rb +188 -0
- data/lib/facter/framework/logging/logger_helper.rb +18 -0
- data/lib/facter/framework/parsers/query_parser.rb +110 -0
- data/lib/facter/models/fact_collection.rb +98 -0
- data/lib/facter/models/loaded_fact.rb +16 -0
- data/lib/facter/models/resolved_fact.rb +31 -0
- data/lib/facter/models/searched_fact.rb +15 -0
- data/lib/facter/resolvers/aio_agent_version.rb +23 -0
- data/lib/facter/resolvers/aix/architecture.rb +53 -0
- data/lib/facter/resolvers/aix/disks.rb +63 -0
- data/lib/facter/resolvers/aix/ffi/ffi.rb +63 -0
- data/lib/facter/resolvers/aix/ffi/ffi_helper.rb +161 -0
- data/lib/facter/resolvers/aix/ffi/structs.rb +69 -0
- data/lib/facter/resolvers/aix/filesystems.rb +33 -0
- data/lib/facter/resolvers/aix/hardware.rb +39 -0
- data/lib/facter/resolvers/aix/load_averages.rb +28 -0
- data/lib/facter/resolvers/aix/memory.rb +65 -0
- data/lib/facter/resolvers/aix/mountpoints.rb +80 -0
- data/lib/facter/resolvers/aix/networking.rb +71 -0
- data/lib/facter/resolvers/aix/nim.rb +30 -0
- data/lib/facter/resolvers/aix/os_level.rb +27 -0
- data/lib/facter/resolvers/aix/partitions.rb +72 -0
- data/lib/facter/resolvers/aix/processors.rb +85 -0
- data/lib/facter/resolvers/aix/serialnumber.rb +36 -0
- data/lib/facter/resolvers/amzn/os_release_rpm.rb +40 -0
- data/lib/facter/resolvers/augeas.rb +49 -0
- data/lib/facter/resolvers/az.rb +39 -0
- data/lib/facter/resolvers/base_resolver.rb +46 -0
- data/lib/facter/resolvers/bsd/ffi/ffi_helper.rb +46 -0
- data/lib/facter/resolvers/bsd/processors.rb +50 -0
- data/lib/facter/resolvers/debian_version.rb +28 -0
- data/lib/facter/resolvers/dmi_decode.rb +52 -0
- data/lib/facter/resolvers/ec2.rb +72 -0
- data/lib/facter/resolvers/eos_release.rb +32 -0
- data/lib/facter/resolvers/facterversion.rb +21 -0
- data/lib/facter/resolvers/freebsd/dmi.rb +37 -0
- data/lib/facter/resolvers/freebsd/ffi/ffi_helper.rb +61 -0
- data/lib/facter/resolvers/freebsd/freebsd_version.rb +38 -0
- data/lib/facter/resolvers/freebsd/geom.rb +101 -0
- data/lib/facter/resolvers/freebsd/processors.rb +47 -0
- data/lib/facter/resolvers/freebsd/swap_memory.rb +40 -0
- data/lib/facter/resolvers/freebsd/system_memory.rb +50 -0
- data/lib/facter/resolvers/freebsd/virtual.rb +45 -0
- data/lib/facter/resolvers/gce.rb +63 -0
- data/lib/facter/resolvers/hostname.rb +97 -0
- data/lib/facter/resolvers/identity.rb +29 -0
- data/lib/facter/resolvers/linux/containers.rb +85 -0
- data/lib/facter/resolvers/linux/disks.rb +84 -0
- data/lib/facter/resolvers/linux/dmi.rb +60 -0
- data/lib/facter/resolvers/linux/docker_uptime.rb +45 -0
- data/lib/facter/resolvers/linux/filesystems.rb +34 -0
- data/lib/facter/resolvers/linux/fips_enabled.rb +27 -0
- data/lib/facter/resolvers/linux/hostname.rb +126 -0
- data/lib/facter/resolvers/linux/load_averages.rb +26 -0
- data/lib/facter/resolvers/linux/memory.rb +68 -0
- data/lib/facter/resolvers/linux/networking.rb +160 -0
- data/lib/facter/resolvers/linux/processors.rb +111 -0
- data/lib/facter/resolvers/linux/processors_lscpu.rb +44 -0
- data/lib/facter/resolvers/load_averages.rb +27 -0
- data/lib/facter/resolvers/lpar.rb +30 -0
- data/lib/facter/resolvers/lsb_release.rb +45 -0
- data/lib/facter/resolvers/lspci.rb +36 -0
- data/lib/facter/resolvers/macosx/dmi.rb +27 -0
- data/lib/facter/resolvers/macosx/filesystems.rb +27 -0
- data/lib/facter/resolvers/macosx/load_averages.rb +26 -0
- data/lib/facter/resolvers/macosx/mountpoints.rb +76 -0
- data/lib/facter/resolvers/macosx/processors.rb +73 -0
- data/lib/facter/resolvers/macosx/swap_memory.rb +42 -0
- data/lib/facter/resolvers/macosx/system_memory.rb +45 -0
- data/lib/facter/resolvers/macosx/system_profiler.rb +43 -0
- data/lib/facter/resolvers/mountpoints.rb +102 -0
- data/lib/facter/resolvers/networking.rb +111 -0
- data/lib/facter/resolvers/open_vz.rb +44 -0
- data/lib/facter/resolvers/openbsd/dhcp.rb +21 -0
- data/lib/facter/resolvers/openbsd/dmi.rb +41 -0
- data/lib/facter/resolvers/openbsd/mountpoints.rb +72 -0
- data/lib/facter/resolvers/openbsd/virtual.rb +45 -0
- data/lib/facter/resolvers/os_release.rb +120 -0
- data/lib/facter/resolvers/partitions.rb +169 -0
- data/lib/facter/resolvers/path.rb +21 -0
- data/lib/facter/resolvers/redhat_release.rb +71 -0
- data/lib/facter/resolvers/release_from_first_line.rb +41 -0
- data/lib/facter/resolvers/ruby.rb +24 -0
- data/lib/facter/resolvers/selinux.rb +66 -0
- data/lib/facter/resolvers/solaris/disks.rb +50 -0
- data/lib/facter/resolvers/solaris/dmi.rb +58 -0
- data/lib/facter/resolvers/solaris/dmi_sparc.rb +52 -0
- data/lib/facter/resolvers/solaris/ffi/ffi.rb +30 -0
- data/lib/facter/resolvers/solaris/ffi/functions.rb +28 -0
- data/lib/facter/resolvers/solaris/ffi/structs.rb +129 -0
- data/lib/facter/resolvers/solaris/filesystems.rb +31 -0
- data/lib/facter/resolvers/solaris/ipaddress.rb +39 -0
- data/lib/facter/resolvers/solaris/ldom.rb +67 -0
- data/lib/facter/resolvers/solaris/memory.rb +93 -0
- data/lib/facter/resolvers/solaris/mountpoints.rb +88 -0
- data/lib/facter/resolvers/solaris/networking.rb +168 -0
- data/lib/facter/resolvers/solaris/os_release.rb +45 -0
- data/lib/facter/resolvers/solaris/processors.rb +43 -0
- data/lib/facter/resolvers/solaris/zone.rb +49 -0
- data/lib/facter/resolvers/solaris/zone_name.rb +30 -0
- data/lib/facter/resolvers/specific_release_file.rb +35 -0
- data/lib/facter/resolvers/ssh.rb +38 -0
- data/lib/facter/resolvers/suse_release.rb +34 -0
- data/lib/facter/resolvers/sw_vers.rb +30 -0
- data/lib/facter/resolvers/timezone.rb +21 -0
- data/lib/facter/resolvers/uname.rb +45 -0
- data/lib/facter/resolvers/uptime.rb +30 -0
- data/lib/facter/resolvers/virt_what.rb +66 -0
- data/lib/facter/resolvers/vmware.rb +28 -0
- data/lib/facter/resolvers/windows/aio_agent_version.rb +55 -0
- data/lib/facter/resolvers/windows/dmi_bios.rb +39 -0
- data/lib/facter/resolvers/windows/dmi_computersystem.rb +38 -0
- data/lib/facter/resolvers/windows/ffi/ffi.rb +72 -0
- data/lib/facter/resolvers/windows/ffi/hardware_ffi.rb +17 -0
- data/lib/facter/resolvers/windows/ffi/identity_ffi.rb +20 -0
- data/lib/facter/resolvers/windows/ffi/ip_adapter_addresses_lh.rb +161 -0
- data/lib/facter/resolvers/windows/ffi/kernel_ffi.rb +14 -0
- data/lib/facter/resolvers/windows/ffi/memory_ffi.rb +12 -0
- data/lib/facter/resolvers/windows/ffi/network_utils.rb +37 -0
- data/lib/facter/resolvers/windows/ffi/networking_ffi.rb +34 -0
- data/lib/facter/resolvers/windows/ffi/os_version_info_ex.rb +17 -0
- data/lib/facter/resolvers/windows/ffi/performance_information.rb +20 -0
- data/lib/facter/resolvers/windows/ffi/system32_ffi.rb +18 -0
- data/lib/facter/resolvers/windows/ffi/system_info.rb +30 -0
- data/lib/facter/resolvers/windows/ffi/winnls_ffi.rb +11 -0
- data/lib/facter/resolvers/windows/fips.rb +32 -0
- data/lib/facter/resolvers/windows/hardware_architecture.rb +66 -0
- data/lib/facter/resolvers/windows/identity.rb +53 -0
- data/lib/facter/resolvers/windows/kernel.rb +43 -0
- data/lib/facter/resolvers/windows/memory.rb +66 -0
- data/lib/facter/resolvers/windows/netkvm.rb +33 -0
- data/lib/facter/resolvers/windows/networking.rb +155 -0
- data/lib/facter/resolvers/windows/processors.rb +101 -0
- data/lib/facter/resolvers/windows/product_release.rb +45 -0
- data/lib/facter/resolvers/windows/ssh.rb +46 -0
- data/lib/facter/resolvers/windows/system32.rb +46 -0
- data/lib/facter/resolvers/windows/timezone.rb +43 -0
- data/lib/facter/resolvers/windows/uptime.rb +56 -0
- data/lib/facter/resolvers/windows/virtualization.rb +73 -0
- data/lib/facter/resolvers/windows/win_os_description.rb +30 -0
- data/lib/facter/resolvers/wpar.rb +33 -0
- data/lib/facter/resolvers/xen.rb +75 -0
- data/lib/facter/resolvers/zfs.rb +32 -0
- data/lib/facter/resolvers/zpool.rb +34 -0
- data/lib/facter/templates/man.erb +133 -0
- data/lib/facter/util/aix/info_extractor.rb +75 -0
- data/lib/facter/util/aix/odm_query.rb +46 -0
- data/lib/facter/util/api_debugger.rb +47 -0
- data/lib/facter/util/facts/facts_utils.rb +48 -0
- data/lib/facter/util/facts/posix/virtual_detector.rb +89 -0
- data/lib/facter/util/facts/unit_converter.rb +68 -0
- data/lib/facter/util/facts/uptime_parser.rb +128 -0
- data/lib/facter/util/facts/windows_release_finder.rb +64 -0
- data/lib/facter/util/file_helper.rb +43 -0
- data/lib/facter/util/linux/dhcp.rb +89 -0
- data/lib/facter/util/linux/if_inet6.rb +73 -0
- data/lib/facter/util/linux/proc.rb +21 -0
- data/lib/facter/util/linux/routing_table.rb +60 -0
- data/lib/facter/util/linux/socket_parser.rb +130 -0
- data/lib/facter/util/macosx/system_profile_executor.rb +38 -0
- data/lib/facter/util/resolvers/aws_token.rb +37 -0
- data/lib/facter/util/resolvers/ffi/hostname.rb +70 -0
- data/lib/facter/util/resolvers/ffi/load_averages.rb +27 -0
- data/lib/facter/util/resolvers/filesystem_helper.rb +45 -0
- data/lib/facter/util/resolvers/fingerprint.rb +9 -0
- data/lib/facter/util/resolvers/http.rb +95 -0
- data/lib/facter/util/resolvers/networking/dhcp.rb +21 -0
- data/lib/facter/util/resolvers/networking/networking.rb +129 -0
- data/lib/facter/util/resolvers/networking/primary_interface.rb +90 -0
- data/lib/facter/util/resolvers/ssh.rb +9 -0
- data/lib/facter/util/resolvers/ssh_helper.rb +33 -0
- data/lib/facter/util/resolvers/uptime_helper.rb +32 -0
- data/lib/facter/util/utils.rb +50 -0
- data/lib/facter/util/windows/win32ole.rb +30 -0
- data/lib/facter/version.rb +5 -0
- data/lib/facter.rb +665 -0
- metadata +1202 -0
@@ -0,0 +1,188 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Manage which facts exist and how we access them. Largely just a wrapper
|
4
|
+
# around a hash of facts.
|
5
|
+
#
|
6
|
+
# @api private
|
7
|
+
module LegacyFacter
|
8
|
+
module Util
|
9
|
+
class Collection
|
10
|
+
def initialize(internal_loader, external_loader)
|
11
|
+
@facts = {}
|
12
|
+
@internal_loader = internal_loader
|
13
|
+
@external_loader = external_loader
|
14
|
+
@loaded = false
|
15
|
+
end
|
16
|
+
|
17
|
+
# Return a fact object by name.
|
18
|
+
def [](name)
|
19
|
+
value(name)
|
20
|
+
end
|
21
|
+
|
22
|
+
# Define a new fact or extend an existing fact.
|
23
|
+
#
|
24
|
+
# @param name [Symbol] The name of the fact to define
|
25
|
+
# @param options [Hash] A hash of options to set on the fact
|
26
|
+
#
|
27
|
+
# @return [Facter::Util::Fact] The fact that was defined
|
28
|
+
def define_fact(name, options = {}, &block)
|
29
|
+
fact = create_or_return_fact(name, options)
|
30
|
+
|
31
|
+
fact.instance_eval(&block) if block_given?
|
32
|
+
|
33
|
+
fact
|
34
|
+
rescue StandardError => e
|
35
|
+
log.log_exception(e)
|
36
|
+
end
|
37
|
+
|
38
|
+
# Add a resolution mechanism for a named fact. This does not distinguish
|
39
|
+
# between adding a new fact and adding a new way to resolve a fact.
|
40
|
+
#
|
41
|
+
# @param name [Symbol] The name of the fact to define
|
42
|
+
# @param options [Hash] A hash of options to set on the fact and resolution
|
43
|
+
#
|
44
|
+
# @return [Facter::Util::Fact] The fact that was defined
|
45
|
+
def add(name, options = {}, &block)
|
46
|
+
fact = create_or_return_fact(name, options)
|
47
|
+
|
48
|
+
fact.add(options, &block)
|
49
|
+
|
50
|
+
fact
|
51
|
+
rescue StandardError => e
|
52
|
+
log.log_exception(e)
|
53
|
+
end
|
54
|
+
|
55
|
+
include Enumerable
|
56
|
+
|
57
|
+
# Iterate across all of the facts.
|
58
|
+
def each
|
59
|
+
load_all
|
60
|
+
@facts.each do |name, fact|
|
61
|
+
value = fact.value
|
62
|
+
yield name.to_s, value unless value.nil?
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
# Return a fact by name.
|
67
|
+
def fact(name)
|
68
|
+
name = canonicalize(name)
|
69
|
+
|
70
|
+
# Try to load the fact if necessary
|
71
|
+
load(name) unless @facts[name]
|
72
|
+
|
73
|
+
# Try HARDER
|
74
|
+
internal_loader.load_all unless @facts[name]
|
75
|
+
|
76
|
+
log.warnonce("No facts loaded from #{internal_loader.search_path.join(File::PATH_SEPARATOR)}") if @facts.empty?
|
77
|
+
|
78
|
+
@facts[name]
|
79
|
+
end
|
80
|
+
|
81
|
+
# Flush all cached values.
|
82
|
+
def flush
|
83
|
+
@facts.each_value(&:flush)
|
84
|
+
@external_facts_loaded = nil
|
85
|
+
end
|
86
|
+
|
87
|
+
# Return a list of all of the facts.
|
88
|
+
def list
|
89
|
+
load_all
|
90
|
+
@facts.keys
|
91
|
+
end
|
92
|
+
|
93
|
+
# Build a hash of external facts
|
94
|
+
def external_facts
|
95
|
+
return @external_facts unless @external_facts.nil?
|
96
|
+
|
97
|
+
load_external_facts
|
98
|
+
@external_facts = @facts.select { |_k, v| v.options[:fact_type] == :external }
|
99
|
+
end
|
100
|
+
|
101
|
+
def invalidate_custom_facts
|
102
|
+
@valid_custom_facts = false
|
103
|
+
end
|
104
|
+
|
105
|
+
def reload_custom_facts
|
106
|
+
@loaded = false
|
107
|
+
end
|
108
|
+
|
109
|
+
def custom_fact(fact_name)
|
110
|
+
internal_loader.load(fact_name)
|
111
|
+
@custom_facts = @facts.select { |_k, v| v.options[:fact_type] == :custom }
|
112
|
+
end
|
113
|
+
|
114
|
+
# Builds a hash of custom facts
|
115
|
+
def custom_facts
|
116
|
+
return @custom_facts if @valid_custom_facts
|
117
|
+
|
118
|
+
@valid_custom_facts = true
|
119
|
+
|
120
|
+
internal_loader.load_all unless @loaded
|
121
|
+
@loaded = true
|
122
|
+
|
123
|
+
@custom_facts = @facts.select { |_k, v| v.options[:fact_type] == :custom }
|
124
|
+
end
|
125
|
+
|
126
|
+
def load(name)
|
127
|
+
internal_loader.load(name)
|
128
|
+
load_external_facts
|
129
|
+
end
|
130
|
+
|
131
|
+
# Load all known facts.
|
132
|
+
def load_all
|
133
|
+
internal_loader.load_all
|
134
|
+
load_external_facts
|
135
|
+
end
|
136
|
+
|
137
|
+
attr_reader :internal_loader, :external_loader
|
138
|
+
|
139
|
+
# Return a hash of all of our facts.
|
140
|
+
def to_hash
|
141
|
+
@facts.each_with_object({}) do |ary, h|
|
142
|
+
value = ary[1].value
|
143
|
+
unless value.nil?
|
144
|
+
# For backwards compatibility, convert the fact name to a string.
|
145
|
+
h[ary[0].to_s] = value
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def value(name)
|
151
|
+
fact = fact(name)
|
152
|
+
fact&.value
|
153
|
+
end
|
154
|
+
|
155
|
+
private
|
156
|
+
|
157
|
+
def create_or_return_fact(name, options)
|
158
|
+
name = canonicalize(name)
|
159
|
+
|
160
|
+
fact = @facts[name]
|
161
|
+
|
162
|
+
if fact.nil?
|
163
|
+
fact = Facter::Util::Fact.new(name, options)
|
164
|
+
@facts[name] = fact
|
165
|
+
else
|
166
|
+
fact.extract_ldapname_option!(options)
|
167
|
+
end
|
168
|
+
|
169
|
+
fact
|
170
|
+
end
|
171
|
+
|
172
|
+
def canonicalize(name)
|
173
|
+
name.to_s.downcase.to_sym
|
174
|
+
end
|
175
|
+
|
176
|
+
def load_external_facts
|
177
|
+
return if @external_facts_loaded
|
178
|
+
|
179
|
+
@external_facts_loaded = true
|
180
|
+
external_loader.load(self)
|
181
|
+
end
|
182
|
+
|
183
|
+
def log
|
184
|
+
@log ||= Facter::Log.new(self)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
end
|
188
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A composite loader that allows for more than one
|
4
|
+
# default directory loader
|
5
|
+
|
6
|
+
module LegacyFacter
|
7
|
+
module Util
|
8
|
+
class CompositeLoader
|
9
|
+
def initialize(loaders)
|
10
|
+
@loaders = loaders
|
11
|
+
end
|
12
|
+
|
13
|
+
def load(collection)
|
14
|
+
@loaders.each { |loader| loader.load(collection) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'rbconfig'
|
4
|
+
|
5
|
+
# A module to return config related data
|
6
|
+
#
|
7
|
+
module LegacyFacter
|
8
|
+
module Util
|
9
|
+
module Config
|
10
|
+
def self.ext_fact_loader
|
11
|
+
@ext_fact_loader || LegacyFacter::Util::DirectoryLoader.new
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.ext_fact_loader=(loader)
|
15
|
+
@ext_fact_loader = loader
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.mac?
|
19
|
+
RbConfig::CONFIG['host_os'] =~ /darwin/i
|
20
|
+
end
|
21
|
+
|
22
|
+
# Returns true if OS is windows
|
23
|
+
def self.windows?
|
24
|
+
RbConfig::CONFIG['host_os'] =~ /mswin|win32|dos|mingw|cygwin/i
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.windows_data_dir
|
28
|
+
ENV['ProgramData'] || ENV['APPDATA'] if LegacyFacter::Util::Config.windows?
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.external_facts_dirs
|
32
|
+
Facter::Options.external_dir
|
33
|
+
end
|
34
|
+
|
35
|
+
def self.facts_cache_dir
|
36
|
+
@facts_cache_dir ||= setup_default_cache_dir
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.setup_default_ext_facts_dirs
|
40
|
+
if LegacyFacter::Util::Root.root?
|
41
|
+
windows_dir = windows_data_dir
|
42
|
+
Facter::Options[:default_external_dir] = if windows_dir
|
43
|
+
[File.join(windows_dir, 'PuppetLabs', 'facter', 'facts.d')]
|
44
|
+
else
|
45
|
+
[
|
46
|
+
'/etc/puppetlabs/facter/facts.d',
|
47
|
+
'/etc/facter/facts.d/',
|
48
|
+
'/opt/puppetlabs/facter/facts.d'
|
49
|
+
]
|
50
|
+
end
|
51
|
+
elsif ENV['HOME']
|
52
|
+
Facter::Options[:default_external_dir] =
|
53
|
+
[File.join(ENV['HOME'], '.facter', 'facts.d'),
|
54
|
+
File.join(ENV['HOME'], '.puppetlabs', 'opt', 'facter', 'facts.d')]
|
55
|
+
else
|
56
|
+
Facter::Options[:default_external_dir] = []
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
if LegacyFacter::Util::Config.windows?
|
61
|
+
require_relative 'windows_root'
|
62
|
+
else
|
63
|
+
require_relative 'unix_root'
|
64
|
+
end
|
65
|
+
|
66
|
+
setup_default_ext_facts_dirs
|
67
|
+
|
68
|
+
def self.override_binary_dir=(dir)
|
69
|
+
@override_binary_dir = dir
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.override_binary_dir
|
73
|
+
@override_binary_dir
|
74
|
+
end
|
75
|
+
|
76
|
+
def self.setup_default_cache_dir
|
77
|
+
windows_dir = windows_data_dir
|
78
|
+
@facts_cache_dir = if windows_dir
|
79
|
+
File.join(windows_dir, 'PuppetLabs', 'facter', 'cache', 'cached_facts')
|
80
|
+
else
|
81
|
+
'/opt/puppetlabs/facter/cache/cached_facts'
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.setup_default_override_binary_dir
|
86
|
+
@override_binary_dir = if LegacyFacter::Util::Config.windows?
|
87
|
+
nil
|
88
|
+
else
|
89
|
+
'/opt/puppetlabs/puppet/bin'
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
setup_default_override_binary_dir
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
@@ -0,0 +1,81 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A restricting tag for fact resolution mechanisms. The tag must be true
|
4
|
+
# for the resolution mechanism to be suitable.
|
5
|
+
|
6
|
+
module LegacyFacter
|
7
|
+
module Util
|
8
|
+
class Confine
|
9
|
+
attr_accessor :fact, :values
|
10
|
+
|
11
|
+
include LegacyFacter::Util::Values
|
12
|
+
|
13
|
+
# Add the restriction. Requires the fact name, an operator, and the value
|
14
|
+
# we're comparing to.
|
15
|
+
#
|
16
|
+
# @param fact [Symbol] Name of the fact
|
17
|
+
# @param values [Array] One or more values to match against.
|
18
|
+
# They can be any type that provides a === method.
|
19
|
+
# @param block [Proc] Alternatively a block can be supplied as a check. The fact
|
20
|
+
# value will be passed as the argument to the block. If the block returns
|
21
|
+
# true then the fact will be enabled, otherwise it will be disabled.
|
22
|
+
def initialize(fact = nil, *values, &block)
|
23
|
+
raise ArgumentError, 'The fact name must be provided' unless fact || block_given?
|
24
|
+
raise ArgumentError, 'One or more values or a block must be provided' if values.empty? && !block_given?
|
25
|
+
|
26
|
+
@fact = fact
|
27
|
+
@values = values
|
28
|
+
@block = block
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_s
|
32
|
+
return @block.to_s if @block
|
33
|
+
|
34
|
+
format("'%<fact>s' '%<values>s'", fact: @fact, values: @values.join(','))
|
35
|
+
end
|
36
|
+
|
37
|
+
# Evaluate the fact, returning true or false.
|
38
|
+
# if we have a block parameter then we only evaluate that instead
|
39
|
+
def true?
|
40
|
+
if @block && !@fact
|
41
|
+
begin
|
42
|
+
return !!@block.call
|
43
|
+
rescue StandardError => e
|
44
|
+
log.debug "Confine raised #{e.class} #{e}"
|
45
|
+
return false
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
unless (fact = Facter[@fact])
|
50
|
+
log.debug format('No fact for %<fact>s', fact: @fact)
|
51
|
+
return false
|
52
|
+
end
|
53
|
+
value = convert(fact.value)
|
54
|
+
|
55
|
+
return false if value.nil?
|
56
|
+
|
57
|
+
# We call the block with both the downcased and raw fact value for
|
58
|
+
# backwards-compatibility.
|
59
|
+
if @block
|
60
|
+
begin
|
61
|
+
return !!@block.call(value) || !!@block.call(fact.value) # rubocop:disable Style/DoubleNegation
|
62
|
+
rescue StandardError => e
|
63
|
+
log.debug "Confine raised #{e.class} #{e}"
|
64
|
+
return false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# we're intentionally using case equality (triple equals) because we
|
69
|
+
# support matching against anything that supports === such as ranges,
|
70
|
+
# regular expressions, etc
|
71
|
+
@values.any? { |v| convert(v) === value } # rubocop:disable Style/CaseEquality
|
72
|
+
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def log
|
77
|
+
@log ||= Facter::Log.new(self)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,149 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# A Facter plugin that loads external facts.
|
4
|
+
#
|
5
|
+
# Default Unix Directories:
|
6
|
+
# /opt/puppetlabs/custom_facts/facts.d, /etc/custom_facts/facts.d, /etc/puppetlabs/custom_facts/facts.d
|
7
|
+
#
|
8
|
+
# Beginning with Facter 3, only /opt/puppetlabs/custom_facts/facts.d will be a default external fact
|
9
|
+
# directory in Unix.
|
10
|
+
#
|
11
|
+
# Default Windows Direcotires:
|
12
|
+
# C:\ProgramData\Puppetlabs\custom_facts\facts.d (2008)
|
13
|
+
# C:\Documents and Settings\All Users\Application Data\Puppetlabs\custom_facts\facts.d (2003)
|
14
|
+
#
|
15
|
+
# Can also load from command-line specified directory
|
16
|
+
#
|
17
|
+
# Facts can be in the form of JSON, YAML or Text files
|
18
|
+
# and any executable that returns key=value pairs.
|
19
|
+
|
20
|
+
require 'yaml'
|
21
|
+
|
22
|
+
module LegacyFacter
|
23
|
+
module Util
|
24
|
+
class DirectoryLoader
|
25
|
+
class NoSuchDirectoryError < RuntimeError
|
26
|
+
end
|
27
|
+
|
28
|
+
# This value makes it highly likely that external facts will take
|
29
|
+
# precedence over all other facts
|
30
|
+
EXTERNAL_FACT_WEIGHT = 10_000
|
31
|
+
|
32
|
+
# Directory for fact loading
|
33
|
+
attr_reader :directories
|
34
|
+
|
35
|
+
def initialize(dir = LegacyFacter::Util::Config.external_facts_dirs, weight = EXTERNAL_FACT_WEIGHT)
|
36
|
+
@directories = [dir].flatten
|
37
|
+
@weight = weight
|
38
|
+
@log ||= Facter::Log.new(self)
|
39
|
+
end
|
40
|
+
|
41
|
+
# Load facts from files in fact directory using the relevant parser classes to
|
42
|
+
# parse them.
|
43
|
+
def load(collection)
|
44
|
+
weight = @weight
|
45
|
+
|
46
|
+
searched_facts, cached_facts = load_directory_entries(collection)
|
47
|
+
|
48
|
+
load_cached_facts(collection, cached_facts, weight)
|
49
|
+
|
50
|
+
load_searched_facts(collection, searched_facts, weight)
|
51
|
+
end
|
52
|
+
|
53
|
+
private
|
54
|
+
|
55
|
+
def log
|
56
|
+
@log ||= Facter::Log.new(self)
|
57
|
+
end
|
58
|
+
|
59
|
+
def load_directory_entries(_collection)
|
60
|
+
cm = Facter::CacheManager.new
|
61
|
+
facts = []
|
62
|
+
entries.each do |file|
|
63
|
+
basename = File.basename(file)
|
64
|
+
next if file_blocked?(basename)
|
65
|
+
|
66
|
+
if facts.find { |f| f.name == basename } && cm.fact_cache_enabled?(basename)
|
67
|
+
Facter.log_exception(Exception.new("Caching is enabled for group \"#{basename}\" while "\
|
68
|
+
'there are at least two external facts files with the same filename'))
|
69
|
+
else
|
70
|
+
searched_fact = Facter::SearchedFact.new(basename, nil, nil, :file)
|
71
|
+
searched_fact.file = file
|
72
|
+
facts << searched_fact
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
cm.resolve_facts(facts)
|
77
|
+
end
|
78
|
+
|
79
|
+
def load_cached_facts(collection, cached_facts, weight)
|
80
|
+
cached_facts.each do |cached_fact|
|
81
|
+
collection.add(cached_fact.name, value: cached_fact.value, fact_type: :external,
|
82
|
+
file: cached_fact.file) { has_weight(weight) }
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def load_searched_facts(collection, searched_facts, weight)
|
87
|
+
searched_facts.each do |fact|
|
88
|
+
parser = LegacyFacter::Util::Parser.parser_for(fact.file)
|
89
|
+
next if parser.nil?
|
90
|
+
|
91
|
+
data = resolve_fact(fact, parser)
|
92
|
+
|
93
|
+
if data == false
|
94
|
+
log.warn "Could not interpret fact file #{fact.file}"
|
95
|
+
elsif (data == {}) || data.nil?
|
96
|
+
log.debug(
|
97
|
+
"Structured data fact file #{fact.file} was parsed but was either empty or an invalid filetype "\
|
98
|
+
'(valid filetypes are .yaml, .json, and .txt).'
|
99
|
+
)
|
100
|
+
elsif !data.is_a?(Hash)
|
101
|
+
log.error("Structured data fact file #{fact.file} was parsed but no key=>value data was returned.")
|
102
|
+
else
|
103
|
+
add_data(data, collection, fact, weight)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
def add_data(data, collection, fact, weight)
|
109
|
+
data.each do |key, value|
|
110
|
+
collection.add(
|
111
|
+
key,
|
112
|
+
value: value,
|
113
|
+
fact_type: :external,
|
114
|
+
file: fact.file
|
115
|
+
) { has_weight(weight) }
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def resolve_fact(fact, parser)
|
120
|
+
data = nil
|
121
|
+
fact_name = File.basename(fact.file)
|
122
|
+
Facter::Framework::Benchmarking::Timer.measure(fact_name) { data = parser.results }
|
123
|
+
|
124
|
+
data
|
125
|
+
end
|
126
|
+
|
127
|
+
def entries
|
128
|
+
dirs = @directories.select { |directory| File.directory?(directory) }.map do |directory|
|
129
|
+
Dir.entries(directory).map { |directory_entry| File.join(directory, directory_entry) }.sort.reverse!
|
130
|
+
end
|
131
|
+
dirs.flatten.select { |f| should_parse?(f) }
|
132
|
+
rescue Errno::ENOENT
|
133
|
+
[]
|
134
|
+
end
|
135
|
+
|
136
|
+
def should_parse?(file)
|
137
|
+
File.basename(file) !~ /^\./
|
138
|
+
end
|
139
|
+
|
140
|
+
def file_blocked?(file)
|
141
|
+
if Facter::Options[:blocked_facts].include? file
|
142
|
+
Facter.debug("External fact file #{file} blocked.")
|
143
|
+
return true
|
144
|
+
end
|
145
|
+
false
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|