From eb5da488e496a5da5b30828e3621949df04e686a Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Wed, 3 Oct 2018 15:20:21 -0700 Subject: Trim out bogus data in system_profile plugin 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 --- lib/ohai/plugins/darwin/hardware.rb | 8 +------ 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 c9c4bab0..c6f33849 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. - Ohai::Log.debug("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 20798cc4..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"] } - rescue LoadError => e - Ohai::Log.debug("Can't load gem: #{e})") end + + system_profile ( items.sort_by { |h| h["_dataType"] } ) # rubocop: disable Lint/ParenthesesAsGroupedExpression end end -- cgit v1.2.1