[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v13 08/11] qcow2.py: Introduce '-j' key to dump in JSON format
From: |
Andrey Shinkevich |
Subject: |
[PATCH v13 08/11] qcow2.py: Introduce '-j' key to dump in JSON format |
Date: |
Thu, 6 Aug 2020 22:35:54 +0300 |
Add the command key to the qcow2.py arguments list to dump QCOW2
metadata in JSON format. Here is the suggested way to do that. The
implementation of the dump in JSON format is in the patch that follows.
Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
---
tests/qemu-iotests/qcow2.py | 18 ++++++++++++++----
tests/qemu-iotests/qcow2_format.py | 4 ++--
2 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/tests/qemu-iotests/qcow2.py b/tests/qemu-iotests/qcow2.py
index 0910e6a..77ca59c 100755
--- a/tests/qemu-iotests/qcow2.py
+++ b/tests/qemu-iotests/qcow2.py
@@ -26,16 +26,19 @@ from qcow2_format import (
)
+is_json = False
+
+
def cmd_dump_header(fd):
h = QcowHeader(fd)
- h.dump()
+ h.dump(is_json)
print()
- h.dump_extensions()
+ h.dump_extensions(is_json)
def cmd_dump_header_exts(fd):
h = QcowHeader(fd)
- h.dump_extensions()
+ h.dump_extensions(is_json)
def cmd_set_header(fd, name, value):
@@ -151,11 +154,14 @@ def main(filename, cmd, args):
def usage():
- print("Usage: %s <file> <cmd> [<arg>, ...]" % sys.argv[0])
+ print("Usage: %s <file> <cmd> [<arg>, ...] [<key>, ...]" % sys.argv[0])
print("")
print("Supported commands:")
for name, handler, num_args, desc in cmds:
print(" %-20s - %s" % (name, desc))
+ print("")
+ print("Supported keys:")
+ print(" %-20s - %s" % ('-j', 'Dump in JSON format'))
if __name__ == '__main__':
@@ -163,4 +169,8 @@ if __name__ == '__main__':
usage()
sys.exit(1)
+ is_json = '-j' in sys.argv
+ if is_json:
+ sys.argv.remove('-j')
+
main(sys.argv[1], sys.argv[2], sys.argv[3:])
diff --git a/tests/qemu-iotests/qcow2_format.py
b/tests/qemu-iotests/qcow2_format.py
index 574249b..de0adcb 100644
--- a/tests/qemu-iotests/qcow2_format.py
+++ b/tests/qemu-iotests/qcow2_format.py
@@ -109,7 +109,7 @@ class Qcow2Struct(metaclass=Qcow2StructMeta):
self.__dict__ = dict((field[2], values[i])
for i, field in enumerate(self.fields))
- def dump(self):
+ def dump(self, is_json=False):
for f in self.fields:
value = self.__dict__[f[2]]
if isinstance(f[1], str):
@@ -408,7 +408,7 @@ class QcowHeader(Qcow2Struct):
buf = buf[0:header_bytes-1]
fd.write(buf)
- def dump_extensions(self):
+ def dump_extensions(self, is_json=False):
for ex in self.extensions:
print('Header extension:')
ex.dump()
--
1.8.3.1
- Re: [PATCH v13 09/11] qcow2_format.py: collect fields to dump in JSON format, (continued)
[PATCH v13 01/11] iotests: add test for QCOW2 header dump, Andrey Shinkevich, 2020/08/06
[PATCH v13 02/11] qcow2_format.py: make printable data an extension class member, Andrey Shinkevich, 2020/08/06
[PATCH v13 10/11] qcow2_format.py: support dumping metadata in JSON format, Andrey Shinkevich, 2020/08/06
[PATCH v13 03/11] qcow2_format.py: change Qcow2BitmapExt initialization method, Andrey Shinkevich, 2020/08/06
[PATCH v13 07/11] qcow2_format.py: Dump bitmap table serialized entries, Andrey Shinkevich, 2020/08/06
[PATCH v13 05/11] qcow2_format.py: Dump bitmap directory information, Andrey Shinkevich, 2020/08/06
[PATCH v13 11/11] iotests: dump QCOW2 header in JSON in #303, Andrey Shinkevich, 2020/08/06
[PATCH v13 08/11] qcow2.py: Introduce '-j' key to dump in JSON format,
Andrey Shinkevich <=
[PATCH v13 04/11] qcow2_format.py: dump bitmap flags in human readable way., Andrey Shinkevich, 2020/08/06
[PATCH v13 06/11] qcow2_format.py: pass cluster size to substructures, Andrey Shinkevich, 2020/08/06
Re: [PATCH v13 00/11] iotests: Dump QCOW2 dirty bitmaps metadata, Andrey Shinkevich, 2020/08/14