Re: [PATCH v3 19/19] python/qmp: add fuse command to 'qom' tools

2021-06-03 Thread Philippe Mathieu-Daudé
On 6/3/21 2:37 AM, John Snow wrote:
> 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 
> ---
>  python/qemu/qmp/qom.py | 14 --
>  python/setup.cfg   |  1 +
>  2 files changed, 13 insertions(+), 2 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé 




[PATCH v3 19/19] python/qmp: add fuse command to 'qom' tools

2021-06-02 Thread John Snow
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 
---
 python/qemu/qmp/qom.py | 14 --
 python/setup.cfg   |  1 +
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/python/qemu/qmp/qom.py b/python/qemu/qmp/qom.py
index 7fe1448b5d9..7ec7843d57a 100644
--- a/python/qemu/qmp/qom.py
+++ b/python/qemu/qmp/qom.py
@@ -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}
 setSet a QOM property value
 getGet 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.
diff --git a/python/setup.cfg b/python/setup.cfg
index aca6f311853..6b6be8b03c6 100644
--- a/python/setup.cfg
+++ b/python/setup.cfg
@@ -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
-- 
2.31.1