aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryn M. Reeves <bmr@redhat.com>2014-04-16 20:49:53 +0100
committerBryn M. Reeves <bmr@redhat.com>2014-04-16 20:55:03 +0100
commit29f1927d5cc7dbe5cb959abca27b43c8ae5c1e61 (patch)
treeedecf3e6dabca78cadf2ce2242171c5a8104f88b
parent4e5c9372113656866b5cd6ad01a8e57fc5f5af52 (diff)
downloadsos-29f1927d5cc7dbe5cb959abca27b43c8ae5c1e61.tar.gz
Handle fatal file system errors in SoSReport.setup()
Out-of-space and read-only file system errors from plugins should be treated as fatal and cause the run to end. Partial fix for Issue #266. Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
-rw-r--r--sos/sosreport.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/sos/sosreport.py b/sos/sosreport.py
index 0ae82936..52bfe8b0 100644
--- a/sos/sosreport.py
+++ b/sos/sosreport.py
@@ -501,6 +501,8 @@ class SoSOptions(object):
return parser.parse_args(args)[0]
+# file system errors that should terminate a run
+fatal_fs_errors = (errno.ENOSPC, errno.EROFS)
class SoSReport(object):
@@ -911,7 +913,7 @@ class SoSReport(object):
self._make_archive_paths()
return
except OSError as e:
- if e.errno in (errno.ENOSPC, errno.EROFS):
+ if e.errno in fatal_fs_errors:
self.ui_log.error("")
self.ui_log.error(" %s while setting up archive" % e.strerror)
self.ui_log.error(" %s" % e.filename)
@@ -931,6 +933,13 @@ class SoSReport(object):
plug.setup()
except KeyboardInterrupt:
raise
+ except OSError as e:
+ if e.errno in fatal_fs_errors:
+ self.ui_log.error("")
+ self.ui_log.error(" %s while setting up plugins"
+ % e.strerror)
+ self.ui_log.error(" %s" % e.filename)
+ self._exit(1)
except:
if self.raise_plugins:
raise