summaryrefslogtreecommitdiff
path: root/oslo_utils/tests/test_imageutils.py
diff options
context:
space:
mode:
authorLee Yarwood <lyarwood@redhat.com>2020-02-10 15:10:36 +0000
committerLee Yarwood <lyarwood@redhat.com>2020-02-14 12:38:33 +0000
commit2180db82b605cf84902ee379fffc0b34e17e92c7 (patch)
treeef291674e2f006f62bb158fbc87746894d56d066 /oslo_utils/tests/test_imageutils.py
parentd3d117112e26e25bf81b0be3a8df26e6cf191b0e (diff)
downloadoslo-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.py5
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)