On 07.06.2016 12:11, Daniel P. Berrange wrote: > The 'qemu-img info' tool has ability to print format specific > information, eg with qcow2 it reports two extra items: > > $ qemu-img info ~/VirtualMachines/demo.qcow2 > image: /home/berrange/VirtualMachines/demo.qcow2 > file format: qcow2 > virtual size: 3.0G (3221225472 bytes) > disk size: 140K > cluster_size: 65536 > Format specific information: > compat: 0.10 > refcount bits: 16 > > > This is not currently wired up for the LUKS driver. This patch > series adds that support so that we can report useful data about > the LUKS volume such as the crypto algorithm choices, key slot > usage and other volume metadata. > > The first patch extends the crypto API to allow querying of the > format specific metadata > > The second patches extends the block API to allow the LUKS driver > to report the format specific metadata. > > $ qemu-img info ~/VirtualMachines/demo.luks > image: /home/berrange/VirtualMachines/demo.luks > file format: luks > virtual size: 98M (102760448 bytes) > disk size: 100M > encrypted: yes > Format specific information: > cipher-alg: aes-128 > cipher-mode: xts > ivgen-alg: plain64 > hash-alg: sha1 > payload-offset: 2097152 > master-key-iters: 142375 > uuid: 6ddee74b-3a22-408c-8909-6789d4fa2594 > slots: > [0]: > active: true > iters: 572706 > stripes: 4000 > key-offset: 8 > [1]: > active: false > iters: 0 > stripes: 4000 > key-offset: 264 > [2]: > active: false > iters: 0 > stripes: 4000 > key-offset: 520 > [3]: > active: false > iters: 0 > stripes: 4000 > key-offset: 776 > [4]: > active: false > iters: 0 > stripes: 4000 > key-offset: 1032 > [5]: > active: false > iters: 0 > stripes: 4000 > key-offset: 1288 > [6]: > active: false > iters: 0 > stripes: 4000 > key-offset: 1544 > [7]: > active: false > iters: 0 > stripes: 4000 > key-offset: 1800 > > The remaining 4 patches are improvements to QAPI and the core > block layer to fix a problem whereby struct fields are output > in (apparently) random ordering. This is because the QAPI type > is converted into a QObject for pretty-printing, thus throwing > away any struct field ordering information. > > To address this I created a new TextOutputVisitor which can > directly pretty-print QAPI types. I then changed the code > generator to create qapi_stringify_TYPENAME() methods for > all QAPI types. Finally I changed the block layer over to > use this stringify approach instead. General nagging: This new approach no longer replaces dashes with spaces in the key names. Is it worth doing something about this? Max