This is basically a partial use of Todd Zullinger's patch to consolidate the 
Red Hat-related facts.

It now makes the $operatingsystemrelease fact the major integer only.

This means we don't currently track minor releases.

Signed-off-by: James Turnbull <[email protected]>
---
 CHANGELOG                            |    2 +
 lib/facter/operatingsystemrelease.rb |   62 ++++++----------------------------
 2 files changed, 13 insertions(+), 51 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index ac92eaf..11825f2 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,6 @@
 1.5.5:
+    Fixed #2060 - Inconsistent output in operatingsystemrelease between RedHat 
and CentOS
+
     Fixed #2132 - Support for named interfaces under Linux
 
     Fixed #2080 - IPAddress resolutions should be reordered
diff --git a/lib/facter/operatingsystemrelease.rb 
b/lib/facter/operatingsystemrelease.rb
index 25a226d..2f76817 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -1,21 +1,17 @@
 Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :fedora
+    confine :operatingsystem => %w{CentOS Fedora oel ovs RedHat}
     setcode do
-        File::open("/etc/fedora-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /\(Rawhide\)$/
-                "Rawhide"
-            elsif line =~ /release (\d+)/
-                $1
-            end
+        case Facter.value(:operatingsystem)
+        when "CentOS", "RedHat"
+            releasefile = "/etc/redhat-release"
+        when "Fedora"
+            releasefile = "/etc/fedora-release"
+        when "oel"
+            releasefile = "/etc/enterprise-release"
+        when "ovs"
+            releasefile = "/etc/ovs-release"
         end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => %w{RedHat}
-    setcode do
-        File::open("/etc/redhat-release", "r") do |f|
+        File::open(releasefile, "r") do |f|
             line = f.readline.chomp
             if line =~ /\(Rawhide\)$/
                 "Rawhide"
@@ -27,42 +23,6 @@ Facter.add(:operatingsystemrelease) do
 end
 
 Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :oel
-    setcode do
-        File::open("/etc/enterprise-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /release (\d+)/
-                $1
-            end
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :ovs
-    setcode do
-        File::open("/etc/ovs-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /release (\d+)/
-                $1
-            end
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => %w{CentOS}
-    setcode do
-        centos_release = Facter::Util::Resolution.exec("sed -r -e 's/CentOS 
release //' -e 's/ \((Branch|Final)\)//' /etc/redhat-release")
-        if centos_release =~ /5/
-            release = Facter::Util::Resolution.exec('rpm -q --qf 
\'%{VERSION}.%{RELEASE}\' centos-release | cut -d. -f1,2')
-        else
-            release = centos_release
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
     confine :operatingsystem => %w{Debian}
     setcode do
         release = Facter::Util::Resolution.exec('cat /etc/debian_version')
-- 
1.6.0.6


--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to