diff options
Diffstat (limited to 'lib/ohai/plugins/aix/cpu.rb')
-rw-r--r-- | lib/ohai/plugins/aix/cpu.rb | 35 |
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 |