Blob Blame History Raw
commit e53f06e9a50b16a204d27049b83c3a32505a4ab6
Author: Bryn M. Reeves <bmr@redhat.com>
Date:   Thu Nov 7 17:48:03 2013 +0000

    Fix traceback when sar module is force-enabled
    
    Forward port of the following sos-2.2 fix:
    
    commit d4e3bcc3ed247d8d9a1228c3661b6456f534daf4
    Author: Bryn M. Reeves <bmr@redhat.com>
    Date:   Mon Aug 12 18:42:48 2013 +0100
    
        Fix traceback when sar module is force-enabled
    
        The sar plug-in assumes that when it runs the /var/lib/sa
        directory and binaries exist (they are part of checkenabled() for
        this module).
    
        This leads to a traceback when the plug-in lists a non-existent
        directory on hosts where sar is not installed but '-o sar' is
        specified on the command line.
    
        Catch the exception and exit gracefully.
    
        (Edited by bmr to improve error message logged).
    
        Signed-off-by: David Kutálek <dkutalek@redhat.com>
        Signed-off-by: Bryn M. Reeves <bmr@redhat.com>

diff --git a/sos/plugins/sar.py b/sos/plugins/sar.py
index 4f89b53..570262a 100644
--- a/sos/plugins/sar.py
+++ b/sos/plugins/sar.py
@@ -43,8 +43,12 @@ class Sar(Plugin,):
         self.add_copy_spec_limit("/var/log/sa/sar[0-9]*",
                                  sizelimit = self.sa_size)
         self.add_copy_spec_limit("/var/log/sa/sa[0-9]*",
-                                 sizelimit = self.sa_size)
-        dirList = os.listdir(self.sa_path)
+                              sizelimit = self.sa_size)
+        try:
+            dirList = os.listdir(self.sa_path)
+        except:
+            self.soslog.error("sar: could not list /var/log/sa")
+            return
         # find all the sa file that don't have an existing sar file
         for fname in dirList:
             if fname[0:2] == 'sa' and fname[2] != 'r':