Class/Module Index [+]

Quicksearch

Facter::Manufacturer

Public Class Methods

dmi_find_system_info(name) click to toggle source
# 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() click to toggle source
# 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() click to toggle source
# 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')

  # 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) click to toggle source
# 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) click to toggle source
# 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

[Validate]

Generated with the Darkfish Rdoc Generator 2.