facter 2.0.1.rc1-x86-mingw32
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 +758 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'shared_formats/parses'
|
5
|
+
require 'facter/util/ip'
|
6
|
+
|
7
|
+
shared_examples_for "netmask from ifconfig output" do |platform, address, fixture|
|
8
|
+
it "correctly on #{platform}" do
|
9
|
+
Facter::Util::IP.stubs(:exec_ifconfig).returns(my_fixture_read(fixture))
|
10
|
+
Facter.collection.internal_loader.load(:netmask)
|
11
|
+
|
12
|
+
Facter.fact(:netmask).value.should eq(address)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "The netmask fact" do
|
17
|
+
context "on Linux" do
|
18
|
+
before :each do
|
19
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
20
|
+
end
|
21
|
+
|
22
|
+
example_behavior_for "netmask from ifconfig output",
|
23
|
+
"Archlinux (net-tools 1.60)", "255.255.255.0",
|
24
|
+
"ifconfig_net_tools_1.60.txt"
|
25
|
+
example_behavior_for "netmask from ifconfig output",
|
26
|
+
"Ubuntu 12.04", "255.255.255.255",
|
27
|
+
"ifconfig_ubuntu_1204.txt"
|
28
|
+
end
|
29
|
+
|
30
|
+
context "on Darwin" do
|
31
|
+
before :each do
|
32
|
+
Facter.fact(:kernel).stubs(:value).returns("Darwin")
|
33
|
+
end
|
34
|
+
|
35
|
+
example_behavior_for "netmask from ifconfig output",
|
36
|
+
"Darwin 10.8.5", "255.255.252.0", "darwin_10_8_5.txt"
|
37
|
+
end
|
38
|
+
|
39
|
+
context "on Windows" do
|
40
|
+
require 'facter/util/wmi'
|
41
|
+
require 'facter/util/registry'
|
42
|
+
require 'facter_spec/windows_network'
|
43
|
+
|
44
|
+
include FacterSpec::WindowsNetwork
|
45
|
+
|
46
|
+
before :each do
|
47
|
+
Facter.fact(:kernel).stubs(:value).returns(:windows)
|
48
|
+
Facter::Util::Registry.stubs(:hklm_read).returns(nic_bindings)
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "when you have no active network adapter" do
|
52
|
+
it "should return nil if there are no active (or any) network adapters" do
|
53
|
+
Facter::Util::WMI.expects(:execquery).returns([])
|
54
|
+
|
55
|
+
Facter.value(:netmask).should == nil
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "when you have one network adapter" do
|
60
|
+
it "should return properly" do
|
61
|
+
nic = given_a_valid_windows_nic_with_ipv4_and_ipv6
|
62
|
+
Facter::Util::WMI.expects(:execquery).returns([nic])
|
63
|
+
|
64
|
+
Facter.value(:netmask).should == subnet0
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "when you have more than one network adapter" do
|
69
|
+
it "should return the netmask of the adapter with the lowest IP connection metric (best connection)" do
|
70
|
+
nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
|
71
|
+
nics[:nic1].expects(:IPConnectionMetric).returns(5)
|
72
|
+
Facter::Util::WMI.expects(:execquery).returns(nics.values)
|
73
|
+
|
74
|
+
Facter.value(:netmask).should == subnet1
|
75
|
+
end
|
76
|
+
|
77
|
+
context "when the IP connection metric is the same" do
|
78
|
+
it "should return the netmask of the adapter with the lowest binding order" do
|
79
|
+
nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
|
80
|
+
Facter::Util::WMI.expects(:execquery).returns(nics.values)
|
81
|
+
|
82
|
+
Facter.value(:netmask).should == subnet0
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should return the netmask of the adapter with the lowest binding even if the adapter is not first" do
|
86
|
+
nics = given_two_valid_windows_nics_with_ipv4_and_ipv6
|
87
|
+
Facter::Util::WMI.expects(:execquery).returns(nics.values)
|
88
|
+
Facter::Util::Registry.stubs(:hklm_read).returns(["\\Device\\#{settingId1}", "\\Device\\#{settingId0}" ])
|
89
|
+
|
90
|
+
Facter.value(:netmask).should == subnet1
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe "Operating System fact" do
|
6
|
+
|
7
|
+
before :each do
|
8
|
+
FileTest.stubs(:exists?).returns false
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should default to the kernel name" do
|
12
|
+
Facter.fact(:kernel).stubs(:value).returns("Nutmeg")
|
13
|
+
|
14
|
+
Facter.fact(:operatingsystem).value.should == "Nutmeg"
|
15
|
+
end
|
16
|
+
it "should be ESXi for VMkernel" do
|
17
|
+
Facter.fact(:kernel).stubs(:value).returns("VMkernel")
|
18
|
+
|
19
|
+
Facter.fact(:operatingsystem).value.should == "ESXi"
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "on Solaris variants" do
|
23
|
+
before :each do
|
24
|
+
Facter.fact(:kernel).stubs(:value).returns("SunOS")
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should be Nexenta if /etc/debian_version is present" do
|
28
|
+
FileTest.expects(:exists?).with("/etc/debian_version").returns true
|
29
|
+
Facter.fact(:operatingsystem).value.should == "Nexenta"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should be Solaris if /etc/debian_version is missing and uname -v failed to match" do
|
33
|
+
FileTest.expects(:exists?).with("/etc/debian_version").returns false
|
34
|
+
Facter.fact(:operatingsystem).value.should == "Solaris"
|
35
|
+
end
|
36
|
+
|
37
|
+
{
|
38
|
+
"SmartOS" => "joyent_20120629T002039Z",
|
39
|
+
"OmniOS" => "omnios-dda4bb3",
|
40
|
+
"OpenIndiana" => "oi_151a",
|
41
|
+
}.each_pair do |distribution, string|
|
42
|
+
it "should be #{distribution} if uname -v is '#{string}'" do
|
43
|
+
Facter::Core::Execution.stubs(:exec).with('uname -v').returns(string)
|
44
|
+
Facter.fact(:operatingsystem).value.should == distribution
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe "on Linux" do
|
50
|
+
before :each do
|
51
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
52
|
+
|
53
|
+
# Always stub lsbdistid by default, so tests work on Ubuntu
|
54
|
+
Facter.stubs(:value).with(:lsbdistid).returns(nil)
|
55
|
+
end
|
56
|
+
|
57
|
+
{
|
58
|
+
"Debian" => "/etc/debian_version",
|
59
|
+
"Gentoo" => "/etc/gentoo-release",
|
60
|
+
"Fedora" => "/etc/fedora-release",
|
61
|
+
"Mandriva" => "/etc/mandriva-release",
|
62
|
+
"Mandrake" => "/etc/mandrake-release",
|
63
|
+
"MeeGo" => "/etc/meego-release",
|
64
|
+
"Archlinux" => "/etc/arch-release",
|
65
|
+
"OracleLinux" => "/etc/oracle-release",
|
66
|
+
"OpenWrt" => "/etc/openwrt_release",
|
67
|
+
"Alpine" => "/etc/alpine-release",
|
68
|
+
"VMWareESX" => "/etc/vmware-release",
|
69
|
+
"Bluewhite64" => "/etc/bluewhite64-version",
|
70
|
+
"Slamd64" => "/etc/slamd64-version",
|
71
|
+
"Slackware" => "/etc/slackware-version",
|
72
|
+
"Amazon" => "/etc/system-release",
|
73
|
+
}.each_pair do |distribution, releasefile|
|
74
|
+
it "should be #{distribution} if #{releasefile} exists" do
|
75
|
+
FileTest.expects(:exists?).with(releasefile).returns true
|
76
|
+
Facter.fact(:operatingsystem).value.should == distribution
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "depending on LSB release information" do
|
81
|
+
before :each do
|
82
|
+
Facter.collection.internal_loader.load(:lsb)
|
83
|
+
end
|
84
|
+
|
85
|
+
it "on Ubuntu should use the lsbdistid fact" do
|
86
|
+
FileUtils.stubs(:exists?).with("/etc/debian_version").returns true
|
87
|
+
|
88
|
+
Facter.stubs(:value).with(:lsbdistid).returns("Ubuntu")
|
89
|
+
Facter.fact(:operatingsystem).value.should == "Ubuntu"
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
# Check distributions that rely on the contents of /etc/redhat-release
|
96
|
+
{
|
97
|
+
"RedHat" => "Red Hat Enterprise Linux Server release 6.0 (Santiago)",
|
98
|
+
"CentOS" => "CentOS release 5.6 (Final)",
|
99
|
+
"Scientific" => "Scientific Linux release 6.0 (Carbon)",
|
100
|
+
"SLC" => "Scientific Linux CERN SLC release 5.7 (Boron)",
|
101
|
+
"Ascendos" => "Ascendos release 6.0 (Nameless)",
|
102
|
+
"CloudLinux" => "CloudLinux Server release 5.5",
|
103
|
+
"XenServer" => "XenServer release 5.6.0-31188p (xenenterprise)",
|
104
|
+
}.each_pair do |operatingsystem, string|
|
105
|
+
it "should be #{operatingsystem} based on /etc/redhat-release contents #{string}" do
|
106
|
+
FileTest.expects(:exists?).with("/etc/redhat-release").returns true
|
107
|
+
File.expects(:read).with("/etc/redhat-release").returns string
|
108
|
+
|
109
|
+
Facter.fact(:operatingsystem).value.should == operatingsystem
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "Oracle variant" do
|
114
|
+
it "should be OVS if /etc/ovs-release exists" do
|
115
|
+
Facter.stubs(:value).with(:lsbdistid)
|
116
|
+
FileTest.expects(:exists?).with("/etc/enterprise-release").returns true
|
117
|
+
FileTest.expects(:exists?).with("/etc/ovs-release").returns true
|
118
|
+
Facter.fact(:operatingsystem).value.should == "OVS"
|
119
|
+
end
|
120
|
+
|
121
|
+
it "should be OEL if /etc/ovs-release doesn't exist" do
|
122
|
+
FileTest.expects(:exists?).with("/etc/enterprise-release").returns true
|
123
|
+
FileTest.expects(:exists?).with("/etc/ovs-release").returns false
|
124
|
+
Facter.fact(:operatingsystem).value.should == "OEL"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should identify VMWare ESX" do
|
129
|
+
Facter.stubs(:value).with(:lsbdistid).returns(nil)
|
130
|
+
|
131
|
+
FileTest.expects(:exists?).with("/etc/vmware-release").returns true
|
132
|
+
Facter.fact(:operatingsystem).value.should == "VMWareESX"
|
133
|
+
end
|
134
|
+
|
135
|
+
it "should differentiate between Scientific Linux CERN and Scientific Linux" do
|
136
|
+
FileTest.expects(:exists?).with("/etc/redhat-release").returns true
|
137
|
+
File.expects(:read).with("/etc/redhat-release").returns("Scientific Linux CERN SLC 5.7 (Boron)")
|
138
|
+
Facter.fact(:operatingsystem).value.should == "SLC"
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#! /usr/bin/env ruby -S rspec
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'facter'
|
4
|
+
|
5
|
+
describe "OS Major Release fact" do
|
6
|
+
['Amazon','CentOS','CloudLinux','Debian','Fedora','OEL','OracleLinux','OVS','RedHat','Scientific','SLC'].each do |operatingsystem|
|
7
|
+
context "on #{operatingsystem} operatingsystems" do
|
8
|
+
it "should be derived from operatingsystemrelease" do
|
9
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
10
|
+
Facter.fact(:operatingsystem).stubs(:value).returns(operatingsystem)
|
11
|
+
Facter.fact(:operatingsystemrelease).stubs(:value).returns("6.3")
|
12
|
+
Facter.fact(:operatingsystemmajrelease).value.should == "6"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,226 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'facter/util/file_read'
|
4
|
+
require 'spec_helper'
|
5
|
+
|
6
|
+
describe "Operating System Release fact" do
|
7
|
+
|
8
|
+
before do
|
9
|
+
Facter.clear
|
10
|
+
end
|
11
|
+
|
12
|
+
after do
|
13
|
+
Facter.clear
|
14
|
+
end
|
15
|
+
|
16
|
+
test_cases = {
|
17
|
+
"OpenWrt" => "/etc/openwrt_version",
|
18
|
+
"CentOS" => "/etc/redhat-release",
|
19
|
+
"RedHat" => "/etc/redhat-release",
|
20
|
+
"Scientific" => "/etc/redhat-release",
|
21
|
+
"Fedora" => "/etc/fedora-release",
|
22
|
+
"MeeGo" => "/etc/meego-release",
|
23
|
+
"OEL" => "/etc/enterprise-release",
|
24
|
+
"oel" => "/etc/enterprise-release",
|
25
|
+
"OVS" => "/etc/ovs-release",
|
26
|
+
"ovs" => "/etc/ovs-release",
|
27
|
+
"OracleLinux" => "/etc/oracle-release",
|
28
|
+
"Ascendos" => "/etc/redhat-release",
|
29
|
+
}
|
30
|
+
|
31
|
+
test_cases.each do |system, file|
|
32
|
+
describe "with operatingsystem reported as #{system.inspect}" do
|
33
|
+
it "should read the #{file.inspect} file" do
|
34
|
+
Facter.fact(:operatingsystem).stubs(:value).returns(system)
|
35
|
+
|
36
|
+
Facter::Util::FileRead.expects(:read).with(file).at_least(1)
|
37
|
+
|
38
|
+
Facter.fact(:operatingsystemrelease).value
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it "does not include trailing whitespace on Debian" do
|
44
|
+
Facter.fact(:operatingsystem).stubs(:value).returns("Debian")
|
45
|
+
Facter::Util::FileRead.stubs(:read).returns("6.0.6\n")
|
46
|
+
Facter.fact(:operatingsystemrelease).value.should == "6.0.6"
|
47
|
+
end
|
48
|
+
|
49
|
+
it "for VMWareESX it should run the vmware -v command" do
|
50
|
+
Facter.fact(:kernel).stubs(:value).returns("VMkernel")
|
51
|
+
Facter.fact(:kernelrelease).stubs(:value).returns("4.1.0")
|
52
|
+
Facter.fact(:operatingsystem).stubs(:value).returns("VMwareESX")
|
53
|
+
|
54
|
+
Facter::Core::Execution.stubs(:exec).with('vmware -v').returns('foo')
|
55
|
+
|
56
|
+
Facter.fact(:operatingsystemrelease).value
|
57
|
+
end
|
58
|
+
|
59
|
+
it "for Alpine it should use the contents of /etc/alpine-release" do
|
60
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
61
|
+
Facter.fact(:operatingsystem).stubs(:value).returns("Alpine")
|
62
|
+
|
63
|
+
File.expects(:read).with("/etc/alpine-release").returns("foo")
|
64
|
+
|
65
|
+
Facter.fact(:operatingsystemrelease).value.should == "foo"
|
66
|
+
end
|
67
|
+
|
68
|
+
describe "with operatingsystem reported as Solaris" do
|
69
|
+
|
70
|
+
before :each do
|
71
|
+
Facter.fact(:kernel).stubs(:value).returns('SunOS')
|
72
|
+
Facter.fact(:osfamily).stubs(:value).returns('Solaris')
|
73
|
+
end
|
74
|
+
|
75
|
+
{
|
76
|
+
'Solaris 8 s28_38shwp2 SPARC' => '28',
|
77
|
+
'Solaris 8 6/00 s28s_u1wos_08 SPARC' => '28_u1',
|
78
|
+
'Solaris 8 10/00 s28s_u2wos_11b SPARC' => '28_u2',
|
79
|
+
'Solaris 8 1/01 s28s_u3wos_08 SPARC' => '28_u3',
|
80
|
+
'Solaris 8 4/01 s28s_u4wos_08 SPARC' => '28_u4',
|
81
|
+
'Solaris 8 7/01 s28s_u5wos_08 SPARC' => '28_u5',
|
82
|
+
'Solaris 8 10/01 s28s_u6wos_08a SPARC' => '28_u6',
|
83
|
+
'Solaris 8 2/02 s28s_u7wos_08a SPARC' => '28_u7',
|
84
|
+
'Solaris 8 HW 12/02 s28s_hw1wos_06a SPARC' => '28',
|
85
|
+
'Solaris 8 HW 5/03 s28s_hw2wos_06a SPARC' => '28',
|
86
|
+
'Solaris 8 HW 7/03 s28s_hw3wos_05a SPARC' => '28',
|
87
|
+
'Solaris 8 2/04 s28s_hw4wos_05a SPARC' => '28',
|
88
|
+
'Solaris 9 s9_58shwpl3 SPARC' => '9',
|
89
|
+
'Solaris 9 9/02 s9s_u1wos_08b SPARC' => '9_u1',
|
90
|
+
'Solaris 9 12/02 s9s_u2wos_10 SPARC' => '9_u2',
|
91
|
+
'Solaris 9 4/03 s9s_u3wos_08 SPARC' => '9_u3',
|
92
|
+
'Solaris 9 8/03 s9s_u4wos_08a SPARC' => '9_u4',
|
93
|
+
'Solaris 9 12/03 s9s_u5wos_08b SPARC' => '9_u5',
|
94
|
+
'Solaris 9 4/04 s9s_u6wos_08a SPARC' => '9_u6',
|
95
|
+
'Solaris 9 9/04 s9s_u7wos_09 SPARC' => '9_u7',
|
96
|
+
'Solaris 9 9/05 s9s_u8wos_05 SPARC' => '9_u8',
|
97
|
+
'Solaris 9 9/05 HW s9s_u9wos_06b SPARC' => '9_u9',
|
98
|
+
'Solaris 10 3/05 s10_74L2a SPARC' => '10',
|
99
|
+
'Solaris 10 3/05 HW1 s10s_wos_74L2a SPARC' => '10',
|
100
|
+
'Solaris 10 3/05 HW2 s10s_hw2wos_05 SPARC' => '10',
|
101
|
+
'Solaris 10 1/06 s10s_u1wos_19a SPARC' => '10_u1',
|
102
|
+
'Solaris 10 6/06 s10s_u2wos_09a SPARC' => '10_u2',
|
103
|
+
'Solaris 10 11/06 s10s_u3wos_10 SPARC' => '10_u3',
|
104
|
+
'Solaris 10 8/07 s10s_u4wos_12b SPARC' => '10_u4',
|
105
|
+
'Solaris 10 5/08 s10s_u5wos_10 SPARC' => '10_u5',
|
106
|
+
'Solaris 10 10/08 s10s_u6wos_07b SPARC' => '10_u6',
|
107
|
+
'Solaris 10 5/09 s10s_u7wos_08 SPARC' => '10_u7',
|
108
|
+
'Solaris 10 10/09 s10s_u8wos_08a SPARC' => '10_u8',
|
109
|
+
'Oracle Solaris 10 9/10 s10s_u9wos_14a SPARC' => '10_u9',
|
110
|
+
'Oracle Solaris 10 8/11 s10s_u10wos_17b SPARC' => '10_u10',
|
111
|
+
'Solaris 10 3/05 HW1 s10x_wos_74L2a X86' => '10',
|
112
|
+
'Solaris 10 1/06 s10x_u1wos_19a X86' => '10_u1',
|
113
|
+
'Solaris 10 6/06 s10x_u2wos_09a X86' => '10_u2',
|
114
|
+
'Solaris 10 11/06 s10x_u3wos_10 X86' => '10_u3',
|
115
|
+
'Solaris 10 8/07 s10x_u4wos_12b X86' => '10_u4',
|
116
|
+
'Solaris 10 5/08 s10x_u5wos_10 X86' => '10_u5',
|
117
|
+
'Solaris 10 10/08 s10x_u6wos_07b X86' => '10_u6',
|
118
|
+
'Solaris 10 5/09 s10x_u7wos_08 X86' => '10_u7',
|
119
|
+
'Solaris 10 10/09 s10x_u8wos_08a X86' => '10_u8',
|
120
|
+
'Oracle Solaris 10 9/10 s10x_u9wos_14a X86' => '10_u9',
|
121
|
+
'Oracle Solaris 10 8/11 s10x_u10wos_17b X86' => '10_u10',
|
122
|
+
}.each do |fakeinput,expected_output|
|
123
|
+
it "should be able to parse a release of #{fakeinput}" do
|
124
|
+
Facter::Util::FileRead.stubs(:read).with('/etc/release').returns fakeinput
|
125
|
+
Facter.fact(:operatingsystemrelease).value.should == expected_output
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
context "malformed /etc/release files" do
|
130
|
+
it "should fallback to the kernelrelease fact if /etc/release is empty" do
|
131
|
+
Facter::Util::FileRead.stubs(:read).with('/etc/release').
|
132
|
+
raises EOFError
|
133
|
+
Facter.expects(:warn).with(regexp_matches(/Could not retrieve fact='operatingsystemrelease'.*EOFError/))
|
134
|
+
Facter.fact(:operatingsystemrelease).value.
|
135
|
+
should == Facter.fact(:kernelrelease).value
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should fallback to the kernelrelease fact if /etc/release is not present" do
|
139
|
+
Facter::Util::FileRead.stubs(:read).with('/etc/release').
|
140
|
+
raises Errno::ENOENT
|
141
|
+
Facter.expects(:warn).with(regexp_matches(/Could not retrieve fact='operatingsystemrelease'.*No such file or directory/))
|
142
|
+
Facter.fact(:operatingsystemrelease).value.
|
143
|
+
should == Facter.fact(:kernelrelease).value
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should fallback to the kernelrelease fact if /etc/release cannot be parsed" do
|
147
|
+
Facter::Util::FileRead.stubs(:read).with('/etc/release').
|
148
|
+
returns 'some future release string'
|
149
|
+
Facter.fact(:operatingsystemrelease).value.
|
150
|
+
should == Facter.fact(:kernelrelease).value
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
describe "with operatingsystem reported as Windows" do
|
156
|
+
require 'facter/util/wmi'
|
157
|
+
before do
|
158
|
+
Facter.fact(:kernel).stubs(:value).returns("windows")
|
159
|
+
end
|
160
|
+
|
161
|
+
{
|
162
|
+
['5.2.3790', 1] => "XP",
|
163
|
+
['6.0.6002', 1] => "Vista",
|
164
|
+
['6.0.6002', 2] => "2008",
|
165
|
+
['6.0.6002', 3] => "2008",
|
166
|
+
['6.1.7601', 1] => "7",
|
167
|
+
['6.1.7601', 2] => "2008 R2",
|
168
|
+
['6.1.7601', 3] => "2008 R2",
|
169
|
+
['6.2.9200', 1] => "8",
|
170
|
+
['6.2.9200', 2] => "2012",
|
171
|
+
['6.2.9200', 3] => "2012",
|
172
|
+
}.each do |os_values, expected_output|
|
173
|
+
it "should be #{expected_output} with Version #{os_values[0]} and ProductType #{os_values[1]}" do
|
174
|
+
os = mock('os', :version => os_values[0], :producttype => os_values[1])
|
175
|
+
Facter::Util::WMI.expects(:execquery).returns([os])
|
176
|
+
Facter.fact(:operatingsystemrelease).value.should == expected_output
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
{
|
181
|
+
['5.2.3790', 2, ""] => "2003",
|
182
|
+
['5.2.3790', 2, "R2"] => "2003 R2",
|
183
|
+
['5.2.3790', 3, ""] => "2003",
|
184
|
+
['5.2.3790', 3, "R2"] => "2003 R2",
|
185
|
+
}.each do |os_values, expected_output|
|
186
|
+
it "should be #{expected_output} with Version #{os_values[0]} and ProductType #{os_values[1]} and OtherTypeDescription #{os_values[2]}" do
|
187
|
+
os = mock('os', :version => os_values[0], :producttype => os_values[1], :othertypedescription => os_values[2])
|
188
|
+
Facter::Util::WMI.expects(:execquery).returns([os])
|
189
|
+
Facter.fact(:operatingsystemrelease).value.should == expected_output
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
it "reports '2003' if the WMI method othertypedescription does not exist" do
|
194
|
+
os = mock('os', :version => '5.2.3790', :producttype => 2)
|
195
|
+
os.stubs(:othertypedescription).raises(NoMethodError)
|
196
|
+
|
197
|
+
Facter::Util::WMI.expects(:execquery).returns([os])
|
198
|
+
Facter.fact(:operatingsystemrelease).value.should == '2003'
|
199
|
+
end
|
200
|
+
|
201
|
+
context "Unknown Windows version" do
|
202
|
+
before :each do
|
203
|
+
Facter.fact(:kernelrelease).stubs(:value).returns("X.Y.ZZZZ")
|
204
|
+
end
|
205
|
+
|
206
|
+
it "should be kernel version value with unknown values " do
|
207
|
+
os = mock('os', :version => "X.Y.ZZZZ")
|
208
|
+
Facter::Util::WMI.expects(:execquery).returns([os])
|
209
|
+
Facter.fact(:operatingsystemrelease).value.should == "X.Y.ZZZZ"
|
210
|
+
end
|
211
|
+
end
|
212
|
+
end
|
213
|
+
|
214
|
+
context "Ubuntu" do
|
215
|
+
let(:lsbrelease) { 'DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=10.04\nDISTRIB_CODENAME=lucid\nDISTRIB_DESCRIPTION="Ubuntu 10.04.4 LTS"'}
|
216
|
+
before :each do
|
217
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
218
|
+
Facter.fact(:operatingsystem).stubs(:value).returns("Ubuntu")
|
219
|
+
end
|
220
|
+
|
221
|
+
it "Returns only the major and minor version (not patch version)" do
|
222
|
+
Facter::Util::FileRead.stubs(:read).with("/etc/lsb-release").returns(lsbrelease)
|
223
|
+
Facter.fact(:operatingsystemrelease).value.should == "10.04"
|
224
|
+
end
|
225
|
+
end
|
226
|
+
end
|