diff options
author | Bryn M. Reeves <bmr@redhat.com> | 2014-04-16 20:49:53 +0100 |
---|---|---|
committer | Bryn M. Reeves <bmr@redhat.com> | 2014-04-16 20:55:03 +0100 |
commit | 29f1927d5cc7dbe5cb959abca27b43c8ae5c1e61 (patch) | |
tree | edecf3e6dabca78cadf2ce2242171c5a8104f88b | |
parent | 4e5c9372113656866b5cd6ad01a8e57fc5f5af52 (diff) | |
download | sos-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.py | 11 |
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 |