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,119 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/core/execution'
|
3
|
+
|
4
|
+
describe Facter::Core::Execution::Base do
|
5
|
+
|
6
|
+
describe "#with_env" do
|
7
|
+
it "should execute the caller's block with the specified env vars" do
|
8
|
+
test_env = { "LANG" => "C", "FOO" => "BAR" }
|
9
|
+
subject.with_env test_env do
|
10
|
+
test_env.keys.each do |key|
|
11
|
+
ENV[key].should == test_env[key]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should restore pre-existing environment variables to their previous values" do
|
17
|
+
orig_env = {}
|
18
|
+
new_env = {}
|
19
|
+
# an arbitrary sentinel value to use to temporarily set the environment vars to
|
20
|
+
sentinel_value = "Abracadabra"
|
21
|
+
|
22
|
+
# grab some values from the existing ENV (arbitrarily choosing 3 here)
|
23
|
+
ENV.keys.first(3).each do |key|
|
24
|
+
# save the original values so that we can test against them later
|
25
|
+
orig_env[key] = ENV[key]
|
26
|
+
# create bogus temp values for the chosen keys
|
27
|
+
new_env[key] = sentinel_value
|
28
|
+
end
|
29
|
+
|
30
|
+
# verify that, during the 'with_env', the new values are used
|
31
|
+
subject.with_env new_env do
|
32
|
+
orig_env.keys.each do |key|
|
33
|
+
ENV[key].should == new_env[key]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# verify that, after the 'with_env', the old values are restored
|
38
|
+
orig_env.keys.each do |key|
|
39
|
+
ENV[key].should == orig_env[key]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should not be affected by a 'return' statement in the yield block" do
|
44
|
+
@sentinel_var = :resolution_test_foo.to_s
|
45
|
+
|
46
|
+
# the intent of this test case is to test a yield block that contains a return statement. However, it's illegal
|
47
|
+
# to use a return statement outside of a method, so we need to create one here to give scope to the 'return'
|
48
|
+
def handy_method()
|
49
|
+
ENV[@sentinel_var] = "foo"
|
50
|
+
new_env = { @sentinel_var => "bar" }
|
51
|
+
|
52
|
+
subject.with_env new_env do
|
53
|
+
ENV[@sentinel_var].should == "bar"
|
54
|
+
return
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
handy_method()
|
59
|
+
|
60
|
+
ENV[@sentinel_var].should == "foo"
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#exec" do
|
66
|
+
|
67
|
+
it "switches LANG to C when executing the command" do
|
68
|
+
subject.expects(:with_env).with('LANG' => 'C')
|
69
|
+
subject.exec('foo')
|
70
|
+
end
|
71
|
+
|
72
|
+
it "switches LC_ALL to C when executing the command"
|
73
|
+
|
74
|
+
it "expands the command before running it" do
|
75
|
+
subject.stubs(:`).returns ''
|
76
|
+
subject.expects(:expand_command).with('foo').returns '/bin/foo'
|
77
|
+
subject.exec('foo')
|
78
|
+
end
|
79
|
+
|
80
|
+
it "returns an empty string when the command could not be expanded" do
|
81
|
+
subject.expects(:expand_command).with('foo').returns nil
|
82
|
+
expect(subject.exec('foo')).to be_empty
|
83
|
+
end
|
84
|
+
|
85
|
+
it "logs a warning and returns an empty string when the command execution fails" do
|
86
|
+
subject.expects(:`).with("/bin/foo").raises "kaboom!"
|
87
|
+
Facter.expects(:warn).with("kaboom!")
|
88
|
+
|
89
|
+
subject.expects(:expand_command).with('foo').returns '/bin/foo'
|
90
|
+
|
91
|
+
expect(subject.exec("foo")).to be_empty
|
92
|
+
end
|
93
|
+
|
94
|
+
it "launches a thread to wait on children if the command was interrupted" do
|
95
|
+
subject.expects(:`).with("/bin/foo").raises "kaboom!"
|
96
|
+
subject.expects(:expand_command).with('foo').returns '/bin/foo'
|
97
|
+
|
98
|
+
Facter.stubs(:warn)
|
99
|
+
Thread.expects(:new).yields
|
100
|
+
Process.expects(:waitall).once
|
101
|
+
|
102
|
+
subject.exec("foo")
|
103
|
+
end
|
104
|
+
|
105
|
+
it "returns the output of the command" do
|
106
|
+
subject.expects(:`).with("/bin/foo").returns 'hi'
|
107
|
+
subject.expects(:expand_command).with('foo').returns '/bin/foo'
|
108
|
+
|
109
|
+
expect(subject.exec("foo")).to eq 'hi'
|
110
|
+
end
|
111
|
+
|
112
|
+
it "strips off trailing newlines" do
|
113
|
+
subject.expects(:`).with("/bin/foo").returns "hi\n"
|
114
|
+
subject.expects(:expand_command).with('foo').returns '/bin/foo'
|
115
|
+
|
116
|
+
expect(subject.exec("foo")).to eq 'hi'
|
117
|
+
end
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,86 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Facter::Core::Execution::Posix, :as_plaform => :posix do
|
4
|
+
|
5
|
+
describe "#search_paths" do
|
6
|
+
it "should use the PATH environment variable plus /sbin and /usr/sbin on unix" do
|
7
|
+
ENV.expects(:[]).with('PATH').returns "/bin:/usr/bin"
|
8
|
+
subject.search_paths.should == %w{/bin /usr/bin /sbin /usr/sbin}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#which" do
|
13
|
+
before :each do
|
14
|
+
subject.stubs(:search_paths).returns [ '/bin', '/sbin', '/usr/sbin']
|
15
|
+
end
|
16
|
+
|
17
|
+
context "and provided with an absolute path" do
|
18
|
+
it "should return the binary if executable" do
|
19
|
+
File.expects(:executable?).with('/opt/foo').returns true
|
20
|
+
subject.which('/opt/foo').should == '/opt/foo'
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should return nil if the binary is not executable" do
|
24
|
+
File.expects(:executable?).with('/opt/foo').returns false
|
25
|
+
subject.which('/opt/foo').should be_nil
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "and not provided with an absolute path" do
|
30
|
+
it "should return the absolute path if found" do
|
31
|
+
File.expects(:executable?).with('/bin/foo').returns false
|
32
|
+
File.expects(:executable?).with('/sbin/foo').returns true
|
33
|
+
File.expects(:executable?).with('/usr/sbin/foo').never
|
34
|
+
subject.which('foo').should == '/sbin/foo'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should return nil if not found" do
|
38
|
+
File.expects(:executable?).with('/bin/foo').returns false
|
39
|
+
File.expects(:executable?).with('/sbin/foo').returns false
|
40
|
+
File.expects(:executable?).with('/usr/sbin/foo').returns false
|
41
|
+
subject.which('foo').should be_nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#expand_command" do
|
47
|
+
it "should expand binary" do
|
48
|
+
subject.expects(:which).with('foo').returns '/bin/foo'
|
49
|
+
subject.expand_command('foo -a | stuff >> /dev/null').should == '/bin/foo -a | stuff >> /dev/null'
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should expand double quoted binary" do
|
53
|
+
subject.expects(:which).with('/tmp/my foo').returns '/tmp/my foo'
|
54
|
+
subject.expand_command(%q{"/tmp/my foo" bar}).should == %q{'/tmp/my foo' bar}
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should expand single quoted binary" do
|
58
|
+
subject.expects(:which).with('my foo').returns '/home/bob/my path/my foo'
|
59
|
+
subject.expand_command(%q{'my foo' -a}).should == %q{'/home/bob/my path/my foo' -a}
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should quote expanded binary if found in path with spaces" do
|
63
|
+
subject.expects(:which).with('foo.sh').returns '/home/bob/my tools/foo.sh'
|
64
|
+
subject.expand_command('foo.sh /a /b').should == %q{'/home/bob/my tools/foo.sh' /a /b}
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should return nil if not found" do
|
68
|
+
subject.expects(:which).with('foo').returns nil
|
69
|
+
subject.expand_command('foo -a | stuff >> /dev/null').should be_nil
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "#absolute_path?" do
|
74
|
+
%w[/ /foo /foo/../bar //foo //Server/Foo/Bar //?/C:/foo/bar /\Server/Foo /foo//bar/baz].each do |path|
|
75
|
+
it "should return true for #{path}" do
|
76
|
+
subject.should be_absolute_path(path)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
%w[. ./foo \foo C:/foo \\Server\Foo\Bar \\?\C:\foo\bar \/?/foo\bar \/Server/foo foo//bar/baz].each do |path|
|
81
|
+
it "should return false for #{path}" do
|
82
|
+
subject.should_not be_absolute_path(path)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Facter::Core::Execution::Windows, :as_platform => :windows do
|
4
|
+
|
5
|
+
describe "#search_paths" do
|
6
|
+
it "should use the PATH environment variable to determine locations" do
|
7
|
+
ENV.expects(:[]).with('PATH').returns 'C:\Windows;C:\Windows\System32'
|
8
|
+
subject.search_paths.should == %w{C:\Windows C:\Windows\System32}
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "#which" do
|
13
|
+
before :each do
|
14
|
+
subject.stubs(:search_paths).returns ['C:\Windows\system32', 'C:\Windows', 'C:\Windows\System32\Wbem' ]
|
15
|
+
ENV.stubs(:[]).with('PATHEXT').returns nil
|
16
|
+
end
|
17
|
+
|
18
|
+
context "and provided with an absolute path" do
|
19
|
+
it "should return the binary if executable" do
|
20
|
+
File.expects(:executable?).with('C:\Tools\foo.exe').returns true
|
21
|
+
File.expects(:executable?).with('\\\\remote\dir\foo.exe').returns true
|
22
|
+
subject.which('C:\Tools\foo.exe').should == 'C:\Tools\foo.exe'
|
23
|
+
subject.which('\\\\remote\dir\foo.exe').should == '\\\\remote\dir\foo.exe'
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return nil if the binary is not executable" do
|
27
|
+
File.expects(:executable?).with('C:\Tools\foo.exe').returns false
|
28
|
+
File.expects(:executable?).with('\\\\remote\dir\foo.exe').returns false
|
29
|
+
subject.which('C:\Tools\foo.exe').should be_nil
|
30
|
+
subject.which('\\\\remote\dir\foo.exe').should be_nil
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "and not provided with an absolute path" do
|
35
|
+
it "should return the absolute path if found" do
|
36
|
+
File.expects(:executable?).with('C:\Windows\system32\foo.exe').returns false
|
37
|
+
File.expects(:executable?).with('C:\Windows\foo.exe').returns true
|
38
|
+
File.expects(:executable?).with('C:\Windows\System32\Wbem\foo.exe').never
|
39
|
+
subject.which('foo.exe').should == 'C:\Windows\foo.exe'
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should return the absolute path with file extension if found" do
|
43
|
+
['.COM', '.EXE', '.BAT', '.CMD', '' ].each do |ext|
|
44
|
+
File.stubs(:executable?).with('C:\Windows\system32\foo'+ext).returns false
|
45
|
+
File.stubs(:executable?).with('C:\Windows\System32\Wbem\foo'+ext).returns false
|
46
|
+
end
|
47
|
+
['.COM', '.BAT', '.CMD', '' ].each do |ext|
|
48
|
+
File.stubs(:executable?).with('C:\Windows\foo'+ext).returns false
|
49
|
+
end
|
50
|
+
File.stubs(:executable?).with('C:\Windows\foo.EXE').returns true
|
51
|
+
|
52
|
+
subject.which('foo').should == 'C:\Windows\foo.EXE'
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should return nil if not found" do
|
56
|
+
File.expects(:executable?).with('C:\Windows\system32\foo.exe').returns false
|
57
|
+
File.expects(:executable?).with('C:\Windows\foo.exe').returns false
|
58
|
+
File.expects(:executable?).with('C:\Windows\System32\Wbem\foo.exe').returns false
|
59
|
+
subject.which('foo.exe').should be_nil
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe "#expand_command" do
|
65
|
+
it "should expand binary" do
|
66
|
+
subject.expects(:which).with('cmd').returns 'C:\Windows\System32\cmd'
|
67
|
+
subject.expand_command(
|
68
|
+
'cmd /c echo foo > C:\bar'
|
69
|
+
).should == 'C:\Windows\System32\cmd /c echo foo > C:\bar'
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should expand double quoted binary" do
|
73
|
+
subject.expects(:which).with('my foo').returns 'C:\My Tools\my foo.exe'
|
74
|
+
subject.expand_command('"my foo" /a /b').should == '"C:\My Tools\my foo.exe" /a /b'
|
75
|
+
end
|
76
|
+
|
77
|
+
it "should not expand single quoted binary" do
|
78
|
+
subject.expects(:which).with('\'C:\My').returns nil
|
79
|
+
subject.expand_command('\'C:\My Tools\foo.exe\' /a /b').should be_nil
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should quote expanded binary if found in path with spaces" do
|
83
|
+
subject.expects(:which).with('foo').returns 'C:\My Tools\foo.exe'
|
84
|
+
subject.expand_command('foo /a /b').should == '"C:\My Tools\foo.exe" /a /b'
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should return nil if not found" do
|
88
|
+
subject.expects(:which).with('foo').returns nil
|
89
|
+
subject.expand_command('foo /a | stuff >> NUL').should be_nil
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
describe "#absolute_path?" do
|
94
|
+
%w[C:/foo C:\foo \\\\Server\Foo\Bar \\\\?\C:\foo\bar //Server/Foo/Bar //?/C:/foo/bar /\?\C:/foo\bar \/Server\Foo/Bar c:/foo//bar//baz].each do |path|
|
95
|
+
it "should return true for #{path}" do
|
96
|
+
subject.should be_absolute_path(path)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
%w[/ . ./foo \foo /foo /foo/../bar //foo C:foo/bar foo//bar/baz].each do |path|
|
101
|
+
it "should return false for #{path}" do
|
102
|
+
subject.should_not be_absolute_path(path)
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/core/execution'
|
3
|
+
|
4
|
+
describe Facter::Core::Execution do
|
5
|
+
subject { described_class}
|
6
|
+
let(:impl) { described_class.impl }
|
7
|
+
|
8
|
+
it "delegates #search_paths to the implementation" do
|
9
|
+
impl.expects(:search_paths)
|
10
|
+
subject.search_paths
|
11
|
+
end
|
12
|
+
|
13
|
+
it "delegates #which to the implementation" do
|
14
|
+
impl.expects(:which).with('waffles')
|
15
|
+
subject.which('waffles')
|
16
|
+
end
|
17
|
+
|
18
|
+
it "delegates #absolute_path? to the implementation" do
|
19
|
+
impl.expects(:absolute_path?).with('waffles', nil)
|
20
|
+
subject.absolute_path?('waffles')
|
21
|
+
end
|
22
|
+
|
23
|
+
it "delegates #absolute_path? with an optional platform to the implementation" do
|
24
|
+
impl.expects(:absolute_path?).with('waffles', :windows)
|
25
|
+
subject.absolute_path?('waffles', :windows)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "delegates #expand_command to the implementation" do
|
29
|
+
impl.expects(:expand_command).with('waffles')
|
30
|
+
subject.expand_command('waffles')
|
31
|
+
end
|
32
|
+
|
33
|
+
it "delegates #exec to the implementation" do
|
34
|
+
impl.expects(:exec).with('waffles')
|
35
|
+
subject.exec('waffles')
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/core/logging'
|
3
|
+
|
4
|
+
describe Facter::Core::Logging do
|
5
|
+
|
6
|
+
subject { described_class }
|
7
|
+
|
8
|
+
after(:all) do
|
9
|
+
subject.debugging(false)
|
10
|
+
subject.timing(false)
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "emitting debug messages" do
|
14
|
+
it "doesn't log a message when debugging is disabled" do
|
15
|
+
subject.debugging(false)
|
16
|
+
subject.expects(:puts).never
|
17
|
+
subject.debug("foo")
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "and debugging is enabled" do
|
21
|
+
before { subject.debugging(true) }
|
22
|
+
it "emits a warning when called with nil" do
|
23
|
+
subject.expects(:warn).with { |msg| expect(msg).to match /invalid message nil:NilClass/ }
|
24
|
+
subject.debug(nil)
|
25
|
+
end
|
26
|
+
|
27
|
+
it "emits a warning when called with an empty string" do
|
28
|
+
subject.expects(:warn).with { |msg| expect(msg).to match /invalid message "":String/ }
|
29
|
+
subject.debug("")
|
30
|
+
end
|
31
|
+
|
32
|
+
it "prints the message when logging is enabled" do
|
33
|
+
subject.expects(:puts).with { |msg| expect(msg).to match /foo/ }
|
34
|
+
subject.debug("foo")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "when warning" do
|
40
|
+
it "emits a warning when given a string" do
|
41
|
+
subject.debugging(true)
|
42
|
+
Kernel.expects(:warn).with('foo')
|
43
|
+
subject.warn('foo')
|
44
|
+
end
|
45
|
+
|
46
|
+
it "emits a warning regardless of log level" do
|
47
|
+
subject.debugging(false)
|
48
|
+
Kernel.expects(:warn).with "foo"
|
49
|
+
subject.warn "foo"
|
50
|
+
end
|
51
|
+
|
52
|
+
it "emits a warning if nil is passed" do
|
53
|
+
Kernel.expects(:warn).with { |msg| expect(msg).to match /invalid message nil:NilClass/ }
|
54
|
+
subject.warn(nil)
|
55
|
+
end
|
56
|
+
|
57
|
+
it "emits a warning if an empty string is passed" do
|
58
|
+
Kernel.expects(:warn).with { |msg| expect(msg).to match /invalid message "":String/ }
|
59
|
+
subject.warn('')
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
describe "when warning once" do
|
64
|
+
it "only logs a given warning string once" do
|
65
|
+
subject.expects(:warn).with('foo').once
|
66
|
+
subject.warnonce('foo')
|
67
|
+
subject.warnonce('foo')
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "when setting the debugging mode" do
|
72
|
+
it "is enabled when the given value is true" do
|
73
|
+
subject.debugging(true)
|
74
|
+
expect(subject.debugging?).to be_true
|
75
|
+
end
|
76
|
+
|
77
|
+
it "is disabled when the given value is false" do
|
78
|
+
subject.debugging(false)
|
79
|
+
expect(subject.debugging?).to be_false
|
80
|
+
end
|
81
|
+
|
82
|
+
it "is disabled when the given value is nil" do
|
83
|
+
subject.debugging(nil)
|
84
|
+
expect(subject.debugging?).to be_false
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe "when setting the timing mode" do
|
89
|
+
it "is enabled when the given value is true" do
|
90
|
+
subject.timing(true)
|
91
|
+
expect(subject.timing?).to be_true
|
92
|
+
end
|
93
|
+
|
94
|
+
it "is disabled when the given value is false" do
|
95
|
+
subject.timing(false)
|
96
|
+
expect(subject.timing?).to be_false
|
97
|
+
end
|
98
|
+
|
99
|
+
it "is disabled when the given value is nil" do
|
100
|
+
subject.timing(nil)
|
101
|
+
expect(subject.timing?).to be_false
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|