From bee55c4ab1746ea78de8defaff29663d7ab15604 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 9 Mar 2009 02:09:12 -0400 Subject: Consolidate operatingsystemrelease for CentOS, Fedora, oel, ovs, and RedHat These operating systems all use a similar format for the release file. --- lib/facter/operatingsystemrelease.rb | 62 +++++++----------------------------- 1 file changed, 11 insertions(+), 51 deletions(-) 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" @@ -26,42 +22,6 @@ Facter.add(:operatingsystemrelease) do end 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 -- cgit From 82d97e25f14f0b92187b6ac695119ac5076c0810 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Mon, 9 Mar 2009 02:12:32 -0400 Subject: Fix operatingsystemrelease on Red Hat based distros This allows operatingsystemrelease to properly determine the release for various Red Hat based distros, including the point portion of the release. --- lib/facter/operatingsystemrelease.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/facter/operatingsystemrelease.rb b/lib/facter/operatingsystemrelease.rb index 2f76817..18199bd 100644 --- a/lib/facter/operatingsystemrelease.rb +++ b/lib/facter/operatingsystemrelease.rb @@ -15,7 +15,7 @@ Facter.add(:operatingsystemrelease) do line = f.readline.chomp if line =~ /\(Rawhide\)$/ "Rawhide" - elsif line =~ /release (\d+)/ + elsif line =~ /release (\d[\d.]*)/ $1 end end -- cgit