diff options
author | James Turnbull <james@lovedthanlost.net> | 2008-12-22 19:39:18 +1100 |
---|---|---|
committer | James Turnbull <james@lovedthanlost.net> | 2008-12-22 19:39:18 +1100 |
commit | 99833a1b5b32e87dc73f66d16fc57ba91c070b13 (patch) | |
tree | 02d4c459c01443752fde42bf8e51c9cc4048b905 /lib | |
parent | 85b2a55cb245fbdc381e2f00349a6987d167e945 (diff) | |
download | facter-99833a1b5b32e87dc73f66d16fc57ba91c070b13.tar.gz facter-99833a1b5b32e87dc73f66d16fc57ba91c070b13.tar.xz facter-99833a1b5b32e87dc73f66d16fc57ba91c070b13.zip |
Fixed #1793 - Added more Solaris 10 facts
Diffstat (limited to 'lib')
-rw-r--r-- | lib/facter/manufacturer.rb | 11 | ||||
-rw-r--r-- | lib/facter/util/manufacturer.rb | 18 |
2 files changed, 23 insertions, 6 deletions
diff --git a/lib/facter/manufacturer.rb b/lib/facter/manufacturer.rb index 1fbc38d..b217fdc 100644 --- a/lib/facter/manufacturer.rb +++ b/lib/facter/manufacturer.rb @@ -5,6 +5,15 @@ require 'facter/util/manufacturer' -query = { 'System Information' => [ 'Manufacturer:', 'Product Name:' , 'Serial Number:'], 'Chassis Information' => 'Type:'} +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) diff --git a/lib/facter/util/manufacturer.rb b/lib/facter/util/manufacturer.rb index 665fa76..657901d 100644 --- a/lib/facter/util/manufacturer.rb +++ b/lib/facter/util/manufacturer.rb @@ -3,6 +3,7 @@ module Facter::Manufacturer def self.dmi_find_system_info(name) + splitstr="Handle" case Facter.value(:kernel) when 'Linux' return nil unless FileTest.exists?("/usr/sbin/dmidecode") @@ -16,16 +17,22 @@ module Facter::Manufacturer return nil unless FileTest.exists?("/usr/pkg/sbin/dmidecode") output=%x{/usr/pkg/sbin/dmidecode 2>/dev/null} + when 'SunOS' + return nil unless FileTest.exists?("/usr/sbin/smbios") + splitstr="ID SIZE TYPE" + output=%x{/usr/sbin/smbios 2>/dev/null} + else return end name.each_pair do |key,v| - v.each do |value| - output.split("Handle").each do |line| - if line =~ /#{key}/ and line =~ /#{value} ([-\w].*)\n*./ + v.each do |v2| + v2.each_pair do |value,facterkey| + output.split(splitstr).each do |line| + if line =~ /#{key}/ and ( line =~ /#{value} 0x\d+ \(([-\w].*)\)\n*./ or line =~ /#{value} ([-\w].*)\n*./ ) result = $1 - Facter.add(value.chomp(':').gsub(' ','')) do - confine :kernel => [ :linux, :freebsd, :netbsd, :openbsd ] + Facter.add(facterkey) do + confine :kernel => [ :linux, :freebsd, :netbsd, :openbsd, :sunos ] setcode do result end @@ -36,4 +43,5 @@ module Facter::Manufacturer end end end +end |