I generally agree with Jesse that it's heinous that we're using this
type of solution, but the existing code is equally heinous.
I'm comfortable with this change, albeit with the goal of refactoring
more thoroughly at some later date.
Or is it worth taking the intent of your patch and spending a bit more
time on the code so it provides the needed functionality while being
more maintainable in the long term?
On Jan 27, 2010, at 9:22 PM, ohad wrote:
Any comments on this one? its hitting me hard on all of my Solaris
boxes.
On Jan 18, 10:45 am, Ohad Levy <[email protected]> wrote:
This patch removes the relationship between the domain fact and
LDAP/NIS
domain value.
The domain fact represent DNS domain - this will avoid the
confusion caused
by the LDAP/NIS domain (which might be different to the DNS domain
name).
Additionally, if hostname is already in long form, it won't try to
build the
fqdn fact from hostname and domain.
---
lib/facter/domain.rb | 8 ++++----
lib/facter/fqdn.rb | 4 ++++
lib/facter/hostname.rb | 7 ++++---
3 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/lib/facter/domain.rb b/lib/facter/domain.rb
index b1bba4d..5dfead0 100644
--- a/lib/facter/domain.rb
+++ b/lib/facter/domain.rb
@@ -4,14 +4,14 @@ Facter.add(:domain) do
# steps is important
Facter.value(:hostname)
- next $domain if defined? $domain and ! $domain.nil?
+ # try to fetch the domain from hostname if long hostname
is used.
+ if defined? $fqdn and $fqdn =~ /^([\w-]+)\.(.+)$/
+ next $2
+ end
domain = Facter::Util::Resolution.exec('dnsdomainname')
next domain if domain =~ /.+\..+/
- domain = Facter::Util::Resolution.exec('domainname')
- next domain if domain =~ /.+\..+/
-
if FileTest.exists?("/etc/resolv.conf")
domain = nil
search = nil
diff --git a/lib/facter/fqdn.rb b/lib/facter/fqdn.rb
index 5ebc5f5..6271995 100644
--- a/lib/facter/fqdn.rb
+++ b/lib/facter/fqdn.rb
@@ -1,5 +1,9 @@
Facter.add(:fqdn) do
setcode do
+ # try to fetch the fqdn from hostname if long hostname is
used.
+ Facter.value(:hostname)
+ next $fqdn if defined? $fqdn and ! $fqdn.nil?
+
host = Facter.value(:hostname)
domain = Facter.value(:domain)
if host and domain
diff --git a/lib/facter/hostname.rb b/lib/facter/hostname.rb
index 188efa4..c3ca968 100644
--- a/lib/facter/hostname.rb
+++ b/lib/facter/hostname.rb
@@ -1,12 +1,13 @@
Facter.add(:hostname, :ldapname => "cn") do
setcode do
+ require 'socket'
hostname = nil
- name = Facter::Util::Resolution.exec('hostname') or nil
+ name = Socket.gethostbyname(Socket.gethostname).first
if name
if name =~ /^([\w-]+)\.(.+)$/
hostname = $1
- # the Domain class uses this
- $domain = $2
+ # the FQDN/Domain facts use this
+ $fqdn = name
else
hostname = name
end
--
1.6.3.3
--
You received this message because you are subscribed to the Google
Groups "Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected]
.
For more options, visit this group at http://groups.google.com/group/puppet-dev?hl=en
.
--
If it jams, force it. If it breaks, it probably needed replacing
anyway. -- Lowrey's Law
---------------------------------------------------------------------
Luke Kanies -|- http://reductivelabs.com -|- +1(615)594-8199
--
You received this message because you are subscribed to the Google Groups "Puppet
Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/puppet-dev?hl=en.