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,145 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/ec2/rest'
|
3
|
+
|
4
|
+
shared_examples_for "an ec2 rest querier" do
|
5
|
+
describe "determining if the uri is reachable" do
|
6
|
+
it "retries if the connection times out" do
|
7
|
+
subject.stubs(:open).returns(stub(:read => nil))
|
8
|
+
Timeout.expects(:timeout).with(0.2).twice.raises(Timeout::Error).returns(true)
|
9
|
+
expect(subject).to be_reachable
|
10
|
+
end
|
11
|
+
|
12
|
+
it "retries if the connection is reset" do
|
13
|
+
subject.expects(:open).twice.raises(Errno::ECONNREFUSED).returns(StringIO.new("woo"))
|
14
|
+
expect(subject).to be_reachable
|
15
|
+
end
|
16
|
+
|
17
|
+
it "is false if the given uri returns a 404" do
|
18
|
+
subject.expects(:open).with(anything).once.raises(OpenURI::HTTPError.new("404 Not Found", StringIO.new("woo")))
|
19
|
+
expect(subject).to_not be_reachable
|
20
|
+
end
|
21
|
+
|
22
|
+
it "is false if the connection always times out" do
|
23
|
+
Timeout.expects(:timeout).with(0.2).times(3).raises(Timeout::Error)
|
24
|
+
expect(subject).to_not be_reachable
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
describe Facter::EC2::Metadata do
|
31
|
+
|
32
|
+
subject { described_class.new('http://0.0.0.0/latest/meta-data/') }
|
33
|
+
|
34
|
+
let(:response) { StringIO.new }
|
35
|
+
|
36
|
+
describe "fetching a metadata endpoint" do
|
37
|
+
it "splits the body into an array" do
|
38
|
+
response.string = my_fixture_read("meta-data/root")
|
39
|
+
subject.stubs(:open).with("http://0.0.0.0/latest/meta-data/").returns response
|
40
|
+
output = subject.fetch_endpoint('')
|
41
|
+
|
42
|
+
expect(output).to eq %w[
|
43
|
+
ami-id ami-launch-index ami-manifest-path block-device-mapping/ hostname
|
44
|
+
instance-action instance-id instance-type kernel-id local-hostname
|
45
|
+
local-ipv4 mac metrics/ network/ placement/ profile public-hostname
|
46
|
+
public-ipv4 public-keys/ reservation-id
|
47
|
+
]
|
48
|
+
end
|
49
|
+
|
50
|
+
it "reformats keys that are array indices" do
|
51
|
+
response.string = "0=adrien@grey/"
|
52
|
+
subject.stubs(:open).with("http://0.0.0.0/latest/meta-data/public-keys/").returns response
|
53
|
+
output = subject.fetch_endpoint("public-keys/")
|
54
|
+
|
55
|
+
expect(output).to eq %w[0/]
|
56
|
+
end
|
57
|
+
|
58
|
+
it "returns nil if the endpoint returns a 404" do
|
59
|
+
Facter.expects(:log_exception).never
|
60
|
+
subject.stubs(:open).with("http://0.0.0.0/latest/meta-data/public-keys/1/").raises OpenURI::HTTPError.new("404 Not Found", response)
|
61
|
+
output = subject.fetch_endpoint('public-keys/1/')
|
62
|
+
|
63
|
+
expect(output).to be_nil
|
64
|
+
end
|
65
|
+
|
66
|
+
it "logs an error if the endpoint raises a non-404 HTTPError" do
|
67
|
+
Facter.expects(:log_exception).with(instance_of(OpenURI::HTTPError), anything)
|
68
|
+
|
69
|
+
subject.stubs(:open).with("http://0.0.0.0/latest/meta-data/").raises OpenURI::HTTPError.new("418 I'm a Teapot", response)
|
70
|
+
output = subject.fetch_endpoint("")
|
71
|
+
|
72
|
+
expect(output).to be_nil
|
73
|
+
end
|
74
|
+
|
75
|
+
it "logs an error if the endpoint raises a connection error" do
|
76
|
+
Facter.expects(:log_exception).with(instance_of(Errno::ECONNREFUSED), anything)
|
77
|
+
|
78
|
+
subject.stubs(:open).with("http://0.0.0.0/latest/meta-data/").raises Errno::ECONNREFUSED
|
79
|
+
output = subject.fetch_endpoint('')
|
80
|
+
|
81
|
+
expect(output).to be_nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "recursively fetching the EC2 metadata API" do
|
86
|
+
it "queries the given endpoint for metadata keys" do
|
87
|
+
subject.expects(:fetch_endpoint).with("").returns([])
|
88
|
+
subject.fetch
|
89
|
+
end
|
90
|
+
|
91
|
+
it "fetches the value for a simple metadata key" do
|
92
|
+
subject.expects(:fetch_endpoint).with("").returns(['indexthing'])
|
93
|
+
subject.expects(:fetch_endpoint).with("indexthing").returns(['first', 'second'])
|
94
|
+
|
95
|
+
output = subject.fetch
|
96
|
+
expect(output).to eq({'indexthing' => ['first', 'second']})
|
97
|
+
end
|
98
|
+
|
99
|
+
it "unwraps metadata values that are in single element arrays" do
|
100
|
+
subject.expects(:fetch_endpoint).with("").returns(['ami-id'])
|
101
|
+
subject.expects(:fetch_endpoint).with("ami-id").returns(['i-12x'])
|
102
|
+
|
103
|
+
output = subject.fetch
|
104
|
+
expect(output).to eq({'ami-id' => 'i-12x'})
|
105
|
+
end
|
106
|
+
|
107
|
+
it "recursively queries an endpoint if the key ends with '/'" do
|
108
|
+
subject.expects(:fetch_endpoint).with("").returns(['metrics/'])
|
109
|
+
subject.expects(:fetch_endpoint).with("metrics/").returns(['vhostmd'])
|
110
|
+
subject.expects(:fetch_endpoint).with("metrics/vhostmd").returns(['woo'])
|
111
|
+
|
112
|
+
output = subject.fetch
|
113
|
+
expect(output).to eq({'metrics' => {'vhostmd' => 'woo'}})
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
it_behaves_like "an ec2 rest querier"
|
118
|
+
end
|
119
|
+
|
120
|
+
describe Facter::EC2::Userdata do
|
121
|
+
|
122
|
+
subject { described_class.new('http://0.0.0.0/latest/user-data/') }
|
123
|
+
|
124
|
+
let(:response) { StringIO.new }
|
125
|
+
|
126
|
+
describe "reaching the userdata" do
|
127
|
+
it "queries the userdata URI" do
|
128
|
+
subject.expects(:open).with('http://0.0.0.0/latest/user-data/').returns(response)
|
129
|
+
subject.fetch
|
130
|
+
end
|
131
|
+
|
132
|
+
it "returns the result of the query without modification" do
|
133
|
+
response.string = "clooouuuuud"
|
134
|
+
subject.expects(:open).with('http://0.0.0.0/latest/user-data/').returns(response)
|
135
|
+
expect(subject.fetch).to eq "clooouuuuud"
|
136
|
+
end
|
137
|
+
|
138
|
+
it "is nil if the URI returned a 404" do
|
139
|
+
subject.expects(:open).with('http://0.0.0.0/latest/user-data/').once.raises(OpenURI::HTTPError.new("404 Not Found", StringIO.new("woo")))
|
140
|
+
expect(subject.fetch).to be_nil
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
it_behaves_like "an ec2 rest querier"
|
145
|
+
end
|
@@ -0,0 +1,127 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'facter/ec2/rest'
|
3
|
+
|
4
|
+
describe "ec2_metadata" do
|
5
|
+
let(:querier) { stub('EC2 metadata querier') }
|
6
|
+
|
7
|
+
before do
|
8
|
+
Facter::EC2::Metadata.stubs(:new).returns querier
|
9
|
+
|
10
|
+
# Prevent flattened facts from forcing evaluation of the ec2 metadata fact
|
11
|
+
Facter.stubs(:value).with(:ec2_metadata)
|
12
|
+
Facter.collection.internal_loader.load(:ec2)
|
13
|
+
Facter.unstub(:value)
|
14
|
+
end
|
15
|
+
|
16
|
+
subject { Facter.fact(:ec2_metadata).resolution(:rest) }
|
17
|
+
|
18
|
+
it "is unsuitable if the virtual fact is not xen" do
|
19
|
+
querier.stubs(:reachable?).returns false
|
20
|
+
Facter.fact(:virtual).stubs(:value).returns "kvm"
|
21
|
+
expect(subject).to_not be_suitable
|
22
|
+
end
|
23
|
+
|
24
|
+
it "is unsuitable if ec2 endpoint is not reachable" do
|
25
|
+
Facter.fact(:virtual).stubs(:value).returns "xen"
|
26
|
+
querier.stubs(:reachable?).returns false
|
27
|
+
expect(subject).to_not be_suitable
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "when the ec2 endpoint is reachable" do
|
31
|
+
before do
|
32
|
+
querier.stubs(:reachable?).returns true
|
33
|
+
end
|
34
|
+
|
35
|
+
it "is suitable if the virtual fact is xen" do
|
36
|
+
Facter.fact(:virtual).stubs(:value).returns "xen"
|
37
|
+
subject.suitable?
|
38
|
+
|
39
|
+
expect(subject).to be_suitable
|
40
|
+
end
|
41
|
+
|
42
|
+
it "is suitable if the virtual fact is xenu" do
|
43
|
+
Facter.fact(:virtual).stubs(:value).returns "xenu"
|
44
|
+
expect(subject).to be_suitable
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "resolves the value by recursively querying the rest endpoint" do
|
49
|
+
querier.expects(:fetch).returns({"hello" => "world"})
|
50
|
+
expect(subject.value).to eq({"hello" => "world"})
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "ec2_userdata" do
|
55
|
+
let(:querier) { stub('EC2 metadata querier') }
|
56
|
+
|
57
|
+
before do
|
58
|
+
Facter::EC2::Userdata.stubs(:new).returns querier
|
59
|
+
|
60
|
+
# Prevent flattened facts from forcing evaluation of the ec2 metadata fact
|
61
|
+
Facter.stubs(:value).with(:ec2_metadata)
|
62
|
+
Facter.collection.internal_loader.load(:ec2)
|
63
|
+
Facter.unstub(:value)
|
64
|
+
end
|
65
|
+
|
66
|
+
subject { Facter.fact(:ec2_userdata).resolution(:rest) }
|
67
|
+
|
68
|
+
it "is unsuitable if the virtual fact is not xen" do
|
69
|
+
querier.stubs(:reachable?).returns(true)
|
70
|
+
Facter.fact(:virtual).stubs(:value).returns "kvm"
|
71
|
+
expect(subject).to_not be_suitable
|
72
|
+
end
|
73
|
+
|
74
|
+
it "is unsuitable if ec2 endpoint is not reachable" do
|
75
|
+
Facter.fact(:virtual).stubs(:value).returns "xen"
|
76
|
+
querier.stubs(:reachable?).returns false
|
77
|
+
expect(subject).to_not be_suitable
|
78
|
+
end
|
79
|
+
|
80
|
+
describe "when the ec2 endpoint is reachable" do
|
81
|
+
before do
|
82
|
+
querier.stubs(:reachable?).returns true
|
83
|
+
end
|
84
|
+
|
85
|
+
it "is suitable if the virtual fact is xen" do
|
86
|
+
Facter.fact(:virtual).stubs(:value).returns "xen"
|
87
|
+
expect(subject).to be_suitable
|
88
|
+
end
|
89
|
+
|
90
|
+
it "is suitable if the virtual fact is xenu" do
|
91
|
+
Facter.fact(:virtual).stubs(:value).returns "xenu"
|
92
|
+
expect(subject).to be_suitable
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
it "resolves the value by fetching the rest endpoint" do
|
97
|
+
querier.expects(:fetch).returns "user data!"
|
98
|
+
expect(subject.value).to eq "user data!"
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
describe "flattened versions of ec2 facts" do
|
103
|
+
# These facts are tricky to test because they are dynamic facts, and they are
|
104
|
+
# generated from a fact that is defined in the same file. In order to pull
|
105
|
+
# this off we need to define the ec2_metadata fact ahead of time so that we
|
106
|
+
# can stub the value, and then manually load the correct files.
|
107
|
+
|
108
|
+
it "unpacks the ec2_metadata fact" do
|
109
|
+
Facter.define_fact(:ec2_metadata).stubs(:value).returns({"hello" => "world"})
|
110
|
+
Facter.collection.internal_loader.load(:ec2)
|
111
|
+
|
112
|
+
expect(Facter.value("ec2_hello")).to eq "world"
|
113
|
+
end
|
114
|
+
|
115
|
+
it "does not set any flat ec2 facts if the ec2_metadata fact is nil" do
|
116
|
+
Facter.define_fact(:ec2_metadata).stubs(:value)
|
117
|
+
Facter.define_fact(:ec2_userdata).stubs(:value).returns(nil)
|
118
|
+
|
119
|
+
Facter.collection.internal_loader.load(:ec2)
|
120
|
+
|
121
|
+
all_facts = Facter.collection.to_hash
|
122
|
+
|
123
|
+
ec2_facts = all_facts.keys.select { |k| k =~ /^ec2_/ }
|
124
|
+
expect(ec2_facts).to be_empty
|
125
|
+
end
|
126
|
+
|
127
|
+
end
|
@@ -0,0 +1,108 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Facter do
|
6
|
+
it "caches the collection" do
|
7
|
+
Facter.collection.should equal(Facter.collection)
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "methods on the collection" do
|
11
|
+
it "delegates the :flush method to the collection" do
|
12
|
+
Facter.collection.expects(:flush)
|
13
|
+
Facter.flush
|
14
|
+
end
|
15
|
+
|
16
|
+
it "delegates the :fact method to the collection" do
|
17
|
+
Facter.collection.expects(:fact).with("afact")
|
18
|
+
Facter.fact("afact")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "delegates the :list method to the collection" do
|
22
|
+
Facter.collection.expects(:list)
|
23
|
+
Facter.list
|
24
|
+
end
|
25
|
+
|
26
|
+
it "loads all facts when listing" do
|
27
|
+
Facter.collection.expects(:load_all)
|
28
|
+
Facter.list
|
29
|
+
end
|
30
|
+
|
31
|
+
it "delegates the :to_hash method to the collection" do
|
32
|
+
Facter.collection.expects(:to_hash)
|
33
|
+
Facter.to_hash
|
34
|
+
end
|
35
|
+
|
36
|
+
it "loads all facts when calling :to_hash" do
|
37
|
+
Facter.collection.expects(:load_all)
|
38
|
+
Facter.collection.stubs(:to_hash)
|
39
|
+
Facter.to_hash
|
40
|
+
end
|
41
|
+
|
42
|
+
it "delegates the :value method to the collection" do
|
43
|
+
Facter.collection.expects(:value).with("myvaluefact")
|
44
|
+
Facter.value("myvaluefact")
|
45
|
+
end
|
46
|
+
|
47
|
+
it "delegates the :each method to the collection" do
|
48
|
+
Facter.collection.expects(:each)
|
49
|
+
Facter.each
|
50
|
+
end
|
51
|
+
|
52
|
+
it "delegates the :add method to the collection" do
|
53
|
+
Facter.collection.expects(:add).with("factname", {})
|
54
|
+
Facter.add("factname")
|
55
|
+
end
|
56
|
+
|
57
|
+
it "delegates the :define_fact method to the collection" do
|
58
|
+
Facter.collection.expects(:define_fact).with("factname", {})
|
59
|
+
Facter.define_fact("factname")
|
60
|
+
end
|
61
|
+
|
62
|
+
it "loads all facts when calling :each" do
|
63
|
+
Facter.collection.expects(:load_all)
|
64
|
+
Facter.collection.stubs(:each)
|
65
|
+
Facter.each
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it "yields to the block when using :each" do
|
70
|
+
Facter.collection.stubs(:load_all)
|
71
|
+
Facter.collection.stubs(:each).yields "foo"
|
72
|
+
result = []
|
73
|
+
Facter.each { |f| result << f }
|
74
|
+
result.should == %w{foo}
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "when registering directories to search" do
|
78
|
+
after { Facter.reset_search_path! }
|
79
|
+
|
80
|
+
it "allows registration of a directory" do
|
81
|
+
Facter.search "/my/dir"
|
82
|
+
end
|
83
|
+
|
84
|
+
it "allows registration of multiple directories" do
|
85
|
+
Facter.search "/my/dir", "/other/dir"
|
86
|
+
end
|
87
|
+
|
88
|
+
it "returns all registered directories when asked" do
|
89
|
+
Facter.search "/my/dir", "/other/dir"
|
90
|
+
Facter.search_path.should == %w{/my/dir /other/dir}
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "when registering directories to search for external facts" do
|
95
|
+
it "allows registration of a directory" do
|
96
|
+
Facter.search_external ["/my/dir"]
|
97
|
+
end
|
98
|
+
|
99
|
+
it "allows registration of multiple directories" do
|
100
|
+
Facter.search_external ["/my/dir", "/other/dir"]
|
101
|
+
end
|
102
|
+
|
103
|
+
it "returns all registered directories when asked" do
|
104
|
+
Facter.search_external ["/my/dir", "/other/dir"]
|
105
|
+
Facter.search_external_path.should include("/my/dir", "/other/dir")
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'Filesystem facts' do
|
6
|
+
describe 'on non-Linux OS' do
|
7
|
+
it 'should not exist' do
|
8
|
+
Facter.fact(:kernel).stubs(:value).returns('SunOS')
|
9
|
+
Facter.fact(:filesystems).value.should == nil
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe 'on Linux' do
|
14
|
+
before :each do
|
15
|
+
Facter.fact(:kernel).stubs(:value).returns('Linux')
|
16
|
+
fixture_data = my_fixture_read('linux')
|
17
|
+
Facter::Core::Execution.expects(:exec) \
|
18
|
+
.with('cat /proc/filesystems 2> /dev/null').returns(fixture_data)
|
19
|
+
Facter.collection.internal_loader.load(:filesystems)
|
20
|
+
end
|
21
|
+
|
22
|
+
after :each do
|
23
|
+
Facter.clear
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should exist' do
|
27
|
+
Facter.fact(:filesystems).value.should_not == nil
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should detect the correct number of filesystems' do
|
31
|
+
Facter.fact(:filesystems).value.split(',').length.should == 6
|
32
|
+
end
|
33
|
+
|
34
|
+
# Check that lines from /proc/filesystems that start with 'nodev' are
|
35
|
+
# skipped
|
36
|
+
it 'should not detect sysfs' do
|
37
|
+
Facter.fact(:filesystems).value.split(',').should_not include('sysfs')
|
38
|
+
end
|
39
|
+
|
40
|
+
# Check that all other lines are counted as valid filesystems
|
41
|
+
it 'should detect ext4' do
|
42
|
+
Facter.fact(:filesystems).value.split(',').should include('ext4')
|
43
|
+
end
|
44
|
+
|
45
|
+
# fuseblk is never included in the filesystem list
|
46
|
+
it 'should not detect fuseblk' do
|
47
|
+
Facter.fact(:filesystems).value.split(',').should_not include('fuseblk')
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe "fqdn fact" do
|
6
|
+
it "should concatenate hostname and domain" do
|
7
|
+
Facter.fact(:hostname).stubs(:value).returns("foo")
|
8
|
+
Facter.fact(:domain).stubs(:value).returns("bar")
|
9
|
+
Facter.fact(:fqdn).value.should == "foo.bar"
|
10
|
+
end
|
11
|
+
it "should return hostname when domain is nil" do
|
12
|
+
Facter.fact(:hostname).stubs(:value).returns("foo")
|
13
|
+
Facter.fact(:domain).stubs(:value).returns(nil)
|
14
|
+
Facter.fact(:fqdn).value.should == "foo"
|
15
|
+
end
|
16
|
+
end
|