summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hajducko <sjmh@phase2.net>2008-06-19 11:02:31 -0700
committerSteven Hajducko <sjmh@phase2.net>2008-06-19 11:02:31 -0700
commit2ac29aca6a4ef80ac7753e89322eac217f6176a6 (patch)
treebd640f193c6b29f53a0edfbfa166c228248c538b
parent0b0892d382a78b3a69a97d6b3820e0a101665b8f (diff)
downloadfacter-2ac29aca6a4ef80ac7753e89322eac217f6176a6.tar.gz
facter-2ac29aca6a4ef80ac7753e89322eac217f6176a6.tar.xz
facter-2ac29aca6a4ef80ac7753e89322eac217f6176a6.zip
Added processorcount and type facts to AIX
tickets/1.5/1375 Signed-off-by: Steven Hajducko <sjmh@phase2.net>
-rw-r--r--lib/facter/processor.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/facter/processor.rb b/lib/facter/processor.rb
index 5e8e42e..afc604e 100644
--- a/lib/facter/processor.rb
+++ b/lib/facter/processor.rb
@@ -37,3 +37,38 @@ if Facter.value(:kernel) == "Linux"
end
end
end
+
+if Facter.value(:kernel) == "AIX"
+ processor_num = -1
+ processor_list = {}
+ Thread::exclusive do
+ procs = Facter::Util::Resolution.exec('lsdev -Cc processor')
+ procs.each do |proc|
+ if proc =~ /^proc(\d+)/
+ processor_num = $1.to_i
+ # Not retrieving the frequency since AIX 4.3.3 doesn't support the
+ # attribute and some people still use the OS.
+ proctype = Facter::Util::Resolution.exec('lsattr -El proc0 -a type')
+ if proctype =~ /^type\s+(\S+)\s+/
+ processor_list["processor#{processor_num}"] = $1
+ end
+ end
+ end
+ end
+
+ Facter.add("ProcessorCount") do
+ confine :kernel => :aix
+ setcode do
+ processor_list.length.to_s
+ end
+ end
+
+ processor_list.each do |proc, desc|
+ Facter.add(proc) do
+ confine :kernel => :aix
+ setcode do
+ desc
+ end
+ end
+ end
+end