facter 2.0.1.rc1-universal-darwin
Sign up to get free protection for your applications and to get access to all the features.
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,67 @@
|
|
1
|
+
# Fact: hardwaremodel
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
# Returns the hardware model of the system.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# Uses purely "uname -m" on all platforms other than AIX and Windows.
|
8
|
+
# On AIX uses the parsed "modelname" output of "lsattr -El sys0 -a modelname".
|
9
|
+
# On Windows uses the 'host_cpu' pulled out of Ruby's config.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:hardwaremodel) do
|
15
|
+
setcode 'uname -m'
|
16
|
+
end
|
17
|
+
|
18
|
+
Facter.add(:hardwaremodel) do
|
19
|
+
confine :operatingsystem => :aix
|
20
|
+
setcode do
|
21
|
+
model = Facter::Core::Execution.exec('lsattr -El sys0 -a modelname')
|
22
|
+
if model =~ /modelname\s(\S+)\s/
|
23
|
+
$1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Facter.add(:hardwaremodel) do
|
29
|
+
confine :operatingsystem => :windows
|
30
|
+
setcode do
|
31
|
+
# The cryptic windows cpu architecture models are documented in these places:
|
32
|
+
# http://source.winehq.org/source/include/winnt.h#L568
|
33
|
+
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394373(v=vs.85).aspx
|
34
|
+
# http://msdn.microsoft.com/en-us/library/windows/desktop/windows.system.processorarchitecture.aspx
|
35
|
+
# http://linux.derkeiler.com/Mailing-Lists/Kernel/2008-05/msg12924.html (anything over 6 is still i686)
|
36
|
+
# Also, arm and neutral are included because they are valid for the upcoming
|
37
|
+
# windows 8 release. --jeffweiss 23 May 2012
|
38
|
+
require 'facter/util/wmi'
|
39
|
+
model = ""
|
40
|
+
architecture_level = nil
|
41
|
+
|
42
|
+
Facter::Util::WMI.execquery("select Architecture, Level, AddressWidth from Win32_Processor").each do |cpu|
|
43
|
+
architecture_level = (cpu.Level > 5) ? 6 : cpu.Level;
|
44
|
+
|
45
|
+
model =
|
46
|
+
case cpu.Architecture
|
47
|
+
when 11 then 'neutral' # PROCESSOR_ARCHITECTURE_NEUTRAL
|
48
|
+
when 10 then 'i686' # PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
|
49
|
+
when 9 then # PROCESSOR_ARCHITECTURE_AMD64
|
50
|
+
cpu.AddressWidth == 32 ? "i#{architecture_level}86" : 'x64' # 32 bit OS on 64 bit CPU
|
51
|
+
when 8 then 'msil' # PROCESSOR_ARCHITECTURE_MSIL
|
52
|
+
when 7 then 'alpha64' # PROCESSOR_ARCHITECTURE_ALPHA64
|
53
|
+
when 6 then 'ia64' # PROCESSOR_ARCHITECTURE_IA64
|
54
|
+
when 5 then 'arm' # PROCESSOR_ARCHITECTURE_ARM
|
55
|
+
when 4 then 'shx' # PROCESSOR_ARCHITECTURE_SHX
|
56
|
+
when 3 then 'powerpc' # PROCESSOR_ARCHITECTURE_PPC
|
57
|
+
when 2 then 'alpha' # PROCESSOR_ARCHITECTURE_ALPHA
|
58
|
+
when 1 then 'mips' # PROCESSOR_ARCHITECTURE_MIPS
|
59
|
+
when 0 then "i#{architecture_level}86" # PROCESSOR_ARCHITECTURE_INTEL
|
60
|
+
else 'unknown' # PROCESSOR_ARCHITECTURE_UNKNOWN
|
61
|
+
end
|
62
|
+
break
|
63
|
+
end
|
64
|
+
|
65
|
+
model
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Fact: hostname
|
2
|
+
#
|
3
|
+
# Purpose: Return the system's short hostname.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# On all system bar Darwin, parses the output of the "hostname" system command
|
7
|
+
# to everything before the first period.
|
8
|
+
# On Darwin, uses the system configuration util to get the LocalHostName
|
9
|
+
# variable.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:hostname) do
|
15
|
+
setcode do
|
16
|
+
hostname = nil
|
17
|
+
if name = Facter::Core::Execution.exec('hostname')
|
18
|
+
if name =~ /(.*?)\./
|
19
|
+
hostname = $1
|
20
|
+
else
|
21
|
+
hostname = name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
hostname
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Facter.add(:hostname) do
|
29
|
+
confine :kernel => :darwin, :kernelrelease => "R7"
|
30
|
+
setcode do
|
31
|
+
Facter::Core::Execution.exec('/usr/sbin/scutil --get LocalHostName')
|
32
|
+
end
|
33
|
+
end
|
data/lib/facter/id.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Fact: id
|
2
|
+
#
|
3
|
+
# Purpose: Internal fact used to specity the program to return the currently
|
4
|
+
# running user id.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# On all Unixes bar Solaris, just returns "whoami".
|
8
|
+
# On Solaris, parses the output of the "id" command to grab the username, as
|
9
|
+
# Solaris doesn't have the whoami command.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:id) do
|
15
|
+
setcode "whoami"
|
16
|
+
end
|
17
|
+
|
18
|
+
Facter.add(:id) do
|
19
|
+
confine :kernel => :SunOS
|
20
|
+
setcode "/usr/xpg4/bin/id -un"
|
21
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Fact: interfaces
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
#
|
7
|
+
# Caveats:
|
8
|
+
#
|
9
|
+
|
10
|
+
# interfaces.rb
|
11
|
+
# Try to get additional Facts about the machine's network interfaces
|
12
|
+
#
|
13
|
+
# Original concept Copyright (C) 2007 psychedelys <psychedelys@gmail.com>
|
14
|
+
# Update and *BSD support (C) 2007 James Turnbull <james@lovedthanlost.net>
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'facter/util/ip'
|
18
|
+
require 'facter/util/macaddress'
|
19
|
+
|
20
|
+
# Note that most of this only works on a fixed list of platforms; notably, Darwin
|
21
|
+
# is missing.
|
22
|
+
|
23
|
+
Facter.add(:interfaces) do
|
24
|
+
confine :kernel => Facter::Util::IP.supported_platforms
|
25
|
+
setcode do
|
26
|
+
Facter::Util::IP.get_interfaces.collect { |iface| Facter::Util::IP.alphafy(iface) }.join(",")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Facter::Util::IP.get_interfaces.each do |interface|
|
31
|
+
|
32
|
+
# Make a fact for each detail of each interface. Yay.
|
33
|
+
# There's no point in confining these facts, since we wouldn't be able to create
|
34
|
+
# them if we weren't running on a supported platform.
|
35
|
+
%w{ipaddress ipaddress6 macaddress netmask mtu}.each do |label|
|
36
|
+
Facter.add(label + "_" + Facter::Util::IP.alphafy(interface)) do
|
37
|
+
setcode do
|
38
|
+
value = Facter::Util::IP.get_interface_value(interface, label)
|
39
|
+
if label == "macaddress"
|
40
|
+
value = Facter::Util::Macaddress.standardize(value)
|
41
|
+
end
|
42
|
+
value
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
# Fact: ipaddress
|
2
|
+
#
|
3
|
+
# Purpose: Return the main IP address for a host.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# On the Unixes does an ifconfig, and returns the first non 127.0.0.0/8
|
7
|
+
# subnetted IP it finds.
|
8
|
+
# On Windows, it attempts to use the socket library and resolve the machine's
|
9
|
+
# hostname via DNS.
|
10
|
+
#
|
11
|
+
# On LDAP based hosts it tries to use either the win32/resolv library to
|
12
|
+
# resolve the hostname to an IP address, or on Unix, it uses the resolv
|
13
|
+
# library.
|
14
|
+
#
|
15
|
+
# As a fall back for undefined systems, it tries to run the "host" command to
|
16
|
+
# resolve the machine's hostname using the system DNS.
|
17
|
+
#
|
18
|
+
# Caveats:
|
19
|
+
# DNS resolution relies on working DNS infrastructure and resolvers on the
|
20
|
+
# host system.
|
21
|
+
# The ifconfig parsing purely takes the first IP address it finds without any
|
22
|
+
# checking this is a useful IP address.
|
23
|
+
#
|
24
|
+
|
25
|
+
require 'facter/util/ip'
|
26
|
+
|
27
|
+
Facter.add(:ipaddress) do
|
28
|
+
confine :kernel => :linux
|
29
|
+
setcode do
|
30
|
+
ip = nil
|
31
|
+
output = Facter::Util::IP.exec_ifconfig(["2>/dev/null"])
|
32
|
+
if output
|
33
|
+
regexp = /inet (?:addr:)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
34
|
+
output.split("\n").each do |line|
|
35
|
+
match = regexp.match(line)
|
36
|
+
if match and not /^127\./.match(match[1])
|
37
|
+
ip = match[1]
|
38
|
+
break
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
ip
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Facter.add(:ipaddress) do
|
47
|
+
confine :kernel => %w{FreeBSD OpenBSD Darwin DragonFly}
|
48
|
+
setcode do
|
49
|
+
ip = nil
|
50
|
+
output = Facter::Util::IP.exec_ifconfig
|
51
|
+
|
52
|
+
output.split(/^\S/).each { |str|
|
53
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
54
|
+
tmp = $1
|
55
|
+
unless tmp =~ /^127\./
|
56
|
+
ip = tmp
|
57
|
+
break
|
58
|
+
end
|
59
|
+
end
|
60
|
+
}
|
61
|
+
|
62
|
+
ip
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Facter.add(:ipaddress) do
|
67
|
+
confine :kernel => %w{NetBSD SunOS}
|
68
|
+
setcode do
|
69
|
+
ip = nil
|
70
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
71
|
+
|
72
|
+
output.split(/^\S/).each { |str|
|
73
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
74
|
+
tmp = $1
|
75
|
+
unless tmp =~ /^127\./ or tmp == "0.0.0.0"
|
76
|
+
ip = tmp
|
77
|
+
break
|
78
|
+
end
|
79
|
+
end
|
80
|
+
}
|
81
|
+
|
82
|
+
ip
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
Facter.add(:ipaddress) do
|
87
|
+
confine :kernel => %w{AIX}
|
88
|
+
setcode do
|
89
|
+
ip = nil
|
90
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
91
|
+
|
92
|
+
output.split(/^\S/).each { |str|
|
93
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
94
|
+
tmp = $1
|
95
|
+
unless tmp =~ /^127\./
|
96
|
+
ip = tmp
|
97
|
+
break
|
98
|
+
end
|
99
|
+
end
|
100
|
+
}
|
101
|
+
|
102
|
+
ip
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
Facter.add(:ipaddress) do
|
107
|
+
confine :kernel => %w{windows}
|
108
|
+
setcode do
|
109
|
+
require 'facter/util/ip/windows'
|
110
|
+
ipaddr = nil
|
111
|
+
|
112
|
+
adapters = Facter::Util::IP::Windows.get_preferred_ipv4_adapters
|
113
|
+
adapters.find do |nic|
|
114
|
+
nic.IPAddress.any? do |addr|
|
115
|
+
ipaddr = addr if Facter::Util::IP::Windows.valid_ipv4_address?(addr)
|
116
|
+
ipaddr
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
ipaddr
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
Facter.add(:ipaddress, :timeout => 2) do
|
125
|
+
setcode do
|
126
|
+
if Facter.value(:kernel) == 'windows'
|
127
|
+
require 'win32/resolv'
|
128
|
+
else
|
129
|
+
require 'resolv'
|
130
|
+
end
|
131
|
+
|
132
|
+
begin
|
133
|
+
if hostname = Facter.value(:hostname)
|
134
|
+
if Facter.value(:kernel) == 'windows'
|
135
|
+
ip = Win32::Resolv.get_resolv_info.last[0]
|
136
|
+
else
|
137
|
+
ip = Resolv.getaddress(hostname)
|
138
|
+
end
|
139
|
+
unless ip == "127.0.0.1"
|
140
|
+
ip
|
141
|
+
end
|
142
|
+
else
|
143
|
+
nil
|
144
|
+
end
|
145
|
+
rescue Resolv::ResolvError
|
146
|
+
nil
|
147
|
+
rescue NoMethodError # i think this is a bug in resolv.rb?
|
148
|
+
nil
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
Facter.add(:ipaddress, :timeout => 2) do
|
154
|
+
setcode do
|
155
|
+
if hostname = Facter.value(:hostname)
|
156
|
+
# we need Hostname to exist for this to work
|
157
|
+
host = nil
|
158
|
+
if host = Facter::Core::Execution.exec("host #{hostname}")
|
159
|
+
list = host.chomp.split(/\s/)
|
160
|
+
if defined? list[-1] and
|
161
|
+
list[-1] =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/
|
162
|
+
list[-1]
|
163
|
+
end
|
164
|
+
else
|
165
|
+
nil
|
166
|
+
end
|
167
|
+
else
|
168
|
+
nil
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# Fact: ipaddress6
|
2
|
+
#
|
3
|
+
# Purpose: Returns the "main" IPv6 IP address of a system.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# OS dependant code that parses the output of various networking
|
7
|
+
# tools and currently not very intelligent. Returns the first
|
8
|
+
# non-loopback and non-linklocal address found in the ouput unless
|
9
|
+
# a default route can be mapped to a routeable interface. Guessing
|
10
|
+
# an interface is currently only possible with BSD type systems
|
11
|
+
# to many assumptions have to be made on other platforms to make
|
12
|
+
# this work with the current code. Most code ported or modeled
|
13
|
+
# after the ipaddress fact for the sake of similar functionality
|
14
|
+
# and familiar mechanics.
|
15
|
+
#
|
16
|
+
# Caveats:
|
17
|
+
#
|
18
|
+
|
19
|
+
# Cody Herriges <c.a.herriges@gmail.com>
|
20
|
+
#
|
21
|
+
# Used the ipaddress fact that is already part of
|
22
|
+
# Facter as a template.
|
23
|
+
|
24
|
+
require 'facter/util/ip'
|
25
|
+
|
26
|
+
def get_address_after_token(output, token, return_first=false)
|
27
|
+
ip = nil
|
28
|
+
|
29
|
+
String(output).scan(/#{token}\s?((?>[0-9,a-f,A-F]*\:{1,2})+[0-9,a-f,A-F]{0,4})/).each do |match|
|
30
|
+
match = match.first
|
31
|
+
unless match =~ /fe80.*/ or match == "::1"
|
32
|
+
ip = match
|
33
|
+
break if return_first
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
ip
|
38
|
+
end
|
39
|
+
|
40
|
+
Facter.add(:ipaddress6) do
|
41
|
+
confine :kernel => :linux
|
42
|
+
setcode do
|
43
|
+
output = Facter::Util::IP.exec_ifconfig(["2>/dev/null"])
|
44
|
+
get_address_after_token(output, 'inet6(?: addr:)?')
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
Facter.add(:ipaddress6) do
|
49
|
+
confine :kernel => %w{SunOS}
|
50
|
+
setcode do
|
51
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
52
|
+
|
53
|
+
get_address_after_token(output, 'inet6')
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
Facter.add(:ipaddress6) do
|
58
|
+
confine :kernel => %w{Darwin FreeBSD OpenBSD}
|
59
|
+
setcode do
|
60
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
61
|
+
|
62
|
+
get_address_after_token(output, 'inet6', true)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Facter.add(:ipaddress6) do
|
67
|
+
confine :kernel => :windows
|
68
|
+
setcode do
|
69
|
+
require 'facter/util/ip/windows'
|
70
|
+
ipaddr = nil
|
71
|
+
|
72
|
+
adapters = Facter::Util::IP::Windows.get_preferred_ipv6_adapters
|
73
|
+
adapters.find do |nic|
|
74
|
+
nic.IPAddress.any? do |addr|
|
75
|
+
ipaddr = addr if Facter::Util::IP::Windows.valid_ipv6_address?(addr)
|
76
|
+
ipaddr
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
ipaddr
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# Fact: iphostnumber
|
2
|
+
#
|
3
|
+
# Purpose: On selected versions of Darwin, returns the host's IP address.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# Uses either the scutil program to get the localhost name, or parses output
|
7
|
+
# of ifconfig for a MAC address.
|
8
|
+
#
|
9
|
+
# Caveats:
|
10
|
+
#
|
11
|
+
|
12
|
+
Facter.add(:iphostnumber) do
|
13
|
+
confine :kernel => :darwin, :kernelrelease => "R6"
|
14
|
+
setcode do
|
15
|
+
%x{/usr/sbin/scutil --get LocalHostName}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
Facter.add(:iphostnumber) do
|
19
|
+
confine :kernel => :darwin, :kernelrelease => "R6"
|
20
|
+
setcode do
|
21
|
+
ether = nil
|
22
|
+
output = Facter::Util::IP.exec_ifconfig
|
23
|
+
|
24
|
+
output =~ /HWaddr (\w\w:\w\w:\w\w:\w\w:\w\w:\w\w)/
|
25
|
+
ether = $1
|
26
|
+
|
27
|
+
ether
|
28
|
+
end
|
29
|
+
end
|