diff options
author | Markus Armbruster <armbru@redhat.com> | 2025-03-11 07:53:52 +0100 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2025-03-11 10:26:52 +0100 |
commit | 93db9c84fc40b82d6bc3a944cb8eb8443980824c (patch) | |
tree | b2e3ee9adc8430fc0e17ac9b6fd94dda2337a564 | |
parent | e95ffabbde1e1ea76ffc48bd04a0138b12b08a6e (diff) | |
download | qemu-93db9c84fc40b82d6bc3a944cb8eb8443980824c.zip qemu-93db9c84fc40b82d6bc3a944cb8eb8443980824c.tar.gz qemu-93db9c84fc40b82d6bc3a944cb8eb8443980824c.tar.bz2 |
scripts/qapi/backend: Clean up create_backend()'s failure mode
create_backend()'s caller catches QAPIError, and returns non-zero exit
code on catch. The caller's caller passes the exit code to
sys.exit().
create_backend() doesn't care: it reports errors to stderr and
sys.exit()s.
Change it to raise QAPIError instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-ID: <20250311065352.992307-1-armbru@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
-rw-r--r-- | scripts/qapi/main.py | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/scripts/qapi/main.py b/scripts/qapi/main.py index 5b4679a..0e2a6ae 100644 --- a/scripts/qapi/main.py +++ b/scripts/qapi/main.py @@ -31,34 +31,28 @@ def create_backend(path: str) -> QAPIBackend: module_path, dot, class_name = path.rpartition('.') if not dot: - print("argument of -B must be of the form MODULE.CLASS", - file=sys.stderr) - sys.exit(1) + raise QAPIError("argument of -B must be of the form MODULE.CLASS") try: mod = import_module(module_path) except Exception as ex: - print(f"unable to import '{module_path}': {ex}", file=sys.stderr) - sys.exit(1) + raise QAPIError(f"unable to import '{module_path}': {ex}") from ex try: klass = getattr(mod, class_name) - except AttributeError: - print(f"module '{module_path}' has no class '{class_name}'", - file=sys.stderr) - sys.exit(1) + except AttributeError as ex: + raise QAPIError( + f"module '{module_path}' has no class '{class_name}'") from ex try: backend = klass() except Exception as ex: - print(f"backend '{path}' cannot be instantiated: {ex}", - file=sys.stderr) - sys.exit(1) + raise QAPIError( + f"backend '{path}' cannot be instantiated: {ex}") from ex if not isinstance(backend, QAPIBackend): - print(f"backend '{path}' must be an instance of QAPIBackend", - file=sys.stderr) - sys.exit(1) + raise QAPIError( + f"backend '{path}' must be an instance of QAPIBackend") return backend |