30: def self.dmi_find_system_info(name)
31: splitstr= Facter.value(:kernel) == 'SunOS' ? "ID SIZE TYPE" : /^Handle/
32: output = self.get_dmi_table()
33: return if output.nil?
34: name.each_pair do |key,v|
35: v.each do |v2|
36: v2.each_pair do |value,facterkey|
37: output.split(splitstr).each do |line|
38: if line =~ /#{key}/ and line =~ /\n\s+#{value} (.+)\n/
39: result = $1.strip
40: Facter.add(facterkey) do
41: confine :kernel => [ :linux, :freebsd, :netbsd, :sunos, "gnu/kfreebsd""gnu/kfreebsd" ]
42: setcode do
43: result
44: end
45: end
46: end
47: end
48: end
49: end
50: end
51: end