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,131 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/util/values'
|
3
|
+
|
4
|
+
describe Facter::Util::Values do
|
5
|
+
describe 'deep_freeze' do
|
6
|
+
it "it dups and freezes strings" do
|
7
|
+
input = "hi"
|
8
|
+
output = described_class.deep_freeze(input)
|
9
|
+
expect(input).to_not be_frozen
|
10
|
+
expect(output).to be_frozen
|
11
|
+
end
|
12
|
+
|
13
|
+
it "freezes arrays and each element in the array" do
|
14
|
+
input = %w[one two three]
|
15
|
+
output = described_class.deep_freeze(input)
|
16
|
+
|
17
|
+
input.each { |entry| expect(entry).to_not be_frozen }
|
18
|
+
output.each { |entry| expect(entry).to be_frozen }
|
19
|
+
|
20
|
+
expect(input).to_not be_frozen
|
21
|
+
expect(output).to be_frozen
|
22
|
+
end
|
23
|
+
|
24
|
+
it "freezes hashes and each key and value in the hash" do
|
25
|
+
input = {'one' => 'two', 'three' => 'four'}
|
26
|
+
|
27
|
+
output = described_class.deep_freeze(input)
|
28
|
+
|
29
|
+
input.each_pair do |key, val|
|
30
|
+
# Ruby freezes all string keys, so these will always be frozen
|
31
|
+
expect(key).to be_frozen
|
32
|
+
expect(val).to_not be_frozen
|
33
|
+
end
|
34
|
+
|
35
|
+
output.each_pair do |key, val|
|
36
|
+
expect(key).to be_frozen
|
37
|
+
expect(val).to be_frozen
|
38
|
+
end
|
39
|
+
|
40
|
+
expect(input).to_not be_frozen
|
41
|
+
expect(output).to be_frozen
|
42
|
+
end
|
43
|
+
|
44
|
+
it "raises an error when given a structure that cannot be deeply frozen" do
|
45
|
+
expect {
|
46
|
+
described_class.deep_freeze(Set.new)
|
47
|
+
}.to raise_error(Facter::Util::Values::DeepFreezeError, /Cannot deep freeze.*Set/)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe 'deep_merge' do
|
52
|
+
it "non-destructively concatenates arrays" do
|
53
|
+
first = %w[foo bar]
|
54
|
+
second = %w[baz quux]
|
55
|
+
|
56
|
+
expect(described_class.deep_merge(first, second)).to eq %w[foo bar baz quux]
|
57
|
+
expect(first).to eq %w[foo bar]
|
58
|
+
expect(second).to eq %w[baz quux]
|
59
|
+
end
|
60
|
+
|
61
|
+
it "returns the left value if the right value is nil" do
|
62
|
+
expect(described_class.deep_merge("left", nil)).to eq "left"
|
63
|
+
end
|
64
|
+
|
65
|
+
it "returns the right value if the left value is nil" do
|
66
|
+
expect(described_class.deep_merge(nil, "right")).to eq "right"
|
67
|
+
end
|
68
|
+
|
69
|
+
it "returns nil if both values are nil" do
|
70
|
+
expect(described_class.deep_merge(nil, nil)).to be_nil
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "with hashes" do
|
74
|
+
it "merges when keys do not overlap" do
|
75
|
+
|
76
|
+
first = {:foo => 'bar'}
|
77
|
+
second = {:baz => 'quux'}
|
78
|
+
|
79
|
+
expect(described_class.deep_merge(first, second)).to eq(:foo => 'bar', :baz => 'quux')
|
80
|
+
expect(first).to eq(:foo => 'bar')
|
81
|
+
expect(second).to eq(:baz => 'quux')
|
82
|
+
end
|
83
|
+
|
84
|
+
it "concatenates arrays when both keys are arrays" do
|
85
|
+
first = {:foo => %w[bar]}
|
86
|
+
second = {:foo => %w[baz quux]}
|
87
|
+
|
88
|
+
expect(described_class.deep_merge(first, second)).to eq(:foo => %w[bar baz quux])
|
89
|
+
expect(first).to eq(:foo => %w[bar])
|
90
|
+
expect(second).to eq(:foo => %w[baz quux])
|
91
|
+
end
|
92
|
+
|
93
|
+
it "merges hashes when both keys are hashes" do
|
94
|
+
first = {:foo => {:pb => 'lead', :ag => 'silver'}}
|
95
|
+
second = {:foo => {:au => 'gold', :na => 'sodium'}}
|
96
|
+
|
97
|
+
expect(described_class.deep_merge(first, second)).to eq(
|
98
|
+
:foo => {
|
99
|
+
:pb => 'lead',
|
100
|
+
:ag => 'silver',
|
101
|
+
:au => 'gold',
|
102
|
+
:na => 'sodium'
|
103
|
+
}
|
104
|
+
)
|
105
|
+
end
|
106
|
+
|
107
|
+
it "prints the data structure path if an error is raised" do
|
108
|
+
first = {:foo => {:bar => {:baz => {:quux => true}}}}
|
109
|
+
second = {:foo => {:bar => {:baz => {:quux => false}}}}
|
110
|
+
|
111
|
+
expect {
|
112
|
+
described_class.deep_merge(first, second)
|
113
|
+
}.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge .*at .*foo.*bar.*baz.*quux/)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
describe "with unmergable scalar values" do
|
118
|
+
[
|
119
|
+
[true, false],
|
120
|
+
[1, 2],
|
121
|
+
['up', 'down']
|
122
|
+
].each do |(left, right)|
|
123
|
+
it "raises an error when merging #{left}:#{left.class} and #{right}:#{right.class}" do
|
124
|
+
expect {
|
125
|
+
described_class.deep_merge(left, right)
|
126
|
+
}.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}/)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
@@ -0,0 +1,294 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/virtual'
|
5
|
+
require 'stringio'
|
6
|
+
|
7
|
+
describe Facter::Util::Virtual do
|
8
|
+
|
9
|
+
after do
|
10
|
+
Facter.clear
|
11
|
+
end
|
12
|
+
it "should detect openvz" do
|
13
|
+
FileTest.stubs(:directory?).with("/proc/vz").returns(true)
|
14
|
+
Dir.stubs(:glob).with("/proc/vz/*").returns(['vzquota'])
|
15
|
+
Facter::Util::Virtual.should be_openvz
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should not detect openvz when /proc/lve/list is present" do
|
19
|
+
FileTest.stubs(:file?).with("/proc/lve/list").returns(true)
|
20
|
+
Facter::Util::Virtual.should_not be_openvz
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should not detect openvz when /proc/vz/ is empty" do
|
24
|
+
FileTest.stubs(:file?).with("/proc/lve/list").returns(false)
|
25
|
+
FileTest.stubs(:directory?).with("/proc/vz").returns(true)
|
26
|
+
Dir.stubs(:glob).with("/proc/vz/*").returns([])
|
27
|
+
Facter::Util::Virtual.should_not be_openvz
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should identify openvzhn when /proc/self/status has envID of 0" do
|
31
|
+
Facter::Util::Virtual.stubs(:openvz?).returns(true)
|
32
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
|
33
|
+
Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 0")
|
34
|
+
Facter::Util::Virtual.openvz_type().should == "openvzhn"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should identify openvzve when /proc/self/status has envID of 0" do
|
38
|
+
Facter::Util::Virtual.stubs(:openvz?).returns(true)
|
39
|
+
FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
|
40
|
+
Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 666")
|
41
|
+
Facter::Util::Virtual.openvz_type().should == "openvzve"
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should not attempt to identify openvz when /proc/self/status has no envID" do
|
45
|
+
Facter::Util::Virtual.stubs(:openvz?).returns(true)
|
46
|
+
FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
|
47
|
+
Facter::Core::Execution.stubs(:exec).with('grep "envID" /proc/self/status').returns("")
|
48
|
+
Facter::Util::Virtual.openvz_type().should be_nil
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should identify Solaris zones when non-global zone" do
|
52
|
+
Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("somezone")
|
53
|
+
Facter::Util::Virtual.should be_zone
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should not identify Solaris zones when global zone" do
|
57
|
+
Facter::Core::Execution.stubs(:exec).with("/sbin/zonename").returns("global")
|
58
|
+
Facter::Util::Virtual.should_not be_zone
|
59
|
+
end
|
60
|
+
|
61
|
+
it "(#14522) handles the unencoded binary data in /proc/self/status on Solaris" do
|
62
|
+
Facter.fact(:osfamily).stubs(:value).returns("Solaris")
|
63
|
+
File.stubs(:open).with('/proc/self/status', 'rb').returns(solaris_proc_self_status)
|
64
|
+
FileTest.stubs(:exists?).with('/proc/self/status').returns(true)
|
65
|
+
|
66
|
+
Facter::Util::Virtual.vserver?.should eq(false)
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should not detect vserver if no self status" do
|
70
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(false)
|
71
|
+
Facter::Util::Virtual.should_not be_vserver
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should detect vserver when vxid present in process status" do
|
75
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
|
76
|
+
File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("VxID: 42\n"))
|
77
|
+
Facter::Util::Virtual.should be_vserver
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should detect vserver when s_context present in process status" do
|
81
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
|
82
|
+
File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("s_context: 42\n"))
|
83
|
+
Facter::Util::Virtual.should be_vserver
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should not detect vserver when vserver flags not present in process status" do
|
87
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
|
88
|
+
File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new("wibble: 42\n"))
|
89
|
+
Facter::Util::Virtual.should_not be_vserver
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should identify kvm" do
|
93
|
+
Facter::Util::Virtual.stubs(:kvm?).returns(true)
|
94
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("something")
|
95
|
+
Facter::Util::Virtual.kvm_type().should == "kvm"
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should be able to detect RHEV via sysfs on Linux" do
|
99
|
+
# Fake files are always hard to stub. :/
|
100
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
101
|
+
returns("RHEV Hypervisor")
|
102
|
+
|
103
|
+
Facter::Util::Virtual.should be_rhev
|
104
|
+
end
|
105
|
+
|
106
|
+
it "should be able to detect RHEV via sysfs on Linux improperly" do
|
107
|
+
# Fake files are always hard to stub. :/
|
108
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
109
|
+
returns("something else")
|
110
|
+
|
111
|
+
Facter::Util::Virtual.should_not be_rhev
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should be able to detect ovirt via sysfs on Linux" do
|
115
|
+
# Fake files are always hard to stub. :/
|
116
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
117
|
+
returns("oVirt Node")
|
118
|
+
|
119
|
+
Facter::Util::Virtual.should be_ovirt
|
120
|
+
end
|
121
|
+
|
122
|
+
it "should be able to detect ovirt via sysfs on Linux improperly" do
|
123
|
+
# Fake files are always hard to stub. :/
|
124
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
125
|
+
returns("something else")
|
126
|
+
|
127
|
+
Facter::Util::Virtual.should_not be_ovirt
|
128
|
+
end
|
129
|
+
|
130
|
+
fixture_path = fixtures('virtual', 'proc_self_status')
|
131
|
+
|
132
|
+
test_cases = [
|
133
|
+
[File.join(fixture_path, 'vserver_2_1', 'guest'), true, 'vserver 2.1 guest'],
|
134
|
+
[File.join(fixture_path, 'vserver_2_1', 'host'), true, 'vserver 2.1 host'],
|
135
|
+
[File.join(fixture_path, 'vserver_2_3', 'guest'), true, 'vserver 2.3 guest'],
|
136
|
+
[File.join(fixture_path, 'vserver_2_3', 'host'), true, 'vserver 2.3 host']
|
137
|
+
]
|
138
|
+
|
139
|
+
test_cases.each do |status_file, expected, description|
|
140
|
+
describe "with /proc/self/status from #{description}" do
|
141
|
+
it "should detect vserver as #{expected.inspect}" do
|
142
|
+
status = File.read(status_file)
|
143
|
+
FileTest.stubs(:exists?).with("/proc/self/status").returns(true)
|
144
|
+
File.stubs(:open).with("/proc/self/status", "rb").returns(StringIO.new(status))
|
145
|
+
Facter::Util::Virtual.vserver?.should == expected
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
it "reads dmi entries as ascii data" do
|
151
|
+
entries_file = my_fixture('invalid_unicode_dmi_entries')
|
152
|
+
expected_contents = 'Virtual'
|
153
|
+
|
154
|
+
entries = Facter::Util::Virtual.read_sysfs_dmi_entries(entries_file)
|
155
|
+
|
156
|
+
entries.should =~ /#{expected_contents}/
|
157
|
+
end
|
158
|
+
|
159
|
+
it "should identify vserver_host when /proc/virtual exists" do
|
160
|
+
Facter::Util::Virtual.expects(:vserver?).returns(true)
|
161
|
+
FileTest.stubs(:exists?).with("/proc/virtual").returns(true)
|
162
|
+
Facter::Util::Virtual.vserver_type().should == "vserver_host"
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should identify vserver_type as vserver when /proc/virtual does not exist" do
|
166
|
+
Facter::Util::Virtual.expects(:vserver?).returns(true)
|
167
|
+
FileTest.stubs(:exists?).with("/proc/virtual").returns(false)
|
168
|
+
Facter::Util::Virtual.vserver_type().should == "vserver"
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should detect xen when /proc/sys/xen exists" do
|
172
|
+
FileTest.expects(:exists?).with("/proc/sys/xen").returns(true)
|
173
|
+
Facter::Util::Virtual.should be_xen
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should detect xen when /sys/bus/xen exists" do
|
177
|
+
FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
|
178
|
+
FileTest.expects(:exists?).with("/sys/bus/xen").returns(true)
|
179
|
+
Facter::Util::Virtual.should be_xen
|
180
|
+
end
|
181
|
+
|
182
|
+
it "should detect xen when /proc/xen exists" do
|
183
|
+
FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
|
184
|
+
FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
|
185
|
+
FileTest.expects(:exists?).with("/proc/xen").returns(true)
|
186
|
+
Facter::Util::Virtual.should be_xen
|
187
|
+
end
|
188
|
+
|
189
|
+
it "should not detect xen when no sysfs/proc xen directories exist" do
|
190
|
+
FileTest.expects(:exists?).with("/proc/sys/xen").returns(false)
|
191
|
+
FileTest.expects(:exists?).with("/sys/bus/xen").returns(false)
|
192
|
+
FileTest.expects(:exists?).with("/proc/xen").returns(false)
|
193
|
+
Facter::Util::Virtual.should_not be_xen
|
194
|
+
end
|
195
|
+
|
196
|
+
it "should detect kvm" do
|
197
|
+
FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(true)
|
198
|
+
File.stubs(:read).with("/proc/cpuinfo").returns("model name : QEMU Virtual CPU version 0.9.1\n")
|
199
|
+
Facter::Util::Virtual.should be_kvm
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should detect kvm on FreeBSD" do
|
203
|
+
FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
|
204
|
+
Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
|
205
|
+
Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns("QEMU Virtual CPU version 0.12.4")
|
206
|
+
Facter::Util::Virtual.should be_kvm
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should detect kvm on OpenBSD" do
|
210
|
+
FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false)
|
211
|
+
Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
|
212
|
+
Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns('QEMU Virtual CPU version (cpu64-rhel6) ("AuthenticAMD" 686-class, 512KB L2 cache)')
|
213
|
+
Facter::Util::Virtual.should be_kvm
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should identify FreeBSD jail when in jail" do
|
217
|
+
Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
|
218
|
+
Facter::Core::Execution.stubs(:exec).with("/sbin/sysctl -n security.jail.jailed").returns("1")
|
219
|
+
Facter::Util::Virtual.should be_jail
|
220
|
+
end
|
221
|
+
|
222
|
+
it "should not identify GNU/kFreeBSD jail when not in jail" do
|
223
|
+
Facter.fact(:kernel).stubs(:value).returns("GNU/kFreeBSD")
|
224
|
+
Facter::Core::Execution.stubs(:exec).with("/bin/sysctl -n security.jail.jailed").returns("0")
|
225
|
+
Facter::Util::Virtual.should_not be_jail
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should detect hpvm on HP-UX" do
|
229
|
+
Facter.fact(:kernel).stubs(:value).returns("HP-UX")
|
230
|
+
Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server Integrity Virtual Machine')
|
231
|
+
Facter::Util::Virtual.should be_hpvm
|
232
|
+
end
|
233
|
+
|
234
|
+
it "should not detect hpvm on HP-UX when not in hpvm" do
|
235
|
+
Facter.fact(:kernel).stubs(:value).returns("HP-UX")
|
236
|
+
Facter::Core::Execution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server rx660')
|
237
|
+
Facter::Util::Virtual.should_not be_hpvm
|
238
|
+
end
|
239
|
+
|
240
|
+
it "should be able to detect virtualbox via sysfs on Linux" do
|
241
|
+
# Fake files are always hard to stub. :/
|
242
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
243
|
+
returns("VirtualBox")
|
244
|
+
|
245
|
+
Facter::Util::Virtual.should be_virtualbox
|
246
|
+
end
|
247
|
+
|
248
|
+
it "should be able to detect virtualbox via sysfs on Linux improperly" do
|
249
|
+
# Fake files are always hard to stub. :/
|
250
|
+
File.stubs(:read).with("/sys/devices/virtual/dmi/id/product_name").
|
251
|
+
returns("HP-Oracle-Sun-VMWare-funky-town")
|
252
|
+
|
253
|
+
Facter::Util::Virtual.should_not be_virtualbox
|
254
|
+
end
|
255
|
+
|
256
|
+
let :solaris_proc_self_status do
|
257
|
+
sample_data = my_fixture_read('solaris10_proc_self_status1')
|
258
|
+
mockfile = mock('File')
|
259
|
+
mockfile.stubs(:read).returns(sample_data)
|
260
|
+
mockfile
|
261
|
+
end
|
262
|
+
|
263
|
+
shared_examples_for "virt-what" do |kernel, path, null_device|
|
264
|
+
before(:each) do
|
265
|
+
Facter.fact(:kernel).stubs(:value).returns(kernel)
|
266
|
+
Facter::Core::Execution.expects(:which).with("virt-what").returns(path)
|
267
|
+
Facter::Core::Execution.expects(:exec).with("#{path} 2>#{null_device}")
|
268
|
+
end
|
269
|
+
|
270
|
+
it "on #{kernel} virt-what is at #{path} and stderr is sent to #{null_device}" do
|
271
|
+
Facter::Util::Virtual.virt_what
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
context "on linux" do
|
276
|
+
it_should_behave_like "virt-what", "linux", "/usr/bin/virt-what", "/dev/null"
|
277
|
+
|
278
|
+
it "should strip out warnings on stdout from virt-what" do
|
279
|
+
virt_what_warning = "virt-what: this script must be run as root"
|
280
|
+
Facter.fact(:kernel).stubs(:value).returns('linux')
|
281
|
+
Facter::Core::Execution.expects(:which).with('virt-what').returns "/usr/bin/virt-what"
|
282
|
+
Facter::Core::Execution.expects(:exec).with('/usr/bin/virt-what 2>/dev/null').returns virt_what_warning
|
283
|
+
Facter::Util::Virtual.virt_what.should_not match /^virt-what: /
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
context "on unix" do
|
288
|
+
it_should_behave_like "virt-what", "unix", "/usr/bin/virt-what", "/dev/null"
|
289
|
+
end
|
290
|
+
|
291
|
+
context "on windows" do
|
292
|
+
it_should_behave_like "virt-what", "windows", 'c:\windows\system32\virt-what', "NUL"
|
293
|
+
end
|
294
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/vlans'
|
5
|
+
|
6
|
+
describe Facter::Util::Vlans do
|
7
|
+
it "should return a list of vlans on Linux" do
|
8
|
+
linux_vlanconfig = my_fixture_read("linux_vlan_config")
|
9
|
+
Facter::Util::Vlans.stubs(:get_vlan_config).returns(linux_vlanconfig)
|
10
|
+
Facter::Util::Vlans.get_vlans().should == %{400,300,200,100}
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/wmi'
|
5
|
+
|
6
|
+
describe Facter::Util::WMI do
|
7
|
+
let(:connection) { stub 'connection' }
|
8
|
+
|
9
|
+
it "should default to localhost" do
|
10
|
+
Facter::Util::WMI.wmi_resource_uri.should == "winmgmts:{impersonationLevel=impersonate}!//./root/cimv2"
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should execute the query on the connection" do
|
14
|
+
Facter::Util::WMI.stubs(:connect).returns(connection)
|
15
|
+
connection.stubs(:execquery).with("select * from Win32_OperatingSystem")
|
16
|
+
|
17
|
+
Facter::Util::WMI.execquery("select * from Win32_OperatingSystem")
|
18
|
+
end
|
19
|
+
end
|