summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRein Henrichs <rein@puppetlabs.com>2010-08-18 15:50:39 -0700
committerRein Henrichs <rein@puppetlabs.com>2010-08-18 15:50:39 -0700
commit01a515fc4d6af84fa99e42475a95d846e09343d0 (patch)
tree2937e61b2e9e7d68c3d4d3683fa2544c9668da9c
parent51bcebe38cab6088c901f1006339bbe40a36d161 (diff)
downloadfacter-01a515fc4d6af84fa99e42475a95d846e09343d0.tar.gz
facter-01a515fc4d6af84fa99e42475a95d846e09343d0.tar.xz
facter-01a515fc4d6af84fa99e42475a95d846e09343d0.zip
[#4289] operatingsystemrelease fact for oel, ovs
When Facter returns operatingsystem as "oel" or "ovs", the operatingsystemrelease fact does not catch these properly, causing an error. Specs added to catch failure and case statement updated to catch "oel" and "ovs" as well as "OEL" and "OVS"
-rw-r--r--lib/facter/operatingsystemrelease.rb4
-rw-r--r--spec/unit/operatingsystemrelease.rb39
2 files changed, 41 insertions, 2 deletions
diff --git a/lib/facter/operatingsystemrelease.rb b/lib/facter/operatingsystemrelease.rb
index 30f2989..280208b 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -8,9 +8,9 @@ Facter.add(:operatingsystemrelease) do
releasefile = "/etc/fedora-release"
when "MeeGo"
releasefile = "/etc/meego-release"
- when "OEL"
+ when "OEL", "oel"
releasefile = "/etc/enterprise-release"
- when "OVS"
+ when "OVS", "ovs"
releasefile = "/etc/ovs-release"
end
File::open(releasefile, "r") do |f|
diff --git a/spec/unit/operatingsystemrelease.rb b/spec/unit/operatingsystemrelease.rb
new file mode 100644
index 0000000..31d4ae8
--- /dev/null
+++ b/spec/unit/operatingsystemrelease.rb
@@ -0,0 +1,39 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../spec_helper'
+
+require 'facter'
+
+describe "Operating System Release fact" do
+
+ before do
+ Facter.clear
+ end
+
+ after do
+ Facter.clear
+ end
+
+ test_cases = {
+ "CentOS" => "/etc/redhat-release",
+ "RedHat" => "/etc/redhat-release",
+ "Fedora" => "/etc/fedora-release",
+ "MeeGo" => "/etc/meego-release",
+ "OEL" => "/etc/enterprise-release",
+ "oel" => "/etc/enterprise-release",
+ "OVS" => "/etc/ovs-release",
+ "ovs" => "/etc/ovs-release"
+ }
+
+ test_cases.each do |system, file|
+ context "with operatingsystem reported as #{system.inspect}" do
+ it "should read the #{file.inspect} file" do
+ Facter.fact(:operatingsystem).stubs(:value).returns(system)
+
+ File.expects(:open).with(file, "r").at_least(1)
+
+ Facter.fact(:operatingsystemrelease).value
+ end
+ end
+ end
+end