From 37094b6dd59f56978b918e79cadf17c6fd5d36e2 Mon Sep 17 00:00:00 2001 From: John Snow Date: Wed, 30 Mar 2022 13:28:10 -0400 Subject: python: rename qemu.aqmp to qemu.qmp Now that we are fully switched over to the new QMP library, move it back over the old namespace. This is being done primarily so that we may upload this package simply as "qemu.qmp" without introducing confusion over whether or not "aqmp" is a new protocol or not. The trade-off is increased confusion inside the QEMU developer tree. Sorry! Note: the 'private' member "_aqmp" in legacy.py also changes to "_qmp"; not out of necessity, but just to remove any traces of the "aqmp" name. Signed-off-by: John Snow Reviewed-by: Beraldo Leal Acked-by: Hanna Reitz Reviewed-by: Vladimir Sementsov-Ogievskiy Message-id: 20220330172812.3427355-8-jsnow@redhat.com Signed-off-by: John Snow --- python/qemu/qmp/error.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 python/qemu/qmp/error.py (limited to 'python/qemu/qmp/error.py') diff --git a/python/qemu/qmp/error.py b/python/qemu/qmp/error.py new file mode 100644 index 0000000000..24ba4d5054 --- /dev/null +++ b/python/qemu/qmp/error.py @@ -0,0 +1,50 @@ +""" +QMP Error Classes + +This package seeks to provide semantic error classes that are intended +to be used directly by clients when they would like to handle particular +semantic failures (e.g. "failed to connect") without needing to know the +enumeration of possible reasons for that failure. + +QMPError serves as the ancestor for all exceptions raised by this +package, and is suitable for use in handling semantic errors from this +library. In most cases, individual public methods will attempt to catch +and re-encapsulate various exceptions to provide a semantic +error-handling interface. + +.. admonition:: QMP Exception Hierarchy Reference + + | `Exception` + | +-- `QMPError` + | +-- `ConnectError` + | +-- `StateError` + | +-- `ExecInterruptedError` + | +-- `ExecuteError` + | +-- `ListenerError` + | +-- `ProtocolError` + | +-- `DeserializationError` + | +-- `UnexpectedTypeError` + | +-- `ServerParseError` + | +-- `BadReplyError` + | +-- `GreetingError` + | +-- `NegotiationError` +""" + + +class QMPError(Exception): + """Abstract error class for all errors originating from this package.""" + + +class ProtocolError(QMPError): + """ + Abstract error class for protocol failures. + + Semantically, these errors are generally the fault of either the + protocol server or as a result of a bug in this library. + + :param error_message: Human-readable string describing the error. + """ + def __init__(self, error_message: str): + super().__init__(error_message) + #: Human-readable error message, without any prefix. + self.error_message: str = error_message -- cgit v1.2.3-55-g7522