facter 2.0.1.rc1-universal-darwin
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.
Potentially problematic release.
This version of facter might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/COMMITTERS.md +194 -0
- data/CONTRIBUTING.md +65 -0
- data/Gemfile +43 -0
- data/LICENSE +15 -0
- data/README.md +33 -0
- data/Rakefile +79 -0
- data/bin/facter +16 -0
- data/etc/facter.conf +5 -0
- data/ext/build_defaults.yaml +24 -0
- data/ext/debian/changelog.erb +59 -0
- data/ext/debian/compat +1 -0
- data/ext/debian/control +14 -0
- data/ext/debian/copyright +19 -0
- data/ext/debian/docs +1 -0
- data/ext/debian/lintian-overrides +0 -0
- data/ext/debian/rules +10 -0
- data/ext/debian/source/format +1 -0
- data/ext/facter-diff +74 -0
- data/ext/ips/facter.p5m.erb +10 -0
- data/ext/ips/rules +7 -0
- data/ext/ips/transforms +18 -0
- data/ext/osx/file_mapping.yaml +27 -0
- data/ext/osx/preflight.erb +33 -0
- data/ext/osx/prototype.plist.erb +38 -0
- data/ext/project_data.yaml +33 -0
- data/ext/redhat/facter.spec.erb +220 -0
- data/ext/solaris/pkginfo +7 -0
- data/install.rb +380 -0
- data/lib/facter.rb +262 -0
- data/lib/facter/Cfkey.rb +42 -0
- data/lib/facter/application.rb +204 -0
- data/lib/facter/architecture.rb +50 -0
- data/lib/facter/augeasversion.rb +28 -0
- data/lib/facter/blockdevices.rb +105 -0
- data/lib/facter/core/aggregate.rb +220 -0
- data/lib/facter/core/directed_graph.rb +46 -0
- data/lib/facter/core/execution.rb +100 -0
- data/lib/facter/core/execution/base.rb +73 -0
- data/lib/facter/core/execution/posix.rb +50 -0
- data/lib/facter/core/execution/windows.rb +57 -0
- data/lib/facter/core/logging.rb +169 -0
- data/lib/facter/core/resolvable.rb +94 -0
- data/lib/facter/core/suitable.rb +117 -0
- data/lib/facter/domain.rb +99 -0
- data/lib/facter/ec2.rb +37 -0
- data/lib/facter/facterversion.rb +15 -0
- data/lib/facter/filesystems.rb +38 -0
- data/lib/facter/fqdn.rb +22 -0
- data/lib/facter/hardwareisa.rb +20 -0
- data/lib/facter/hardwaremodel.rb +67 -0
- data/lib/facter/hostname.rb +33 -0
- data/lib/facter/id.rb +21 -0
- data/lib/facter/interfaces.rb +46 -0
- data/lib/facter/ipaddress.rb +171 -0
- data/lib/facter/ipaddress6.rb +82 -0
- data/lib/facter/iphostnumber.rb +29 -0
- data/lib/facter/kernel.rb +22 -0
- data/lib/facter/kernelmajversion.rb +15 -0
- data/lib/facter/kernelrelease.rb +42 -0
- data/lib/facter/kernelversion.rb +22 -0
- data/lib/facter/ldom.rb +47 -0
- data/lib/facter/lsbdistcodename.rb +18 -0
- data/lib/facter/lsbdistdescription.rb +21 -0
- data/lib/facter/lsbdistid.rb +18 -0
- data/lib/facter/lsbdistrelease.rb +18 -0
- data/lib/facter/lsbmajdistrelease.rb +27 -0
- data/lib/facter/lsbrelease.rb +18 -0
- data/lib/facter/macaddress.rb +97 -0
- data/lib/facter/macosx.rb +56 -0
- data/lib/facter/manufacturer.rb +68 -0
- data/lib/facter/memory.rb +162 -0
- data/lib/facter/netmask.rb +42 -0
- data/lib/facter/network.rb +20 -0
- data/lib/facter/operatingsystem.rb +121 -0
- data/lib/facter/operatingsystemmajrelease.rb +33 -0
- data/lib/facter/operatingsystemrelease.rb +226 -0
- data/lib/facter/osfamily.rb +35 -0
- data/lib/facter/path.rb +14 -0
- data/lib/facter/physicalprocessorcount.rb +84 -0
- data/lib/facter/processor.rb +183 -0
- data/lib/facter/ps.rb +30 -0
- data/lib/facter/puppetversion.rb +20 -0
- data/lib/facter/rubysitedir.rb +12 -0
- data/lib/facter/rubyversion.rb +12 -0
- data/lib/facter/selinux.rb +99 -0
- data/lib/facter/ssh.rb +72 -0
- data/lib/facter/timezone.rb +14 -0
- data/lib/facter/uniqueid.rb +4 -0
- data/lib/facter/uptime.rb +34 -0
- data/lib/facter/uptime_days.rb +15 -0
- data/lib/facter/uptime_hours.rb +15 -0
- data/lib/facter/uptime_seconds.rb +24 -0
- data/lib/facter/util/architecture.rb +19 -0
- data/lib/facter/util/collection.rb +161 -0
- data/lib/facter/util/composite_loader.rb +12 -0
- data/lib/facter/util/config.rb +61 -0
- data/lib/facter/util/confine.rb +66 -0
- data/lib/facter/util/directory_loader.rb +83 -0
- data/lib/facter/util/ec2.rb +101 -0
- data/lib/facter/util/fact.rb +204 -0
- data/lib/facter/util/file_read.rb +37 -0
- data/lib/facter/util/formatter.rb +38 -0
- data/lib/facter/util/ip.rb +285 -0
- data/lib/facter/util/ip/windows.rb +215 -0
- data/lib/facter/util/loader.rb +146 -0
- data/lib/facter/util/macaddress.rb +43 -0
- data/lib/facter/util/macosx.rb +73 -0
- data/lib/facter/util/manufacturer.rb +104 -0
- data/lib/facter/util/memory.rb +228 -0
- data/lib/facter/util/monkey_patches.rb +8 -0
- data/lib/facter/util/netmask.rb +40 -0
- data/lib/facter/util/normalization.rb +94 -0
- data/lib/facter/util/nothing_loader.rb +12 -0
- data/lib/facter/util/parser.rb +158 -0
- data/lib/facter/util/plist.rb +24 -0
- data/lib/facter/util/plist/generator.rb +228 -0
- data/lib/facter/util/plist/parser.rb +226 -0
- data/lib/facter/util/processor.rb +291 -0
- data/lib/facter/util/registry.rb +11 -0
- data/lib/facter/util/resolution.rb +152 -0
- data/lib/facter/util/solaris_zones.rb +158 -0
- data/lib/facter/util/unix_root.rb +5 -0
- data/lib/facter/util/uptime.rb +81 -0
- data/lib/facter/util/values.rb +80 -0
- data/lib/facter/util/virtual.rb +151 -0
- data/lib/facter/util/vlans.rb +24 -0
- data/lib/facter/util/windows_root.rb +37 -0
- data/lib/facter/util/wmi.rb +16 -0
- data/lib/facter/util/xendomains.rb +10 -0
- data/lib/facter/version.rb +86 -0
- data/lib/facter/virtual.rb +262 -0
- data/lib/facter/vlans.rb +17 -0
- data/lib/facter/xendomains.rb +20 -0
- data/lib/facter/zfs_version.rb +10 -0
- data/lib/facter/zonename.rb +6 -0
- data/lib/facter/zones.rb +17 -0
- data/lib/facter/zpool_version.rb +10 -0
- data/spec/fixtures/cpuinfo/amd64dual +57 -0
- data/spec/fixtures/cpuinfo/amd64quad +79 -0
- data/spec/fixtures/cpuinfo/amd64solo +23 -0
- data/spec/fixtures/cpuinfo/amd64tri +86 -0
- data/spec/fixtures/cpuinfo/amd64twentyfour +600 -0
- data/spec/fixtures/cpuinfo/bbg3-armel +12 -0
- data/spec/fixtures/cpuinfo/beaglexm-armel +12 -0
- data/spec/fixtures/cpuinfo/panda-armel +17 -0
- data/spec/fixtures/cpuinfo/ppc64 +19 -0
- data/spec/fixtures/cpuinfo/sparc +10 -0
- data/spec/fixtures/hpux/machinfo/hppa-rp4440 +26 -0
- data/spec/fixtures/hpux/machinfo/ia64-rx2620 +49 -0
- data/spec/fixtures/hpux/machinfo/ia64-rx6600 +26 -0
- data/spec/fixtures/hpux/machinfo/ia64-rx8640 +53 -0
- data/spec/fixtures/hpux/machinfo/superdome-server-SD32B +53 -0
- data/spec/fixtures/hpux/machinfo/superdome2-16s +31 -0
- data/spec/fixtures/hpux/sched.models +174 -0
- data/spec/fixtures/hpux/unistd.h +1534 -0
- data/spec/fixtures/ifconfig/bsd_ifconfig_all_with_multiple_interfaces +18 -0
- data/spec/fixtures/ifconfig/centos_5_5 +17 -0
- data/spec/fixtures/ifconfig/centos_5_5_eth0 +8 -0
- data/spec/fixtures/ifconfig/darwin_10_3_0 +26 -0
- data/spec/fixtures/ifconfig/darwin_10_3_0_en0 +6 -0
- data/spec/fixtures/ifconfig/darwin_10_6_4 +28 -0
- data/spec/fixtures/ifconfig/darwin_10_6_4_en1 +6 -0
- data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack +8 -0
- data/spec/fixtures/ifconfig/darwin_10_6_6_dualstack_en1 +7 -0
- data/spec/fixtures/ifconfig/darwin_9_8_0 +26 -0
- data/spec/fixtures/ifconfig/darwin_9_8_0_en0 +6 -0
- data/spec/fixtures/ifconfig/darwin_ifconfig_all_with_multiple_interfaces +23 -0
- data/spec/fixtures/ifconfig/fedora_10 +36 -0
- data/spec/fixtures/ifconfig/fedora_10_eth0 +9 -0
- data/spec/fixtures/ifconfig/fedora_13 +18 -0
- data/spec/fixtures/ifconfig/fedora_13_eth0 +9 -0
- data/spec/fixtures/ifconfig/fedora_8 +38 -0
- data/spec/fixtures/ifconfig/fedora_8_eth0 +9 -0
- data/spec/fixtures/ifconfig/freebsd_6_0 +12 -0
- data/spec/fixtures/ifconfig/ifconfig_net_tools_1.60.txt +19 -0
- data/spec/fixtures/ifconfig/ifconfig_ubuntu_1204.txt +16 -0
- data/spec/fixtures/ifconfig/linux_ifconfig_all_with_multiple_interfaces +19 -0
- data/spec/fixtures/ifconfig/linux_ifconfig_no_addr +19 -0
- data/spec/fixtures/ifconfig/linux_ifconfig_no_mac +8 -0
- data/spec/fixtures/ifconfig/linux_ifconfig_venet +24 -0
- data/spec/fixtures/ifconfig/open_solaris_10 +12 -0
- data/spec/fixtures/ifconfig/open_solaris_b132 +20 -0
- data/spec/fixtures/ifconfig/sunos_ifconfig_all_with_multiple_interfaces +10 -0
- data/spec/fixtures/ifconfig/ubuntu_7_04 +38 -0
- data/spec/fixtures/ifconfig/ubuntu_7_04_eth0 +9 -0
- data/spec/fixtures/ldom/ldom_v1 +6 -0
- data/spec/fixtures/netstat/centos_5_5 +5 -0
- data/spec/fixtures/netstat/darwin_10_3_0 +35 -0
- data/spec/fixtures/netstat/darwin_10_6_4 +29 -0
- data/spec/fixtures/netstat/darwin_10_6_6_dualstack +34 -0
- data/spec/fixtures/netstat/darwin_9_8_0 +28 -0
- data/spec/fixtures/netstat/fedora_10 +7 -0
- data/spec/fixtures/netstat/open_solaris_10 +16 -0
- data/spec/fixtures/netstat/open_solaris_b132 +17 -0
- data/spec/fixtures/netstat/ubuntu_7_04 +7 -0
- data/spec/fixtures/processorcount/solaris-psrinfo +24 -0
- data/spec/fixtures/processorcount/solaris-sparc-kstat-cpu-info +1216 -0
- data/spec/fixtures/processorcount/solaris-x86_64-kstat-cpu-info +225 -0
- data/spec/fixtures/unit/filesystems/linux +28 -0
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt +19 -0
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.em1 +10 -0
- data/spec/fixtures/unit/interfaces/ifconfig_net_tools_1.60.txt.lo +8 -0
- data/spec/fixtures/unit/ipaddress/ifconfig_multiple_127_addresses.txt +20 -0
- data/spec/fixtures/unit/ipaddress/ifconfig_net_tools_1.60.txt +19 -0
- data/spec/fixtures/unit/ipaddress/ifconfig_non_english_locale.txt +18 -0
- data/spec/fixtures/unit/ipaddress/ifconfig_ubuntu_1204.txt +16 -0
- data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
- data/spec/fixtures/unit/netmask/ifconfig_net_tools_1.60.txt +19 -0
- data/spec/fixtures/unit/netmask/ifconfig_ubuntu_1204.txt +16 -0
- data/spec/fixtures/unit/selinux/selinux_sestatus +6 -0
- data/spec/fixtures/unit/util/ec2/centos-arp-ec2.out +1 -0
- data/spec/fixtures/unit/util/ec2/linux-arp-ec2.out +1 -0
- data/spec/fixtures/unit/util/ec2/linux-arp-not-ec2.out +5 -0
- data/spec/fixtures/unit/util/ec2/solaris8_arp_a_not_ec2.out +7 -0
- data/spec/fixtures/unit/util/ec2/windows-2008-arp-a-not-ec2.out +6 -0
- data/spec/fixtures/unit/util/ec2/windows-2008-arp-a.out +10 -0
- data/spec/fixtures/unit/util/ip/6.0-STABLE_FreeBSD_ifconfig +12 -0
- data/spec/fixtures/unit/util/ip/Mac_OS_X_10.5.5_ifconfig +26 -0
- data/spec/fixtures/unit/util/ip/darwin_ifconfig_all_with_multiple_interfaces +10 -0
- data/spec/fixtures/unit/util/ip/darwin_ifconfig_single_interface +6 -0
- data/spec/fixtures/unit/util/ip/debian_kfreebsd_ifconfig +40 -0
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lan1 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1111_ifconfig_lo0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1111_lanscan +5 -0
- data/spec/fixtures/unit/util/ip/hpux_1111_netstat_in +4 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lan1 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_ifconfig_lo0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_lanscan +5 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_asterisk_netstat_in +4 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lan1 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_ifconfig_lo0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_lanscan +4 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_netstat_in +4 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan1 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lan4_1 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_ifconfig_lo0 +2 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_lanscan +9 -0
- data/spec/fixtures/unit/util/ip/hpux_1131_nic_bonding_netstat_in +6 -0
- data/spec/fixtures/unit/util/ip/linux_2_6_35_proc_net_bonding_bond0 +19 -0
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_eth0 +10 -0
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_ib0 +8 -0
- data/spec/fixtures/unit/util/ip/linux_get_single_interface_lo +9 -0
- data/spec/fixtures/unit/util/ip/linux_ifconfig_all_with_single_interface +18 -0
- data/spec/fixtures/unit/util/ip/linux_ifconfig_ib0 +8 -0
- data/spec/fixtures/unit/util/ip/solaris_ifconfig_all_with_multiple_interfaces +8 -0
- data/spec/fixtures/unit/util/ip/solaris_ifconfig_single_interface +3 -0
- data/spec/fixtures/unit/util/ip/windows_netsh_all_interfaces +12 -0
- data/spec/fixtures/unit/util/ip/windows_netsh_single_interface +7 -0
- data/spec/fixtures/unit/util/ip/windows_netsh_single_interface6 +18 -0
- data/spec/fixtures/unit/util/loader/nosuchfact.rb +1 -0
- data/spec/fixtures/unit/util/manufacturer/freebsd_dmidecode +42 -0
- data/spec/fixtures/unit/util/manufacturer/intel_linux_dmidecode +549 -0
- data/spec/fixtures/unit/util/manufacturer/linux_dmidecode_with_spaces +60 -0
- data/spec/fixtures/unit/util/manufacturer/opensolaris_smbios +33 -0
- data/spec/fixtures/unit/util/manufacturer/solaris_sunfire_v120_prtdiag +33 -0
- data/spec/fixtures/unit/util/manufacturer/solaris_t5220_prtdiag +136 -0
- data/spec/fixtures/unit/util/processor/solaris-i86pc +28 -0
- data/spec/fixtures/unit/util/processor/solaris-sun4u +151 -0
- data/spec/fixtures/unit/util/processor/x86-pentium2 +41 -0
- data/spec/fixtures/unit/util/uptime/kstat_boot_time +1 -0
- data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_darwin +1 -0
- data/spec/fixtures/unit/util/uptime/sysctl_kern_boottime_openbsd +1 -0
- data/spec/fixtures/unit/util/uptime/ubuntu_proc_uptime +1 -0
- 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/linux_vlan_config +6 -0
- data/spec/fixtures/unit/util/xendomains/xendomains +4 -0
- data/spec/fixtures/unit/virtual/sysfs_dmi_entries_raw.txt +0 -0
- data/spec/fixtures/unit/zfs_version/freebsd_8.2 +14 -0
- data/spec/fixtures/unit/zfs_version/freebsd_9.0 +13 -0
- data/spec/fixtures/unit/zfs_version/linux-fuse_0.6.9 +14 -0
- data/spec/fixtures/unit/zfs_version/solaris_10 +10 -0
- data/spec/fixtures/unit/zfs_version/solaris_11 +12 -0
- data/spec/fixtures/unit/zpool_version/freebsd_8.2 +26 -0
- data/spec/fixtures/unit/zpool_version/freebsd_9.0 +38 -0
- data/spec/fixtures/unit/zpool_version/linux-fuse_0.6.9 +35 -0
- data/spec/fixtures/unit/zpool_version/solaris_10 +31 -0
- data/spec/fixtures/unit/zpool_version/solaris_11 +43 -0
- data/spec/fixtures/virtual/proc_self_status/vserver_2_1/guest +37 -0
- data/spec/fixtures/virtual/proc_self_status/vserver_2_1/host +36 -0
- data/spec/fixtures/virtual/proc_self_status/vserver_2_3/guest +39 -0
- data/spec/fixtures/virtual/proc_self_status/vserver_2_3/host +39 -0
- data/spec/integration/facter_spec.rb +39 -0
- data/spec/lib/facter_spec/cpuinfo.rb +15 -0
- data/spec/lib/facter_spec/windows_network.rb +64 -0
- data/spec/puppetlabs_spec/files.rb +57 -0
- data/spec/puppetlabs_spec/fixtures.rb +49 -0
- data/spec/puppetlabs_spec/matchers.rb +87 -0
- data/spec/puppetlabs_spec/verbose.rb +9 -0
- data/spec/puppetlabs_spec_helper.rb +26 -0
- data/spec/shared_contexts/platform.rb +55 -0
- data/spec/shared_formats/parses.rb +3 -0
- data/spec/spec_helper.rb +75 -0
- data/spec/unit/application_spec.rb +101 -0
- data/spec/unit/architecture_spec.rb +63 -0
- data/spec/unit/blockdevices_spec.rb +109 -0
- data/spec/unit/core/aggregate_spec.rb +125 -0
- data/spec/unit/core/directed_graph_spec.rb +79 -0
- data/spec/unit/core/execution/base_spec.rb +119 -0
- data/spec/unit/core/execution/posix_spec.rb +86 -0
- data/spec/unit/core/execution/windows_spec.rb +106 -0
- data/spec/unit/core/execution_spec.rb +37 -0
- data/spec/unit/core/logging_spec.rb +104 -0
- data/spec/unit/core/resolvable_spec.rb +81 -0
- data/spec/unit/core/suitable_spec.rb +96 -0
- data/spec/unit/domain_spec.rb +310 -0
- data/spec/unit/ec2_spec.rb +187 -0
- data/spec/unit/facter_spec.rb +108 -0
- data/spec/unit/filesystems_spec.rb +50 -0
- data/spec/unit/hardwareisa_spec.rb +41 -0
- data/spec/unit/hardwaremodel_spec.rb +56 -0
- data/spec/unit/hostname_spec.rb +40 -0
- data/spec/unit/id_spec.rb +29 -0
- data/spec/unit/interfaces_spec.rb +57 -0
- data/spec/unit/ipaddress6_spec.rb +161 -0
- data/spec/unit/ipaddress_spec.rb +114 -0
- data/spec/unit/kernel_spec.rb +24 -0
- data/spec/unit/kernelmajversion_spec.rb +17 -0
- data/spec/unit/kernelrelease_spec.rb +53 -0
- data/spec/unit/kernelversion_spec.rb +32 -0
- data/spec/unit/ldom_spec.rb +74 -0
- data/spec/unit/lsbdistcodename_spec.rb +25 -0
- data/spec/unit/lsbdistdescription_spec.rb +25 -0
- data/spec/unit/lsbdistid_spec.rb +25 -0
- data/spec/unit/lsbdistrelease_spec.rb +25 -0
- data/spec/unit/lsbmajdistrelease_spec.rb +13 -0
- data/spec/unit/lsbrelease_spec.rb +25 -0
- data/spec/unit/macaddress_spec.rb +61 -0
- data/spec/unit/manufacturer_spec.rb +115 -0
- data/spec/unit/memory_spec.rb +539 -0
- data/spec/unit/netmask_spec.rb +95 -0
- data/spec/unit/operatingsystem_spec.rb +141 -0
- data/spec/unit/operatingsystemmajrelease_spec.rb +16 -0
- data/spec/unit/operatingsystemrelease_spec.rb +226 -0
- data/spec/unit/physicalprocessorcount_spec.rb +76 -0
- data/spec/unit/processor_spec.rb +393 -0
- data/spec/unit/ps_spec.rb +42 -0
- data/spec/unit/selinux_spec.rb +114 -0
- data/spec/unit/ssh_spec.rb +77 -0
- data/spec/unit/uniqueid_spec.rb +27 -0
- data/spec/unit/uptime_spec.rb +110 -0
- data/spec/unit/util/collection_spec.rb +258 -0
- data/spec/unit/util/config_spec.rb +84 -0
- data/spec/unit/util/confine_spec.rb +148 -0
- data/spec/unit/util/directory_loader_spec.rb +88 -0
- data/spec/unit/util/ec2_spec.rb +180 -0
- data/spec/unit/util/fact_spec.rb +142 -0
- data/spec/unit/util/file_read_spec.rb +29 -0
- data/spec/unit/util/ip/windows_spec.rb +80 -0
- data/spec/unit/util/ip_spec.rb +463 -0
- data/spec/unit/util/loader_spec.rb +286 -0
- data/spec/unit/util/macaddress_spec.rb +141 -0
- data/spec/unit/util/macosx_spec.rb +113 -0
- data/spec/unit/util/manufacturer_spec.rb +179 -0
- data/spec/unit/util/normalization_spec.rb +113 -0
- data/spec/unit/util/parser_spec.rb +200 -0
- data/spec/unit/util/processor_spec.rb +92 -0
- data/spec/unit/util/registry_spec.rb +76 -0
- data/spec/unit/util/resolution_spec.rb +129 -0
- data/spec/unit/util/solaris_zones_spec.rb +127 -0
- data/spec/unit/util/uptime_spec.rb +126 -0
- data/spec/unit/util/values_spec.rb +131 -0
- data/spec/unit/util/virtual_spec.rb +294 -0
- data/spec/unit/util/vlans_spec.rb +12 -0
- data/spec/unit/util/wmi_spec.rb +19 -0
- data/spec/unit/util/xendomains_spec.rb +21 -0
- data/spec/unit/version_spec.rb +42 -0
- data/spec/unit/virtual_spec.rb +470 -0
- data/spec/unit/zfs_version_spec.rb +75 -0
- data/spec/unit/zonename_spec.rb +14 -0
- data/spec/unit/zones_spec.rb +55 -0
- data/spec/unit/zpool_version_spec.rb +75 -0
- data/spec/watchr.rb +125 -0
- metadata +674 -0
@@ -0,0 +1,35 @@
|
|
1
|
+
# Fact: osfamily
|
2
|
+
#
|
3
|
+
# Purpose: Returns the operating system
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# Maps operating systems to operating system families, such as linux
|
7
|
+
# distribution derivatives. Adds mappings from specific operating systems
|
8
|
+
# to kernels in the case that it is relevant.
|
9
|
+
#
|
10
|
+
# Caveats:
|
11
|
+
# This fact is completely reliant on the operatingsystem fact, and no
|
12
|
+
# heuristics are used
|
13
|
+
#
|
14
|
+
|
15
|
+
Facter.add(:osfamily) do
|
16
|
+
|
17
|
+
setcode do
|
18
|
+
case Facter.value(:operatingsystem)
|
19
|
+
when "RedHat", "Fedora", "CentOS", "Scientific", "SLC", "Ascendos", "CloudLinux", "PSBM", "OracleLinux", "OVS", "OEL", "Amazon", "XenServer"
|
20
|
+
"RedHat"
|
21
|
+
when "Ubuntu", "Debian"
|
22
|
+
"Debian"
|
23
|
+
when "SLES", "SLED", "OpenSuSE", "SuSE"
|
24
|
+
"Suse"
|
25
|
+
when "Solaris", "Nexenta", "OmniOS", "OpenIndiana", "SmartOS"
|
26
|
+
"Solaris"
|
27
|
+
when "Gentoo"
|
28
|
+
"Gentoo"
|
29
|
+
when "Archlinux"
|
30
|
+
"Archlinux"
|
31
|
+
else
|
32
|
+
Facter.value("kernel")
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/facter/path.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# Fact: physicalprocessorcount
|
2
|
+
#
|
3
|
+
# Purpose: Return the number of physical processors.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
#
|
7
|
+
# Attempts to use sysfs to get the physical IDs of the processors. Falls
|
8
|
+
# back to /proc/cpuinfo and "physical id" if sysfs is not available.
|
9
|
+
#
|
10
|
+
# Caveats:
|
11
|
+
#
|
12
|
+
Facter.add('physicalprocessorcount') do
|
13
|
+
confine :kernel => :linux
|
14
|
+
|
15
|
+
setcode do
|
16
|
+
sysfs_cpu_directory = '/sys/devices/system/cpu' # This should always be there ...
|
17
|
+
|
18
|
+
if File.exists?(sysfs_cpu_directory)
|
19
|
+
#
|
20
|
+
# We assume that the sysfs file system has the correct number of entries
|
21
|
+
# under the "/sys/device/system/cpu" directory and if so then we process
|
22
|
+
# content of the file "physical_package_id" located inside the "topology"
|
23
|
+
# directory in each of the per-CPU sub-directories.
|
24
|
+
#
|
25
|
+
# As per Linux Kernel documentation and the file "cputopology.txt" located
|
26
|
+
# inside the "/usr/src/linux/Documentation" directory we can find following
|
27
|
+
# short explanation:
|
28
|
+
#
|
29
|
+
# (...)
|
30
|
+
#
|
31
|
+
# 1) /sys/devices/system/cpu/cpuX/topology/physical_package_id:
|
32
|
+
#
|
33
|
+
# physical package id of cpuX. Typically corresponds to a physical
|
34
|
+
# socket number, but the actual value is architecture and platform
|
35
|
+
# dependent.
|
36
|
+
#
|
37
|
+
# (...)
|
38
|
+
#
|
39
|
+
lookup_pattern = "#{sysfs_cpu_directory}" +
|
40
|
+
"/cpu*/topology/physical_package_id"
|
41
|
+
|
42
|
+
Dir.glob(lookup_pattern).collect { |f| Facter::Core::Execution.exec("cat #{f}")}.uniq.size.to_s
|
43
|
+
|
44
|
+
else
|
45
|
+
#
|
46
|
+
# Try to count number of CPUs using the proc file system next ...
|
47
|
+
#
|
48
|
+
# We assume that /proc/cpuinfo has what we need and is so then we need
|
49
|
+
# to make sure that we only count unique entries ...
|
50
|
+
#
|
51
|
+
str = Facter::Core::Execution.exec("grep 'physical.\\+:' /proc/cpuinfo")
|
52
|
+
|
53
|
+
if str then str.scan(/\d+/).uniq.size.to_s; end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
Facter.add('physicalprocessorcount') do
|
59
|
+
confine :kernel => :windows
|
60
|
+
setcode do
|
61
|
+
require 'facter/util/wmi'
|
62
|
+
Facter::Util::WMI.execquery("select Name from Win32_Processor").Count.to_s
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Facter.add('physicalprocessorcount') do
|
67
|
+
confine :kernel => :sunos
|
68
|
+
|
69
|
+
setcode do
|
70
|
+
# (#16526) The -p flag was not added until Solaris 8. Our intent is to
|
71
|
+
# split the kernel release fact value on the dot, take the second element,
|
72
|
+
# and disable the -p flag for values < 8 when.
|
73
|
+
kernelrelease = Facter.value(:kernelrelease)
|
74
|
+
(major_version, minor_version) = kernelrelease.split(".").map { |str| str.to_i }
|
75
|
+
cmd = "/usr/sbin/psrinfo"
|
76
|
+
result = nil
|
77
|
+
if (major_version > 5) or (major_version == 5 and minor_version >= 8) then
|
78
|
+
result = Facter::Core::Execution.exec("#{cmd} -p")
|
79
|
+
else
|
80
|
+
output = Facter::Core::Execution.exec(cmd)
|
81
|
+
result = output.split("\n").length.to_s
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,183 @@
|
|
1
|
+
# Fact: processor
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
# Additional Facts about the machine's CPUs.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# On Linux and kFreeBSD, parse '/proc/cpuinfo' for each processor.
|
8
|
+
# On AIX, parse the output of 'lsdev' for its processor section.
|
9
|
+
# On Solaris, parse the output of 'kstat' for each processor.
|
10
|
+
# On OpenBSD, use 'uname -p' and the sysctl variable for 'hw.ncpu' for CPU
|
11
|
+
# count.
|
12
|
+
#
|
13
|
+
# Caveats:
|
14
|
+
#
|
15
|
+
|
16
|
+
# processor.rb
|
17
|
+
#
|
18
|
+
# Copyright (C) 2006 Mooter Media Ltd
|
19
|
+
# Author: Matthew Palmer <matt@solutionsfirst.com.au>
|
20
|
+
#
|
21
|
+
|
22
|
+
require 'thread'
|
23
|
+
require 'facter/util/processor'
|
24
|
+
|
25
|
+
# We have to enumerate these outside a Facter.add block to get the processorN
|
26
|
+
# descriptions iteratively (but we need them inside the Facter.add block above
|
27
|
+
# for tests on processorcount to work)
|
28
|
+
processor_list = case Facter::Util::Processor.kernel_fact_value
|
29
|
+
when "AIX"
|
30
|
+
Facter::Util::Processor.aix_processor_list
|
31
|
+
when "HP-UX"
|
32
|
+
Facter::Util::Processor.hpux_processor_list
|
33
|
+
when "SunOS"
|
34
|
+
Facter::Util::Processor.enum_kstat
|
35
|
+
else
|
36
|
+
Facter::Util::Processor.enum_cpuinfo
|
37
|
+
end
|
38
|
+
|
39
|
+
processor_list.each_with_index do |desc, i|
|
40
|
+
Facter.add("Processor#{i}") do
|
41
|
+
confine :kernel => [ :aix, :"hp-ux", :sunos, :linux, :"gnu/kfreebsd" ]
|
42
|
+
setcode do
|
43
|
+
desc
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
Facter.add("ProcessorCount") do
|
49
|
+
confine :kernel => [ :linux, :"gnu/kfreebsd" ]
|
50
|
+
setcode do
|
51
|
+
processor_list = Facter::Util::Processor.enum_cpuinfo
|
52
|
+
|
53
|
+
## If this returned nothing, then don't resolve the fact
|
54
|
+
if processor_list.length != 0
|
55
|
+
processor_list.length.to_s
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
Facter.add("ProcessorCount") do
|
61
|
+
confine :kernel => [ :linux, :"gnu/kfreebsd" ]
|
62
|
+
setcode do
|
63
|
+
## The method above is preferable since it provides the description of the CPU as well
|
64
|
+
## but if that returned 0, then we enumerate sysfs
|
65
|
+
sysfs_cpu_directory = '/sys/devices/system/cpu'
|
66
|
+
if File.exists?(sysfs_cpu_directory)
|
67
|
+
lookup_pattern = "#{sysfs_cpu_directory}" + "/cpu[0-9]*"
|
68
|
+
cpuCount = Dir.glob(lookup_pattern).length
|
69
|
+
cpuCount.to_s
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
Facter.add("ProcessorCount") do
|
75
|
+
confine :kernel => :aix
|
76
|
+
setcode do
|
77
|
+
processor_list = Facter::Util::Processor.aix_processor_list
|
78
|
+
|
79
|
+
processor_list.length.to_s
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
Facter.add("ProcessorCount") do
|
84
|
+
confine :kernel => :"hp-ux"
|
85
|
+
setcode do
|
86
|
+
processor_list = Facter::Util::Processor.hpux_processor_list
|
87
|
+
processor_list.length.to_s
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
Facter.add("Processor") do
|
92
|
+
confine :kernel => :openbsd
|
93
|
+
setcode do
|
94
|
+
Facter::Core::Execution.exec("uname -p")
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
Facter.add("ProcessorCount") do
|
99
|
+
confine :kernel => :openbsd
|
100
|
+
setcode do
|
101
|
+
Facter::Core::Execution.exec("sysctl -n hw.ncpu")
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
Facter.add("ProcessorCount") do
|
106
|
+
confine :kernel => :Darwin
|
107
|
+
setcode do
|
108
|
+
Facter::Core::Execution.exec("sysctl -n hw.ncpu")
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
if Facter.value(:kernel) == "windows"
|
113
|
+
processor_list = []
|
114
|
+
|
115
|
+
Thread::exclusive do
|
116
|
+
require 'facter/util/wmi'
|
117
|
+
|
118
|
+
# get each physical processor
|
119
|
+
Facter::Util::WMI.execquery("select * from Win32_Processor").each do |proc|
|
120
|
+
# not supported before 2008
|
121
|
+
if proc.respond_to?(:NumberOfLogicalProcessors)
|
122
|
+
processor_num = proc.NumberOfLogicalProcessors
|
123
|
+
else
|
124
|
+
processor_num = 1
|
125
|
+
end
|
126
|
+
|
127
|
+
processor_num.times do |i|
|
128
|
+
processor_list << proc.Name.squeeze(" ")
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
processor_list.each_with_index do |name, i|
|
134
|
+
Facter.add("Processor#{i}") do
|
135
|
+
confine :kernel => :windows
|
136
|
+
setcode do
|
137
|
+
name
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
Facter.add("ProcessorCount") do
|
143
|
+
confine :kernel => :windows
|
144
|
+
setcode do
|
145
|
+
processor_list.length.to_s
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
Facter.add("Processor") do
|
151
|
+
confine :kernel => [:dragonfly,:freebsd]
|
152
|
+
setcode do
|
153
|
+
Facter::Core::Execution.exec("sysctl -n hw.model")
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
Facter.add("ProcessorCount") do
|
158
|
+
confine :kernel => [:dragonfly,:freebsd]
|
159
|
+
setcode do
|
160
|
+
Facter::Core::Execution.exec("sysctl -n hw.ncpu")
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
Facter.add("ProcessorCount") do
|
165
|
+
confine :kernel => :sunos
|
166
|
+
setcode do
|
167
|
+
kernelrelease = Facter.value(:kernelrelease)
|
168
|
+
(major_version, minor_version) = kernelrelease.split(".").map { |str| str.to_i }
|
169
|
+
result = nil
|
170
|
+
|
171
|
+
if (major_version > 5) or (major_version == 5 and minor_version >= 8) then
|
172
|
+
if kstat = Facter::Core::Execution.exec("/usr/bin/kstat cpu_info")
|
173
|
+
result = kstat.scan(/\bcore_id\b\s+\d+/).uniq.length
|
174
|
+
end
|
175
|
+
else
|
176
|
+
if output = Facter::Core::Execution.exec("/usr/sbin/psrinfo") then
|
177
|
+
result = output.split("\n").length
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
result.to_s
|
182
|
+
end
|
183
|
+
end
|
data/lib/facter/ps.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
# Fact: ps
|
2
|
+
#
|
3
|
+
# Purpose: Internal fact for what to use to list all processes. Used by
|
4
|
+
# Service{} type in Puppet.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# Assumes "ps -ef" for all operating systems other than BSD derivatives, where
|
8
|
+
# it uses "ps auxwww"
|
9
|
+
#
|
10
|
+
# Caveats:
|
11
|
+
#
|
12
|
+
|
13
|
+
Facter.add(:ps) do
|
14
|
+
setcode do 'ps -ef' end
|
15
|
+
end
|
16
|
+
|
17
|
+
Facter.add(:ps) do
|
18
|
+
confine :operatingsystem => :OpenWrt
|
19
|
+
setcode do 'ps www' end
|
20
|
+
end
|
21
|
+
|
22
|
+
Facter.add(:ps) do
|
23
|
+
confine :operatingsystem => %w{FreeBSD NetBSD OpenBSD Darwin DragonFly}
|
24
|
+
setcode do 'ps auxwww' end
|
25
|
+
end
|
26
|
+
|
27
|
+
Facter.add(:ps) do
|
28
|
+
confine :operatingsystem => :windows
|
29
|
+
setcode do 'tasklist.exe' end
|
30
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Fact: puppetversion
|
2
|
+
#
|
3
|
+
# Purpose: Return the version of puppet installed.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# Requres puppet via Ruby and returns it's version constant.
|
7
|
+
#
|
8
|
+
# Caveats:
|
9
|
+
#
|
10
|
+
|
11
|
+
Facter.add(:puppetversion) do
|
12
|
+
setcode do
|
13
|
+
begin
|
14
|
+
require 'puppet'
|
15
|
+
Puppet::PUPPETVERSION.to_s
|
16
|
+
rescue LoadError
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# Fact: selinux
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
#
|
7
|
+
# Caveats:
|
8
|
+
#
|
9
|
+
|
10
|
+
# Fact for SElinux
|
11
|
+
# Written by immerda admin team (admin(at)immerda.ch)
|
12
|
+
|
13
|
+
sestatus_cmd = '/usr/sbin/sestatus'
|
14
|
+
|
15
|
+
# This supports the fact that the selinux mount point is not always in the
|
16
|
+
# same location -- the selinux mount point is operating system specific.
|
17
|
+
def selinux_mount_point
|
18
|
+
path = "/selinux"
|
19
|
+
if FileTest.exists?('/proc/self/mounts')
|
20
|
+
# Centos 5 shows an error in which having ruby use File.read to read
|
21
|
+
# /proc/self/mounts combined with the puppet agent run with --listen causes
|
22
|
+
# a hang. Reading from other parts of /proc does not seem to cause this problem.
|
23
|
+
# The work around is to read the file in another process.
|
24
|
+
# -- andy Fri Aug 31 2012
|
25
|
+
selinux_line = Facter::Core::Execution.exec('cat /proc/self/mounts').each_line.find { |line| line =~ /selinuxfs/ }
|
26
|
+
if selinux_line
|
27
|
+
path = selinux_line.split[1]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
path
|
31
|
+
end
|
32
|
+
|
33
|
+
Facter.add("selinux") do
|
34
|
+
confine :kernel => :linux
|
35
|
+
setcode do
|
36
|
+
result = "false"
|
37
|
+
if FileTest.exists?("#{selinux_mount_point}/enforce")
|
38
|
+
if FileTest.exists?("/proc/self/attr/current")
|
39
|
+
if (File.read("/proc/self/attr/current") != "kernel\0")
|
40
|
+
result = "true"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
result
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
Facter.add("selinux_enforced") do
|
49
|
+
confine :selinux => :true
|
50
|
+
setcode do
|
51
|
+
result = "false"
|
52
|
+
if FileTest.exists?("#{selinux_mount_point}/enforce") and
|
53
|
+
File.read("#{selinux_mount_point}/enforce") =~ /1/i
|
54
|
+
result = "true"
|
55
|
+
end
|
56
|
+
result
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
Facter.add("selinux_policyversion") do
|
61
|
+
confine :selinux => :true
|
62
|
+
setcode do
|
63
|
+
result = 'unknown'
|
64
|
+
if FileTest.exists?("#{selinux_mount_point}/policyvers")
|
65
|
+
result = File.read("#{selinux_mount_point}/policyvers").chomp
|
66
|
+
end
|
67
|
+
result
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
Facter.add("selinux_current_mode") do
|
72
|
+
confine :selinux => :true
|
73
|
+
setcode do
|
74
|
+
result = 'unknown'
|
75
|
+
mode = Facter::Core::Execution.exec(sestatus_cmd)
|
76
|
+
mode.each_line { |l| result = $1 if l =~ /^Current mode\:\s+(\w+)$/i }
|
77
|
+
result.chomp
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
Facter.add("selinux_config_mode") do
|
82
|
+
confine :selinux => :true
|
83
|
+
setcode do
|
84
|
+
result = 'unknown'
|
85
|
+
mode = Facter::Core::Execution.exec(sestatus_cmd)
|
86
|
+
mode.each_line { |l| result = $1 if l =~ /^Mode from config file\:\s+(\w+)$/i }
|
87
|
+
result.chomp
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
Facter.add("selinux_config_policy") do
|
92
|
+
confine :selinux => :true
|
93
|
+
setcode do
|
94
|
+
result = 'unknown'
|
95
|
+
mode = Facter::Core::Execution.exec(sestatus_cmd)
|
96
|
+
mode.each_line { |l| result = $1 if l =~ /^Policy from config file\:\s+(\w+)$/i }
|
97
|
+
result.chomp
|
98
|
+
end
|
99
|
+
end
|