facter 2.1.0-x64-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 +53 -0
- data/LICENSE +15 -0
- data/README.md +33 -0
- data/Rakefile +79 -0
- data/bin/facter +20 -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 +36 -0
- data/ext/redhat/facter.spec.erb +220 -0
- data/ext/solaris/pkginfo +7 -0
- data/install.rb +380 -0
- data/lib/facter.rb +261 -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 +123 -0
- data/lib/facter/core/execution/base.rb +81 -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 +113 -0
- data/lib/facter/dhcp_servers.rb +39 -0
- data/lib/facter/domain.rb +99 -0
- data/lib/facter/ec2.rb +44 -0
- data/lib/facter/ec2/rest.rb +130 -0
- data/lib/facter/facterversion.rb +15 -0
- data/lib/facter/filesystems.rb +38 -0
- data/lib/facter/fqdn.rb +24 -0
- data/lib/facter/gce.rb +16 -0
- data/lib/facter/gce/metadata.rb +87 -0
- data/lib/facter/hardwareisa.rb +20 -0
- data/lib/facter/hardwaremodel.rb +67 -0
- data/lib/facter/hostname.rb +31 -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 +23 -0
- data/lib/facter/kernelrelease.rb +50 -0
- data/lib/facter/kernelversion.rb +22 -0
- data/lib/facter/ldom.rb +47 -0
- data/lib/facter/lsbdistcodename.rb +16 -0
- data/lib/facter/lsbdistdescription.rb +25 -0
- data/lib/facter/lsbdistid.rb +16 -0
- data/lib/facter/lsbdistrelease.rb +16 -0
- data/lib/facter/lsbmajdistrelease.rb +27 -0
- data/lib/facter/lsbrelease.rb +16 -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 +168 -0
- data/lib/facter/netmask.rb +42 -0
- data/lib/facter/network.rb +20 -0
- data/lib/facter/operatingsystem.rb +141 -0
- data/lib/facter/operatingsystemmajrelease.rb +47 -0
- data/lib/facter/operatingsystemrelease.rb +250 -0
- data/lib/facter/osfamily.rb +37 -0
- data/lib/facter/partitions.rb +35 -0
- data/lib/facter/path.rb +14 -0
- data/lib/facter/physicalprocessorcount.rb +91 -0
- data/lib/facter/processor.rb +168 -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 +63 -0
- data/lib/facter/util/confine.rb +66 -0
- data/lib/facter/util/dhcp_servers.rb +43 -0
- data/lib/facter/util/directory_loader.rb +83 -0
- data/lib/facter/util/ec2.rb +106 -0
- data/lib/facter/util/fact.rb +204 -0
- data/lib/facter/util/file_read.rb +37 -0
- data/lib/facter/util/formatter.rb +39 -0
- data/lib/facter/util/ip.rb +285 -0
- data/lib/facter/util/ip/windows.rb +215 -0
- data/lib/facter/util/loader.rb +155 -0
- data/lib/facter/util/macaddress.rb +43 -0
- data/lib/facter/util/macosx.rb +73 -0
- data/lib/facter/util/manufacturer.rb +99 -0
- data/lib/facter/util/memory.rb +228 -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/operatingsystem.rb +21 -0
- data/lib/facter/util/parser.rb +158 -0
- data/lib/facter/util/partitions.rb +41 -0
- data/lib/facter/util/partitions/linux.rb +65 -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/posix.rb +16 -0
- data/lib/facter/util/processor.rb +289 -0
- data/lib/facter/util/registry.rb +11 -0
- data/lib/facter/util/resolution.rb +160 -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 +109 -0
- data/lib/facter/util/virtual.rb +180 -0
- data/lib/facter/util/vlans.rb +21 -0
- data/lib/facter/util/windows_root.rb +7 -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 +311 -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/openbsd_bridge_rules +11 -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/dhcp_servers/nmcli_devices +4 -0
- data/spec/fixtures/unit/dhcp_servers/nmcli_devices_disconnected +4 -0
- data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_dhcp +36 -0
- data/spec/fixtures/unit/dhcp_servers/nmcli_eth0_static +24 -0
- data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_dhcp +49 -0
- data/spec/fixtures/unit/dhcp_servers/nmcli_wlan0_static +37 -0
- data/spec/fixtures/unit/dhcp_servers/route +3 -0
- data/spec/fixtures/unit/dhcp_servers/route_nogw +1 -0
- data/spec/fixtures/unit/ec2/rest/meta-data/root +20 -0
- data/spec/fixtures/unit/filesystems/linux +28 -0
- data/spec/fixtures/unit/gce/metadata/metadata.json +69 -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/kernelrelease/openbsd-5.3 +2 -0
- data/spec/fixtures/unit/kernelrelease/openbsd-5.3-current +3 -0
- data/spec/fixtures/unit/memory/aix-svmon +9 -0
- data/spec/fixtures/unit/memory/aix-swap_l +2 -0
- data/spec/fixtures/unit/memory/darwin-swapinfo-multiple +3 -0
- data/spec/fixtures/unit/memory/darwin-swapinfo-single +2 -0
- data/spec/fixtures/unit/memory/darwin-vm_stat +13 -0
- data/spec/fixtures/unit/memory/dragonfly-vmstat +3 -0
- data/spec/fixtures/unit/memory/freebsd-vmstat +3 -0
- data/spec/fixtures/unit/memory/linux-proc_meminfo +10 -0
- data/spec/fixtures/unit/memory/openbsd-vmstat +3 -0
- data/spec/fixtures/unit/memory/smartos_zone_swap_l-single +2 -0
- data/spec/fixtures/unit/memory/solaris-prtconf +4 -0
- data/spec/fixtures/unit/memory/solaris-swap_l-multiple +3 -0
- data/spec/fixtures/unit/memory/solaris-swap_l-single +2 -0
- data/spec/fixtures/unit/memory/solaris-vmstat +3 -0
- data/spec/fixtures/unit/netmask/darwin_10_8_5.txt +30 -0
- data/spec/fixtures/unit/netmask/ifconfig_aix_7.txt +3 -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/dhcp_servers/route +3 -0
- data/spec/fixtures/unit/util/dhcp_servers/route_nogw +1 -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/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/smartos_smbios +533 -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/operatingsystem/cumuluslinux.txt +8 -0
- data/spec/fixtures/unit/util/operatingsystem/redhat-7.txt +12 -0
- data/spec/fixtures/unit/util/operatingsystem/sabayon.txt +7 -0
- data/spec/fixtures/unit/util/operatingsystem/wheezy.txt +9 -0
- data/spec/fixtures/unit/util/partitions/partitions/mount +9 -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/centos-5-no-vlans +2 -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_1_cgroup/in_a_container +9 -0
- data/spec/fixtures/virtual/proc_1_cgroup/in_a_docker_container +8 -0
- data/spec/fixtures/virtual/proc_1_cgroup/not_in_a_container +9 -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 +130 -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 +42 -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 +106 -0
- data/spec/unit/dhcp_servers_spec.rb +152 -0
- data/spec/unit/domain_spec.rb +310 -0
- data/spec/unit/ec2/rest_spec.rb +145 -0
- data/spec/unit/ec2_spec.rb +127 -0
- data/spec/unit/facter_spec.rb +108 -0
- data/spec/unit/filesystems_spec.rb +50 -0
- data/spec/unit/fqdn_spec.rb +16 -0
- data/spec/unit/gce/metadata_spec.rb +49 -0
- data/spec/unit/gce_spec.rb +34 -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 +22 -0
- data/spec/unit/kernelrelease_spec.rb +69 -0
- data/spec/unit/kernelversion_spec.rb +32 -0
- data/spec/unit/ldom_spec.rb +75 -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 +73 -0
- data/spec/unit/manufacturer_spec.rb +115 -0
- data/spec/unit/memory_spec.rb +470 -0
- data/spec/unit/netmask_spec.rb +106 -0
- data/spec/unit/operatingsystem_spec.rb +160 -0
- data/spec/unit/operatingsystemmajrelease_spec.rb +38 -0
- data/spec/unit/operatingsystemrelease_spec.rb +236 -0
- data/spec/unit/osfamily_spec.rb +62 -0
- data/spec/unit/partitions_spec.rb +48 -0
- data/spec/unit/physicalprocessorcount_spec.rb +85 -0
- data/spec/unit/processor_spec.rb +401 -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 +97 -0
- data/spec/unit/util/confine_spec.rb +148 -0
- data/spec/unit/util/dhcp_servers_spec.rb +63 -0
- data/spec/unit/util/directory_loader_spec.rb +88 -0
- data/spec/unit/util/ec2_spec.rb +184 -0
- data/spec/unit/util/fact_spec.rb +142 -0
- data/spec/unit/util/file_read_spec.rb +29 -0
- data/spec/unit/util/formatter_spec.rb +50 -0
- data/spec/unit/util/ip/windows_spec.rb +80 -0
- data/spec/unit/util/ip_spec.rb +467 -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 +114 -0
- data/spec/unit/util/manufacturer_spec.rb +223 -0
- data/spec/unit/util/normalization_spec.rb +113 -0
- data/spec/unit/util/operatingsystem_spec.rb +92 -0
- data/spec/unit/util/parser_spec.rb +200 -0
- data/spec/unit/util/partitions/partitions_spec.rb +67 -0
- data/spec/unit/util/partitions_spec.rb +19 -0
- data/spec/unit/util/posix_spec.rb +11 -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 +171 -0
- data/spec/unit/util/virtual_spec.rb +364 -0
- data/spec/unit/util/vlans_spec.rb +42 -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 +519 -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 +815 -0
@@ -0,0 +1,42 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/vlans'
|
5
|
+
|
6
|
+
describe Facter::Util::Vlans do
|
7
|
+
let(:vlan_file) { "/proc/net/vlan/config" }
|
8
|
+
|
9
|
+
describe "reading the vlan configuration" do
|
10
|
+
it "uses the contents of /proc/net/vlan/config" do
|
11
|
+
File.expects(:exist?).with(vlan_file).returns true
|
12
|
+
File.expects(:readable?).with(vlan_file).returns true
|
13
|
+
File.expects(:read).with(vlan_file).returns "vlan contents here"
|
14
|
+
|
15
|
+
expect(Facter::Util::Vlans.get_vlan_config).to eq "vlan contents here"
|
16
|
+
end
|
17
|
+
|
18
|
+
it "returns nil when /proc/net/vlan/config is absent" do
|
19
|
+
File.expects(:exist?).with(vlan_file).returns false
|
20
|
+
expect(Facter::Util::Vlans.get_vlan_config).to be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "parsing the vlan configuration" do
|
25
|
+
let(:vlan_content) { my_fixture_read("linux_vlan_config") }
|
26
|
+
|
27
|
+
it "returns a list of vlans on Linux when vlans are configured" do
|
28
|
+
Facter::Util::Vlans.stubs(:get_vlan_config).returns(vlan_content)
|
29
|
+
expect(Facter::Util::Vlans.get_vlans()).to eq %{400,300,200,100}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "returns nil when no vlans are configured" do
|
33
|
+
Facter::Util::Vlans.stubs(:get_vlan_config).returns(nil)
|
34
|
+
expect(Facter::Util::Vlans.get_vlans()).to be_nil
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns nil when only the vlan header is returned" do
|
38
|
+
Facter::Util::Vlans.stubs(:get_vlan_config).returns(my_fixture_read("centos-5-no-vlans"))
|
39
|
+
expect(Facter::Util::Vlans.get_vlans()).to be_nil
|
40
|
+
end
|
41
|
+
end
|
42
|
+
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
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/xendomains'
|
5
|
+
|
6
|
+
describe Facter::Util::Xendomains do
|
7
|
+
describe ".get_domains" do
|
8
|
+
it "should return a list of running Xen Domains on Xen0" do
|
9
|
+
xen0_domains = my_fixture_read("xendomains")
|
10
|
+
Facter::Core::Execution.stubs(:exec).with('/usr/sbin/xm list 2>/dev/null').returns(xen0_domains)
|
11
|
+
Facter::Util::Xendomains.get_domains.should == %{web01,mailserver}
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "when xm list isn't executable" do
|
15
|
+
it "should be nil" do
|
16
|
+
Facter::Core::Execution.stubs(:exec).with('/usr/sbin/xm list 2>/dev/null').returns(nil)
|
17
|
+
Facter::Util::Xendomains.get_domains.should == nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "facter/version"
|
3
|
+
require 'pathname'
|
4
|
+
|
5
|
+
describe "Facter.version Public API" do
|
6
|
+
before :each do
|
7
|
+
Facter.instance_eval do
|
8
|
+
if @facter_version
|
9
|
+
@facter_version = nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "without a VERSION file" do
|
15
|
+
before :each do
|
16
|
+
Facter.stubs(:read_version_file).returns(nil)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "is Facter::FACTERVERSION" do
|
20
|
+
Facter.version.should == Facter::FACTERVERSION
|
21
|
+
end
|
22
|
+
it "respects the version= setter" do
|
23
|
+
Facter.version = '1.2.3'
|
24
|
+
Facter.version.should == '1.2.3'
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "with a VERSION file" do
|
29
|
+
it "is the content of the file" do
|
30
|
+
Facter.expects(:read_version_file).with() do |path|
|
31
|
+
pathname = Pathname.new(path)
|
32
|
+
pathname.basename.to_s == "VERSION"
|
33
|
+
end.returns('1.6.14-6-gea42046')
|
34
|
+
|
35
|
+
Facter.version.should == '1.6.14-6-gea42046'
|
36
|
+
end
|
37
|
+
it "respects the version= setter" do
|
38
|
+
Facter.version = '1.2.3'
|
39
|
+
Facter.version.should == '1.2.3'
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,519 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
require 'facter/util/virtual'
|
5
|
+
require 'facter/util/macosx' unless Facter::Util::Config.is_windows?
|
6
|
+
|
7
|
+
describe "Virtual fact" do
|
8
|
+
before(:each) do
|
9
|
+
Facter::Util::Virtual.stubs(:docker?).returns(false)
|
10
|
+
Facter::Util::Virtual.stubs(:lxc?).returns(false)
|
11
|
+
Facter::Util::Virtual.stubs(:zone?).returns(false)
|
12
|
+
Facter::Util::Virtual.stubs(:openvz?).returns(false)
|
13
|
+
Facter::Util::Virtual.stubs(:vserver?).returns(false)
|
14
|
+
Facter::Util::Virtual.stubs(:xen?).returns(false)
|
15
|
+
Facter::Util::Virtual.stubs(:kvm?).returns(false)
|
16
|
+
Facter::Util::Virtual.stubs(:hpvm?).returns(false)
|
17
|
+
Facter::Util::Virtual.stubs(:zlinux?).returns(false)
|
18
|
+
Facter::Util::Virtual.stubs(:virt_what).returns(nil)
|
19
|
+
Facter::Util::Virtual.stubs(:rhev?).returns(false)
|
20
|
+
Facter::Util::Virtual.stubs(:ovirt?).returns(false)
|
21
|
+
Facter::Util::Virtual.stubs(:gce?).returns(false)
|
22
|
+
Facter::Util::Virtual.stubs(:virtualbox?).returns(false)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should be zone on Solaris when a zone" do
|
26
|
+
Facter.fact(:kernel).stubs(:value).returns("SunOS")
|
27
|
+
Facter::Util::Virtual.stubs(:zone?).returns(true)
|
28
|
+
Facter::Util::Virtual.stubs(:vserver?).returns(false)
|
29
|
+
Facter::Util::Virtual.stubs(:xen?).returns(false)
|
30
|
+
Facter.fact(:virtual).value.should == "zone"
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should be jail on FreeBSD when a jail in kvm" do
|
34
|
+
Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
|
35
|
+
Facter::Util::Virtual.stubs(:jail?).returns(true)
|
36
|
+
Facter::Util::Virtual.stubs(:kvm?).returns(true)
|
37
|
+
Facter.fact(:virtual).value.should == "jail"
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should be hpvm on HP-UX when in HP-VM" do
|
41
|
+
Facter.fact(:kernel).stubs(:value).returns("HP-UX")
|
42
|
+
Facter::Util::Virtual.stubs(:hpvm?).returns(true)
|
43
|
+
Facter.fact(:virtual).value.should == "hpvm"
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should be zlinux on s390x" do
|
47
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
48
|
+
Facter.fact(:architecture).stubs(:value).returns("s390x")
|
49
|
+
Facter::Util::Virtual.stubs(:zlinux?).returns(true)
|
50
|
+
Facter.fact(:virtual).value.should == "zlinux"
|
51
|
+
end
|
52
|
+
|
53
|
+
describe "on Darwin", :unless => Facter::Util::Config.is_windows? do
|
54
|
+
before do
|
55
|
+
Facter.fact(:kernel).stubs(:value).returns("Darwin")
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should be parallels with Parallels ethernet vendor id" do
|
59
|
+
Facter::Util::Macosx.stubs(:profiler_data).returns({ "spethernet_subsystem-vendor-id" => "0x1ab8" })
|
60
|
+
Facter.fact(:virtual).value.should == "parallels"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should be virtualbox with VirtualBox boot rom name" do
|
64
|
+
Facter::Util::Macosx.stubs(:profiler_data).returns({ "boot_rom_version" => "VirtualBox" })
|
65
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should be vmware with VMware machine model" do
|
69
|
+
Facter::Util::Macosx.stubs(:profiler_data).returns({ "machine_model" => "VMware7,1" })
|
70
|
+
Facter.fact(:virtual).value.should == "vmware"
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe "on Linux" do
|
75
|
+
before(:each) do
|
76
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
77
|
+
Facter.fact(:operatingsystem).stubs(:value).returns("Linux")
|
78
|
+
|
79
|
+
Facter::Core::Execution.stubs(:exec).with("vmware -v").returns false
|
80
|
+
|
81
|
+
FileTest.stubs(:exists?).with("/proc/sys/xen").returns false
|
82
|
+
FileTest.stubs(:exists?).with("/sys/bus/xen").returns false
|
83
|
+
FileTest.stubs(:exists?).with("/proc/xen").returns false
|
84
|
+
Facter.fact(:architecture).stubs(:value).returns(true)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should be parallels with Parallels vendor id from lspci 2>/dev/null" do
|
88
|
+
Facter::Util::Virtual.stubs(:lspci).returns("01:00.0 VGA compatible controller: Unknown device 1ab8:4005")
|
89
|
+
Facter.fact(:virtual).value.should == "parallels"
|
90
|
+
end
|
91
|
+
|
92
|
+
it "should be parallels with Parallels vendor name from lspci 2>/dev/null" do
|
93
|
+
Facter::Util::Virtual.stubs(:lspci).returns("01:00.0 VGA compatible controller: Parallels Display Adapter")
|
94
|
+
Facter.fact(:virtual).value.should == "parallels"
|
95
|
+
end
|
96
|
+
|
97
|
+
it "should be vmware with VMware vendor name from lspci 2>/dev/null" do
|
98
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("00:0f.0 VGA compatible controller: VMware Inc [VMware SVGA II] PCI Display Adapter")
|
99
|
+
Facter.fact(:virtual).value.should == "vmware"
|
100
|
+
end
|
101
|
+
|
102
|
+
it "should be virtualbox with VirtualBox vendor name from lspci 2>/dev/null" do
|
103
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter")
|
104
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should be vmware with VMWare vendor name from dmidecode" do
|
108
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
109
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("On Board Device 1 Information\nType: Video\nStatus: Disabled\nDescription: VMware SVGA II")
|
110
|
+
Facter.fact(:virtual).value.should == "vmware"
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should be xen0 with xen dom0 files in /proc" do
|
114
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns("i386")
|
115
|
+
Facter::Util::Virtual.expects(:xen?).returns(true)
|
116
|
+
FileTest.expects(:exists?).with("/dev/xen/evtchn").returns(true)
|
117
|
+
Facter.fact(:virtual).value.should == "xen0"
|
118
|
+
end
|
119
|
+
|
120
|
+
it "should be xenu with xen domU files in /proc" do
|
121
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns("i386")
|
122
|
+
Facter::Util::Virtual.expects(:xen?).returns(true)
|
123
|
+
FileTest.expects(:exists?).with("/dev/xen/evtchn").returns(false)
|
124
|
+
FileTest.expects(:exists?).with("/proc/xen").returns(true)
|
125
|
+
Facter.fact(:virtual).value.should == "xenu"
|
126
|
+
end
|
127
|
+
|
128
|
+
it "should be xenhvm with Xen HVM vendor name from lspci 2>/dev/null" do
|
129
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("00:03.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)")
|
130
|
+
Facter.fact(:virtual).value.should == "xenhvm"
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should be xenhvm with Xen HVM vendor name from dmidecode" do
|
134
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
135
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("System Information\nManufacturer: Xen\nProduct Name: HVM domU")
|
136
|
+
Facter.fact(:virtual).value.should == "xenhvm"
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should be parallels with Parallels vendor name from dmidecode" do
|
140
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
141
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("On Board Device Information\nType: Video\nStatus: Disabled\nDescription: Parallels Video Adapter")
|
142
|
+
Facter.fact(:virtual).value.should == "parallels"
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should be virtualbox with VirtualBox vendor name from dmidecode" do
|
146
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
147
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("BIOS Information\nVendor: innotek GmbH\nVersion: VirtualBox\n\nSystem Information\nManufacturer: innotek GmbH\nProduct Name: VirtualBox\nFamily: Virtual Machine")
|
148
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should be rhev with RHEV Hypervisor product name from dmidecode" do
|
152
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
153
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
154
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("Product Name: RHEV Hypervisor")
|
155
|
+
Facter.fact(:virtual).value.should == "rhev"
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should be ovirt with oVirt Node product name from dmidecode" do
|
159
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
160
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
161
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("Product Name: oVirt Node")
|
162
|
+
Facter.fact(:virtual).value.should == "ovirt"
|
163
|
+
end
|
164
|
+
|
165
|
+
it "is gce based on DMI info" do
|
166
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
167
|
+
Facter::Util::Virtual.stubs(:gce?).returns(true)
|
168
|
+
Facter.fact(:virtual).value.should == "gce"
|
169
|
+
end
|
170
|
+
|
171
|
+
it "should be hyperv with Microsoft vendor name from lspci 2>/dev/null" do
|
172
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("00:08.0 VGA compatible controller: Microsoft Corporation Hyper-V virtual VGA")
|
173
|
+
Facter.fact(:virtual).value.should == "hyperv"
|
174
|
+
end
|
175
|
+
|
176
|
+
it "should be hyperv with Microsoft vendor name from dmidecode" do
|
177
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
178
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("System Information\nManufacturer: Microsoft Corporation\nProduct Name: Virtual Machine")
|
179
|
+
Facter.fact(:virtual).value.should == "hyperv"
|
180
|
+
end
|
181
|
+
|
182
|
+
context "In a Linux Container (LXC)" do
|
183
|
+
before :each do
|
184
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'is "lxc" when Facter::Util::Virtual.lxc? is true' do
|
188
|
+
Facter::Util::Virtual.stubs(:lxc?).returns(true)
|
189
|
+
Facter.fact(:virtual).value.should == 'lxc'
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
context "In a Docker Container (docker)" do
|
194
|
+
before :each do
|
195
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'is "docker" when Facter::Util::Virtual.docker? is true' do
|
199
|
+
Facter::Util::Virtual.stubs(:docker?).returns(true)
|
200
|
+
Facter.fact(:virtual).value.should == 'docker'
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
context "In Google Compute Engine" do
|
205
|
+
before :each do
|
206
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
207
|
+
end
|
208
|
+
|
209
|
+
context "Without /sys/firmware/dmi/entries/1-0/raw" do
|
210
|
+
before :each do
|
211
|
+
Facter::Util::Virtual.stubs(:read_sysfs_dmi_entries).returns(nil)
|
212
|
+
end
|
213
|
+
|
214
|
+
it "should be gce with gce vendor name from lspci 2>/dev/null" do
|
215
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("00:05.0 Class 8007: Google, Inc. Device 6442")
|
216
|
+
Facter.fact(:virtual).value.should == "gce"
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
context "With /sys/firmware/dmi/entries/1-0/raw" do
|
221
|
+
let :sysfs_dmi_raw do
|
222
|
+
my_fixture_read('sysfs_dmi_entries_raw.txt')
|
223
|
+
end
|
224
|
+
|
225
|
+
before :each do
|
226
|
+
Facter::Util::Virtual.stubs(:read_sysfs_dmi_entries).returns(sysfs_dmi_raw)
|
227
|
+
end
|
228
|
+
|
229
|
+
it "(#17612) is 'gce'" do
|
230
|
+
Facter.fact(:virtual).value.should == "gce"
|
231
|
+
end
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
it "(#20236) is vmware when dmidecode contains vmware and lspci returns insufficient information" do
|
236
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns("garbage\ninformation\n")
|
237
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns("On Board Device 1 Information\nType: Video\nStatus: Disabled\nDescription: VMware SVGA II")
|
238
|
+
Facter.fact(:virtual).value.should eq("vmware")
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
describe "on Solaris" do
|
243
|
+
before(:each) do
|
244
|
+
Facter::Core::Execution.stubs(:exec).with("vmware -v").returns false
|
245
|
+
Facter.fact(:kernel).stubs(:value).returns("SunOS")
|
246
|
+
end
|
247
|
+
|
248
|
+
it "should be vmware with VMWare vendor name from prtdiag" do
|
249
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns(nil)
|
250
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
251
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns(nil)
|
252
|
+
Facter::Core::Execution.stubs(:exec).with('prtdiag').returns("System Configuration: VMware, Inc. VMware Virtual Platform")
|
253
|
+
Facter.fact(:virtual).value.should == "vmware"
|
254
|
+
end
|
255
|
+
|
256
|
+
it "should be parallels with Parallels vendor name from prtdiag" do
|
257
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns(nil)
|
258
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
259
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns(nil)
|
260
|
+
Facter::Core::Execution.stubs(:exec).with('prtdiag').returns("System Configuration: Parallels Virtual Platform")
|
261
|
+
Facter.fact(:virtual).value.should == "parallels"
|
262
|
+
end
|
263
|
+
|
264
|
+
it "should be virtualbox with VirtualBox vendor name from prtdiag" do
|
265
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns(nil)
|
266
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
267
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns(nil)
|
268
|
+
Facter::Core::Execution.stubs(:exec).with('prtdiag').returns("System Configuration: innotek GmbH VirtualBox")
|
269
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
describe "on OpenBSD" do
|
274
|
+
before do
|
275
|
+
Facter::Core::Execution.stubs(:exec).with("vmware -v").returns false
|
276
|
+
Facter.fact(:kernel).stubs(:value).returns("OpenBSD")
|
277
|
+
Facter.fact(:hardwaremodel).stubs(:value).returns(nil)
|
278
|
+
Facter::Core::Execution.stubs(:exec).with('lspci 2>/dev/null').returns(nil)
|
279
|
+
Facter::Core::Execution.stubs(:exec).with('dmidecode 2> /dev/null').returns(nil)
|
280
|
+
end
|
281
|
+
|
282
|
+
it "should be parallels with Parallels product name from sysctl" do
|
283
|
+
Facter::Util::POSIX.stubs(:sysctl).with('hw.product').returns("Parallels Virtual Platform")
|
284
|
+
Facter.fact(:virtual).value.should == "parallels"
|
285
|
+
end
|
286
|
+
|
287
|
+
it "should be vmware with VMware product name from sysctl" do
|
288
|
+
Facter::Util::POSIX.stubs(:sysctl).with('hw.product').returns("VMware Virtual Platform")
|
289
|
+
Facter.fact(:virtual).value.should == "vmware"
|
290
|
+
end
|
291
|
+
|
292
|
+
it "should be virtualbox with VirtualBox product name from sysctl" do
|
293
|
+
Facter::Util::POSIX.stubs(:sysctl).with('hw.product').returns("VirtualBox")
|
294
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
295
|
+
end
|
296
|
+
|
297
|
+
it "should be xenhvm with Xen HVM product name from sysctl" do
|
298
|
+
Facter::Util::POSIX.stubs(:sysctl).with('hw.product').returns("HVM domU")
|
299
|
+
Facter.fact(:virtual).value.should == "xenhvm"
|
300
|
+
end
|
301
|
+
|
302
|
+
it "should be ovirt with oVirt Node product name from sysctl" do
|
303
|
+
Facter::Util::POSIX.stubs(:sysctl).with('hw.product').returns("oVirt Node")
|
304
|
+
Facter.fact(:virtual).value.should == "ovirt"
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
describe "on Windows" do
|
309
|
+
require 'facter/util/wmi'
|
310
|
+
before do
|
311
|
+
Facter.fact(:kernel).stubs(:value).returns("windows")
|
312
|
+
Facter.fact(:architecture).stubs(:value).returns("x64")
|
313
|
+
end
|
314
|
+
|
315
|
+
it "should be kvm with KVM model name from Win32_ComputerSystem" do
|
316
|
+
computersystem = mock('computersystem', :model => 'KVM')
|
317
|
+
Facter::Util::WMI.expects(:execquery).returns([computersystem])
|
318
|
+
Facter.fact(:virtual).value.should == "kvm"
|
319
|
+
end
|
320
|
+
|
321
|
+
it "should be hyperv with Virtual Machine model name and Microsoft Corporation manufacturer from Win32_ComputerSystem" do
|
322
|
+
computersystem = mock('computersystem', :manufacturer => 'Microsoft Corporation', :model => 'Virtual Machine')
|
323
|
+
Facter::Util::WMI.expects(:execquery).returns([computersystem])
|
324
|
+
Facter.fact(:virtual).value.should == "hyperv"
|
325
|
+
end
|
326
|
+
|
327
|
+
it "should be virtualbox with VirtualBox model name from Win32_ComputerSystem" do
|
328
|
+
computersystem = mock('computersystem', :model => 'VirtualBox')
|
329
|
+
Facter::Util::WMI.expects(:execquery).returns([computersystem])
|
330
|
+
Facter.fact(:virtual).value.should == "virtualbox"
|
331
|
+
end
|
332
|
+
|
333
|
+
it "should be vmware with VMware like model name from Win32_ComputerSystem" do
|
334
|
+
computersystem = mock('computersystem', :model => 'VMware Virtual Platform')
|
335
|
+
Facter::Util::WMI.expects(:execquery).returns([computersystem])
|
336
|
+
Facter.fact(:virtual).value.should == "vmware"
|
337
|
+
end
|
338
|
+
|
339
|
+
it "resolves as Xen with a manufacturer name like xen" do
|
340
|
+
computersystem = mock('computersystem', :model => nil, :manufacturer => 'Xen')
|
341
|
+
Facter::Util::WMI.expects(:execquery).returns([computersystem])
|
342
|
+
Facter.fact(:virtual).value.should == "xen"
|
343
|
+
end
|
344
|
+
end
|
345
|
+
|
346
|
+
describe "with the virt-what command available (#8210)" do
|
347
|
+
describe "when the output of virt-what disagrees with lower weight facts" do
|
348
|
+
virt_what_map = {
|
349
|
+
'xen-hvm' => 'xenhvm',
|
350
|
+
'xen-dom0' => 'xen0',
|
351
|
+
'xen-domU' => 'xenu',
|
352
|
+
'ibm_systemz' => 'zlinux',
|
353
|
+
}
|
354
|
+
|
355
|
+
virt_what_map.each do |input,output|
|
356
|
+
it "maps #{input} to #{output}" do
|
357
|
+
Facter::Util::Virtual.expects(:virt_what).returns(input)
|
358
|
+
Facter.value(:virtual).should == output
|
359
|
+
end
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
describe "arbitrary outputs of virt-what" do
|
364
|
+
it "returns the last line output from virt-what" do
|
365
|
+
Facter::Util::Virtual.expects(:virt_what).returns("one\ntwo\nthree space\n")
|
366
|
+
Facter.value(:virtual).should == "three space"
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
370
|
+
describe "when virt-what returns linux_vserver" do
|
371
|
+
it "delegates to Facter::Util::Virtual.vserver_type" do
|
372
|
+
Facter::Util::Virtual.expects(:virt_what).returns("linux_vserver")
|
373
|
+
Facter::Util::Virtual.expects(:vserver_type).returns("fake_vserver_type")
|
374
|
+
Facter.value(:virtual).should == "fake_vserver_type"
|
375
|
+
end
|
376
|
+
end
|
377
|
+
end
|
378
|
+
end
|
379
|
+
|
380
|
+
describe "is_virtual fact" do
|
381
|
+
it "should be virtual when running on xen" do
|
382
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
383
|
+
Facter.fact(:virtual).stubs(:value).returns("xenu")
|
384
|
+
Facter.fact(:is_virtual).value.should == "true"
|
385
|
+
end
|
386
|
+
|
387
|
+
it "should be false when running on xen0" do
|
388
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
389
|
+
Facter.fact(:virtual).stubs(:value).returns("xen0")
|
390
|
+
Facter.fact(:is_virtual).value.should == "false"
|
391
|
+
end
|
392
|
+
|
393
|
+
it "should be true when running on xenhvm" do
|
394
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
395
|
+
Facter.fact(:virtual).stubs(:value).returns("xenhvm")
|
396
|
+
Facter.fact(:is_virtual).value.should == "true"
|
397
|
+
end
|
398
|
+
|
399
|
+
it "should be false when running on physical" do
|
400
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
401
|
+
Facter.fact(:virtual).stubs(:value).returns("physical")
|
402
|
+
Facter.fact(:is_virtual).value.should == "false"
|
403
|
+
end
|
404
|
+
|
405
|
+
it "should be true when running on vmware" do
|
406
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
407
|
+
Facter.fact(:virtual).stubs(:value).returns("vmware")
|
408
|
+
Facter.fact(:is_virtual).value.should == "true"
|
409
|
+
end
|
410
|
+
|
411
|
+
it "should be true when running on virtualbox" do
|
412
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
413
|
+
Facter.fact(:virtual).stubs(:value).returns("virtualbox")
|
414
|
+
Facter.fact(:is_virtual).value.should == "true"
|
415
|
+
end
|
416
|
+
|
417
|
+
it "should be true when running on openvzve" do
|
418
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
419
|
+
Facter.fact(:virtual).stubs(:value).returns("openvzve")
|
420
|
+
Facter.fact(:is_virtual).value.should == "true"
|
421
|
+
end
|
422
|
+
|
423
|
+
it "should be true when running on vserver" do
|
424
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
425
|
+
Facter.fact(:virtual).stubs(:value).returns("vserver")
|
426
|
+
Facter.fact(:is_virtual).value.should == "true"
|
427
|
+
end
|
428
|
+
|
429
|
+
it "should be true when running on kvm" do
|
430
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
431
|
+
Facter.fact(:virtual).stubs(:value).returns("kvm")
|
432
|
+
Facter.fact(:is_virtual).value.should == "true"
|
433
|
+
end
|
434
|
+
|
435
|
+
it "should be true when running in jail" do
|
436
|
+
Facter.fact(:kernel).stubs(:value).returns("FreeBSD")
|
437
|
+
Facter.fact(:virtual).stubs(:value).returns("jail")
|
438
|
+
Facter.fact(:is_virtual).value.should == "true"
|
439
|
+
end
|
440
|
+
|
441
|
+
it "should be true when running in zone" do
|
442
|
+
Facter.fact(:kernel).stubs(:value).returns("SunOS")
|
443
|
+
Facter.fact(:virtual).stubs(:value).returns("zone")
|
444
|
+
Facter.fact(:is_virtual).value.should == "true"
|
445
|
+
end
|
446
|
+
|
447
|
+
it "should be true when running on hp-vm" do
|
448
|
+
Facter.fact(:kernel).stubs(:value).returns("HP-UX")
|
449
|
+
Facter.fact(:virtual).stubs(:value).returns("hpvm")
|
450
|
+
Facter.fact(:is_virtual).value.should == "true"
|
451
|
+
end
|
452
|
+
|
453
|
+
it "should be true when running on S390" do
|
454
|
+
Facter.fact(:architecture).stubs(:value).returns("s390x")
|
455
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
456
|
+
Facter.fact(:virtual).stubs(:value).returns("zlinux")
|
457
|
+
Facter.fact(:is_virtual).value.should == "true"
|
458
|
+
end
|
459
|
+
|
460
|
+
it "should be true when running on parallels" do
|
461
|
+
Facter.fact(:kernel).stubs(:value).returns("Darwin")
|
462
|
+
Facter.fact(:virtual).stubs(:value).returns("parallels")
|
463
|
+
Facter.fact(:is_virtual).value.should == "true"
|
464
|
+
end
|
465
|
+
|
466
|
+
it "should be false on vmware_server" do
|
467
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
468
|
+
Facter.fact(:virtual).stubs(:value).returns("vmware_server")
|
469
|
+
Facter.fact(:is_virtual).value.should == "false"
|
470
|
+
end
|
471
|
+
|
472
|
+
it "should be false on openvz host nodes" do
|
473
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
474
|
+
Facter.fact(:virtual).stubs(:value).returns("openvzhn")
|
475
|
+
Facter.fact(:is_virtual).value.should == "false"
|
476
|
+
end
|
477
|
+
|
478
|
+
it "should be false on vserver host nodes" do
|
479
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
480
|
+
Facter.fact(:virtual).stubs(:value).returns("vserver_host")
|
481
|
+
Facter.fact(:is_virtual).value.should == "false"
|
482
|
+
end
|
483
|
+
|
484
|
+
it "should be true when running on hyperv" do
|
485
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
486
|
+
Facter.fact(:virtual).stubs(:value).returns("hyperv")
|
487
|
+
Facter.fact(:is_virtual).value.should == "true"
|
488
|
+
end
|
489
|
+
|
490
|
+
it "should be true when running on rhev" do
|
491
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
492
|
+
Facter.fact(:virtual).stubs(:value).returns("rhev")
|
493
|
+
Facter.fact(:is_virtual).value.should == "true"
|
494
|
+
end
|
495
|
+
|
496
|
+
it "should be true when running on ovirt" do
|
497
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
498
|
+
Facter.fact(:virtual).stubs(:value).returns("ovirt")
|
499
|
+
Facter.fact(:is_virtual).value.should == "true"
|
500
|
+
end
|
501
|
+
|
502
|
+
it "should be true when running on ovirt" do
|
503
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
504
|
+
Facter.fact(:virtual).stubs(:value).returns("gce")
|
505
|
+
Facter.fact(:is_virtual).value.should == "true"
|
506
|
+
end
|
507
|
+
|
508
|
+
it "should be true when running in LXC" do
|
509
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
510
|
+
Facter.fact(:virtual).stubs(:value).returns("lxc")
|
511
|
+
Facter.fact(:is_virtual).value.should == "true"
|
512
|
+
end
|
513
|
+
|
514
|
+
it "should be true when running in docker" do
|
515
|
+
Facter.fact(:kernel).stubs(:value).returns("Linux")
|
516
|
+
Facter.fact(:virtual).stubs(:value).returns("docker")
|
517
|
+
Facter.fact(:is_virtual).value.should == "true"
|
518
|
+
end
|
519
|
+
end
|