bab9bb6b69
Create new directories: ceph config config-files filesystem kernel kernel/kernel-modules ldap logging strorage-drivers tools utilities virt Retire directories: connectivity core devtools support extended Delete two packages: tgt irqbalance Relocated packages: base/ dhcp initscripts libevent lighttpd linuxptp memcached net-snmp novnc ntp openssh pam procps sanlock shadow sudo systemd util-linux vim watchdog ceph/ python-cephclient config/ facter puppet-4.8.2 puppet-modules filesystem/ e2fsprogs nfs-utils nfscheck kernel/ kernel-std kernel-rt kernel/kernel-modules/ mlnx-ofa_kernel ldap/ nss-pam-ldapd openldap logging/ syslog-ng logrotate networking/ lldpd iproute mellanox python-ryu mlx4-config python/ python-2.7.5 python-django python-gunicorn python-setuptools python-smartpm python-voluptuous security/ shim-signed shim-unsigned tboot strorage-drivers/ python-3parclient python-lefthandclient virt/ cloud-init libvirt libvirt-python qemu tools/ storage-topology vm-topology utilities/ tis-extensions namespace-utils nova-utils update-motd Change-Id: I37ade764d873c701b35eac5881eb40412ba64a86 Story: 2002801 Task: 22687 Signed-off-by: Scott Little <scott.little@windriver.com>
189 lines
4.6 KiB
Diff
189 lines
4.6 KiB
Diff
From af1818469ed789bad373e6c0f8d29669acc39669 Mon Sep 17 00:00:00 2001
|
|
From: Don Penney <don.penney@windriver.com>
|
|
Date: Thu, 26 Oct 2017 10:44:20 -0400
|
|
Subject: [PATCH] Hardcode ipaddress fact to localhost
|
|
|
|
---
|
|
lib/facter/ipaddress.rb | 163 +-----------------------------------------------
|
|
1 file changed, 2 insertions(+), 161 deletions(-)
|
|
|
|
diff --git a/lib/facter/ipaddress.rb b/lib/facter/ipaddress.rb
|
|
index 6179a4d..4c54791 100644
|
|
--- a/lib/facter/ipaddress.rb
|
|
+++ b/lib/facter/ipaddress.rb
|
|
@@ -1,169 +1,10 @@
|
|
# Fact: ipaddress
|
|
#
|
|
-# Purpose: Return the main IP address for a host.
|
|
+# To avoid potential timeouts with this fact, just return 127.0.0.1 always
|
|
#
|
|
-# Resolution:
|
|
-# On the Unixes does an ifconfig, and returns the first non 127.0.0.0/8
|
|
-# subnetted IP it finds.
|
|
-# On Windows, it attempts to use the socket library and resolve the machine's
|
|
-# hostname via DNS.
|
|
-#
|
|
-# On LDAP based hosts it tries to use either the win32/resolv library to
|
|
-# resolve the hostname to an IP address, or on Unix, it uses the resolv
|
|
-# library.
|
|
-#
|
|
-# As a fall back for undefined systems, it tries to run the "host" command to
|
|
-# resolve the machine's hostname using the system DNS.
|
|
-#
|
|
-# Caveats:
|
|
-# DNS resolution relies on working DNS infrastructure and resolvers on the
|
|
-# host system.
|
|
-# The ifconfig parsing purely takes the first IP address it finds without any
|
|
-# checking this is a useful IP address.
|
|
-#
|
|
-
|
|
-require 'facter/util/ip'
|
|
-
|
|
-Facter.add(:ipaddress) do
|
|
- confine :kernel => :linux
|
|
- setcode do
|
|
- ip = nil
|
|
- output = Facter::Util::IP.exec_ifconfig(["2>/dev/null"])
|
|
- if output
|
|
- regexp = /inet (?:addr:)?([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
|
- output.split("\n").each do |line|
|
|
- match = regexp.match(line)
|
|
- if match and not /^127\./.match(match[1])
|
|
- ip = match[1]
|
|
- break
|
|
- end
|
|
- end
|
|
- end
|
|
- ip
|
|
- end
|
|
-end
|
|
-
|
|
-Facter.add(:ipaddress) do
|
|
- confine :kernel => %w{FreeBSD OpenBSD Darwin DragonFly}
|
|
- setcode do
|
|
- ip = nil
|
|
- output = Facter::Util::IP.exec_ifconfig
|
|
-
|
|
- output.split(/^\S/).each do |str|
|
|
- if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
|
- tmp = $1
|
|
- unless tmp =~ /^127\./
|
|
- ip = tmp
|
|
- break
|
|
- end
|
|
- end
|
|
- end
|
|
-
|
|
- ip
|
|
- end
|
|
-end
|
|
|
|
Facter.add(:ipaddress) do
|
|
- confine :kernel => %w{NetBSD SunOS}
|
|
- setcode do
|
|
- ip = nil
|
|
- output = Facter::Util::IP.exec_ifconfig(["-a"])
|
|
-
|
|
- output.split(/^\S/).each do |str|
|
|
- if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
|
- tmp = $1
|
|
- unless tmp =~ /^127\./ or tmp == "0.0.0.0"
|
|
- ip = tmp
|
|
- break
|
|
- end
|
|
- end
|
|
- end
|
|
-
|
|
- ip
|
|
- end
|
|
-end
|
|
-
|
|
-Facter.add(:ipaddress) do
|
|
- confine :kernel => %w{AIX}
|
|
- setcode do
|
|
- ip = nil
|
|
-
|
|
- default_interface = Facter::Util::IP.exec_netstat(["-rn | grep default | awk '{ print $6 }'"])
|
|
- output = Facter::Util::IP.exec_ifconfig([default_interface])
|
|
-
|
|
- output.split(/^\S/).each do |str|
|
|
- if str =~ /inet ([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)/
|
|
- ip = $1
|
|
- end
|
|
- end
|
|
-
|
|
- ip
|
|
- end
|
|
-end
|
|
-
|
|
-Facter.add(:ipaddress) do
|
|
- confine :kernel => %w{windows}
|
|
- setcode do
|
|
- require 'facter/util/ip/windows'
|
|
- ipaddr = nil
|
|
-
|
|
- adapters = Facter::Util::IP::Windows.get_preferred_ipv4_adapters
|
|
- adapters.find do |nic|
|
|
- nic.IPAddress.any? do |addr|
|
|
- ipaddr = addr if Facter::Util::IP::Windows.valid_ipv4_address?(addr)
|
|
- ipaddr
|
|
- end
|
|
- end
|
|
-
|
|
- ipaddr
|
|
- end
|
|
-end
|
|
-
|
|
-Facter.add(:ipaddress, :timeout => 2) do
|
|
- setcode do
|
|
- if Facter.value(:kernel) == 'windows'
|
|
- require 'win32/resolv'
|
|
- else
|
|
- require 'resolv'
|
|
- end
|
|
-
|
|
- begin
|
|
- if hostname = Facter.value(:hostname)
|
|
- if Facter.value(:kernel) == 'windows'
|
|
- ip = Win32::Resolv.get_resolv_info.last[0]
|
|
- else
|
|
- ip = Resolv.getaddress(hostname)
|
|
- end
|
|
- unless ip == "127.0.0.1"
|
|
- ip
|
|
- end
|
|
- else
|
|
- nil
|
|
- end
|
|
- rescue Resolv::ResolvError
|
|
- nil
|
|
- rescue NoMethodError # i think this is a bug in resolv.rb?
|
|
- nil
|
|
- end
|
|
- end
|
|
-end
|
|
-
|
|
-Facter.add(:ipaddress, :timeout => 2) do
|
|
setcode do
|
|
- if hostname = Facter.value(:hostname)
|
|
- # we need Hostname to exist for this to work
|
|
- host = nil
|
|
- if host = Facter::Core::Execution.execute("host #{hostname}")
|
|
- list = host.chomp.split(/\s/)
|
|
- if defined? list[-1] and
|
|
- list[-1] =~ /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/
|
|
- list[-1]
|
|
- end
|
|
- else
|
|
- nil
|
|
- end
|
|
- else
|
|
- nil
|
|
- end
|
|
+ "127.0.0.1"
|
|
end
|
|
end
|
|
--
|
|
1.8.3.1
|
|
|