facter 2.5.7-x64-mingw32 → 3.9.6.cfacter.20180412-x64-mingw32
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 +5 -5
- data/bin/facter.bat +8 -0
- data/bin/facter.exe +0 -0
- data/bin/facter_interactive.bat +6 -0
- data/bin/libfacter.so +0 -0
- data/bin/run_facter_interactive.bat +9 -0
- data/lib/facter.rb +45 -261
- data/lib/libfacter.so.a +0 -0
- metadata +23 -854
- data/COMMITTERS.md +0 -185
- data/CONTRIBUTING.md +0 -91
- data/Gemfile +0 -69
- data/LICENSE +0 -15
- data/README.md +0 -65
- data/Rakefile +0 -46
- data/bin/facter +0 -20
- data/etc/facter.conf +0 -5
- data/ext/build_defaults.yaml +0 -9
- data/ext/debian/changelog.erb +0 -59
- data/ext/debian/compat +0 -1
- data/ext/debian/control +0 -15
- data/ext/debian/copyright +0 -19
- data/ext/debian/docs +0 -1
- data/ext/debian/lintian-overrides +0 -0
- data/ext/debian/rules +0 -10
- data/ext/debian/source/format +0 -1
- data/ext/facter-diff +0 -74
- data/ext/ips/facter.p5m.erb +0 -10
- data/ext/ips/rules +0 -7
- data/ext/ips/transforms +0 -18
- data/ext/osx/file_mapping.yaml +0 -32
- data/ext/osx/preflight.erb +0 -33
- data/ext/osx/prototype.plist.erb +0 -38
- data/ext/project_data.yaml +0 -31
- data/ext/redhat/facter.spec.erb +0 -223
- data/ext/solaris/pkginfo +0 -7
- data/install.rb +0 -380
- data/lib/facter/Cfkey.rb +0 -42
- data/lib/facter/application.rb +0 -206
- data/lib/facter/architecture.rb +0 -50
- data/lib/facter/augeasversion.rb +0 -28
- data/lib/facter/blockdevices.rb +0 -105
- data/lib/facter/core/aggregate.rb +0 -220
- data/lib/facter/core/directed_graph.rb +0 -46
- data/lib/facter/core/execution.rb +0 -123
- data/lib/facter/core/execution/base.rb +0 -81
- data/lib/facter/core/execution/posix.rb +0 -50
- data/lib/facter/core/execution/windows.rb +0 -57
- data/lib/facter/core/logging.rb +0 -197
- data/lib/facter/core/resolvable.rb +0 -94
- data/lib/facter/core/suitable.rb +0 -113
- data/lib/facter/dhcp_servers.rb +0 -45
- data/lib/facter/domain.rb +0 -99
- data/lib/facter/ec2.rb +0 -68
- data/lib/facter/ec2/rest.rb +0 -137
- data/lib/facter/facterversion.rb +0 -15
- data/lib/facter/filesystems.rb +0 -45
- data/lib/facter/fqdn.rb +0 -24
- data/lib/facter/gce.rb +0 -16
- data/lib/facter/gce/metadata.rb +0 -87
- data/lib/facter/gid.rb +0 -25
- data/lib/facter/hardwareisa.rb +0 -20
- data/lib/facter/hardwaremodel.rb +0 -67
- data/lib/facter/hostname.rb +0 -31
- data/lib/facter/id.rb +0 -21
- data/lib/facter/interfaces.rb +0 -58
- data/lib/facter/ipaddress.rb +0 -169
- data/lib/facter/ipaddress6.rb +0 -82
- data/lib/facter/iphostnumber.rb +0 -29
- data/lib/facter/kernel.rb +0 -22
- data/lib/facter/kernelmajversion.rb +0 -23
- data/lib/facter/kernelrelease.rb +0 -45
- data/lib/facter/kernelversion.rb +0 -22
- data/lib/facter/ldom.rb +0 -51
- data/lib/facter/lsbdistcodename.rb +0 -20
- data/lib/facter/lsbdistdescription.rb +0 -21
- data/lib/facter/lsbdistid.rb +0 -20
- data/lib/facter/lsbdistrelease.rb +0 -20
- data/lib/facter/lsbmajdistrelease.rb +0 -22
- data/lib/facter/lsbminordistrelease.rb +0 -22
- data/lib/facter/lsbrelease.rb +0 -20
- data/lib/facter/macaddress.rb +0 -99
- data/lib/facter/macosx.rb +0 -56
- data/lib/facter/manufacturer.rb +0 -68
- data/lib/facter/memory.rb +0 -168
- data/lib/facter/netmask.rb +0 -43
- data/lib/facter/network.rb +0 -20
- data/lib/facter/operatingsystem.rb +0 -24
- data/lib/facter/operatingsystem/base.rb +0 -61
- data/lib/facter/operatingsystem/cumuluslinux.rb +0 -27
- data/lib/facter/operatingsystem/implementation.rb +0 -33
- data/lib/facter/operatingsystem/linux.rb +0 -511
- data/lib/facter/operatingsystem/osreleaselinux.rb +0 -28
- data/lib/facter/operatingsystem/sunos.rb +0 -54
- data/lib/facter/operatingsystem/vmkernel.rb +0 -11
- data/lib/facter/operatingsystem/windows.rb +0 -43
- data/lib/facter/operatingsystemmajrelease.rb +0 -31
- data/lib/facter/operatingsystemrelease.rb +0 -29
- data/lib/facter/os.rb +0 -98
- data/lib/facter/osfamily.rb +0 -18
- data/lib/facter/partitions.rb +0 -39
- data/lib/facter/path.rb +0 -14
- data/lib/facter/physicalprocessorcount.rb +0 -27
- data/lib/facter/processor.rb +0 -52
- data/lib/facter/processors.rb +0 -66
- data/lib/facter/processors/os.rb +0 -244
- data/lib/facter/ps.rb +0 -31
- data/lib/facter/puppetversion.rb +0 -20
- data/lib/facter/rackspace.rb +0 -37
- data/lib/facter/rubyplatform.rb +0 -12
- data/lib/facter/rubysitedir.rb +0 -15
- data/lib/facter/rubyversion.rb +0 -12
- data/lib/facter/selinux.rb +0 -154
- data/lib/facter/ssh.rb +0 -73
- data/lib/facter/system32.rb +0 -21
- data/lib/facter/system_uptime.rb +0 -44
- data/lib/facter/timezone.rb +0 -14
- data/lib/facter/uniqueid.rb +0 -4
- data/lib/facter/uptime.rb +0 -16
- data/lib/facter/uptime_days.rb +0 -13
- data/lib/facter/uptime_hours.rb +0 -13
- data/lib/facter/uptime_seconds.rb +0 -20
- data/lib/facter/util/architecture.rb +0 -19
- data/lib/facter/util/collection.rb +0 -161
- data/lib/facter/util/composite_loader.rb +0 -12
- data/lib/facter/util/config.rb +0 -88
- data/lib/facter/util/confine.rb +0 -66
- data/lib/facter/util/dhcp_servers.rb +0 -58
- data/lib/facter/util/directory_loader.rb +0 -88
- data/lib/facter/util/ec2.rb +0 -106
- data/lib/facter/util/fact.rb +0 -204
- data/lib/facter/util/file_read.rb +0 -37
- data/lib/facter/util/formatter.rb +0 -39
- data/lib/facter/util/ip.rb +0 -340
- data/lib/facter/util/ip/windows.rb +0 -215
- data/lib/facter/util/loader.rb +0 -155
- data/lib/facter/util/macaddress.rb +0 -43
- data/lib/facter/util/macosx.rb +0 -73
- data/lib/facter/util/manufacturer.rb +0 -99
- data/lib/facter/util/memory.rb +0 -228
- data/lib/facter/util/netmask.rb +0 -40
- data/lib/facter/util/normalization.rb +0 -94
- data/lib/facter/util/nothing_loader.rb +0 -12
- data/lib/facter/util/operatingsystem.rb +0 -21
- data/lib/facter/util/parser.rb +0 -168
- data/lib/facter/util/partitions.rb +0 -47
- data/lib/facter/util/partitions/linux.rb +0 -71
- data/lib/facter/util/partitions/openbsd.rb +0 -40
- data/lib/facter/util/plist.rb +0 -24
- data/lib/facter/util/plist/generator.rb +0 -228
- data/lib/facter/util/plist/parser.rb +0 -226
- data/lib/facter/util/posix.rb +0 -16
- data/lib/facter/util/processor.rb +0 -289
- data/lib/facter/util/registry.rb +0 -11
- data/lib/facter/util/resolution.rb +0 -160
- data/lib/facter/util/solaris_zones.rb +0 -158
- data/lib/facter/util/unix_root.rb +0 -5
- data/lib/facter/util/uptime.rb +0 -83
- data/lib/facter/util/values.rb +0 -109
- data/lib/facter/util/virtual.rb +0 -220
- data/lib/facter/util/vlans.rb +0 -21
- data/lib/facter/util/windows.rb +0 -10
- data/lib/facter/util/windows/api_types.rb +0 -135
- data/lib/facter/util/windows/dir.rb +0 -43
- data/lib/facter/util/windows/error.rb +0 -87
- data/lib/facter/util/windows/process.rb +0 -294
- data/lib/facter/util/windows/user.rb +0 -186
- data/lib/facter/util/windows_root.rb +0 -7
- data/lib/facter/util/wmi.rb +0 -49
- data/lib/facter/util/xendomains.rb +0 -28
- data/lib/facter/version.rb +0 -86
- data/lib/facter/virtual.rb +0 -339
- data/lib/facter/vlans.rb +0 -17
- data/lib/facter/xendomains.rb +0 -20
- data/lib/facter/zfs_version.rb +0 -14
- data/lib/facter/zonename.rb +0 -6
- data/lib/facter/zones.rb +0 -18
- data/lib/facter/zpool_version.rb +0 -10
- data/spec/fixtures/cpuinfo/amd64dual +0 -57
- data/spec/fixtures/cpuinfo/amd64dual-grep +0 -2
- data/spec/fixtures/cpuinfo/amd64quad +0 -79
- data/spec/fixtures/cpuinfo/amd64solo +0 -23
- data/spec/fixtures/cpuinfo/amd64tri +0 -86
- data/spec/fixtures/cpuinfo/amd64twentyfour +0 -600
- data/spec/fixtures/cpuinfo/amd64twentyfour-grep +0 -24
- data/spec/fixtures/cpuinfo/bbg3-armel +0 -12
- data/spec/fixtures/cpuinfo/beaglexm-armel +0 -12
- data/spec/fixtures/cpuinfo/panda-armel +0 -17
- data/spec/fixtures/cpuinfo/ppc64 +0 -19
- data/spec/fixtures/cpuinfo/ppc64le +0 -15
- data/spec/fixtures/cpuinfo/sparc +0 -10
- data/spec/fixtures/cpuinfo/two_multicore-grep +0 -4
- data/spec/fixtures/cpuinfo/two_singlecore-grep +0 -2
- data/spec/fixtures/hpux/machinfo/hppa-rp4440 +0 -26
- data/spec/fixtures/hpux/machinfo/ia64-rx2620 +0 -49
- data/spec/fixtures/hpux/machinfo/ia64-rx6600 +0 -26
- data/spec/fixtures/hpux/machinfo/ia64-rx8640 +0 -53
- data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +0 -53
- data/spec/fixtures/hpux/machinfo/superdome2-16s +0 -31
- data/spec/fixtures/hpux/sched.models +0 -174
- data/spec/fixtures/hpux/unistd.h +0 -1534
- data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +0 -18
- data/spec/fixtures/ifconfig/centos_5_5 +0 -17
- data/spec/fixtures/ifconfig/centos_5_5_eth0 +0 -8
- data/spec/fixtures/ifconfig/darwin_10_3_0 +0 -26
- data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +0 -6
- data/spec/fixtures/ifconfig/darwin_10_6_4 +0 -28
- data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +0 -6
- data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +0 -8
- data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +0 -7
- data/spec/fixtures/ifconfig/darwin_9_8_0 +0 -26
- data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +0 -6
- data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +0 -23
- data/spec/fixtures/ifconfig/fedora_10 +0 -36
- data/spec/fixtures/ifconfig/fedora_10_eth0 +0 -9
- data/spec/fixtures/ifconfig/fedora_13 +0 -18
- data/spec/fixtures/ifconfig/fedora_13_eth0 +0 -9
- data/spec/fixtures/ifconfig/fedora_8 +0 -38
- data/spec/fixtures/ifconfig/fedora_8_eth0 +0 -9
- data/spec/fixtures/ifconfig/freebsd_6_0 +0 -12
- data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +0 -19
- data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +0 -16
- data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +0 -19
- data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_fe80 +0 -19
- data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces_and_no_public_ipv6 +0 -18
- data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +0 -19
- data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +0 -8
- data/spec/fixtures/ifconfig/linux_ifconfig_venet +0 -24
- data/spec/fixtures/ifconfig/open_solaris_10 +0 -12
- data/spec/fixtures/ifconfig/open_solaris_b132 +0 -20
- data/spec/fixtures/ifconfig/openbsd_bridge_rules +0 -11
- data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +0 -10
- data/spec/fixtures/ifconfig/ubuntu_7_04 +0 -38
- data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +0 -9
- data/spec/fixtures/ldom/ldom_v1 +0 -6
- data/spec/fixtures/netstat/centos_5_5 +0 -5
- data/spec/fixtures/netstat/darwin_10_3_0 +0 -35
- data/spec/fixtures/netstat/darwin_10_6_4 +0 -29
- data/spec/fixtures/netstat/darwin_10_6_6_dualstack +0 -34
- data/spec/fixtures/netstat/darwin_9_8_0 +0 -28
- data/spec/fixtures/netstat/fedora_10 +0 -7
- data/spec/fixtures/netstat/open_solaris_10 +0 -16
- data/spec/fixtures/netstat/open_solaris_b132 +0 -17
- data/spec/fixtures/netstat/ubuntu_7_04 +0 -7
- data/spec/fixtures/processorcount/solaris-psrinfo +0 -24
- data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +0 -1216
- data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +0 -225
- data/spec/fixtures/unit/dhcp_servers/nmcli_devices +0 -4
- data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +0 -4
- data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +0 -36
- data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +0 -24
- data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +0 -49
- data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +0 -37
- data/spec/fixtures/unit/dhcp_servers/route +0 -3
- data/spec/fixtures/unit/dhcp_servers/route_nogw +0 -1
- data/spec/fixtures/unit/ec2/rest/meta-data/root +0 -20
- data/spec/fixtures/unit/filesystems/linux +0 -28
- data/spec/fixtures/unit/gce/metadata/metadata.json +0 -69
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +0 -19
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +0 -10
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +0 -8
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60_v6.txt +0 -9
- data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +0 -20
- data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +0 -19
- data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +0 -18
- data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +0 -16
- data/spec/fixtures/unit/kernelrelease/openbsd-5.3 +0 -2
- data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +0 -3
- data/spec/fixtures/unit/memory/aix-svmon +0 -9
- data/spec/fixtures/unit/memory/aix-swap_l +0 -2
- data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +0 -3
- data/spec/fixtures/unit/memory/darwin-swapinfo-single +0 -2
- data/spec/fixtures/unit/memory/darwin-vm_stat +0 -13
- data/spec/fixtures/unit/memory/dragonfly-vmstat +0 -3
- data/spec/fixtures/unit/memory/freebsd-vmstat +0 -3
- data/spec/fixtures/unit/memory/linux-proc_meminfo +0 -10
- data/spec/fixtures/unit/memory/openbsd-vmstat +0 -3
- data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +0 -2
- data/spec/fixtures/unit/memory/solaris-prtconf +0 -4
- data/spec/fixtures/unit/memory/solaris-swap_l-multiple +0 -3
- data/spec/fixtures/unit/memory/solaris-swap_l-single +0 -2
- data/spec/fixtures/unit/memory/solaris-vmstat +0 -3
- data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +0 -30
- data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +0 -3
- data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +0 -19
- data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +0 -16
- data/spec/fixtures/unit/processors/os/darwin-system-profiler +0 -287
- data/spec/fixtures/unit/selinux/selinux_sestatus +0 -6
- data/spec/fixtures/unit/selinux/selinux_sestatus2 +0 -9
- data/spec/fixtures/unit/util/dhcp_servers/route +0 -3
- data/spec/fixtures/unit/util/dhcp_servers/route_nogw +0 -1
- data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +0 -1
- data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +0 -1
- data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +0 -5
- data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +0 -7
- data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +0 -6
- data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +0 -10
- data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +0 -12
- data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +0 -26
- data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +0 -10
- data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +0 -6
- data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +0 -40
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +0 -5
- data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +0 -4
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +0 -5
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +0 -4
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +0 -4
- data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +0 -4
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +0 -2
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +0 -9
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +0 -6
- data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +0 -19
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +0 -10
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +0 -8
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0_centos7 +0 -8
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +0 -9
- data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +0 -18
- data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +0 -8
- data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0_centos7 +0 -8
- data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +0 -8
- data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +0 -3
- data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +0 -12
- data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +0 -7
- data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +0 -18
- data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +0 -42
- data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +0 -549
- data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +0 -60
- data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +0 -33
- data/spec/fixtures/unit/util/manufacturer/smartos_smbios +0 -533
- data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +0 -33
- data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +0 -136
- data/spec/fixtures/unit/util/operatingsystem/coreos.txt +0 -9
- data/spec/fixtures/unit/util/operatingsystem/cumuluslinux.txt +0 -8
- data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +0 -12
- data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +0 -7
- data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +0 -9
- data/spec/fixtures/unit/util/partitions/partitions/mount +0 -9
- data/spec/fixtures/unit/util/processor/solaris-i86pc +0 -28
- data/spec/fixtures/unit/util/processor/solaris-sun4u +0 -151
- data/spec/fixtures/unit/util/processor/x86-pentium2 +0 -41
- data/spec/fixtures/unit/util/uptime/kstat_boot_time +0 -1
- data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +0 -1
- data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +0 -1
- data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +0 -1
- data/spec/fixtures/unit/util/virtual/invalid_unicode_dmi_entries +0 -0
- data/spec/fixtures/unit/util/virtual/solaris10_proc_self_status1 +0 -0
- data/spec/fixtures/unit/util/vlans/centos-5-no-vlans +0 -2
- data/spec/fixtures/unit/util/vlans/linux_vlan_config +0 -6
- data/spec/fixtures/unit/util/xendomains/xendomains +0 -4
- data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
- data/spec/fixtures/unit/zfs_version/freebsd_8.2 +0 -14
- data/spec/fixtures/unit/zfs_version/freebsd_9.0 +0 -13
- data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +0 -14
- data/spec/fixtures/unit/zfs_version/solaris_10 +0 -10
- data/spec/fixtures/unit/zfs_version/solaris_11 +0 -12
- data/spec/fixtures/unit/zfs_version/zfs_new +0 -61
- data/spec/fixtures/unit/zfs_version/zfs_old +0 -43
- data/spec/fixtures/unit/zfs_version/zfsonlinux_0.6.1 +0 -13
- data/spec/fixtures/unit/zpool_version/freebsd_8.2 +0 -26
- data/spec/fixtures/unit/zpool_version/freebsd_9.0 +0 -38
- data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +0 -35
- data/spec/fixtures/unit/zpool_version/solaris_10 +0 -31
- data/spec/fixtures/unit/zpool_version/solaris_11 +0 -43
- data/spec/fixtures/unit/zpool_version/zfsonlinux_0.6.1 +0 -48
- data/spec/fixtures/virtual/proc_1_cgroup/in_a_container +0 -9
- data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +0 -8
- data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container_with_systemd_slices +0 -10
- data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +0 -9
- data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +0 -37
- data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +0 -36
- data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +0 -39
- data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +0 -39
- data/spec/integration/facter_spec.rb +0 -39
- data/spec/integration/util/windows/user_spec.rb +0 -59
- data/spec/lib/facter_spec/cpuinfo.rb +0 -15
- data/spec/lib/facter_spec/windows_network.rb +0 -64
- data/spec/puppetlabs_spec/files.rb +0 -57
- data/spec/puppetlabs_spec/fixtures.rb +0 -49
- data/spec/puppetlabs_spec/matchers.rb +0 -87
- data/spec/puppetlabs_spec/verbose.rb +0 -9
- data/spec/puppetlabs_spec_helper.rb +0 -26
- data/spec/schema/validate_facter_schema.rb +0 -18
- data/spec/shared_contexts/platform.rb +0 -55
- data/spec/shared_formats/parses.rb +0 -3
- data/spec/spec_helper.rb +0 -68
- data/spec/unit/application_spec.rb +0 -110
- data/spec/unit/architecture_spec.rb +0 -63
- data/spec/unit/blockdevices_spec.rb +0 -109
- data/spec/unit/core/aggregate_spec.rb +0 -125
- data/spec/unit/core/directed_graph_spec.rb +0 -79
- data/spec/unit/core/execution/base_spec.rb +0 -130
- data/spec/unit/core/execution/posix_spec.rb +0 -96
- data/spec/unit/core/execution/windows_spec.rb +0 -106
- data/spec/unit/core/execution_spec.rb +0 -42
- data/spec/unit/core/logging_spec.rb +0 -223
- data/spec/unit/core/resolvable_spec.rb +0 -81
- data/spec/unit/core/suitable_spec.rb +0 -106
- data/spec/unit/dhcp_servers_spec.rb +0 -212
- data/spec/unit/domain_spec.rb +0 -310
- data/spec/unit/ec2/rest_spec.rb +0 -168
- data/spec/unit/ec2_spec.rb +0 -139
- data/spec/unit/facter_spec.rb +0 -108
- data/spec/unit/filesystems_spec.rb +0 -50
- data/spec/unit/fqdn_spec.rb +0 -16
- data/spec/unit/gce/metadata_spec.rb +0 -49
- data/spec/unit/gce_spec.rb +0 -34
- data/spec/unit/gid_spec.rb +0 -51
- data/spec/unit/hardwareisa_spec.rb +0 -41
- data/spec/unit/hardwaremodel_spec.rb +0 -58
- data/spec/unit/hostname_spec.rb +0 -40
- data/spec/unit/id_spec.rb +0 -29
- data/spec/unit/interfaces_spec.rb +0 -67
- data/spec/unit/ipaddress6_spec.rb +0 -180
- data/spec/unit/ipaddress_spec.rb +0 -114
- data/spec/unit/kernel_spec.rb +0 -24
- data/spec/unit/kernelmajversion_spec.rb +0 -22
- data/spec/unit/kernelrelease_spec.rb +0 -66
- data/spec/unit/kernelversion_spec.rb +0 -32
- data/spec/unit/ldom_spec.rb +0 -84
- data/spec/unit/lsbdistcodename_spec.rb +0 -30
- data/spec/unit/lsbdistdescription_spec.rb +0 -30
- data/spec/unit/lsbdistid_spec.rb +0 -30
- data/spec/unit/lsbdistrelease_spec.rb +0 -30
- data/spec/unit/lsbmajdistrelease_spec.rb +0 -30
- data/spec/unit/lsbminordistrelease_spec.rb +0 -31
- data/spec/unit/lsbrelease_spec.rb +0 -30
- data/spec/unit/macaddress_spec.rb +0 -76
- data/spec/unit/manufacturer_spec.rb +0 -115
- data/spec/unit/memory_spec.rb +0 -470
- data/spec/unit/netmask_spec.rb +0 -106
- data/spec/unit/operatingsystem/base_spec.rb +0 -76
- data/spec/unit/operatingsystem/cumuluslinux_spec.rb +0 -40
- data/spec/unit/operatingsystem/implementation_spec.rb +0 -50
- data/spec/unit/operatingsystem/linux_spec.rb +0 -559
- data/spec/unit/operatingsystem/sunos_spec.rb +0 -143
- data/spec/unit/operatingsystem/vmkernel_spec.rb +0 -13
- data/spec/unit/operatingsystem/windows_spec.rb +0 -77
- data/spec/unit/operatingsystem_spec.rb +0 -17
- data/spec/unit/operatingsystemmajrelease_spec.rb +0 -21
- data/spec/unit/operatingsystemrelease_spec.rb +0 -20
- data/spec/unit/os_spec.rb +0 -131
- data/spec/unit/osfamily_spec.rb +0 -17
- data/spec/unit/partitions_spec.rb +0 -88
- data/spec/unit/physicalprocessorcount_spec.rb +0 -13
- data/spec/unit/processor_spec.rb +0 -38
- data/spec/unit/processors/os_spec.rb +0 -469
- data/spec/unit/processors_spec.rb +0 -203
- data/spec/unit/ps_spec.rb +0 -42
- data/spec/unit/rackspace_spec.rb +0 -40
- data/spec/unit/rubyplatform_spec.rb +0 -7
- data/spec/unit/selinux_spec.rb +0 -119
- data/spec/unit/ssh_spec.rb +0 -77
- data/spec/unit/system32_spec.rb +0 -28
- data/spec/unit/system_uptime_spec.rb +0 -80
- data/spec/unit/uniqueid_spec.rb +0 -27
- data/spec/unit/uptime_spec.rb +0 -110
- data/spec/unit/util/collection_spec.rb +0 -258
- data/spec/unit/util/config_spec.rb +0 -120
- data/spec/unit/util/confine_spec.rb +0 -148
- data/spec/unit/util/dhcp_servers_spec.rb +0 -63
- data/spec/unit/util/directory_loader_spec.rb +0 -102
- data/spec/unit/util/ec2_spec.rb +0 -184
- data/spec/unit/util/fact_spec.rb +0 -142
- data/spec/unit/util/file_read_spec.rb +0 -29
- data/spec/unit/util/formatter_spec.rb +0 -55
- data/spec/unit/util/ip/windows_spec.rb +0 -80
- data/spec/unit/util/ip_spec.rb +0 -487
- data/spec/unit/util/loader_spec.rb +0 -286
- data/spec/unit/util/macaddress_spec.rb +0 -143
- data/spec/unit/util/macosx_spec.rb +0 -114
- data/spec/unit/util/manufacturer_spec.rb +0 -223
- data/spec/unit/util/normalization_spec.rb +0 -113
- data/spec/unit/util/operatingsystem_spec.rb +0 -107
- data/spec/unit/util/parser_spec.rb +0 -233
- data/spec/unit/util/partitions/partitions_spec.rb +0 -67
- data/spec/unit/util/partitions_spec.rb +0 -19
- data/spec/unit/util/posix_spec.rb +0 -11
- data/spec/unit/util/processor_spec.rb +0 -212
- data/spec/unit/util/registry_spec.rb +0 -76
- data/spec/unit/util/resolution_spec.rb +0 -129
- data/spec/unit/util/solaris_zones_spec.rb +0 -127
- data/spec/unit/util/uptime_spec.rb +0 -131
- data/spec/unit/util/values_spec.rb +0 -171
- data/spec/unit/util/virtual_spec.rb +0 -393
- data/spec/unit/util/vlans_spec.rb +0 -42
- data/spec/unit/util/wmi_spec.rb +0 -19
- data/spec/unit/util/xendomains_spec.rb +0 -114
- data/spec/unit/version_spec.rb +0 -42
- data/spec/unit/virtual_spec.rb +0 -585
- data/spec/unit/zfs_version_spec.rb +0 -87
- data/spec/unit/zonename_spec.rb +0 -14
- data/spec/unit/zones_spec.rb +0 -55
- data/spec/unit/zpool_version_spec.rb +0 -80
- data/spec/watchr.rb +0 -125
data/lib/facter/util/vlans.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
# A module to gather vlan facts
|
2
|
-
#
|
3
|
-
module Facter::Util::Vlans
|
4
|
-
def self.get_vlan_config
|
5
|
-
if File.exist?('/proc/net/vlan/config') and File.readable?('/proc/net/vlan/config')
|
6
|
-
File.read('/proc/net/vlan/config')
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.get_vlans
|
11
|
-
if (config = self.get_vlan_config)
|
12
|
-
vlans = []
|
13
|
-
config.each_line do |line|
|
14
|
-
if (match = line.match(/^([0-9A-Za-z]+)\.([0-9]+) /))
|
15
|
-
vlans << match[2] if match[2]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
vlans.join(',') unless vlans.empty?
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
data/lib/facter/util/windows.rb
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
require 'ffi'
|
2
|
-
|
3
|
-
module Facter::Util::Windows::ApiTypes
|
4
|
-
class ::Facter::Util::Windows::FFI
|
5
|
-
# standard Win32 error codes
|
6
|
-
WIN32_FALSE = 0
|
7
|
-
ERROR_SUCCESS = 0
|
8
|
-
|
9
|
-
NULL_HANDLE = 0
|
10
|
-
|
11
|
-
def self.read_win32_bool(ffi_pointer)
|
12
|
-
# BOOL is always a 32-bit integer in Win32
|
13
|
-
# some Win32 APIs return 1 for true, while others are non-0
|
14
|
-
ffi_pointer.read_int32 != WIN32_FALSE
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.read_dword(ffi_pointer)
|
18
|
-
ffi_pointer.read_uint32
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.read_handle(ffi_pointer)
|
22
|
-
ffi_pointer.type_size == 4 ? ffi_pointer.read_uint32 : ffi_pointer.read_uint64
|
23
|
-
end
|
24
|
-
|
25
|
-
def self.read_wide_string(ffi_pointer, char_length, dst_encoding = Encoding::UTF_8)
|
26
|
-
# char_length is number of wide chars (typically excluding NULLs), *not* bytes
|
27
|
-
str = ffi_pointer.get_bytes(0, char_length * 2).force_encoding('UTF-16LE')
|
28
|
-
str.encode(dst_encoding)
|
29
|
-
end
|
30
|
-
|
31
|
-
# @param max_char_length [Integer] Maximum number of wide chars to return (typically excluding NULLs), *not* bytes
|
32
|
-
# @param null_terminator [Symbol] Number of number of null wchar characters, *not* bytes, that determine the end of the string
|
33
|
-
# null_terminator = :single_null, then the terminating sequence is two bytes of zero. This is UNIT16 = 0
|
34
|
-
# null_terminator = :double_null, then the terminating sequence is four bytes of zero. This is UNIT32 = 0
|
35
|
-
def self.read_arbitrary_wide_string_up_to(ffi_pointer, max_char_length = 512, null_terminator = :single_null)
|
36
|
-
if null_terminator != :single_null && null_terminator != :double_null
|
37
|
-
raise _("Unable to read wide strings with %{null_terminator} terminal nulls") % { null_terminator: null_terminator }
|
38
|
-
end
|
39
|
-
|
40
|
-
terminator_width = null_terminator == :single_null ? 1 : 2
|
41
|
-
reader_method = null_terminator == :single_null ? :get_uint16 : :get_uint32
|
42
|
-
|
43
|
-
# Look for a null terminating characters; if found, read up to that null (exclusive)
|
44
|
-
(0...max_char_length - terminator_width).each do |i|
|
45
|
-
return read_wide_string(ffi_pointer, i) if ffi_pointer.send(reader_method, (i * 2)) == 0
|
46
|
-
end
|
47
|
-
|
48
|
-
# String is longer than the max; read just to the max
|
49
|
-
read_wide_string(ffi_pointer, max_char_length)
|
50
|
-
end
|
51
|
-
|
52
|
-
def self.read_win32_local_pointer(ffi_pointer, &block)
|
53
|
-
ptr = nil
|
54
|
-
begin
|
55
|
-
ptr = ffi_pointer.read_pointer
|
56
|
-
yield ptr
|
57
|
-
ensure
|
58
|
-
if ptr && ! ptr.null?
|
59
|
-
if WIN32.LocalFree(ptr.address) != NULL_HANDLE
|
60
|
-
Puppet.debug "LocalFree memory leak"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
# ptr has already had LocalFree called, so nothing to return
|
66
|
-
nil
|
67
|
-
end
|
68
|
-
end
|
69
|
-
# FFI Types
|
70
|
-
# https://github.com/ffi/ffi/wiki/Types
|
71
|
-
|
72
|
-
# Windows - Common Data Types
|
73
|
-
# https://msdn.microsoft.com/en-us/library/cc230309.aspx
|
74
|
-
|
75
|
-
# Windows Data Types
|
76
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx
|
77
|
-
|
78
|
-
FFI.typedef :uint32, :dword
|
79
|
-
FFI.typedef :uintptr_t, :handle
|
80
|
-
|
81
|
-
# buffer_inout is similar to pointer (platform specific), but optimized for buffers
|
82
|
-
FFI.typedef :buffer_inout, :lpwstr
|
83
|
-
|
84
|
-
# pointer in FFI is platform specific
|
85
|
-
# NOTE: for API calls with reserved lpvoid parameters, pass a FFI::Pointer::NULL
|
86
|
-
FFI.typedef :pointer, :lpcvoid
|
87
|
-
FFI.typedef :pointer, :lpvoid
|
88
|
-
FFI.typedef :pointer, :lpdword
|
89
|
-
FFI.typedef :pointer, :pdword
|
90
|
-
FFI.typedef :pointer, :phandle
|
91
|
-
FFI.typedef :pointer, :pbool
|
92
|
-
|
93
|
-
# any time LONG / ULONG is in a win32 API definition DO NOT USE platform specific width
|
94
|
-
# which is what FFI uses by default
|
95
|
-
# instead create new aliases for these very special cases
|
96
|
-
# NOTE: not a good idea to redefine FFI :ulong since other typedefs may rely on it
|
97
|
-
FFI.typedef :uint32, :win32_ulong
|
98
|
-
FFI.typedef :int32, :win32_long
|
99
|
-
# FFI bool can be only 1 byte at times,
|
100
|
-
# Win32 BOOL is a signed int, and is always 4 bytes, even on x64
|
101
|
-
# https://blogs.msdn.com/b/oldnewthing/archive/2011/03/28/10146459.aspx
|
102
|
-
FFI.typedef :int32, :win32_bool
|
103
|
-
|
104
|
-
# Same as a LONG, a 32-bit signed integer
|
105
|
-
FFI.typedef :int32, :hresult
|
106
|
-
|
107
|
-
# NOTE: FFI already defines (u)short as a 16-bit (un)signed like this:
|
108
|
-
# FFI.typedef :uint16, :ushort
|
109
|
-
# FFI.typedef :int16, :short
|
110
|
-
|
111
|
-
# 8 bits per byte
|
112
|
-
FFI.typedef :uchar, :byte
|
113
|
-
FFI.typedef :uint16, :wchar
|
114
|
-
|
115
|
-
module ::Facter::Util::Windows::FFI::WIN32
|
116
|
-
extend ::FFI::Library
|
117
|
-
|
118
|
-
ffi_convention :stdcall
|
119
|
-
|
120
|
-
private
|
121
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa366730(v=vs.85).aspx
|
122
|
-
# HLOCAL WINAPI LocalFree(
|
123
|
-
# _In_ HLOCAL hMem
|
124
|
-
# );
|
125
|
-
ffi_lib :kernel32
|
126
|
-
attach_function :LocalFree, [:handle], :handle
|
127
|
-
|
128
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms724211(v=vs.85).aspx
|
129
|
-
# BOOL WINAPI CloseHandle(
|
130
|
-
# _In_ HANDLE hObject
|
131
|
-
# );
|
132
|
-
ffi_lib :kernel32
|
133
|
-
attach_function :CloseHandle, [:handle], :win32_bool
|
134
|
-
end
|
135
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'facter/util/windows'
|
2
|
-
require 'ffi'
|
3
|
-
|
4
|
-
module Facter::Util::Windows::Dir
|
5
|
-
extend FFI::Library
|
6
|
-
|
7
|
-
COMMON_APPDATA = 0x0023
|
8
|
-
S_OK = 0x0
|
9
|
-
MAX_PATH = 260;
|
10
|
-
|
11
|
-
def get_common_appdata
|
12
|
-
common_appdata = ''
|
13
|
-
|
14
|
-
# this pointer actually points to a :lpwstr (pointer) since we're letting Windows allocate for us
|
15
|
-
FFI::MemoryPointer.new(:pointer, ((MAX_PATH + 1) * 2)) do |buffer_ptr|
|
16
|
-
# hwndOwner, nFolder, hToken, dwFlags, pszPath
|
17
|
-
if SHGetFolderPathW(0, COMMON_APPDATA, 0, 0, buffer_ptr) != S_OK
|
18
|
-
raise Facter::Util::Windows::Error.new("Could not find COMMON_APPDATA path")
|
19
|
-
end
|
20
|
-
|
21
|
-
common_appdata = Facter::Util::Windows::FFI.read_arbitrary_wide_string_up_to(buffer_ptr, MAX_PATH + 1)
|
22
|
-
end
|
23
|
-
|
24
|
-
common_appdata
|
25
|
-
end
|
26
|
-
module_function :get_common_appdata
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
ffi_convention :stdcall
|
31
|
-
|
32
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/bb762181(v=vs.85).aspx
|
33
|
-
# HRESULT SHGetFolderPath(
|
34
|
-
# _In_ HWND hwndOwner,
|
35
|
-
# _In_ int nFolder,
|
36
|
-
# _In_ HANDLE hToken,
|
37
|
-
# _In_ DWORD dwFlags,
|
38
|
-
# _Out_ LPTSTR pszPath
|
39
|
-
# );
|
40
|
-
ffi_lib :shell32
|
41
|
-
attach_function :SHGetFolderPathW,
|
42
|
-
[:handle, :int32, :handle, :dword, :lpwstr], :hresult
|
43
|
-
end
|
@@ -1,87 +0,0 @@
|
|
1
|
-
require 'facter/util/windows'
|
2
|
-
|
3
|
-
# represents an error resulting from a Win32 error code
|
4
|
-
class Facter::Util::Windows::Error < RuntimeError
|
5
|
-
require 'ffi'
|
6
|
-
extend FFI::Library
|
7
|
-
|
8
|
-
attr_reader :code
|
9
|
-
attr_reader :original
|
10
|
-
|
11
|
-
# NOTE: FFI.errno only works properly when prior Win32 calls have been made
|
12
|
-
# through FFI bindings. Calls made through Win32API do not have their error
|
13
|
-
# codes captured by FFI.errno
|
14
|
-
def initialize(message, code = FFI.errno, original = nil)
|
15
|
-
@original = original
|
16
|
-
super(message + ": #{self.class.format_error_code(code)}")
|
17
|
-
|
18
|
-
@code = code
|
19
|
-
end
|
20
|
-
|
21
|
-
# Helper method that wraps FormatMessage that returns a human readable string.
|
22
|
-
def self.format_error_code(code)
|
23
|
-
# specifying 0 will look for LANGID in the following order
|
24
|
-
# 1.Language neutral
|
25
|
-
# 2.Thread LANGID, based on the thread's locale value
|
26
|
-
# 3.User default LANGID, based on the user's default locale value
|
27
|
-
# 4.System default LANGID, based on the system default locale value
|
28
|
-
# 5.US English
|
29
|
-
dwLanguageId = 0
|
30
|
-
flags = FORMAT_MESSAGE_ALLOCATE_BUFFER |
|
31
|
-
FORMAT_MESSAGE_FROM_SYSTEM |
|
32
|
-
FORMAT_MESSAGE_ARGUMENT_ARRAY |
|
33
|
-
FORMAT_MESSAGE_IGNORE_INSERTS |
|
34
|
-
FORMAT_MESSAGE_MAX_WIDTH_MASK
|
35
|
-
error_string = ''
|
36
|
-
|
37
|
-
# this pointer actually points to a :lpwstr (pointer) since we're letting Windows allocate for us
|
38
|
-
FFI::MemoryPointer.new(:pointer, 1) do |buffer_ptr|
|
39
|
-
length = FormatMessageW(flags, FFI::Pointer::NULL, code, dwLanguageId,
|
40
|
-
buffer_ptr, 0, FFI::Pointer::NULL)
|
41
|
-
|
42
|
-
if length == Facter::Util::Windows::FFI::WIN32_FALSE
|
43
|
-
# can't raise same error type here or potentially recurse infinitely
|
44
|
-
raise Facter::Error.new("FormatMessageW could not format code #{code}")
|
45
|
-
end
|
46
|
-
|
47
|
-
# returns an FFI::Pointer with autorelease set to false, which is what we want
|
48
|
-
Facter::Util::Windows::FFI.read_win32_local_pointer(buffer_ptr) do |wide_string_ptr|
|
49
|
-
if wide_string_ptr.null?
|
50
|
-
raise Facter::Error.new("FormatMessageW failed to allocate buffer for code #{code}")
|
51
|
-
end
|
52
|
-
|
53
|
-
error_string = Facter::Util::Windows::FFI.read_wide_string(wide_string_ptr, length)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
error_string
|
58
|
-
end
|
59
|
-
|
60
|
-
ERROR_FILE_NOT_FOUND = 2
|
61
|
-
ERROR_ACCESS_DENIED = 5
|
62
|
-
|
63
|
-
FORMAT_MESSAGE_ALLOCATE_BUFFER = 0x00000100
|
64
|
-
FORMAT_MESSAGE_IGNORE_INSERTS = 0x00000200
|
65
|
-
FORMAT_MESSAGE_FROM_SYSTEM = 0x00001000
|
66
|
-
FORMAT_MESSAGE_ARGUMENT_ARRAY = 0x00002000
|
67
|
-
FORMAT_MESSAGE_MAX_WIDTH_MASK = 0x000000FF
|
68
|
-
|
69
|
-
private
|
70
|
-
|
71
|
-
ffi_convention :stdcall
|
72
|
-
|
73
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms679351(v=vs.85).aspx
|
74
|
-
# DWORD WINAPI FormatMessage(
|
75
|
-
# _In_ DWORD dwFlags,
|
76
|
-
# _In_opt_ LPCVOID lpSource,
|
77
|
-
# _In_ DWORD dwMessageId,
|
78
|
-
# _In_ DWORD dwLanguageId,
|
79
|
-
# _Out_ LPTSTR lpBuffer,
|
80
|
-
# _In_ DWORD nSize,
|
81
|
-
# _In_opt_ va_list *Arguments
|
82
|
-
# );
|
83
|
-
# NOTE: since we're not preallocating the buffer, use a :pointer for lpBuffer
|
84
|
-
ffi_lib :kernel32
|
85
|
-
attach_function :FormatMessageW,
|
86
|
-
[:dword, :lpcvoid, :dword, :dword, :pointer, :dword, :pointer], :dword
|
87
|
-
end
|
@@ -1,294 +0,0 @@
|
|
1
|
-
require 'facter/util/windows'
|
2
|
-
require 'ffi'
|
3
|
-
|
4
|
-
module Facter::Util::Windows::Process
|
5
|
-
extend FFI::Library
|
6
|
-
|
7
|
-
def get_current_process
|
8
|
-
# this pseudo-handle does not require closing per MSDN docs
|
9
|
-
GetCurrentProcess()
|
10
|
-
end
|
11
|
-
module_function :get_current_process
|
12
|
-
|
13
|
-
def open_process_token(handle, desired_access, &block)
|
14
|
-
token_handle = nil
|
15
|
-
begin
|
16
|
-
FFI::MemoryPointer.new(:handle, 1) do |token_handle_ptr|
|
17
|
-
result = OpenProcessToken(handle, desired_access, token_handle_ptr)
|
18
|
-
if result == Facter::Util::Windows::FFI::WIN32_FALSE
|
19
|
-
raise Facter::Util::Windows::Error.new(
|
20
|
-
"OpenProcessToken(#{handle}, #{desired_access.to_s(8)}, #{token_handle_ptr})")
|
21
|
-
end
|
22
|
-
|
23
|
-
yield token_handle = Facter::Util::Windows::FFI.read_handle(token_handle_ptr)
|
24
|
-
end
|
25
|
-
|
26
|
-
token_handle
|
27
|
-
ensure
|
28
|
-
Facter::Util::Windows::FFI::WIN32.CloseHandle(token_handle) if token_handle
|
29
|
-
end
|
30
|
-
|
31
|
-
# token_handle has had CloseHandle called against it, so nothing to return
|
32
|
-
nil
|
33
|
-
end
|
34
|
-
module_function :open_process_token
|
35
|
-
|
36
|
-
def get_token_information(token_handle, token_information, &block)
|
37
|
-
# to determine buffer size
|
38
|
-
FFI::MemoryPointer.new(:dword, 1) do |return_length_ptr|
|
39
|
-
result = GetTokenInformation(token_handle, token_information, nil, 0, return_length_ptr)
|
40
|
-
return_length = Facter::Util::Windows::FFI.read_dword(return_length_ptr)
|
41
|
-
|
42
|
-
if return_length <= 0
|
43
|
-
raise Facter::Util::Windows::Error.new(
|
44
|
-
"GetTokenInformation(#{token_handle}, #{token_information}, nil, 0, #{return_length_ptr})")
|
45
|
-
end
|
46
|
-
|
47
|
-
# re-call API with properly sized buffer for all results
|
48
|
-
FFI::MemoryPointer.new(return_length) do |token_information_buf|
|
49
|
-
result = GetTokenInformation(token_handle, token_information,
|
50
|
-
token_information_buf, return_length, return_length_ptr)
|
51
|
-
|
52
|
-
if result == Facter::Util::Windows::FFI::WIN32_FALSE
|
53
|
-
raise Facter::Util::Windows::Error.new(
|
54
|
-
"GetTokenInformation(#{token_handle}, #{token_information}, #{token_information_buf}, " +
|
55
|
-
"#{return_length}, #{return_length_ptr})")
|
56
|
-
end
|
57
|
-
|
58
|
-
yield token_information_buf
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# GetTokenInformation buffer has been cleaned up by this point, nothing to return
|
63
|
-
nil
|
64
|
-
end
|
65
|
-
module_function :get_token_information
|
66
|
-
|
67
|
-
def parse_token_information_as_token_elevation(token_information_buf)
|
68
|
-
TOKEN_ELEVATION.new(token_information_buf)
|
69
|
-
end
|
70
|
-
module_function :parse_token_information_as_token_elevation
|
71
|
-
|
72
|
-
TOKEN_QUERY = 0x0008
|
73
|
-
# Returns whether or not the owner of the current process is running
|
74
|
-
# with elevated security privileges.
|
75
|
-
#
|
76
|
-
# Only supported on Windows Vista or later.
|
77
|
-
#
|
78
|
-
def elevated_security?
|
79
|
-
# default / pre-Vista
|
80
|
-
elevated = false
|
81
|
-
handle = nil
|
82
|
-
|
83
|
-
begin
|
84
|
-
handle = get_current_process
|
85
|
-
open_process_token(handle, TOKEN_QUERY) do |token_handle|
|
86
|
-
get_token_information(token_handle, :TokenElevation) do |token_info|
|
87
|
-
token_elevation = parse_token_information_as_token_elevation(token_info)
|
88
|
-
# TokenIsElevated member of the TOKEN_ELEVATION struct
|
89
|
-
elevated = token_elevation[:TokenIsElevated] != 0
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
elevated
|
94
|
-
rescue Facter::Util::Windows::Error => e
|
95
|
-
raise e if e.code != ERROR_NO_SUCH_PRIVILEGE
|
96
|
-
ensure
|
97
|
-
Facter::Util::Windows::FFI::WIN32.CloseHandle(handle) if handle
|
98
|
-
end
|
99
|
-
end
|
100
|
-
module_function :elevated_security?
|
101
|
-
|
102
|
-
STATUS_SUCCESS = 0
|
103
|
-
|
104
|
-
def os_version(&block)
|
105
|
-
FFI::MemoryPointer.new(OSVERSIONINFOEX.size) do |ver_ptr|
|
106
|
-
ver = OSVERSIONINFOEX.new(ver_ptr)
|
107
|
-
ver[:dwOSVersionInfoSize] = OSVERSIONINFOEX.size
|
108
|
-
|
109
|
-
result = RtlGetVersion(ver_ptr)
|
110
|
-
|
111
|
-
if result != STATUS_SUCCESS
|
112
|
-
raise RuntimeError, 'Calling Windows RtlGetVersion failed'
|
113
|
-
end
|
114
|
-
|
115
|
-
yield ver
|
116
|
-
end
|
117
|
-
|
118
|
-
# ver_ptr has already had free called, so nothing to return
|
119
|
-
nil
|
120
|
-
end
|
121
|
-
module_function :os_version
|
122
|
-
|
123
|
-
def windows_major_version
|
124
|
-
ver = 0
|
125
|
-
|
126
|
-
self.os_version do |version|
|
127
|
-
ver = version[:dwMajorVersion]
|
128
|
-
end
|
129
|
-
|
130
|
-
ver
|
131
|
-
end
|
132
|
-
module_function :windows_major_version
|
133
|
-
|
134
|
-
def os_version_string
|
135
|
-
ver = ''
|
136
|
-
self.os_version do |version|
|
137
|
-
ver = "#{version[:dwMajorVersion]}.#{version[:dwMinorVersion]}.#{version[:dwBuildNumber]}"
|
138
|
-
end
|
139
|
-
|
140
|
-
ver
|
141
|
-
end
|
142
|
-
module_function :os_version_string
|
143
|
-
|
144
|
-
|
145
|
-
SM_SERVERR2 = 89
|
146
|
-
|
147
|
-
def is_2003_r2?
|
148
|
-
# Peculiar API from user32 - the docs for SM_SERVER2 indicate
|
149
|
-
# The build number if the system is Windows Server 2003 R2; otherwise, 0.
|
150
|
-
GetSystemMetrics(SM_SERVERR2) != 0
|
151
|
-
end
|
152
|
-
module_function :is_2003_r2?
|
153
|
-
|
154
|
-
def supports_elevated_security?
|
155
|
-
windows_major_version >= 6
|
156
|
-
end
|
157
|
-
module_function :supports_elevated_security?
|
158
|
-
|
159
|
-
private
|
160
|
-
|
161
|
-
ffi_convention :stdcall
|
162
|
-
|
163
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/ms683179(v=vs.85).aspx
|
164
|
-
# HANDLE WINAPI GetCurrentProcess(void);
|
165
|
-
ffi_lib :kernel32
|
166
|
-
attach_function :GetCurrentProcess, [], :handle
|
167
|
-
|
168
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379295(v=vs.85).aspx
|
169
|
-
# BOOL WINAPI OpenProcessToken(
|
170
|
-
# _In_ HANDLE ProcessHandle,
|
171
|
-
# _In_ DWORD DesiredAccess,
|
172
|
-
# _Out_ PHANDLE TokenHandle
|
173
|
-
# );
|
174
|
-
ffi_lib :advapi32
|
175
|
-
attach_function :OpenProcessToken,
|
176
|
-
[:handle, :dword, :phandle], :win32_bool
|
177
|
-
|
178
|
-
public
|
179
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa379626(v=vs.85).aspx
|
180
|
-
TOKEN_INFORMATION_CLASS = enum(
|
181
|
-
:TokenUser, 1,
|
182
|
-
:TokenGroups,
|
183
|
-
:TokenPrivileges,
|
184
|
-
:TokenOwner,
|
185
|
-
:TokenPrimaryGroup,
|
186
|
-
:TokenDefaultDacl,
|
187
|
-
:TokenSource,
|
188
|
-
:TokenType,
|
189
|
-
:TokenImpersonationLevel,
|
190
|
-
:TokenStatistics,
|
191
|
-
:TokenRestrictedSids,
|
192
|
-
:TokenSessionId,
|
193
|
-
:TokenGroupsAndPrivileges,
|
194
|
-
:TokenSessionReference,
|
195
|
-
:TokenSandBoxInert,
|
196
|
-
:TokenAuditPolicy,
|
197
|
-
:TokenOrigin,
|
198
|
-
:TokenElevationType,
|
199
|
-
:TokenLinkedToken,
|
200
|
-
:TokenElevation,
|
201
|
-
:TokenHasRestrictions,
|
202
|
-
:TokenAccessInformation,
|
203
|
-
:TokenVirtualizationAllowed,
|
204
|
-
:TokenVirtualizationEnabled,
|
205
|
-
:TokenIntegrityLevel,
|
206
|
-
:TokenUIAccess,
|
207
|
-
:TokenMandatoryPolicy,
|
208
|
-
:TokenLogonSid,
|
209
|
-
:TokenIsAppContainer,
|
210
|
-
:TokenCapabilities,
|
211
|
-
:TokenAppContainerSid,
|
212
|
-
:TokenAppContainerNumber,
|
213
|
-
:TokenUserClaimAttributes,
|
214
|
-
:TokenDeviceClaimAttributes,
|
215
|
-
:TokenRestrictedUserClaimAttributes,
|
216
|
-
:TokenRestrictedDeviceClaimAttributes,
|
217
|
-
:TokenDeviceGroups,
|
218
|
-
:TokenRestrictedDeviceGroups,
|
219
|
-
:TokenSecurityAttributes,
|
220
|
-
:TokenIsRestricted,
|
221
|
-
:MaxTokenInfoClass
|
222
|
-
)
|
223
|
-
|
224
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/bb530717(v=vs.85).aspx
|
225
|
-
# typedef struct _TOKEN_ELEVATION {
|
226
|
-
# DWORD TokenIsElevated;
|
227
|
-
# } TOKEN_ELEVATION, *PTOKEN_ELEVATION;
|
228
|
-
class TOKEN_ELEVATION < FFI::Struct
|
229
|
-
layout :TokenIsElevated, :dword
|
230
|
-
end
|
231
|
-
|
232
|
-
private
|
233
|
-
|
234
|
-
# https://msdn.microsoft.com/en-us/library/windows/desktop/aa446671(v=vs.85).aspx
|
235
|
-
# BOOL WINAPI GetTokenInformation(
|
236
|
-
# _In_ HANDLE TokenHandle,
|
237
|
-
# _In_ TOKEN_INFORMATION_CLASS TokenInformationClass,
|
238
|
-
# _Out_opt_ LPVOID TokenInformation,
|
239
|
-
# _In_ DWORD TokenInformationLength,
|
240
|
-
# _Out_ PDWORD ReturnLength
|
241
|
-
# );
|
242
|
-
ffi_lib :advapi32
|
243
|
-
attach_function :GetTokenInformation,
|
244
|
-
[:handle, TOKEN_INFORMATION_CLASS, :lpvoid, :dword, :pdword ], :win32_bool
|
245
|
-
|
246
|
-
public
|
247
|
-
|
248
|
-
# https://msdn.microsoft.com/en-us/library/windows/hardware/ff563620(v=vs.85).aspx
|
249
|
-
# typedef struct _OSVERSIONINFOEXW {
|
250
|
-
# ULONG dwOSVersionInfoSize;
|
251
|
-
# ULONG dwMajorVersion;
|
252
|
-
# ULONG dwMinorVersion;
|
253
|
-
# ULONG dwBuildNumber;
|
254
|
-
# ULONG dwPlatformId;
|
255
|
-
# WCHAR szCSDVersion[128];
|
256
|
-
# USHORT wServicePackMajor;
|
257
|
-
# USHORT wServicePackMinor;
|
258
|
-
# USHORT wSuiteMask;
|
259
|
-
# UCHAR wProductType;
|
260
|
-
# UCHAR wReserved;
|
261
|
-
# } RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
|
262
|
-
class OSVERSIONINFOEX < FFI::Struct
|
263
|
-
layout(
|
264
|
-
:dwOSVersionInfoSize, :win32_ulong,
|
265
|
-
:dwMajorVersion, :win32_ulong,
|
266
|
-
:dwMinorVersion, :win32_ulong,
|
267
|
-
:dwBuildNumber, :win32_ulong,
|
268
|
-
:dwPlatformId, :win32_ulong,
|
269
|
-
:szCSDVersion, [:wchar, 128],
|
270
|
-
:wServicePackMajor, :ushort,
|
271
|
-
:wServicePackMinor, :ushort,
|
272
|
-
:wSuiteMask, :ushort,
|
273
|
-
:wProductType, :uchar,
|
274
|
-
:wReserved, :uchar,
|
275
|
-
)
|
276
|
-
end
|
277
|
-
|
278
|
-
private
|
279
|
-
|
280
|
-
# NTSTATUS -> :int32 (defined in winerror.h / ntstatus.h)
|
281
|
-
# https://msdn.microsoft.com/en-us/library/windows/hardware/ff561910(v=vs.85).aspx
|
282
|
-
# NTSTATUS RtlGetVersion(
|
283
|
-
# _Out_ PRTL_OSVERSIONINFOW lpVersionInformation
|
284
|
-
# );
|
285
|
-
ffi_lib [FFI::CURRENT_PROCESS, :ntdll]
|
286
|
-
attach_function :RtlGetVersion, [:pointer], :int32
|
287
|
-
|
288
|
-
# C++ int is a signed 32-bit integer
|
289
|
-
# int WINAPI GetSystemMetrics(
|
290
|
-
# _In_ int nIndex
|
291
|
-
# );
|
292
|
-
ffi_lib :user32
|
293
|
-
attach_function :GetSystemMetrics, [:int32], :int32
|
294
|
-
end
|