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,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ffi'
|
4
|
+
|
5
|
+
FFI.typedef :uint16, :word
|
6
|
+
FFI.typedef :uint32, :dword
|
7
|
+
FFI.typedef :uintptr_t, :handle
|
8
|
+
FFI.typedef :buffer_inout, :lpwstr
|
9
|
+
FFI.typedef :pointer, :lpcvoid
|
10
|
+
FFI.typedef :pointer, :lpvoid
|
11
|
+
FFI.typedef :pointer, :lpdword
|
12
|
+
FFI.typedef :pointer, :pdword
|
13
|
+
FFI.typedef :pointer, :phandle
|
14
|
+
FFI.typedef :pointer, :pbool
|
15
|
+
FFI.typedef :pointer, :ulong_ptr
|
16
|
+
FFI.typedef :uint32, :win32_ulong
|
17
|
+
FFI.typedef :int32, :win32_long
|
18
|
+
FFI.typedef :int32, :win32_bool
|
19
|
+
FFI.typedef :uint16, :wchar
|
20
|
+
FFI.typedef :uintptr_t, :hwnd
|
21
|
+
|
22
|
+
ERROR_MORE_DATA = 234
|
23
|
+
MAX_PATH = 32_767
|
24
|
+
|
25
|
+
module FFI
|
26
|
+
WIN32FALSE = 0
|
27
|
+
END_OF_WCHAR_STRING = (+"\0\0").force_encoding(Encoding::UTF_16LE).freeze
|
28
|
+
|
29
|
+
class Pointer
|
30
|
+
def read_wide_string_with_length(char_length)
|
31
|
+
# char_length is number of wide chars (typically excluding NULLs), *not* bytes
|
32
|
+
str = get_bytes(0, char_length * 2).force_encoding(Encoding::UTF_16LE)
|
33
|
+
str.encode(Encoding::UTF_8, str.encoding)
|
34
|
+
end
|
35
|
+
|
36
|
+
def read_wide_string_without_length(replace_invalid_chars: false)
|
37
|
+
wide_character = get_bytes(0, 2)
|
38
|
+
wide_character.force_encoding(Encoding::UTF_16LE)
|
39
|
+
i = 2
|
40
|
+
str = []
|
41
|
+
|
42
|
+
while wide_character != END_OF_WCHAR_STRING
|
43
|
+
str << wide_character
|
44
|
+
wide_character = get_bytes(i, 2)
|
45
|
+
wide_character.force_encoding(Encoding::UTF_16LE)
|
46
|
+
i += 2
|
47
|
+
end
|
48
|
+
|
49
|
+
if replace_invalid_chars
|
50
|
+
str.join.force_encoding(Encoding::UTF_16LE).encode(Encoding::UTF_8, Encoding::UTF_16LE, invalid: :replace)
|
51
|
+
else
|
52
|
+
str.join.force_encoding(Encoding::UTF_16LE).encode(Encoding::UTF_8)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def read_win32_bool
|
57
|
+
# BOOL is always a 32-bit integer in Win32
|
58
|
+
# some Win32 APIs return 1 for true, while others are non-0
|
59
|
+
read_int32 != WIN32FALSE
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
class Struct
|
64
|
+
def self.read_list(first_address)
|
65
|
+
instance = new(first_address)
|
66
|
+
while instance.to_ptr != Pointer::NULL
|
67
|
+
yield(instance)
|
68
|
+
instance = new(instance[:Next])
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
require_relative '../../../../facter/resolvers/windows/ffi/system_info'
|
5
|
+
|
6
|
+
module HardwareFFI
|
7
|
+
extend FFI::Library
|
8
|
+
|
9
|
+
ffi_convention :stdcall
|
10
|
+
ffi_lib :kernel32
|
11
|
+
attach_function :GetNativeSystemInfo, [:pointer], :void
|
12
|
+
|
13
|
+
PROCESSOR_ARCHITECTURE_INTEL = 0
|
14
|
+
PROCESSOR_ARCHITECTURE_ARM = 5
|
15
|
+
PROCESSOR_ARCHITECTURE_IA64 = 6
|
16
|
+
PROCESSOR_ARCHITECTURE_AMD64 = 9
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
|
5
|
+
module IdentityFFI
|
6
|
+
extend FFI::Library
|
7
|
+
|
8
|
+
ffi_convention :stdcall
|
9
|
+
ffi_lib :secur32
|
10
|
+
attach_function :GetUserNameExW, %i[uint32 lpwstr pointer], :win32_bool
|
11
|
+
|
12
|
+
ffi_convention :stdcall
|
13
|
+
ffi_lib :shell32
|
14
|
+
attach_function :IsUserAnAdmin, [], :win32_bool
|
15
|
+
|
16
|
+
def self.privileged?
|
17
|
+
result = self.IsUserAnAdmin()
|
18
|
+
result && result != FFI::WIN32FALSE
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,161 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
MAX_ADAPTER_ADDRESS_LENGTH = 8
|
4
|
+
MAX_DHCPV6_DUID_LENGTH = 130
|
5
|
+
|
6
|
+
class SockAddr < FFI::Struct
|
7
|
+
layout(
|
8
|
+
:sa_family, :ushort,
|
9
|
+
:sa_data, [:uint8, 14]
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
class SocketAddress < FFI::Struct
|
14
|
+
layout(
|
15
|
+
:lpSockaddr, :pointer,
|
16
|
+
:iSockaddrLength, :int32
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
module Enums
|
21
|
+
extend FFI::Library
|
22
|
+
|
23
|
+
IP_PREFIX_ORIGIN = enum(
|
24
|
+
:IpPrefixOriginOther, 0,
|
25
|
+
:IpPrefixOriginManual,
|
26
|
+
:IpPrefixOriginWellKnown,
|
27
|
+
:IpPrefixOriginDhcp,
|
28
|
+
:IpPrefixOriginRouterAdvertisement,
|
29
|
+
:IpPrefixOriginUnchanged
|
30
|
+
)
|
31
|
+
|
32
|
+
IP_SUFFIX_ORIGIN = enum(
|
33
|
+
:NlsoOther, 0,
|
34
|
+
:NlsoManual,
|
35
|
+
:NlsoWellKnown,
|
36
|
+
:NlsoDhcp,
|
37
|
+
:NlsoLinkLayerAddress,
|
38
|
+
:NlsoRandom,
|
39
|
+
:IpSuffixOriginOther,
|
40
|
+
:IpSuffixOriginManual,
|
41
|
+
:IpSuffixOriginWellKnown,
|
42
|
+
:IpSuffixOriginDhcp,
|
43
|
+
:IpSuffixOriginLinkLayerAddress,
|
44
|
+
:IpSuffixOriginRandom,
|
45
|
+
:IpSuffixOriginUnchanged
|
46
|
+
)
|
47
|
+
|
48
|
+
IP_DAD_STATE = enum(
|
49
|
+
:NldsInvalid, 0,
|
50
|
+
:NldsTentative,
|
51
|
+
:NldsDuplicate,
|
52
|
+
:NldsDeprecated,
|
53
|
+
:NldsPreferred,
|
54
|
+
:IpDadStateInvalid,
|
55
|
+
:IpDadStateTentative,
|
56
|
+
:IpDadStateDuplicate,
|
57
|
+
:IpDadStateDeprecated,
|
58
|
+
:IpDadStatePreferred
|
59
|
+
)
|
60
|
+
|
61
|
+
IF_CONNECTION_TYPE = enum(
|
62
|
+
:NET_IF_CONNECTION_DEDICATED, 1,
|
63
|
+
:NET_IF_CONNECTION_PASSIVE,
|
64
|
+
:NET_IF_CONNECTION_DEMAND,
|
65
|
+
:NET_IF_CONNECTION_MAXIMUM
|
66
|
+
)
|
67
|
+
|
68
|
+
TUNNEL_TYPE = enum(
|
69
|
+
:TUNNEL_TYPE_NONE, 0,
|
70
|
+
:TUNNEL_TYPE_OTHER,
|
71
|
+
:TUNNEL_TYPE_DIRECT,
|
72
|
+
:TUNNEL_TYPE_6TO4,
|
73
|
+
:TUNNEL_TYPE_ISATAP,
|
74
|
+
:TUNNEL_TYPE_TEREDO,
|
75
|
+
:TUNNEL_TYPE_IPHTTPS
|
76
|
+
)
|
77
|
+
end
|
78
|
+
|
79
|
+
class IpAdapterUnicastAddressXPUnionStruct < FFI::Struct
|
80
|
+
layout(
|
81
|
+
:Length, :win32_ulong,
|
82
|
+
:Flags, :dword
|
83
|
+
)
|
84
|
+
end
|
85
|
+
|
86
|
+
class IpAdapterUnicastAddressXPUnion < FFI::Union
|
87
|
+
layout(
|
88
|
+
:Aligment, :ulong_long,
|
89
|
+
:Struct, IpAdapterUnicastAddressXPUnionStruct
|
90
|
+
)
|
91
|
+
end
|
92
|
+
|
93
|
+
class IpAdapterUnicastAddressLH < FFI::Struct
|
94
|
+
layout(
|
95
|
+
:Union, IpAdapterUnicastAddressXPUnion,
|
96
|
+
:Next, :pointer,
|
97
|
+
:Address, SocketAddress,
|
98
|
+
:PrefixOrigin, Enums::IP_PREFIX_ORIGIN,
|
99
|
+
:SuffixOrigin, Enums::IP_SUFFIX_ORIGIN,
|
100
|
+
:DadState, Enums::IP_DAD_STATE,
|
101
|
+
:ValidLifetime, :win32_ulong,
|
102
|
+
:PreferredLifetime, :win32_ulong,
|
103
|
+
:LeaseLifetime, :win32_ulong,
|
104
|
+
:OnLinkPrefixLength, :uint8
|
105
|
+
)
|
106
|
+
end
|
107
|
+
|
108
|
+
class AdapterAddressStruct < FFI::Struct
|
109
|
+
layout(
|
110
|
+
:Length, :win32_ulong,
|
111
|
+
:IfIndex, :dword
|
112
|
+
)
|
113
|
+
end
|
114
|
+
|
115
|
+
class AdapterAddressAligmentUnion < FFI::Union
|
116
|
+
layout(
|
117
|
+
:Aligment, :uint64,
|
118
|
+
:Struct, AdapterAddressStruct
|
119
|
+
)
|
120
|
+
end
|
121
|
+
|
122
|
+
class IpAdapterAddressesLh < FFI::Struct
|
123
|
+
layout(
|
124
|
+
:Union, AdapterAddressAligmentUnion,
|
125
|
+
:Next, :pointer,
|
126
|
+
:AdapterName, :pointer,
|
127
|
+
:FirstUnicastAddress, :pointer,
|
128
|
+
:FirstAnycastAddress, :pointer,
|
129
|
+
:FirstMulticastAddress, :pointer,
|
130
|
+
:FirstDnsServerAddress, :pointer,
|
131
|
+
:DnsSuffix, :pointer,
|
132
|
+
:Description, :pointer,
|
133
|
+
:FriendlyName, :pointer,
|
134
|
+
:PhysicalAddress, [:uchar, MAX_ADAPTER_ADDRESS_LENGTH],
|
135
|
+
:PhysicalAddressLength, :win32_ulong,
|
136
|
+
:Flags, :win32_ulong,
|
137
|
+
:Mtu, :win32_ulong,
|
138
|
+
:IfType, :dword,
|
139
|
+
:OperStatus, :uint8,
|
140
|
+
:Ipv6IfIndex, :dword,
|
141
|
+
:ZoneIndices, [:win32_ulong, 16],
|
142
|
+
:FirstPrefix, :pointer,
|
143
|
+
:TransmitLinkSpeed, :ulong_long,
|
144
|
+
:ReceiveLinkSpeed, :ulong_long,
|
145
|
+
:FirstWinsServerAddress, :pointer,
|
146
|
+
:FirstGatewayAddress, :pointer,
|
147
|
+
:Ipv4Metric, :win32_ulong,
|
148
|
+
:Ipv6Metric, :win32_ulong,
|
149
|
+
:Luid, :ulong_long,
|
150
|
+
:Dhcpv4Server, SocketAddress,
|
151
|
+
:CompartmentId, :uint32, # https://github.com/tpn/winsdk-10/blob/master/Include/10.0.14393.0/shared/ifdef.h
|
152
|
+
:NetworkGuid, [:uint8, 16], # https://docs.microsoft.com/en-us/windows/win32/api/guiddef/ns-guiddef-guid
|
153
|
+
:ConnectionType, Enums::IF_CONNECTION_TYPE,
|
154
|
+
:TunnelType, Enums::TUNNEL_TYPE,
|
155
|
+
:Dhcpv6Server, SocketAddress,
|
156
|
+
:Dhcpv6ClientDuid, [:uchar, MAX_DHCPV6_DUID_LENGTH],
|
157
|
+
:Dhcpv6ClientDuidLength, :win32_ulong,
|
158
|
+
:Dhcpv6Iaid, :win32_ulong,
|
159
|
+
:FirstDnsSuffix, :pointer
|
160
|
+
)
|
161
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
require_relative '../../../../facter/resolvers/windows/ffi/os_version_info_ex'
|
5
|
+
|
6
|
+
module KernelFFI
|
7
|
+
extend FFI::Library
|
8
|
+
|
9
|
+
ffi_convention :stdcall
|
10
|
+
ffi_lib :ntdll
|
11
|
+
attach_function :RtlGetVersion, [:pointer], :int32
|
12
|
+
|
13
|
+
STATUS_SUCCESS = 0
|
14
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
require_relative '../../../../facter/resolvers/windows/ffi/performance_information'
|
5
|
+
|
6
|
+
module MemoryFFI
|
7
|
+
extend FFI::Library
|
8
|
+
|
9
|
+
ffi_convention :stdcall
|
10
|
+
ffi_lib :psapi
|
11
|
+
attach_function :GetPerformanceInfo, %i[pointer dword], :win32_bool
|
12
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class NetworkUtils
|
4
|
+
@log = Facter::Log.new(self)
|
5
|
+
class << self
|
6
|
+
def address_to_string(addr)
|
7
|
+
return if addr[:lpSockaddr] == FFI::Pointer::NULL
|
8
|
+
|
9
|
+
size = FFI::MemoryPointer.new(NetworkingFFI::INET6_ADDRSTRLEN + 1)
|
10
|
+
buffer = FFI::MemoryPointer.new(:wchar, NetworkingFFI::INET6_ADDRSTRLEN + 1)
|
11
|
+
error = nil
|
12
|
+
3.times do
|
13
|
+
error = NetworkingFFI::WSAAddressToStringW(addr[:lpSockaddr], addr[:iSockaddrLength],
|
14
|
+
FFI::Pointer::NULL, buffer, size)
|
15
|
+
break if error.zero?
|
16
|
+
end
|
17
|
+
unless error.zero?
|
18
|
+
@log.debug 'address to string translation failed!'
|
19
|
+
return
|
20
|
+
end
|
21
|
+
extract_address(buffer)
|
22
|
+
end
|
23
|
+
|
24
|
+
def extract_address(addr)
|
25
|
+
addr.read_wide_string_without_length.split('%').first
|
26
|
+
end
|
27
|
+
|
28
|
+
def ignored_ip_address(addr)
|
29
|
+
addr.empty? || addr.start_with?('127.', '169.254.') || addr.start_with?('fe80') || addr.eql?('::1')
|
30
|
+
end
|
31
|
+
|
32
|
+
def find_mac_address(adapter)
|
33
|
+
adapter[:PhysicalAddress].first(adapter[:PhysicalAddressLength])
|
34
|
+
.map { |e| format('%<mac_address>02x', mac_address: e.to_i) }.join(':').upcase
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
require_relative '../../../../facter/resolvers/windows/ffi/network_utils'
|
5
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ip_adapter_addresses_lh'
|
6
|
+
|
7
|
+
module NetworkingFFI
|
8
|
+
extend FFI::Library
|
9
|
+
|
10
|
+
ffi_convention :stdcall
|
11
|
+
ffi_lib :iphlpapi
|
12
|
+
attach_function :GetAdaptersAddresses, %i[uint32 uint32 pointer pointer pointer], :dword
|
13
|
+
|
14
|
+
ffi_convention :stdcall
|
15
|
+
ffi_lib :ws2_32
|
16
|
+
attach_function :WSAAddressToStringW, %i[pointer dword pointer pointer pointer], :int32
|
17
|
+
|
18
|
+
AF_UNSPEC = 0
|
19
|
+
GAA_FLAG_SKIP_ANYCAST = 2
|
20
|
+
GAA_FLAG_SKIP_MULTICAST = 4
|
21
|
+
GAA_FLAG_SKIP_DNS_SERVER = 8
|
22
|
+
BUFFER_LENGTH = 15_000
|
23
|
+
ERROR_SUCCES = 0
|
24
|
+
ERROR_BUFFER_OVERFLOW = 111
|
25
|
+
ERROR_NO_DATA = 232
|
26
|
+
IF_OPER_STATUS_UP = 1
|
27
|
+
IF_OPER_STATUS_DOWN = 2
|
28
|
+
IF_TYPE_ETHERNET_CSMACD = 6
|
29
|
+
IF_TYPE_IEEE80211 = 71
|
30
|
+
IP_ADAPTER_DHCP_ENABLED = 4
|
31
|
+
INET6_ADDRSTRLEN = 46
|
32
|
+
AF_INET = 2
|
33
|
+
AF_INET6 = 23
|
34
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class OsVersionInfoEx < FFI::Struct
|
4
|
+
layout(
|
5
|
+
:dwOSVersionInfoSize, :win32_ulong,
|
6
|
+
:dwMajorVersion, :win32_ulong,
|
7
|
+
:dwMinorVersion, :win32_ulong,
|
8
|
+
:dwBuildNumber, :win32_ulong,
|
9
|
+
:dwPlatformId, :win32_ulong,
|
10
|
+
:szCSDVersion, [:wchar, 128],
|
11
|
+
:wServicePackMajor, :ushort,
|
12
|
+
:wServicePackMinor, :ushort,
|
13
|
+
:wSuiteMask, :ushort,
|
14
|
+
:wProductType, :uchar,
|
15
|
+
:wReserved, :uchar
|
16
|
+
)
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class PerformanceInformation < FFI::Struct
|
4
|
+
layout(
|
5
|
+
:cb, :dword,
|
6
|
+
:CommitTotal, :size_t,
|
7
|
+
:CommitLimit, :size_t,
|
8
|
+
:CommitPeak, :size_t,
|
9
|
+
:PhysicalTotal, :size_t,
|
10
|
+
:PhysicalAvailable, :size_t,
|
11
|
+
:SystemCache, :size_t,
|
12
|
+
:KernelTotal, :size_t,
|
13
|
+
:KernelPaged, :size_t,
|
14
|
+
:KernelNonpaged, :size_t,
|
15
|
+
:PageSize, :size_t,
|
16
|
+
:HandleCount, :dword,
|
17
|
+
:ProcessCount, :dword,
|
18
|
+
:ThreadCount, :dword
|
19
|
+
)
|
20
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../../../../facter/resolvers/windows/ffi/ffi'
|
4
|
+
|
5
|
+
module System32FFI
|
6
|
+
extend FFI::Library
|
7
|
+
|
8
|
+
ffi_convention :stdcall
|
9
|
+
ffi_lib :kernel32
|
10
|
+
attach_function :IsWow64Process, %i[handle pointer], :win32_bool
|
11
|
+
|
12
|
+
ffi_convention :stdcall
|
13
|
+
ffi_lib :kernel32
|
14
|
+
attach_function :GetCurrentProcess, [], :handle
|
15
|
+
|
16
|
+
CSIDL_WINDOWS = 0x0024
|
17
|
+
H_OK = 0
|
18
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class DummyStructName < FFI::Struct
|
4
|
+
layout(
|
5
|
+
:wProcessorArchitecture, :word,
|
6
|
+
:wReserved, :word
|
7
|
+
)
|
8
|
+
end
|
9
|
+
|
10
|
+
class DummyUnionName < FFI::Union
|
11
|
+
layout(
|
12
|
+
:dwOemId, :dword,
|
13
|
+
:dummystructname, DummyStructName
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
class SystemInfo < FFI::Struct
|
18
|
+
layout(
|
19
|
+
:dummyunionname, DummyUnionName,
|
20
|
+
:dwPageSize, :dword,
|
21
|
+
:lpMinimumApplicationAddress, :pointer,
|
22
|
+
:lpMaximumApplicationAddress, :pointer,
|
23
|
+
:dwActiveProcessorMask, :pdword,
|
24
|
+
:dwNumberOfProcessors, :dword,
|
25
|
+
:dwProcessorType, :dword,
|
26
|
+
:dwAllocationGranularity, :dword,
|
27
|
+
:wProcessorLevel, :word,
|
28
|
+
:wProcessorRevision, :word
|
29
|
+
)
|
30
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'win32/registry'
|
4
|
+
|
5
|
+
module Facter
|
6
|
+
module Resolvers
|
7
|
+
module Windows
|
8
|
+
class Fips < BaseResolver
|
9
|
+
# :fips_enabled
|
10
|
+
init_resolver
|
11
|
+
|
12
|
+
class << self
|
13
|
+
private
|
14
|
+
|
15
|
+
def post_resolve(fact_name, _options)
|
16
|
+
@fact_list.fetch(fact_name) { read_fact_from_registry(fact_name) }
|
17
|
+
end
|
18
|
+
|
19
|
+
def read_fact_from_registry(fact_name)
|
20
|
+
reg = ::Win32::Registry::HKEY_LOCAL_MACHINE
|
21
|
+
.open('System\\CurrentControlSet\\Control\\Lsa\\FipsAlgorithmPolicy')
|
22
|
+
@fact_list[:fips_enabled] = reg['Enabled'] != 0 if reg.any? { |name, _value| name == 'Enabled' }
|
23
|
+
reg.close
|
24
|
+
|
25
|
+
@fact_list[:fips_enabled] ||= false
|
26
|
+
@fact_list[fact_name]
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class HardwareArchitecture < BaseResolver
|
6
|
+
init_resolver
|
7
|
+
|
8
|
+
class << self
|
9
|
+
private
|
10
|
+
|
11
|
+
def post_resolve(fact_name, _options)
|
12
|
+
@fact_list.fetch(fact_name) { read_hardware_information(fact_name) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def read_hardware_information(fact_name)
|
16
|
+
require_relative '../../../facter/resolvers/windows/ffi/hardware_ffi'
|
17
|
+
|
18
|
+
sys_info_ptr = FFI::MemoryPointer.new(SystemInfo.size)
|
19
|
+
HardwareFFI::GetNativeSystemInfo(sys_info_ptr)
|
20
|
+
sys_info = SystemInfo.new(sys_info_ptr)
|
21
|
+
|
22
|
+
hard = determine_hardware(sys_info)
|
23
|
+
arch = determine_architecture(hard)
|
24
|
+
build_facts_list(hardware: hard, architecture: arch)
|
25
|
+
@fact_list[fact_name]
|
26
|
+
rescue LoadError => e
|
27
|
+
log.debug("The ffi gem has not been installed: #{e}")
|
28
|
+
end
|
29
|
+
|
30
|
+
def determine_hardware(sys_info)
|
31
|
+
union = sys_info[:dummyunionname]
|
32
|
+
struct = union[:dummystructname]
|
33
|
+
case struct[:wProcessorArchitecture]
|
34
|
+
when HardwareFFI::PROCESSOR_ARCHITECTURE_AMD64
|
35
|
+
'x86_64'
|
36
|
+
when HardwareFFI::PROCESSOR_ARCHITECTURE_ARM
|
37
|
+
'arm'
|
38
|
+
when HardwareFFI::PROCESSOR_ARCHITECTURE_IA64
|
39
|
+
'ia64'
|
40
|
+
when HardwareFFI::PROCESSOR_ARCHITECTURE_INTEL
|
41
|
+
family = sys_info[:wProcessorLevel] > 5 ? 6 : sys_info[:wProcessorLevel]
|
42
|
+
"i#{family}86"
|
43
|
+
else
|
44
|
+
'unknown'
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def determine_architecture(hardware)
|
49
|
+
case hardware
|
50
|
+
when /i[3456]86/
|
51
|
+
'x86'
|
52
|
+
when 'x86_64'
|
53
|
+
'x64'
|
54
|
+
else
|
55
|
+
hardware
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def build_facts_list(facts)
|
60
|
+
@fact_list[:hardware] = facts[:hardware]
|
61
|
+
@fact_list[:architecture] = facts[:architecture]
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class Identity < BaseResolver
|
6
|
+
NAME_SAM_COMPATIBLE = 2
|
7
|
+
|
8
|
+
init_resolver
|
9
|
+
|
10
|
+
class << self
|
11
|
+
private
|
12
|
+
|
13
|
+
def post_resolve(fact_name, _options)
|
14
|
+
@fact_list.fetch(fact_name) { retrieve_facts(fact_name) }
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_username
|
18
|
+
require_relative '../../../facter/resolvers/windows/ffi/identity_ffi'
|
19
|
+
|
20
|
+
size_ptr = FFI::MemoryPointer.new(:win32_ulong, 1)
|
21
|
+
IdentityFFI::GetUserNameExW(NAME_SAM_COMPATIBLE, FFI::Pointer::NULL, size_ptr)
|
22
|
+
if FFI.errno != ERROR_MORE_DATA
|
23
|
+
@log.debug "failure resolving identity facts: #{FFI.errno}"
|
24
|
+
return
|
25
|
+
end
|
26
|
+
|
27
|
+
name_ptr = FFI::MemoryPointer.new(:wchar, size_ptr.read_uint32)
|
28
|
+
if IdentityFFI::GetUserNameExW(NAME_SAM_COMPATIBLE, name_ptr, size_ptr) == FFI::WIN32FALSE
|
29
|
+
@log.debug "failure resolving identity facts: #{FFI.errno}"
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
33
|
+
{ user: name_ptr.read_wide_string_with_length(size_ptr.read_uint32), privileged: IdentityFFI.privileged? }
|
34
|
+
rescue LoadError => e
|
35
|
+
@log.debug("Could not find username: #{e}")
|
36
|
+
end
|
37
|
+
|
38
|
+
def retrieve_facts(fact_name)
|
39
|
+
result = find_username
|
40
|
+
return unless result
|
41
|
+
|
42
|
+
build_fact_list(result)
|
43
|
+
@fact_list[fact_name]
|
44
|
+
end
|
45
|
+
|
46
|
+
def build_fact_list(facts)
|
47
|
+
@fact_list[:user] = facts[:user]
|
48
|
+
@fact_list[:privileged] = facts[:privileged]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module Resolvers
|
5
|
+
class Kernel < BaseResolver
|
6
|
+
init_resolver
|
7
|
+
|
8
|
+
class << self
|
9
|
+
private
|
10
|
+
|
11
|
+
def post_resolve(fact_name, _options)
|
12
|
+
@fact_list.fetch(fact_name) { read_os_version_information(fact_name) }
|
13
|
+
end
|
14
|
+
|
15
|
+
def read_os_version_information(fact_name)
|
16
|
+
require_relative '../../../facter/resolvers/windows/ffi/kernel_ffi'
|
17
|
+
|
18
|
+
ver_ptr = FFI::MemoryPointer.new(OsVersionInfoEx.size)
|
19
|
+
ver = OsVersionInfoEx.new(ver_ptr)
|
20
|
+
ver[:dwOSVersionInfoSize] = OsVersionInfoEx.size
|
21
|
+
|
22
|
+
if KernelFFI::RtlGetVersion(ver_ptr) != KernelFFI::STATUS_SUCCESS
|
23
|
+
@log.debug 'Calling Windows RtlGetVersion failed'
|
24
|
+
return
|
25
|
+
end
|
26
|
+
|
27
|
+
result = { major: ver[:dwMajorVersion], minor: ver[:dwMinorVersion], build: ver[:dwBuildNumber] }
|
28
|
+
build_facts_list(result)
|
29
|
+
|
30
|
+
@fact_list[fact_name]
|
31
|
+
rescue LoadError => e
|
32
|
+
@log.debug("Could not get OS version information: #{e}")
|
33
|
+
end
|
34
|
+
|
35
|
+
def build_facts_list(result)
|
36
|
+
@fact_list[:kernelversion] = "#{result[:major]}.#{result[:minor]}.#{result[:build]}"
|
37
|
+
@fact_list[:kernelmajorversion] = "#{result[:major]}.#{result[:minor]}"
|
38
|
+
@fact_list[:kernel] = 'windows'
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|