From 5b298958b207bb231743651a2bb95db36c68c554 Mon Sep 17 00:00:00 2001
From: Andreas Unterkircher <unterkircher@prescreen.io>
Date: Mon, 23 Jul 2018 11:12:48 +0200
Subject: [PATCH] lib/facter/sensors.rb, only run the plugin for physical
 machines, by checking the virtual-fact=physical first

---
 lib/facter/sensors.rb | 66 +++++++++++++++++++++----------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

diff --git a/lib/facter/sensors.rb b/lib/facter/sensors.rb
index 918720d..ede5190 100644
--- a/lib/facter/sensors.rb
+++ b/lib/facter/sensors.rb
@@ -173,44 +173,44 @@ def load_blacklist
    return TRUE
 end
 
-begin
-   if ! Facter::Core::Execution::which('sensors')
-      Facter.warn("Failed to locate lm-sensors 'sensors' binary!")
-   else
-      $sensor_data_raw = Facter::Core::Execution.exec('sensors -u -A')
-      if !has_raw_sensor_data?
-         Facter.warn("Failed to read RAW-data from 'sensors' binary!")
-      else
-         $blacklist = Array.new
-         $sensor_data = Hash.new
-
-         if !load_blacklist()
-            Facter.warn('load_blacklist() failed!')
-         end
-
-         if ! parse_sensor_data() || !has_sensor_data?
-            Facter.warn("parse_sensor_data() failed!")
+Facter.add(:sensors) do
+   confine :kernel => 'Linux'
+   confine :virtual => 'physical'
+   setcode do
+      begin
+         if ! Facter::Core::Execution::which('sensors')
+            Facter.warn("Failed to locate lm-sensors 'sensors' binary!")
          else
-            Facter.debug("Result: #{$sensor_data}")
-
-            # what $sensor_data now actually contain can be handled like this:
-            #
-            #$sensor_data.each { |chip, sensors|
-            #   sensors.each { |sensor, data|
-            #      data.each { |key, value|
-            #      }
-            #   }
-            #}
-
-            Facter.add(:sensors) do
-               confine :kernel => 'Linux'
-               setcode do
+            $sensor_data_raw = Facter::Core::Execution.exec('sensors -u -A')
+            if !has_raw_sensor_data?
+               Facter.warn("Failed to read RAW-data from 'sensors' binary!")
+            else
+               $blacklist = Array.new
+               $sensor_data = Hash.new
+
+               if !load_blacklist()
+                  Facter.warn('load_blacklist() failed!')
+               end
+
+               if ! parse_sensor_data() || !has_sensor_data?
+                  Facter.warn("parse_sensor_data() failed!")
+               else
+                  Facter.debug("Result: #{$sensor_data}")
+
+                  # what $sensor_data now actually contain can be handled like this:
+                  #
+                  #$sensor_data.each { |chip, sensors|
+                  #   sensors.each { |sensor, data|
+                  #      data.each { |key, value|
+                  #      }
+                  #   }
+                  #}
                   $sensor_data
                end
             end
          end
+      rescue LoadError => err
+         Facter.log_exception("Overall error ocurred: #{err}")
       end
    end
-rescue LoadError => err
-   Facter.log_exception("Overall error ocurred: #{err}")
 end
-- 
GitLab