diff mbox series

[11/15] scripts/qom-fuse: ensure QOMFuse.read always returns bytes

Message ID 20201021185208.1611145-12-jsnow@redhat.com
State Accepted
Commit 2cea7134620749b106af167322d921716ef61144
Headers show
Series python: absorb scripts/qmp/qom-* tooling | expand

Commit Message

John Snow Oct. 21, 2020, 6:52 p.m. UTC
- Use FuseOSError to signal ENOENT instead of returning it
- Wrap qom-get in str(), as we don't always know its type
- The empty return should be b'', not ''.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 scripts/qmp/qom-fuse | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Philippe Mathieu-Daudé Oct. 24, 2020, 7:55 p.m. UTC | #1
On 10/21/20 8:52 PM, John Snow wrote:
> - Use FuseOSError to signal ENOENT instead of returning it
> - Wrap qom-get in str(), as we don't always know its type
> - The empty return should be b'', not ''.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>   scripts/qmp/qom-fuse | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

diff --git a/scripts/qmp/qom-fuse b/scripts/qmp/qom-fuse
index b1030273ef..b120b93391 100755
--- a/scripts/qmp/qom-fuse
+++ b/scripts/qmp/qom-fuse
@@ -128,19 +128,19 @@  class QOMFuse(QOMCommand, Operations):
 
     def read(self, path, size, offset, fh):
         if not self.is_property(path):
-            return -ENOENT
+            raise FuseOSError(ENOENT)
 
         path, prop = path.rsplit('/', 1)
         if path == '':
             path = '/'
         try:
-            data = self.qmp.command('qom-get', path=path, property=prop)
+            data = str(self.qmp.command('qom-get', path=path, property=prop))
             data += '\n'  # make values shell friendly
         except QMPResponseError as err:
             raise FuseOSError(EPERM) from err
 
         if offset > len(data):
-            return ''
+            return b''
 
         return bytes(data[offset:][:size], encoding='utf-8')