python/qmp: add fuse command to 'qom' tools

The 'fuse' command will be unavailable if 'fusepy' is not installed. It
will simply not load and subsequently be unavailable as a subcommand.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20210603003719.1321369-20-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
John Snow 2021-06-02 20:37:19 -04:00
parent c89b38cd0a
commit 176c549072
2 changed files with 13 additions and 2 deletions

View File

@ -1,7 +1,7 @@
"""
QEMU Object Model testing tools.
usage: qom [-h] {set,get,list,tree} ...
usage: qom [-h] {set,get,list,tree,fuse} ...
Query and manipulate QOM data
@ -9,11 +9,12 @@
-h, --help show this help message and exit
QOM commands:
{set,get,list,tree}
{set,get,list,tree,fuse}
set Set a QOM property value
get Get a QOM property value
list List QOM properties at a given path
tree Show QOM tree from a given path
fuse Mount a QOM tree as a FUSE filesystem
"""
##
# Copyright John Snow 2020, for Red Hat, Inc.
@ -35,6 +36,15 @@
from .qom_common import QOMCommand
try:
from .qom_fuse import QOMFuse
except ModuleNotFoundError as err:
if err.name != 'fuse':
raise
else:
assert issubclass(QOMFuse, QOMCommand)
class QOMSet(QOMCommand):
"""
QOM Command - Set a property to a given value.

View File

@ -49,6 +49,7 @@ console_scripts =
qom-get = qemu.qmp.qom:QOMGet.entry_point
qom-list = qemu.qmp.qom:QOMList.entry_point
qom-tree = qemu.qmp.qom:QOMTree.entry_point
qom-fuse = qemu.qmp.qom_fuse:QOMFuse.entry_point [fuse]
[flake8]
extend-ignore = E722 # Prefer pylint's bare-except checks to flake8's