diff options
author | Lee Yarwood <lyarwood@redhat.com> | 2020-02-10 15:10:36 +0000 |
---|---|---|
committer | Lee Yarwood <lyarwood@redhat.com> | 2020-02-14 12:38:33 +0000 |
commit | 2180db82b605cf84902ee379fffc0b34e17e92c7 (patch) | |
tree | ef291674e2f006f62bb158fbc87746894d56d066 /oslo_utils/tests/test_imageutils.py | |
parent | d3d117112e26e25bf81b0be3a8df26e6cf191b0e (diff) | |
download | oslo-utils-2180db82b605cf84902ee379fffc0b34e17e92c7.tar.gz |
imageutils: Report format specific details when using JSON output format
The data held within this section is particularly useful when dealing
with encrypted LUKSv1, as shown below:
$ qemu-img info --output=json rbd:volumes/volume
{
[..]
"format-specific": {
"type": "luks",
"data": {
"ivgen-alg": "plain64",
"hash-alg": "sha256",
"cipher-alg": "aes-256",
"uuid": "de946b24-f318-4fa6-aacf-c5e97db04609",
"cipher-mode": "xts",
"slots": [
{
"active": true,
"iters": 1966316,
"key-offset": 4096,
"stripes": 4000
},
{
"active": false,
"key-offset": 262144
},
{
"active": false,
"key-offset": 520192
},
{
"active": false,
"key-offset": 778240
},
{
"active": false,
"key-offset": 1036288
},
{
"active": false,
"key-offset": 1294336
},
{
"active": false,
"key-offset": 1552384
},
{
"active": false,
"key-offset": 1810432
}
],
"payload-offset": 2068480,
"master-key-iters": 479636
}
},
}
Unfortunately the only documentation for this is in the QEMU codebase at
present, for example for LUKSv1:
https://github.com/qemu/qemu/blob/d8d5fefd8657d4f7b380b3a1533340434b5b9def/qapi/crypto.json#L272-L298
Related-Bug: #1861071
Change-Id: I133da07a5a9628b8a9338556939c858afae679f4
Diffstat (limited to 'oslo_utils/tests/test_imageutils.py')
-rw-r--r-- | oslo_utils/tests/test_imageutils.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/oslo_utils/tests/test_imageutils.py b/oslo_utils/tests/test_imageutils.py index de262e0..bb6340c 100644 --- a/oslo_utils/tests/test_imageutils.py +++ b/oslo_utils/tests/test_imageutils.py @@ -220,7 +220,8 @@ class ImageUtilsJSONTestCase(test_base.BaseTestCase): "filename": "fake_img", "cluster-size": 65536, "format": "qcow2", - "actual-size": 13168640 + "actual-size": 13168640, + "format-specific": {"data": {"foo": "bar"}} }''' image_info = imageutils.QemuImgInfo(img_output, format='json') self.assertEqual(41126400, image_info.virtual_size) @@ -228,6 +229,7 @@ class ImageUtilsJSONTestCase(test_base.BaseTestCase): self.assertEqual(65536, image_info.cluster_size) self.assertEqual('qcow2', image_info.file_format) self.assertEqual(13168640, image_info.disk_size) + self.assertEqual("bar", image_info.format_specific["data"]["foo"]) def test_qemu_img_info_json_format_blank(self): img_output = '{}' @@ -237,3 +239,4 @@ class ImageUtilsJSONTestCase(test_base.BaseTestCase): self.assertIsNone(image_info.cluster_size) self.assertIsNone(image_info.file_format) self.assertIsNone(image_info.disk_size) + self.assertIsNone(image_info.format_specific) |