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,15 @@
|
|
1
|
+
# Fact: facterversion
|
2
|
+
#
|
3
|
+
# Purpose: returns the version of the facter module.
|
4
|
+
#
|
5
|
+
# Resolution: Uses the Facter.version method.
|
6
|
+
#
|
7
|
+
# Caveats:
|
8
|
+
#
|
9
|
+
|
10
|
+
Facter.add(:facterversion) do
|
11
|
+
setcode do
|
12
|
+
require 'facter/version'
|
13
|
+
Facter.version.to_s
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#
|
2
|
+
# filesystems.rb
|
3
|
+
#
|
4
|
+
# This fact provides an alphabetic list of usable file systems that can
|
5
|
+
# be used for block devices like hard drives, media cards and so on ...
|
6
|
+
#
|
7
|
+
Facter.add('filesystems') do
|
8
|
+
confine :kernel => :linux
|
9
|
+
setcode do
|
10
|
+
# fuseblk can't be created and arguably isn't usable here. If you feel this
|
11
|
+
# doesn't match your use-case please raise a bug.
|
12
|
+
exclude = %w(fuseblk)
|
13
|
+
|
14
|
+
# Make regular expression form our patterns ...
|
15
|
+
exclude = Regexp.union(*exclude.collect { |i| Regexp.new(i) })
|
16
|
+
|
17
|
+
# We utilise rely on "cat" for reading values from entries under "/proc".
|
18
|
+
# This is due to some problems with IO#read in Ruby and reading content of
|
19
|
+
# the "proc" file system that was reported more than once in the past ...
|
20
|
+
file_systems = []
|
21
|
+
Facter::Core::Execution.exec('cat /proc/filesystems 2> /dev/null').each_line do |line|
|
22
|
+
# Remove bloat ...
|
23
|
+
line.strip!
|
24
|
+
|
25
|
+
# Line of interest should not start with "nodev" ...
|
26
|
+
next if line.empty? or line.match(/^nodev/)
|
27
|
+
|
28
|
+
# We have something, so let us apply our device type filter ...
|
29
|
+
next if line.match(exclude)
|
30
|
+
|
31
|
+
file_systems << line
|
32
|
+
end
|
33
|
+
file_systems.sort.join(',')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# vim: set ts=2 sw=2 et :
|
38
|
+
# encoding: utf-8
|
data/lib/facter/fqdn.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Fact: fqdn
|
2
|
+
#
|
3
|
+
# Purpose: Returns the fully qualified domain name of the host.
|
4
|
+
#
|
5
|
+
# Resolution: Simply joins the hostname fact with the domain name fact.
|
6
|
+
#
|
7
|
+
# Caveats: No attempt is made to check that the two facts are accurate or that
|
8
|
+
# the two facts go together. At no point is there any DNS resolution made
|
9
|
+
# either.
|
10
|
+
#
|
11
|
+
|
12
|
+
Facter.add(:fqdn) do
|
13
|
+
setcode do
|
14
|
+
host = Facter.value(:hostname)
|
15
|
+
domain = Facter.value(:domain)
|
16
|
+
if host and domain
|
17
|
+
[host, domain].join(".")
|
18
|
+
elsif host
|
19
|
+
host
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/facter/gce.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'facter/gce/metadata'
|
2
|
+
|
3
|
+
Facter.define_fact(:gce) do
|
4
|
+
define_resolution(:rest) do
|
5
|
+
confine :virtual => 'gce'
|
6
|
+
|
7
|
+
confine do
|
8
|
+
Facter.json?
|
9
|
+
end
|
10
|
+
|
11
|
+
setcode do
|
12
|
+
querier = Facter::GCE::Metadata.new
|
13
|
+
querier.fetch
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
|
3
|
+
module Facter
|
4
|
+
module GCE
|
5
|
+
|
6
|
+
# @api private
|
7
|
+
class Metadata
|
8
|
+
CONNECTION_ERRORS = [
|
9
|
+
OpenURI::HTTPError,
|
10
|
+
Errno::EHOSTDOWN,
|
11
|
+
Errno::EHOSTUNREACH,
|
12
|
+
Errno::ENETUNREACH,
|
13
|
+
Errno::ECONNABORTED,
|
14
|
+
Errno::ECONNREFUSED,
|
15
|
+
Errno::ECONNRESET,
|
16
|
+
Errno::ETIMEDOUT,
|
17
|
+
Timeout::Error,
|
18
|
+
]
|
19
|
+
|
20
|
+
METADATA_URL = "http://metadata/computeMetadata/v1beta1/?recursive=true&alt=json"
|
21
|
+
|
22
|
+
def initialize(url = METADATA_URL)
|
23
|
+
@url = url
|
24
|
+
end
|
25
|
+
|
26
|
+
def fetch
|
27
|
+
with_metadata_server do |body|
|
28
|
+
# This will only be reached if the confine associated with this class
|
29
|
+
# was true which means that JSON was required, but it's a bit
|
30
|
+
# questionable that we're relying on JSON being loaded as a side
|
31
|
+
# effect of that.
|
32
|
+
hash = ::JSON.parse(body)
|
33
|
+
transform_metadata!(hash)
|
34
|
+
hash
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def with_metadata_server
|
41
|
+
retry_limit = 3
|
42
|
+
timeout = 0.05
|
43
|
+
body = nil
|
44
|
+
attempts = 0
|
45
|
+
|
46
|
+
begin
|
47
|
+
Timeout.timeout(timeout) do
|
48
|
+
body = open(@url).read
|
49
|
+
end
|
50
|
+
rescue *CONNECTION_ERRORS => e
|
51
|
+
attempts = attempts + 1
|
52
|
+
if attempts < retry_limit
|
53
|
+
retry
|
54
|
+
else
|
55
|
+
Facter.log_exception(e, "Unable to fetch metadata from #{@url}: #{e.message}")
|
56
|
+
return nil
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
if body
|
61
|
+
yield body
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# @return [void]
|
66
|
+
def transform_metadata!(data)
|
67
|
+
case data
|
68
|
+
when Hash
|
69
|
+
data.keys.each do |key|
|
70
|
+
value = data[key]
|
71
|
+
if ["image", "machineType", "zone", "network"].include? key
|
72
|
+
data[key] = value.split('/').last
|
73
|
+
elsif key == "sshKeys"
|
74
|
+
data['sshKeys'] = value.split("\n")
|
75
|
+
end
|
76
|
+
transform_metadata!(value)
|
77
|
+
end
|
78
|
+
when Array
|
79
|
+
data.each do |value|
|
80
|
+
transform_metadata!(value)
|
81
|
+
end
|
82
|
+
end
|
83
|
+
nil
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Fact: hardwareisa
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
# Returns hardware processor type.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# On Solaris, AIX, Linux and the BSDs simply uses the output of "uname -p"
|
8
|
+
# On HP-UX, "uname -m" gives us the same information.
|
9
|
+
#
|
10
|
+
# Caveats:
|
11
|
+
# Some linuxes return unknown to uname -p with relative ease.
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:hardwareisa) do
|
15
|
+
if Facter.value(:kernel) == 'HP-UX'
|
16
|
+
setcode 'uname -m'
|
17
|
+
else
|
18
|
+
setcode 'uname -p'
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# Fact: hardwaremodel
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
# Returns the hardware model of the system.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# Uses purely "uname -m" on all platforms other than AIX and Windows.
|
8
|
+
# On AIX uses the parsed "modelname" output of "lsattr -El sys0 -a modelname".
|
9
|
+
# On Windows uses the 'host_cpu' pulled out of Ruby's config.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:hardwaremodel) do
|
15
|
+
setcode 'uname -m'
|
16
|
+
end
|
17
|
+
|
18
|
+
Facter.add(:hardwaremodel) do
|
19
|
+
confine :operatingsystem => :aix
|
20
|
+
setcode do
|
21
|
+
model = Facter::Core::Execution.exec('lsattr -El sys0 -a modelname')
|
22
|
+
if model =~ /modelname\s(\S+)\s/
|
23
|
+
$1
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Facter.add(:hardwaremodel) do
|
29
|
+
confine :operatingsystem => :windows
|
30
|
+
setcode do
|
31
|
+
# The cryptic windows cpu architecture models are documented in these places:
|
32
|
+
# http://source.winehq.org/source/include/winnt.h#L568
|
33
|
+
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394373(v=vs.85).aspx
|
34
|
+
# http://msdn.microsoft.com/en-us/library/windows/desktop/windows.system.processorarchitecture.aspx
|
35
|
+
# http://linux.derkeiler.com/Mailing-Lists/Kernel/2008-05/msg12924.html (anything over 6 is still i686)
|
36
|
+
# Also, arm and neutral are included because they are valid for the upcoming
|
37
|
+
# windows 8 release. --jeffweiss 23 May 2012
|
38
|
+
require 'facter/util/wmi'
|
39
|
+
model = ""
|
40
|
+
architecture_level = nil
|
41
|
+
|
42
|
+
Facter::Util::WMI.execquery("select Architecture, Level, AddressWidth from Win32_Processor").each do |cpu|
|
43
|
+
architecture_level = (cpu.Level > 5) ? 6 : cpu.Level;
|
44
|
+
|
45
|
+
model =
|
46
|
+
case cpu.Architecture
|
47
|
+
when 11 then 'neutral' # PROCESSOR_ARCHITECTURE_NEUTRAL
|
48
|
+
when 10 then 'i686' # PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
|
49
|
+
when 9 then # PROCESSOR_ARCHITECTURE_AMD64
|
50
|
+
cpu.AddressWidth == 32 ? "i#{architecture_level}86" : 'x64' # 32 bit OS on 64 bit CPU
|
51
|
+
when 8 then 'msil' # PROCESSOR_ARCHITECTURE_MSIL
|
52
|
+
when 7 then 'alpha64' # PROCESSOR_ARCHITECTURE_ALPHA64
|
53
|
+
when 6 then 'ia64' # PROCESSOR_ARCHITECTURE_IA64
|
54
|
+
when 5 then 'arm' # PROCESSOR_ARCHITECTURE_ARM
|
55
|
+
when 4 then 'shx' # PROCESSOR_ARCHITECTURE_SHX
|
56
|
+
when 3 then 'powerpc' # PROCESSOR_ARCHITECTURE_PPC
|
57
|
+
when 2 then 'alpha' # PROCESSOR_ARCHITECTURE_ALPHA
|
58
|
+
when 1 then 'mips' # PROCESSOR_ARCHITECTURE_MIPS
|
59
|
+
when 0 then "i#{architecture_level}86" # PROCESSOR_ARCHITECTURE_INTEL
|
60
|
+
else 'unknown' # PROCESSOR_ARCHITECTURE_UNKNOWN
|
61
|
+
end
|
62
|
+
break
|
63
|
+
end
|
64
|
+
|
65
|
+
model
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# Fact: hostname
|
2
|
+
#
|
3
|
+
# Purpose: Return the system's short hostname.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# On all system bar Darwin, parses the output of the "hostname" system command
|
7
|
+
# to everything before the first period.
|
8
|
+
# On Darwin, uses the system configuration util to get the LocalHostName
|
9
|
+
# variable.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:hostname) do
|
15
|
+
setcode do
|
16
|
+
hostname = nil
|
17
|
+
if name = Facter::Core::Execution.execute('hostname')
|
18
|
+
if name =~ /(.*?)\./
|
19
|
+
hostname = $1
|
20
|
+
else
|
21
|
+
hostname = name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
hostname
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
Facter.add(:hostname) do
|
29
|
+
confine :kernel => :darwin, :kernelrelease => "R7"
|
30
|
+
setcode '/usr/sbin/scutil --get LocalHostName'
|
31
|
+
end
|
data/lib/facter/id.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Fact: id
|
2
|
+
#
|
3
|
+
# Purpose: Internal fact used to specity the program to return the currently
|
4
|
+
# running user id.
|
5
|
+
#
|
6
|
+
# Resolution:
|
7
|
+
# On all Unixes bar Solaris, just returns "whoami".
|
8
|
+
# On Solaris, parses the output of the "id" command to grab the username, as
|
9
|
+
# Solaris doesn't have the whoami command.
|
10
|
+
#
|
11
|
+
# Caveats:
|
12
|
+
#
|
13
|
+
|
14
|
+
Facter.add(:id) do
|
15
|
+
setcode "whoami"
|
16
|
+
end
|
17
|
+
|
18
|
+
Facter.add(:id) do
|
19
|
+
confine :kernel => :SunOS
|
20
|
+
setcode "/usr/xpg4/bin/id -un"
|
21
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Fact: interfaces
|
2
|
+
#
|
3
|
+
# Purpose:
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
#
|
7
|
+
# Caveats:
|
8
|
+
#
|
9
|
+
|
10
|
+
# interfaces.rb
|
11
|
+
# Try to get additional Facts about the machine's network interfaces
|
12
|
+
#
|
13
|
+
# Original concept Copyright (C) 2007 psychedelys <psychedelys@gmail.com>
|
14
|
+
# Update and *BSD support (C) 2007 James Turnbull <james@lovedthanlost.net>
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'facter/util/ip'
|
18
|
+
require 'facter/util/macaddress'
|
19
|
+
|
20
|
+
# Note that most of this only works on a fixed list of platforms; notably, Darwin
|
21
|
+
# is missing.
|
22
|
+
|
23
|
+
Facter.add(:interfaces) do
|
24
|
+
confine :kernel => Facter::Util::IP.supported_platforms
|
25
|
+
setcode do
|
26
|
+
Facter::Util::IP.get_interfaces.collect { |iface| Facter::Util::IP.alphafy(iface) }.join(",")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
Facter::Util::IP.get_interfaces.each do |interface|
|
31
|
+
|
32
|
+
# Make a fact for each detail of each interface. Yay.
|
33
|
+
# There's no point in confining these facts, since we wouldn't be able to create
|
34
|
+
# them if we weren't running on a supported platform.
|
35
|
+
%w{ipaddress ipaddress6 macaddress netmask mtu}.each do |label|
|
36
|
+
Facter.add(label + "_" + Facter::Util::IP.alphafy(interface)) do
|
37
|
+
setcode do
|
38
|
+
value = Facter::Util::IP.get_interface_value(interface, label)
|
39
|
+
if label == "macaddress"
|
40
|
+
value = Facter::Util::Macaddress.standardize(value)
|
41
|
+
end
|
42
|
+
value
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
# Fact: ipaddress
|
2
|
+
#
|
3
|
+
# Purpose: Return the main IP address for a host.
|
4
|
+
#
|
5
|
+
# Resolution:
|
6
|
+
# On the Unixes does an ifconfig, and returns the first non 127.0.0.0/8
|
7
|
+
# subnetted IP it finds.
|
8
|
+
# On Windows, it attempts to use the socket library and resolve the machine's
|
9
|
+
# hostname via DNS.
|
10
|
+
#
|
11
|
+
# On LDAP based hosts it tries to use either the win32/resolv library to
|
12
|
+
# resolve the hostname to an IP address, or on Unix, it uses the resolv
|
13
|
+
# library.
|
14
|
+
#
|
15
|
+
# As a fall back for undefined systems, it tries to run the "host" command to
|
16
|
+
# resolve the machine's hostname using the system DNS.
|
17
|
+
#
|
18
|
+
# Caveats:
|
19
|
+
# DNS resolution relies on working DNS infrastructure and resolvers on the
|
20
|
+
# host system.
|
21
|
+
# The ifconfig parsing purely takes the first IP address it finds without any
|
22
|
+
# checking this is a useful IP address.
|
23
|
+
#
|
24
|
+
|
25
|
+
require 'facter/util/ip'
|
26
|
+
|
27
|
+
Facter.add(:ipaddress) do
|
28
|
+
confine :kernel => :linux
|
29
|
+
setcode do
|
30
|
+
ip = nil
|
31
|
+
output = Facter::Util::IP.exec_ifconfig(["2>/dev/null"])
|
32
|
+
if output
|
33
|
+
regexp = /inet (?:addr:)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
34
|
+
output.split("\n").each do |line|
|
35
|
+
match = regexp.match(line)
|
36
|
+
if match and not /^127\./.match(match[1])
|
37
|
+
ip = match[1]
|
38
|
+
break
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
ip
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
Facter.add(:ipaddress) do
|
47
|
+
confine :kernel => %w{FreeBSD OpenBSD Darwin DragonFly}
|
48
|
+
setcode do
|
49
|
+
ip = nil
|
50
|
+
output = Facter::Util::IP.exec_ifconfig
|
51
|
+
|
52
|
+
output.split(/^\S/).each { |str|
|
53
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
54
|
+
tmp = $1
|
55
|
+
unless tmp =~ /^127\./
|
56
|
+
ip = tmp
|
57
|
+
break
|
58
|
+
end
|
59
|
+
end
|
60
|
+
}
|
61
|
+
|
62
|
+
ip
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
Facter.add(:ipaddress) do
|
67
|
+
confine :kernel => %w{NetBSD SunOS}
|
68
|
+
setcode do
|
69
|
+
ip = nil
|
70
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
71
|
+
|
72
|
+
output.split(/^\S/).each { |str|
|
73
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
74
|
+
tmp = $1
|
75
|
+
unless tmp =~ /^127\./ or tmp == "0.0.0.0"
|
76
|
+
ip = tmp
|
77
|
+
break
|
78
|
+
end
|
79
|
+
end
|
80
|
+
}
|
81
|
+
|
82
|
+
ip
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
Facter.add(:ipaddress) do
|
87
|
+
confine :kernel => %w{AIX}
|
88
|
+
setcode do
|
89
|
+
ip = nil
|
90
|
+
output = Facter::Util::IP.exec_ifconfig(["-a"])
|
91
|
+
|
92
|
+
output.split(/^\S/).each { |str|
|
93
|
+
if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
94
|
+
tmp = $1
|
95
|
+
unless tmp =~ /^127\./
|
96
|
+
ip = tmp
|
97
|
+
break
|
98
|
+
end
|
99
|
+
end
|
100
|
+
}
|
101
|
+
|
102
|
+
ip
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
Facter.add(:ipaddress) do
|
107
|
+
confine :kernel => %w{windows}
|
108
|
+
setcode do
|
109
|
+
require 'facter/util/ip/windows'
|
110
|
+
ipaddr = nil
|
111
|
+
|
112
|
+
adapters = Facter::Util::IP::Windows.get_preferred_ipv4_adapters
|
113
|
+
adapters.find do |nic|
|
114
|
+
nic.IPAddress.any? do |addr|
|
115
|
+
ipaddr = addr if Facter::Util::IP::Windows.valid_ipv4_address?(addr)
|
116
|
+
ipaddr
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
ipaddr
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
Facter.add(:ipaddress, :timeout => 2) do
|
125
|
+
setcode do
|
126
|
+
if Facter.value(:kernel) == 'windows'
|
127
|
+
require 'win32/resolv'
|
128
|
+
else
|
129
|
+
require 'resolv'
|
130
|
+
end
|
131
|
+
|
132
|
+
begin
|
133
|
+
if hostname = Facter.value(:hostname)
|
134
|
+
if Facter.value(:kernel) == 'windows'
|
135
|
+
ip = Win32::Resolv.get_resolv_info.last[0]
|
136
|
+
else
|
137
|
+
ip = Resolv.getaddress(hostname)
|
138
|
+
end
|
139
|
+
unless ip == "127.0.0.1"
|
140
|
+
ip
|
141
|
+
end
|
142
|
+
else
|
143
|
+
nil
|
144
|
+
end
|
145
|
+
rescue Resolv::ResolvError
|
146
|
+
nil
|
147
|
+
rescue NoMethodError # i think this is a bug in resolv.rb?
|
148
|
+
nil
|
149
|
+
end
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
Facter.add(:ipaddress, :timeout => 2) do
|
154
|
+
setcode do
|
155
|
+
if hostname = Facter.value(:hostname)
|
156
|
+
# we need Hostname to exist for this to work
|
157
|
+
host = nil
|
158
|
+
if host = Facter::Core::Execution.execute("host #{hostname}")
|
159
|
+
list = host.chomp.split(/\s/)
|
160
|
+
if defined? list[-1] and
|
161
|
+
list[-1] =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/
|
162
|
+
list[-1]
|
163
|
+
end
|
164
|
+
else
|
165
|
+
nil
|
166
|
+
end
|
167
|
+
else
|
168
|
+
nil
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|