)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ba129eb9f3c51dcc18d6c89873dc538a17f103e1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"93c22e2e_4fb5eacf","updated":"2024-02-02 15:12:29.000000000","message":"Can you extend the test to include a case for this subformat? We use `qemu-img` to create a vmdk and make sure we can process it. Looks like you can add `-o subformat\u003dstreamOptimized` to `qemu-img` to create that format, so it should be easy.\n\nhttps://github.com/openstack/glance/blob/master/glance/tests/unit/common/test_format_inspector.py#L85\n\nThanks!","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"c25b1f35a0a44492322122e30729d57a6d39bdf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a4d79e48_9246debf","updated":"2024-02-02 11:17:45.000000000","message":"Hi,\n\nIf you could have a look at it, that would be great.\n\nThanks a lot,\n  Fabian","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"287714cd4ba70ce8d9c94c844f93a49bdaf11828","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5ceec77b_6892fd9d","updated":"2024-02-02 16:06:14.000000000","message":"Thanks for working on this.  I think there\u0027s a config opt we can use for the list of allowed vmdk subformats instead of hard-coding it.  See comment inline.","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"468b93ea1d20178444845ed90782f0b5fe456c46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"698c4cbf_adbac677","updated":"2024-02-05 09:06:48.000000000","message":"I\u0027ve added the tests.\n\nCheers,\n  Fabian","commit_id":"080bfe874e035efef6fffc05acf01b0f28caca3f"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"b57f8dd12bcd01897634afaa4e90062b31e1ff29","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"759f39ce_77e8b6ca","updated":"2024-02-06 09:57:36.000000000","message":"Sorry, if I do it wrong here. The change was still on me, so I simply acknowledge the request.","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"8e7ac9f999ba5584f99918204d29345104fb8a25","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fe6cf3ba_f2403707","updated":"2024-02-15 14:46:45.000000000","message":"Thanks for the explanation, this is fine as it is.","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8b0c555a4e2f2bfbe557a6325d20ef951e189f19","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d4c55dc6_30c6da04","updated":"2024-02-06 15:41:24.000000000","message":"Thanks for the test, this looks okay to me now.","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"fbb783cd9601e5b9106fea97ad66ae72018deaa3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"62be5440_d9d90d7c","updated":"2024-02-16 08:15:29.000000000","message":"recheck - Looks the test is flaky. tempest-integrated-storage: Failed to delete volume. Waited for 196 s.","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c6e331b3f7e000b22ddb096404ce3c03fdba343e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b557ab1a_7ad1843e","updated":"2024-02-16 17:56:13.000000000","message":"recheck more multi-attach volume failures that are unrelated","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"e527e729a01fededca1cfe9b0ae71c51755e0a9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"cf0a4a69_e7491304","updated":"2024-02-16 15:06:14.000000000","message":"recheck volume failures obviously unrelated to vmdk stream code","commit_id":"5e7e6bfb80ed6ede57f348e688c96dbdfe0e1c2b"}],"glance/common/format_inspector.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"287714cd4ba70ce8d9c94c844f93a49bdaf11828","unresolved":true,"context_lines":[{"line_number":582,"context_line":"            vmdktype \u003d descriptor[type_idx:type_end]"},{"line_number":583,"context_line":"        else:"},{"line_number":584,"context_line":"            vmdktype \u003d b\u0027formatnotfound\u0027"},{"line_number":585,"context_line":"        if vmdktype not in (b\u0027monolithicSparse\u0027, b\u0027streamOptimized\u0027):"},{"line_number":586,"context_line":"            LOG.warning(\u0027Unsupported VMDK format %s\u0027, vmdktype)"},{"line_number":587,"context_line":"            return 0"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"0c3e0df1_11755c7c","line":585,"updated":"2024-02-02 16:06:14.000000000","message":"We have a vmdk_allowed_types config option (I think it\u0027s only used by the image conversion plugin), but it would probably be better to use it here than to hard-code the types.  (Unless there\u0027s a reason to have a different set of allowed types for import?)","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"a9a9c0ec1de71b1d8df960127fd94747c29dff53","unresolved":true,"context_lines":[{"line_number":582,"context_line":"            vmdktype \u003d descriptor[type_idx:type_end]"},{"line_number":583,"context_line":"        else:"},{"line_number":584,"context_line":"            vmdktype \u003d b\u0027formatnotfound\u0027"},{"line_number":585,"context_line":"        if vmdktype not in (b\u0027monolithicSparse\u0027, b\u0027streamOptimized\u0027):"},{"line_number":586,"context_line":"            LOG.warning(\u0027Unsupported VMDK format %s\u0027, vmdktype)"},{"line_number":587,"context_line":"            return 0"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ec3c8fae_6dc132da","line":585,"in_reply_to":"0c3e0df1_11755c7c","updated":"2024-02-02 17:42:42.000000000","message":"We can do that here too, but I don\u0027t know that it\u0027s really critical. This code is just there to grab some attributes (like virtual size) out of the file as it streams by. If it fails, it doesn\u0027t stop the process and thus even if the file is a format not in this list we just log the warning and stop processing, but the upload continues.\n\nPut another way, this code is designed to never prevent the upload if it can\u0027t inspect the file, so it would be a fundamental change to make it stop the ingest if the subtype wasn\u0027t in the supported list. The only reason this needs to be added here is so that we agree to process the other subtype for getting those attributes - the user can still upload the file regardless.","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"8b0c555a4e2f2bfbe557a6325d20ef951e189f19","unresolved":false,"context_lines":[{"line_number":582,"context_line":"            vmdktype \u003d descriptor[type_idx:type_end]"},{"line_number":583,"context_line":"        else:"},{"line_number":584,"context_line":"            vmdktype \u003d b\u0027formatnotfound\u0027"},{"line_number":585,"context_line":"        if vmdktype not in (b\u0027monolithicSparse\u0027, b\u0027streamOptimized\u0027):"},{"line_number":586,"context_line":"            LOG.warning(\u0027Unsupported VMDK format %s\u0027, vmdktype)"},{"line_number":587,"context_line":"            return 0"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"30eb1968_fb5100c5","line":585,"in_reply_to":"1e3b43ac_05ca9157","updated":"2024-02-06 15:41:24.000000000","message":"Yep, this is the right assessment...","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"b57f8dd12bcd01897634afaa4e90062b31e1ff29","unresolved":false,"context_lines":[{"line_number":582,"context_line":"            vmdktype \u003d descriptor[type_idx:type_end]"},{"line_number":583,"context_line":"        else:"},{"line_number":584,"context_line":"            vmdktype \u003d b\u0027formatnotfound\u0027"},{"line_number":585,"context_line":"        if vmdktype not in (b\u0027monolithicSparse\u0027, b\u0027streamOptimized\u0027):"},{"line_number":586,"context_line":"            LOG.warning(\u0027Unsupported VMDK format %s\u0027, vmdktype)"},{"line_number":587,"context_line":"            return 0"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1e3b43ac_05ca9157","line":585,"in_reply_to":"3b359f99_dc6dc6ae","updated":"2024-02-06 09:57:36.000000000","message":"Acknowledged","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"},{"author":{"_account_id":24434,"name":"Fabian Wiesel","email":"fabian.wiesel@sap.com","username":"fwiesel"},"change_message_id":"468b93ea1d20178444845ed90782f0b5fe456c46","unresolved":true,"context_lines":[{"line_number":582,"context_line":"            vmdktype \u003d descriptor[type_idx:type_end]"},{"line_number":583,"context_line":"        else:"},{"line_number":584,"context_line":"            vmdktype \u003d b\u0027formatnotfound\u0027"},{"line_number":585,"context_line":"        if vmdktype not in (b\u0027monolithicSparse\u0027, b\u0027streamOptimized\u0027):"},{"line_number":586,"context_line":"            LOG.warning(\u0027Unsupported VMDK format %s\u0027, vmdktype)"},{"line_number":587,"context_line":"            return 0"},{"line_number":588,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3b359f99_dc6dc6ae","line":585,"in_reply_to":"ec3c8fae_6dc132da","updated":"2024-02-05 09:06:48.000000000","message":"I see it like Dan. It is a different concern. The list needs to be hard-coded, as it specifies the supported (and tested) subformats that inspector can inspect. That is a property of the code (and the spec).\n\nThe list of the image conversion plugin specifies the list of formats the administrator does want to allow to be stored on glance.","commit_id":"3db32f608158df98af34634d644c2301bb14b6e7"}]}
