diff options
author | Tim Smith <tsmith@chef.io> | 2018-10-03 15:20:21 -0700 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-10-03 15:20:21 -0700 |
commit | ff3cafa5d8850c7aaea9b9714b15a8256168120a (patch) | |
tree | fc1c4f164b18e044aacd24b77d5fda8485a6f13f | |
parent | 54c256ca65bec2f33648cf6b7a7c6c7ec41d125b (diff) | |
download | ohai-mac.tar.gz |
Trim out bogus data in system_profile pluginmac
Also there's no need to rescue requiring plist since ohai depends on it. We don't do this for anything else in Ohai.
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | lib/ohai/plugins/darwin/hardware.rb | 8 | ||||
-rw-r--r-- | lib/ohai/plugins/darwin/system_profiler.rb | 38 |
2 files changed, 20 insertions, 26 deletions
diff --git a/lib/ohai/plugins/darwin/hardware.rb b/lib/ohai/plugins/darwin/hardware.rb index c522090f..dab7957d 100644 --- a/lib/ohai/plugins/darwin/hardware.rb +++ b/lib/ohai/plugins/darwin/hardware.rb @@ -34,13 +34,7 @@ Ohai.plugin(:Hardware) do next end - begin - require "plist" - rescue LoadError => e - # In case the plist gem isn't present, skip this plugin. - logger.trace("Plugin Hardware: Can't load gem: #{e}. Cannot continue.") - next - end + require "plist" hw_hash = system_profiler("SPHardwareDataType") hw_hash[0]["_items"][0].delete("_name") diff --git a/lib/ohai/plugins/darwin/system_profiler.rb b/lib/ohai/plugins/darwin/system_profiler.rb index 61000474..ee1ab298 100644 --- a/lib/ohai/plugins/darwin/system_profiler.rb +++ b/lib/ohai/plugins/darwin/system_profiler.rb @@ -20,13 +20,12 @@ Ohai.plugin(:SystemProfile) do provides "system_profile" collect_data(:darwin) do - begin - require "plist" + require "plist" - system_profile Array.new - items = Array.new - detail_level = { - "mini" => %w{ + system_profile Array.new + items = Array.new + detail_level = { + "mini" => %w{ SPParallelATAData SPAudioData SPBluetoothData @@ -52,21 +51,22 @@ SPThunderboltData SPUSBData SPWWANData SPAirPortData}, - "full" => [ - "SPHardwareDataType", - ], - } + "full" => [ + "SPHardwareDataType", + ], + } - detail_level.each do |level, data_types| - so = shell_out("system_profiler -xml -detailLevel #{level} #{data_types.join(' ')}") - Plist.parse_xml(so.stdout).each do |e| - items << e - end + detail_level.each do |level, data_types| + so = shell_out("system_profiler -xml -detailLevel #{level} #{data_types.join(' ')}") + Plist.parse_xml(so.stdout).each do |e| + # delete some bogus timing data and then keep the rest + e.delete("_SPCompletionInterval") + e.delete("_SPResponseTime") + e.delete("_SPCommandLineArguments") + items << e end - - system_profile ( items.sort_by { |h| h["_dataType"] } ) # rubocop: disable Lint/ParenthesesAsGroupedExpression - rescue LoadError => e - logger.trace("Can't load gem: #{e})") end + + system_profile ( items.sort_by { |h| h["_dataType"] } ) # rubocop: disable Lint/ParenthesesAsGroupedExpression end end |