scripts/qmp-shell: fix shell history exception handling

We want to remove exceptions that are too broad here; we only want to
catch IOErrors that get raised as a direct result of the open call.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210607200649.1840382-15-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
John Snow 2021-06-07 16:06:21 -04:00
parent 628b92dd67
commit d962ec85ed
1 changed files with 6 additions and 9 deletions

View File

@ -67,7 +67,6 @@
import ast import ast
import atexit import atexit
import errno
import json import json
import os import os
import re import re
@ -143,19 +142,17 @@ class QMPShell(qmp.QEMUMonitorProtocol):
readline.set_completer_delims('') readline.set_completer_delims('')
try: try:
readline.read_history_file(self._histfile) readline.read_history_file(self._histfile)
except Exception as e: except FileNotFoundError:
if isinstance(e, IOError) and e.errno == errno.ENOENT: pass
# File not found. No problem. except IOError as err:
pass print(f"Failed to read history '{self._histfile}': {err!s}")
else:
print("Failed to read history '%s'; %s" % (self._histfile, e))
atexit.register(self.__save_history) atexit.register(self.__save_history)
def __save_history(self): def __save_history(self):
try: try:
readline.write_history_file(self._histfile) readline.write_history_file(self._histfile)
except Exception as e: except IOError as err:
print("Failed to save history file '%s'; %s" % (self._histfile, e)) print(f"Failed to save history file '{self._histfile}': {err!s}")
@classmethod @classmethod
def __parse_value(cls, val): def __parse_value(cls, val):