Commit 0931fcc7 authored by Vladimir Sementsov-Ogievskiy's avatar Vladimir Sementsov-Ogievskiy Committed by Eric Blake
Browse files

qcow2_format.py: QcowHeaderExtension: add dump method



Obviously, for-loop body in dump_extensions should be the dump method
of extension.

Signed-off-by: default avatarVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: default avatarAndrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Message-Id: <20200606081806.23897-11-vsementsov@virtuozzo.com>
Signed-off-by: default avatarEric Blake <eblake@redhat.com>
parent 860543f0
Loading
Loading
Loading
Loading
+12 −10
Original line number Diff line number Diff line
@@ -108,6 +108,17 @@ class QcowHeaderExtension:
        self.length = length
        self.data = data

    def dump(self):
        data = self.data[:self.length]
        if all(c in string.printable.encode('ascii') for c in data):
            data = f"'{ data.decode('ascii') }'"
        else:
            data = '<binary>'

        print(f'{"magic":<25} {self.magic:#x}')
        print(f'{"length":<25} {self.length}')
        print(f'{"data":<25} {data}')

    @classmethod
    def create(cls, magic, data):
        return QcowHeaderExtension(magic, len(data), data)
@@ -210,15 +221,6 @@ class QcowHeader(Qcow2Struct):

    def dump_extensions(self):
        for ex in self.extensions:

            data = ex.data[:ex.length]
            if all(c in string.printable.encode('ascii') for c in data):
                data = f"'{ data.decode('ascii') }'"
            else:
                data = '<binary>'

            print('Header extension:')
            print(f'{"magic":<25} {ex.magic:#x}')
            print(f'{"length":<25} {ex.length}')
            print(f'{"data":<25} {data}')
            ex.dump()
            print()