summaryrefslogtreecommitdiff
path: root/lib/ohai/plugins/aix/cpu.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ohai/plugins/aix/cpu.rb')
-rw-r--r--lib/ohai/plugins/aix/cpu.rb35
1 files changed, 32 insertions, 3 deletions
diff --git a/lib/ohai/plugins/aix/cpu.rb b/lib/ohai/plugins/aix/cpu.rb
index 32b2dc91..475968d0 100644
--- a/lib/ohai/plugins/aix/cpu.rb
+++ b/lib/ohai/plugins/aix/cpu.rb
@@ -1,6 +1,6 @@
#
-# Author:: Doug MacEachern <dougm@vmware.com>
-# Copyright:: Copyright (c) 2010 VMware, Inc.
+# Author:: Joshua Timberman <joshua@opscode.com>
+# Copyright:: Copyright (c) 2013, Opscode, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,4 +16,33 @@
# limitations under the License.
#
-require_plugin "sigar::cpu"
+provides "cpu"
+
+cpu = Mash.new
+
+# IBM is the only maker of CPUs for AIX systems.
+cpu[:vendor_id] = "IBM"
+# At least one CPU will be available, but we'll wait to increment this later.
+cpu[:available] = 0
+cpu[:total] = 0
+
+cpudevs = from("lsdev -Cc processor").lines
+cpudevs.each do |c|
+ cpu[:total] += 1
+ name, status, location = c.split
+ cpu[name] = Mash.new
+ cpu[name][:status] = status
+ cpu[name][:location] = location
+ if status =~ /Available/
+ cpu[:available] += 1
+ lsattr = from("lsattr -El #{name}").lines
+ lsattr.each do |attribute|
+ attrib, value = attribute.split
+ cpu[name][attrib] = value
+ end
+ end
+end
+
+# Every AIX system has proc0.
+cpu[:model] = cpu[:proc0][:type]
+cpu[:mhz] = cpu[:proc0][:frequency].to_i / 1024