Signed-off-by: William Van Hevelingen <[email protected]>
---
Local-branch: feature/master/7621-windows_osrelease
lib/facter/operatingsystemrelease.rb | 17 +++++++++++++++++
lib/facter/util/mswindows.rb | 16 ++++++++++++++++
lib/facter/windowsrelease.rb | 18 ++++++++++++++++++
3 files changed, 51 insertions(+), 0 deletions(-)
create mode 100644 lib/facter/util/mswindows.rb
create mode 100644 lib/facter/windowsrelease.rb
diff --git a/lib/facter/operatingsystemrelease.rb
b/lib/facter/operatingsystemrelease.rb
index 347fe7f..2ec7b05 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -123,5 +123,22 @@ Facter.add(:operatingsystemrelease) do
end
Facter.add(:operatingsystemrelease) do
+ confine :operatingsystem => :windows
+ require 'facter/util/mswindows'
+ osrelease = ""
+
+ # Included spaces to ensure its uniqueness
+ @releases = [" XP ", " Vista ", " 7 ", " 2003 ", " 2008 ", " 2008 R2 ", " 8
"]
+
+ @releases.each do |r|
+ if Facter::Util::MSWindows.getWindowsRelease.include?(r)
+ setcode do
+ osrelease = r.gsub(/\s/, "")
+ end
+ end
+ end
+end
+
+Facter.add(:operatingsystemrelease) do
setcode do Facter[:kernelrelease].value end
end
diff --git a/lib/facter/util/mswindows.rb b/lib/facter/util/mswindows.rb
new file mode 100644
index 0000000..78b8172
--- /dev/null
+++ b/lib/facter/util/mswindows.rb
@@ -0,0 +1,16 @@
+module Facter::Util::MSWindows
+
+ def self.getWindowsRelease
+ caption = ""
+ self.Win32_OperatingSystem.each { |x| caption = x["Caption"] }
+ caption
+ end
+
+ def self.Win32_OperatingSystem
+ require 'win32ole'
+ wmi = WIN32OLE.connect("winmgmts://")
+ query = wmi.ExecQuery("select * from Win32_OperatingSystem")
+ query
+ end
+
+end
diff --git a/lib/facter/windowsrelease.rb b/lib/facter/windowsrelease.rb
new file mode 100644
index 0000000..3469622
--- /dev/null
+++ b/lib/facter/windowsrelease.rb
@@ -0,0 +1,18 @@
+# Fact: windowsrelease
+#
+# Purpose:
+# Returns the windowsrelease of the system.
+#
+# Resolution:
+# Uses WMI to query for the OS caption string
+#
+# Caveats:
+#
+require 'facter/util/mswindows'
+
+Facter.add(:windowsrelease) do
+ confine :operatingsystem => :windows
+ setcode do
+ Facter::Util::MSWindows.getWindowsRelease
+ end
+end
--
1.7.0.4
--
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.