Module: Facter::Manufacturer
- Defined in:
- lib/facter/util/manufacturer.rb
Class Method Summary collapse
- .dmi_find_system_info(name) ⇒ Object
- .get_dmi_table ⇒ Object
- .prtdiag_sparc_find_system_info ⇒ Object
- .sysctl_find_system_info(name) ⇒ Object
- .win32_find_system_info(name) ⇒ Object
Class Method Details
.dmi_find_system_info(name) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/facter/util/manufacturer.rb', line 29 def self.dmi_find_system_info(name) splitstr= Facter.value(:kernel) == 'SunOS' ? "ID SIZE TYPE" : /^Handle/ output = self.get_dmi_table() return if output.nil? name.each_pair do |key,v| v.each do |v2| v2.each_pair do |value,facterkey| output.split(splitstr).each do |line| if line =~ /#{key}/ and line =~ /\n\s+#{value} (.+)\n/ result = $1.strip Facter.add(facterkey) do confine :kernel => [ :linux, :freebsd, :netbsd, :sunos, :"gnu/kfreebsd", :dragonfly ] setcode do result end end end end end end end end |
.get_dmi_table ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/facter/util/manufacturer.rb', line 7 def self.get_dmi_table() case Facter.value(:kernel) when 'Linux', 'GNU/kFreeBSD' cmd = '/usr/sbin/dmidecode' when 'FreeBSD' cmd = '/usr/local/sbin/dmidecode' when 'NetBSD', 'DragonFly' cmd = '/usr/pkg/sbin/dmidecode' when 'SunOS' cmd = '/usr/sbin/smbios' end if cmd and (output = Facter::Core::Execution.exec("#{cmd} 2>/dev/null")) if output.respond_to?(:force_encoding) output.force_encoding(Encoding::ASCII_8BIT) end return output end end |
.prtdiag_sparc_find_system_info ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/facter/util/manufacturer.rb', line 61 def self.prtdiag_sparc_find_system_info() # Parses prtdiag for a SPARC architecture string, won't work with Solaris x86 output = Facter::Core::Execution.exec('/usr/sbin/prtdiag 2>/dev/null | /usr/bin/head -n 10') # System Configuration: Sun Microsystems sun4u Sun SPARC Enterprise M3000 Server if output and output =~ /^System Configuration:\s+(.+?)\s+(sun\d+\S+)\s+(.+)/ Facter.add('manufacturer') do setcode do $1 end end Facter.add('productname') do setcode do $3 end end end Facter.add('serialnumber') do setcode "/usr/sbin/sneep" end end |
.sysctl_find_system_info(name) ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/facter/util/manufacturer.rb', line 52 def self.sysctl_find_system_info(name) name.each do |sysctlkey,facterkey| Facter.add(facterkey) do confine :kernel => [:openbsd, :darwin] setcode { Facter::Util::POSIX.sysctl(sysctlkey) } end end end |
.win32_find_system_info(name) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/facter/util/manufacturer.rb', line 84 def self.win32_find_system_info(name) require 'facter/util/wmi' value = "" wmi = Facter::Util::WMI.connect() name.each do |facterkey, win32key| query = wmi.ExecQuery("select * from Win32_#{win32key.last}") Facter.add(facterkey) do confine :kernel => :windows setcode do query.each { |x| value = x.__send__( (win32key.first).to_sym) } value end end end end |