diff options
| author | Lukáš Doktor <ldoktor@redhat.com> | 2017-08-18 16:26:08 +0200 |
|---|---|---|
| committer | Eduardo Habkost <ehabkost@redhat.com> | 2017-09-15 20:12:00 -0300 |
| commit | a004e249f035f8a0c859d1700abb4081c86f8c1f (patch) | |
| tree | 21a16fda9ba4015a937662d9fe96faf9619917bf /scripts | |
| parent | 41f714b190ffff7fefb3ad090bc02d089e4c7bda (diff) | |
| download | focaccia-qemu-a004e249f035f8a0c859d1700abb4081c86f8c1f.tar.gz focaccia-qemu-a004e249f035f8a0c859d1700abb4081c86f8c1f.zip | |
qemu.py: Use custom exceptions rather than Exception
The naked Exception should not be widely used. It makes sense to be a bit more specific and use better-suited custom exceptions. As a benefit we can store the full reply in the exception in case someone needs it when catching the exception. Signed-off-by: Lukáš Doktor <ldoktor@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <20170818142613.32394-6-ldoktor@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/qemu.py | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/scripts/qemu.py b/scripts/qemu.py index bde8da8fe7..7c6802609a 100644 --- a/scripts/qemu.py +++ b/scripts/qemu.py @@ -19,6 +19,19 @@ import subprocess import qmp.qmp +class MonitorResponseError(qmp.qmp.QMPError): + ''' + Represents erroneous QMP monitor reply + ''' + def __init__(self, reply): + try: + desc = reply["error"]["desc"] + except KeyError: + desc = reply + super(MonitorResponseError, self).__init__(desc) + self.reply = reply + + class QEMUMachine(object): '''A QEMU VM @@ -213,9 +226,9 @@ class QEMUMachine(object): ''' reply = self.qmp(cmd, conv_keys, **args) if reply is None: - raise Exception("Monitor is closed") + raise qmp.qmp.QMPError("Monitor is closed") if "error" in reply: - raise Exception(reply["error"]["desc"]) + raise MonitorResponseError(reply) return reply["return"] def get_qmp_event(self, wait=False): |