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,15 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module FacterSpec::Cpuinfo
|
4
|
+
def cpuinfo_fixtures(filename)
|
5
|
+
fixtures('cpuinfo', filename)
|
6
|
+
end
|
7
|
+
|
8
|
+
def cpuinfo_fixture_read(filename)
|
9
|
+
File.read(cpuinfo_fixtures(filename))
|
10
|
+
end
|
11
|
+
|
12
|
+
def cpuinfo_fixture_readlines(filename)
|
13
|
+
cpuinfo_fixture_read(filename).split(/\n/)
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module FacterSpec::WindowsNetwork
|
4
|
+
|
5
|
+
def settingId0
|
6
|
+
'{4AE6B55C-6DD6-427D-A5BB-13535D4BE926}'
|
7
|
+
end
|
8
|
+
|
9
|
+
def settingId1
|
10
|
+
'{38762816-7957-42AC-8DAA-3B08D0C857C7}'
|
11
|
+
end
|
12
|
+
|
13
|
+
def nic_bindings
|
14
|
+
["\\Device\\#{settingId0}", "\\Device\\#{settingId1}" ]
|
15
|
+
end
|
16
|
+
|
17
|
+
def macAddress0
|
18
|
+
'23:24:df:12:12:00'
|
19
|
+
end
|
20
|
+
|
21
|
+
def macAddress1
|
22
|
+
'00:0C:29:0C:9E:9F'
|
23
|
+
end
|
24
|
+
|
25
|
+
def ipAddress0
|
26
|
+
'12.123.12.12'
|
27
|
+
end
|
28
|
+
|
29
|
+
def ipAddress1
|
30
|
+
'12.123.12.13'
|
31
|
+
end
|
32
|
+
|
33
|
+
def subnet0
|
34
|
+
'255.255.255.0'
|
35
|
+
end
|
36
|
+
|
37
|
+
def subnet1
|
38
|
+
'255.255.0.0'
|
39
|
+
end
|
40
|
+
|
41
|
+
def ipv6Address0
|
42
|
+
'2011:0:4137:9e76:2087:77a:53ef:7527'
|
43
|
+
end
|
44
|
+
|
45
|
+
def ipv6Address1
|
46
|
+
'2013:0:4137:9e76:2087:77a:53ef:7527'
|
47
|
+
end
|
48
|
+
|
49
|
+
def ipv6LinkLocal
|
50
|
+
'fe80::2db2:5b42:4e30:b508'
|
51
|
+
end
|
52
|
+
|
53
|
+
def given_a_valid_windows_nic_with_ipv4_and_ipv6
|
54
|
+
stub('network0', :IPAddress => [ipAddress0, ipv6Address0], :SettingID => settingId0, :IPConnectionMetric => 10,:MACAddress => macAddress0,:IPSubnet => [subnet0, '48','2'])
|
55
|
+
end
|
56
|
+
|
57
|
+
def given_two_valid_windows_nics_with_ipv4_and_ipv6
|
58
|
+
{
|
59
|
+
:nic0 => given_a_valid_windows_nic_with_ipv4_and_ipv6,
|
60
|
+
:nic1 => stub('network1', :IPAddress => [ipAddress1, ipv6Address1], :SettingID => settingId1, :IPConnectionMetric => 10,:MACAddress => macAddress1,:IPSubnet => [subnet1, '48','2'])
|
61
|
+
}
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
# A support module for testing files.
|
6
|
+
module PuppetlabsSpec::Files
|
7
|
+
# This code exists only to support tests that run as root, pretty much.
|
8
|
+
# Once they have finally been eliminated this can all go... --daniel 2011-04-08
|
9
|
+
def self.in_tmp(path)
|
10
|
+
tempdir = Dir.tmpdir
|
11
|
+
|
12
|
+
Pathname.new(path).ascend do |dir|
|
13
|
+
return true if File.identical?(tempdir, dir)
|
14
|
+
end
|
15
|
+
|
16
|
+
false
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.cleanup
|
20
|
+
$global_tempfiles ||= []
|
21
|
+
while path = $global_tempfiles.pop do
|
22
|
+
fail "Not deleting tmpfile #{path} outside regular tmpdir" unless in_tmp(path)
|
23
|
+
|
24
|
+
begin
|
25
|
+
FileUtils.rm_r path, :secure => true
|
26
|
+
rescue Errno::ENOENT
|
27
|
+
# nothing to do
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def make_absolute(path)
|
33
|
+
path = File.expand_path(path)
|
34
|
+
path[0] = 'c' if Puppet.features.microsoft_windows?
|
35
|
+
path
|
36
|
+
end
|
37
|
+
|
38
|
+
def tmpfilename(name)
|
39
|
+
# Generate a temporary file, just for the name...
|
40
|
+
source = Tempfile.new(name)
|
41
|
+
path = source.path
|
42
|
+
source.close!
|
43
|
+
|
44
|
+
# ...record it for cleanup,
|
45
|
+
$global_tempfiles ||= []
|
46
|
+
$global_tempfiles << File.expand_path(path)
|
47
|
+
|
48
|
+
# ...and bam.
|
49
|
+
path
|
50
|
+
end
|
51
|
+
|
52
|
+
def tmpdir(name)
|
53
|
+
path = tmpfilename(name)
|
54
|
+
FileUtils.mkdir_p(path)
|
55
|
+
path
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# This module provides some helper methods to assist with fixtures. It's
|
2
|
+
# methods are designed to help when you have a conforming fixture layout so we
|
3
|
+
# get project consistency.
|
4
|
+
module PuppetlabsSpec::Fixtures
|
5
|
+
|
6
|
+
# Returns the joined path of the global FIXTURE_DIR plus any path given to it
|
7
|
+
def fixtures(*rest)
|
8
|
+
File.join(PuppetlabsSpec::FIXTURE_DIR, *rest)
|
9
|
+
end
|
10
|
+
|
11
|
+
# Returns the path to your relative fixture dir. So if your spec test is
|
12
|
+
# <project>/spec/unit/facter/foo_spec.rb then your relative dir will be
|
13
|
+
# <project>/spec/fixture/unit/facter/foo
|
14
|
+
def my_fixture_dir
|
15
|
+
callers = caller
|
16
|
+
while line = callers.shift do
|
17
|
+
next unless found = line.match(%r{/spec/(.*)_spec\.rb:})
|
18
|
+
return fixtures(found[1])
|
19
|
+
end
|
20
|
+
fail "sorry, I couldn't work out your path from the caller stack!"
|
21
|
+
end
|
22
|
+
|
23
|
+
# Given a name, returns the full path of a file from your relative fixture
|
24
|
+
# dir as returned by my_fixture_dir.
|
25
|
+
def my_fixture(name)
|
26
|
+
file = File.join(my_fixture_dir, name)
|
27
|
+
unless File.readable? file then
|
28
|
+
fail "fixture '#{name}' for #{my_fixture_dir} is not readable"
|
29
|
+
end
|
30
|
+
return file
|
31
|
+
end
|
32
|
+
|
33
|
+
# Return the contents of the file using read when given a name. Uses
|
34
|
+
# my_fixture to work out the relative path.
|
35
|
+
def my_fixture_read(name)
|
36
|
+
File.read(my_fixture(name))
|
37
|
+
end
|
38
|
+
|
39
|
+
# Provides a block mechanism for iterating across the files in your fixture
|
40
|
+
# area.
|
41
|
+
def my_fixtures(glob = '*', flags = 0)
|
42
|
+
files = Dir.glob(File.join(my_fixture_dir, glob), flags)
|
43
|
+
unless files.length > 0 then
|
44
|
+
fail "fixture '#{glob}' for #{my_fixture_dir} had no files!"
|
45
|
+
end
|
46
|
+
block_given? and files.each do |file| yield file end
|
47
|
+
files
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
########################################################################
|
4
|
+
# Backward compatibility for Jenkins outdated environment.
|
5
|
+
module RSpec
|
6
|
+
module Matchers
|
7
|
+
module BlockAliases
|
8
|
+
alias_method :to, :should unless method_defined? :to
|
9
|
+
alias_method :to_not, :should_not unless method_defined? :to_not
|
10
|
+
alias_method :not_to, :should_not unless method_defined? :not_to
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
|
16
|
+
########################################################################
|
17
|
+
# Custom matchers...
|
18
|
+
RSpec::Matchers.define :have_matching_element do |expected|
|
19
|
+
match do |actual|
|
20
|
+
actual.any? { |item| item =~ expected }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
RSpec::Matchers.define :exit_with do |expected|
|
26
|
+
actual = nil
|
27
|
+
match do |block|
|
28
|
+
begin
|
29
|
+
block.call
|
30
|
+
rescue SystemExit => e
|
31
|
+
actual = e.status
|
32
|
+
end
|
33
|
+
actual and actual == expected
|
34
|
+
end
|
35
|
+
failure_message_for_should do |block|
|
36
|
+
"expected exit with code #{expected} but " +
|
37
|
+
(actual.nil? ? " exit was not called" : "we exited with #{actual} instead")
|
38
|
+
end
|
39
|
+
failure_message_for_should_not do |block|
|
40
|
+
"expected that exit would not be called with #{expected}"
|
41
|
+
end
|
42
|
+
description do
|
43
|
+
"expect exit with #{expected}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
RSpec::Matchers.define :have_printed do |expected|
|
49
|
+
match do |block|
|
50
|
+
$stderr = $stdout = StringIO.new
|
51
|
+
|
52
|
+
begin
|
53
|
+
block.call
|
54
|
+
ensure
|
55
|
+
$stdout.rewind
|
56
|
+
@actual = $stdout.read
|
57
|
+
|
58
|
+
$stdout = STDOUT
|
59
|
+
$stderr = STDERR
|
60
|
+
end
|
61
|
+
|
62
|
+
if @actual then
|
63
|
+
case expected
|
64
|
+
when String
|
65
|
+
@actual.include? expected
|
66
|
+
when Regexp
|
67
|
+
expected.match @actual
|
68
|
+
else
|
69
|
+
raise ArgumentError, "No idea how to match a #{@actual.class.name}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
failure_message_for_should do |actual|
|
75
|
+
if actual.nil? then
|
76
|
+
"expected #{expected.inspect}, but nothing was printed"
|
77
|
+
else
|
78
|
+
"expected #{expected.inspect} to be printed; got:\n#{actual}"
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
description do
|
83
|
+
"expect #{expected.inspect} to be printed"
|
84
|
+
end
|
85
|
+
|
86
|
+
diffable
|
87
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Define the main module namespace for use by the helper modules
|
2
|
+
module PuppetlabsSpec
|
3
|
+
# FIXTURE_DIR represents the standard locations of all fixture data. Normally
|
4
|
+
# this represents <project>/spec/fixtures. This will be used by the fixtures
|
5
|
+
# library to find relative fixture data.
|
6
|
+
FIXTURE_DIR = File.join(dir = File.expand_path(File.dirname(__FILE__)), \
|
7
|
+
"fixtures") unless defined?(FIXTURE_DIR)
|
8
|
+
end
|
9
|
+
|
10
|
+
# Require all necessary helper libraries so they can be used later
|
11
|
+
require 'puppetlabs_spec/files'
|
12
|
+
require 'puppetlabs_spec/fixtures'
|
13
|
+
require 'puppetlabs_spec/matchers'
|
14
|
+
require 'puppetlabs_spec/verbose'
|
15
|
+
|
16
|
+
RSpec.configure do |config|
|
17
|
+
# Include PuppetlabsSpec helpers so they can be called at convenience
|
18
|
+
config.extend PuppetlabsSpec::Files
|
19
|
+
config.extend PuppetlabsSpec::Fixtures
|
20
|
+
config.include PuppetlabsSpec::Fixtures
|
21
|
+
|
22
|
+
# This will cleanup any files that were created with tmpdir or tmpfile
|
23
|
+
config.after :each do
|
24
|
+
PuppetlabsSpec::Files.cleanup
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# Contexts for stubbing platforms
|
2
|
+
# In a describe or context block, adding :as_platform => :windows or
|
3
|
+
# :as_platform => :posix will stub the relevant facter config, as well as
|
4
|
+
# the behavior of Ruby's filesystem methods by changing File::ALT_SEPARATOR.
|
5
|
+
#
|
6
|
+
#
|
7
|
+
#
|
8
|
+
shared_context "windows", :as_platform => :windows do
|
9
|
+
before :each do
|
10
|
+
Facter.fact(:operatingsystem).stubs(:value).returns('Windows')
|
11
|
+
Facter::Util::Config.stubs(:is_windows?).returns true
|
12
|
+
end
|
13
|
+
|
14
|
+
around do |example|
|
15
|
+
file_alt_separator = File::ALT_SEPARATOR
|
16
|
+
file_path_separator = File::PATH_SEPARATOR
|
17
|
+
# prevent Ruby from warning about changing a constant
|
18
|
+
with_verbose_disabled do
|
19
|
+
File::ALT_SEPARATOR = '\\'
|
20
|
+
File::PATH_SEPARATOR = ';'
|
21
|
+
end
|
22
|
+
begin
|
23
|
+
example.run
|
24
|
+
ensure
|
25
|
+
with_verbose_disabled do
|
26
|
+
File::ALT_SEPARATOR = file_alt_separator
|
27
|
+
File::PATH_SEPARATOR = file_path_separator
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
shared_context "posix", :as_platform => :posix do
|
34
|
+
before :each do
|
35
|
+
Facter::Util::Config.stubs(:is_windows?).returns false
|
36
|
+
end
|
37
|
+
|
38
|
+
around do |example|
|
39
|
+
file_alt_separator = File::ALT_SEPARATOR
|
40
|
+
file_path_separator = File::PATH_SEPARATOR
|
41
|
+
# prevent Ruby from warning about changing a constant
|
42
|
+
with_verbose_disabled do
|
43
|
+
File::ALT_SEPARATOR = nil
|
44
|
+
File::PATH_SEPARATOR = ':'
|
45
|
+
end
|
46
|
+
begin
|
47
|
+
example.run
|
48
|
+
ensure
|
49
|
+
with_verbose_disabled do
|
50
|
+
File::ALT_SEPARATOR = file_alt_separator
|
51
|
+
File::PATH_SEPARATOR = file_path_separator
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'mocha'
|
3
|
+
require 'rspec'
|
4
|
+
require 'facter'
|
5
|
+
require 'fileutils'
|
6
|
+
require 'puppetlabs_spec_helper'
|
7
|
+
require 'pathname'
|
8
|
+
|
9
|
+
# load shared_context within this project's spec directory
|
10
|
+
dir = File.expand_path(File.dirname(__FILE__))
|
11
|
+
$LOAD_PATH.unshift File.join(dir, 'lib')
|
12
|
+
|
13
|
+
Pathname.glob("#{dir}/shared_contexts/*.rb") do |file|
|
14
|
+
require file.relative_path_from(Pathname.new(dir))
|
15
|
+
end
|
16
|
+
|
17
|
+
module LogSpecOrder
|
18
|
+
# Log the spec order to a file, but only if the LOG_SPEC_ORDER environment
|
19
|
+
# variable is set. This could be enabled on Jenkins runs, as it can
|
20
|
+
# be used with Nick L.'s bisect script to help identify and debug
|
21
|
+
# order-dependent spec failures.
|
22
|
+
#
|
23
|
+
# jpartlow 2013-07-05: this was in puppet and I pulled it into facter because
|
24
|
+
# I was seeing similar ordering issues in the specs...and needed to bisect them :/
|
25
|
+
def self.log_spec_order
|
26
|
+
if ENV['LOG_SPEC_ORDER']
|
27
|
+
File.open("./spec_order.txt", "w") do |logfile|
|
28
|
+
RSpec.configuration.files_to_run.each { |f| logfile.puts f }
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Executing here rather than after :suite, so that we can get the order output
|
35
|
+
# even when the issue breaks rspec when specs are first loaded.
|
36
|
+
LogSpecOrder.log_spec_order
|
37
|
+
|
38
|
+
RSpec.configure do |config|
|
39
|
+
config.mock_with :mocha
|
40
|
+
|
41
|
+
if Facter::Util::Config.is_windows?
|
42
|
+
require 'win32console'
|
43
|
+
config.output_stream = $stdout
|
44
|
+
config.error_stream = $stderr
|
45
|
+
config.formatters.each { |f| f.instance_variable_set(:@output, $stdout) }
|
46
|
+
end
|
47
|
+
|
48
|
+
config.before :each do
|
49
|
+
# Ensure that we don't accidentally cache facts and environment
|
50
|
+
# between test cases.
|
51
|
+
Facter::Util::Loader.any_instance.stubs(:load_all)
|
52
|
+
Facter.clear
|
53
|
+
Facter.clear_messages
|
54
|
+
|
55
|
+
# Store any environment variables away to be restored later
|
56
|
+
@old_env = {}
|
57
|
+
ENV.each_key {|k| @old_env[k] = ENV[k]}
|
58
|
+
end
|
59
|
+
|
60
|
+
config.after :each do
|
61
|
+
# Restore environment variables after execution of each test
|
62
|
+
@old_env.each_pair {|k, v| ENV[k] = v}
|
63
|
+
to_remove = ENV.keys.reject {|key| @old_env.include? key }
|
64
|
+
to_remove.each {|key| ENV.delete key }
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
module FacterSpec
|
69
|
+
module ConfigHelper
|
70
|
+
def given_a_configuration_of(config)
|
71
|
+
Facter::Util::Config.stubs(:is_windows?).returns(config[:is_windows])
|
72
|
+
Facter::Util::Config.stubs(:external_facts_dir).returns(config[:external_facts_dir] || "data_dir")
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|