[Pkg-puppet-devel] [facter] 279/352: (Maint) Handle NoMethodError on 2003
Stig Sandbeck Mathisen
ssm at debian.org
Sun Apr 6 22:21:53 UTC 2014
This is an automated email from the git hooks/post-receive script.
ssm pushed a commit to branch master
in repository facter.
commit 832b59a5cebd08eca004fbf946bdae1037eb6142
Author: Josh Cooper <josh at puppetlabs.com>
Date: Thu Feb 6 14:43:28 2014 -0800
(Maint) Handle NoMethodError on 2003
Commit b5a4c68f1 modified the operatingsystemrelease fact to return more
meaningful Windows versions, e.g. 2003 instead of the kernelrelease fact
value, 5.2.3790. However, on (some?) non-R2 versions of 2003, the
othertypedescription method is not available on the WMI class
Win32_OperatingSystem[1].
As a result, facter would output to stderr the following message:
Could not retrieve operatingsystemrelease: unknown property or method:
`othertypedescription'
HRESULT error code:0x80020006
Unknown name.
This commit simply rescues the NoMethodError and outputs 2003.
---
lib/facter/operatingsystemrelease.rb | 6 +++++-
spec/unit/operatingsystemrelease_spec.rb | 8 ++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/facter/operatingsystemrelease.rb b/lib/facter/operatingsystemrelease.rb
index c057858..a57abe7 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -206,7 +206,11 @@ Facter.add(:operatingsystemrelease) do
if os.producttype == 1
"XP"
else
- os.othertypedescription == "R2" ? "2003 R2" : "2003"
+ begin
+ os.othertypedescription == "R2" ? "2003 R2" : "2003"
+ rescue NoMethodError
+ "2003"
+ end
end
else
Facter[:kernelrelease].value
diff --git a/spec/unit/operatingsystemrelease_spec.rb b/spec/unit/operatingsystemrelease_spec.rb
index 4cf68c6..9a77dac 100755
--- a/spec/unit/operatingsystemrelease_spec.rb
+++ b/spec/unit/operatingsystemrelease_spec.rb
@@ -190,6 +190,14 @@ describe "Operating System Release fact" do
end
end
+ it "reports '2003' if the WMI method othertypedescription does not exist" do
+ os = mock('os', :version => '5.2.3790', :producttype => 2)
+ os.stubs(:othertypedescription).raises(NoMethodError)
+
+ Facter::Util::WMI.expects(:execquery).returns([os])
+ Facter.fact(:operatingsystemrelease).value.should == '2003'
+ end
+
context "Unknown Windows version" do
before :each do
Facter.fact(:kernelrelease).stubs(:value).returns("X.Y.ZZZZ")
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-puppet/facter.git
More information about the Pkg-puppet-devel
mailing list