[Pkg-puppet-devel] [SCM] Packaging of Facter for debian branch, upstream, updated. 3a39dd8353b6308cf49522990104cc63e55d7cda

Paul Nasrat pnasrat at googlemail.com
Fri Jan 29 17:22:36 UTC 2010


The following commit has been merged in the upstream branch:
commit 51c6e3da4b6f3f65aa0f1acc8bfddf383ff00036
Author: Joe McDonagh <Joseph.E.McDonagh at gmail.com>
Date:   Tue Jul 14 07:08:27 2009 +0100

    Issue #2314 OpenBSD sysctl
    
    Use OpenBSD sysctl for manufacturer facts.

diff --git a/lib/facter/manufacturer.rb b/lib/facter/manufacturer.rb
index e1ac7be..9d66465 100644
--- a/lib/facter/manufacturer.rb
+++ b/lib/facter/manufacturer.rb
@@ -5,15 +5,26 @@
 
 require 'facter/util/manufacturer'
 
-query = {
-    '[Ss]ystem [Ii]nformation' => [
-        { 'Manufacturer:'      => 'manufacturer' },
-        { 'Product(?: Name)?:' => 'productname' },
-        { 'Serial Number:'     => 'serialnumber' }
-    ],
-    '(Chassis Information|system enclosure or chassis)' => [
-        { '(?:Chassis )?Type:' => 'type' }
-    ]
-}
+if Facter.value(:kernel) == "OpenBSD"
+    mfg_keys = {
+        'hw.vendor'   => 'manufacturer',
+        'hw.product'  => 'productname',
+        'hw.serialno' => 'serialnumber'
+    }
+
+    Facter::Manufacturer.sysctl_find_system_info(mfg_keys)
+else
+    query = {
+        '[Ss]ystem [Ii]nformation' => [
+            { 'Manufacturer:'      => 'manufacturer' },
+            { 'Product(?: Name)?:' => 'productname' },
+            { 'Serial Number:'     => 'serialnumber' }
+        ],
+        '(Chassis Information|system enclosure or chassis)' => [
+            { '(?:Chassis )?Type:' => 'type' }
+        ]
+    }
+
+    Facter::Manufacturer.dmi_find_system_info(query)
+end
 
-Facter::Manufacturer.dmi_find_system_info(query)
diff --git a/lib/facter/util/manufacturer.rb b/lib/facter/util/manufacturer.rb
index 954637e..c609a12 100644
--- a/lib/facter/util/manufacturer.rb
+++ b/lib/facter/util/manufacturer.rb
@@ -9,7 +9,7 @@ module Facter::Manufacturer
             return nil unless FileTest.exists?("/usr/sbin/dmidecode")
 
             output=%x{/usr/sbin/dmidecode 2>/dev/null}
-        when 'OpenBSD', 'FreeBSD'
+        when 'FreeBSD'
             return nil unless FileTest.exists?("/usr/local/sbin/dmidecode")
 
             output=%x{/usr/local/sbin/dmidecode 2>/dev/null}
@@ -32,7 +32,7 @@ module Facter::Manufacturer
                         if line =~ /#{key}/ and ( line =~ /#{value} 0x\d+ \(([-\w].*)\)\n*./ or line =~ /#{value} ([-\w].*)\n*./ )
                             result = $1
                             Facter.add(facterkey) do
-                                confine :kernel => [ :linux, :freebsd, :netbsd, :openbsd, :sunos ]
+                                confine :kernel => [ :linux, :freebsd, :netbsd, :sunos ]
                                 setcode do
                                     result
                                 end
@@ -43,4 +43,15 @@ module Facter::Manufacturer
             end
         end
     end
+
+    def self.sysctl_find_system_info(name)
+        name.each do |sysctlkey,facterkey|
+            Facter.add(facterkey) do
+                confine :kernel => :openbsd
+                setcode do
+                    Facter::Util::Resolution.exec("sysctl -n " + sysctlkey)
+                end
+            end
+        end
+    end
 end

-- 
Packaging of Facter for debian



More information about the Pkg-puppet-devel mailing list