aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukáš Doktor <ldoktor@redhat.com>2017-08-18 16:26:08 +0200
committerEduardo Habkost <ehabkost@redhat.com>2017-09-15 20:12:00 -0300
commita004e249f035f8a0c859d1700abb4081c86f8c1f (patch)
tree21a16fda9ba4015a937662d9fe96faf9619917bf
parent41f714b190ffff7fefb3ad090bc02d089e4c7bda (diff)
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>
-rw-r--r--scripts/qemu.py17
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):