| Server IP : 77.68.64.21 / Your IP : 216.73.217.59 Web Server : Apache System : Linux hp3-wp-1011352.hostingp3.local 3.10.0-1160.144.1.el7.tuxcare.els9.x86_64 #1 SMP Fri Jul 10 17:06:31 UTC 2026 x86_64 User : csh2516497 ( 2094697) PHP Version : 8.3.30 Disable Function : shell_exec,exec,system,popen,set_time_limit MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/ruby/vendor_ruby/facter/ |
Upload File : |
# Fact: hardwaremodel
#
# Purpose:
# Returns the hardware model of the system.
#
# Resolution:
# Uses purely `uname -m` on all platforms other than AIX and Windows.
# On AIX uses the parsed `modelname` output of `lsattr -El sys0 -a modelname`.
# On Windows uses the `host_cpu` pulled out of Ruby's config.
#
# Caveats:
#
Facter.add(:hardwaremodel) do
setcode 'uname -m'
end
Facter.add(:hardwaremodel) do
confine :operatingsystem => :aix
setcode do
model = Facter::Core::Execution.exec('lsattr -El sys0 -a modelname')
if model =~ /modelname\s(\S+)\s/
$1
end
end
end
Facter.add(:hardwaremodel) do
confine :operatingsystem => :windows
setcode do
# The cryptic windows cpu architecture models are documented in these places:
# http://source.winehq.org/source/include/winnt.h#L568
# http://msdn.microsoft.com/en-us/library/windows/desktop/aa394373(v=vs.85).aspx
# http://msdn.microsoft.com/en-us/library/windows/desktop/windows.system.processorarchitecture.aspx
# http://linux.derkeiler.com/Mailing-Lists/Kernel/2008-05/msg12924.html (anything over 6 is still i686)
# Also, arm and neutral are included because they are valid for the upcoming
# windows 8 release. --jeffweiss 23 May 2012
require 'facter/util/wmi'
model = ""
architecture_level = nil
Facter::Util::WMI.execquery("select Architecture, Level, AddressWidth from Win32_Processor").each do |cpu|
architecture_level = (cpu.Level > 5) ? 6 : cpu.Level;
model =
case cpu.Architecture
when 11 then 'neutral' # PROCESSOR_ARCHITECTURE_NEUTRAL
when 10 then 'i686' # PROCESSOR_ARCHITECTURE_IA32_ON_WIN64
when 9 then # PROCESSOR_ARCHITECTURE_AMD64
cpu.AddressWidth == 32 ? "i#{architecture_level}86" : 'x64' # 32 bit OS on 64 bit CPU
when 8 then 'msil' # PROCESSOR_ARCHITECTURE_MSIL
when 7 then 'alpha64' # PROCESSOR_ARCHITECTURE_ALPHA64
when 6 then 'ia64' # PROCESSOR_ARCHITECTURE_IA64
when 5 then 'arm' # PROCESSOR_ARCHITECTURE_ARM
when 4 then 'shx' # PROCESSOR_ARCHITECTURE_SHX
when 3 then 'powerpc' # PROCESSOR_ARCHITECTURE_PPC
when 2 then 'alpha' # PROCESSOR_ARCHITECTURE_ALPHA
when 1 then 'mips' # PROCESSOR_ARCHITECTURE_MIPS
when 0 then "i#{architecture_level}86" # PROCESSOR_ARCHITECTURE_INTEL
else 'unknown' # PROCESSOR_ARCHITECTURE_UNKNOWN
end
break
end
model
end
end