)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abf627372cf6a71774521c58f63559d772b38ed3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"a56a9273_e0f04403","updated":"2024-08-05 13:41:13.000000000","message":"This worked as expected, and passed the import verifications on the import test. Will fix the pep8 error.","commit_id":"cc52a62f2906381d4a77a3cd3b8316e16cce9678"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a8a2921e_35ec83a5","updated":"2024-08-09 00:26:10.000000000","message":"I am +2 once config name is changed otherwise lgtm\n\nDevstack generating all the 15 images \n\n- https://opendev.org/openstack/os-test-images/src/branch/master/manifest.yaml\n\n- https://zuul.opendev.org/t/openstack/build/c8bb9add437d4c7d817e183232ec69ff/log/controller/logs/devstacklog.txt#20716-20742\n\n15 tests are generated correctly and passing\n- https://zuul.opendev.org/t/openstack/build/c8bb9add437d4c7d817e183232ec69ff/log/job-output.txt#24512-24526","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7ce50443ab56648c601aaad2ac4c43bed6f589da","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"4c3e0b35_4d281c6a","updated":"2024-08-09 23:48:35.000000000","message":"lgtm, thanks","commit_id":"97ef286942dc236850512848d70af443cfa95c76"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c03764351995d874055671efaba714e329052973","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"8e81738a_d10e1edb","updated":"2024-08-09 16:18:26.000000000","message":"recheck failed to install a package due to dpkg lock","commit_id":"97ef286942dc236850512848d70af443cfa95c76"}],"tempest/api/image/v2/test_images_formats.py":[{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"05767213ebc9c5d03ccca55bb7158b142fa92f40","unresolved":true,"context_lines":[{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class ImagesFormatTest(base.BaseV2ImageTest):"},{"line_number":29,"context_line":"    def setUp(self):"},{"line_number":30,"context_line":"        super().setUp()"},{"line_number":31,"context_line":"        if CONF.image.test_images_manifest is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"996087a9_555026da","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":45},"updated":"2024-08-05 09:57:44.000000000","message":"Missing docstring","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abf627372cf6a71774521c58f63559d772b38ed3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class ImagesFormatTest(base.BaseV2ImageTest):"},{"line_number":29,"context_line":"    def setUp(self):"},{"line_number":30,"context_line":"        super().setUp()"},{"line_number":31,"context_line":"        if CONF.image.test_images_manifest is None:"}],"source_content_type":"text/x-python","patch_set":4,"id":"fbcf8b10_32e7eef3","line":28,"range":{"start_line":28,"start_character":0,"end_line":28,"end_character":45},"in_reply_to":"996087a9_555026da","updated":"2024-08-05 13:41:13.000000000","message":"Acknowledged","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"05767213ebc9c5d03ccca55bb7158b142fa92f40","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            name\u003dimage_name,"},{"line_number":54,"context_line":"            container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"            disk_format\u003doverride_format or image_def[\u0027format\u0027])"},{"line_number":56,"context_line":"        self.images.append(image)"},{"line_number":57,"context_line":"        image_fn \u003d os.path.join(self._image_base, image_def[\u0027filename\u0027])"},{"line_number":58,"context_line":"        with open(image_fn, \u0027rb\u0027) as f:"},{"line_number":59,"context_line":"            self.client.store_image_file(image[\u0027id\u0027], f)"}],"source_content_type":"text/x-python","patch_set":4,"id":"725a471b_632be72f","line":56,"range":{"start_line":56,"start_character":8,"end_line":56,"end_character":33},"updated":"2024-08-05 09:57:44.000000000","message":"Should we check If image is created before?","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abf627372cf6a71774521c58f63559d772b38ed3","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            name\u003dimage_name,"},{"line_number":54,"context_line":"            container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"            disk_format\u003doverride_format or image_def[\u0027format\u0027])"},{"line_number":56,"context_line":"        self.images.append(image)"},{"line_number":57,"context_line":"        image_fn \u003d os.path.join(self._image_base, image_def[\u0027filename\u0027])"},{"line_number":58,"context_line":"        with open(image_fn, \u0027rb\u0027) as f:"},{"line_number":59,"context_line":"            self.client.store_image_file(image[\u0027id\u0027], f)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fe7a804_ede0164f","line":56,"range":{"start_line":56,"start_character":8,"end_line":56,"end_character":33},"in_reply_to":"725a471b_632be72f","updated":"2024-08-05 13:41:13.000000000","message":"The `client.create_image()` asserts that we get back a 201, what checking do you want?","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            name\u003dimage_name,"},{"line_number":54,"context_line":"            container_format\u003d\u0027bare\u0027,"},{"line_number":55,"context_line":"            disk_format\u003doverride_format or image_def[\u0027format\u0027])"},{"line_number":56,"context_line":"        self.images.append(image)"},{"line_number":57,"context_line":"        image_fn \u003d os.path.join(self._image_base, image_def[\u0027filename\u0027])"},{"line_number":58,"context_line":"        with open(image_fn, \u0027rb\u0027) as f:"},{"line_number":59,"context_line":"            self.client.store_image_file(image[\u0027id\u0027], f)"}],"source_content_type":"text/x-python","patch_set":4,"id":"d367f9d8_6c29b67c","line":56,"range":{"start_line":56,"start_character":8,"end_line":56,"end_character":33},"in_reply_to":"9fe7a804_ede0164f","updated":"2024-08-09 00:26:10.000000000","message":"yeah, client_image itself a check for image creation fail or successful","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"05767213ebc9c5d03ccca55bb7158b142fa92f40","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"1b7686b6_a27577c9","line":73,"range":{"start_line":68,"start_character":16,"end_line":73,"end_character":1},"updated":"2024-08-05 09:57:44.000000000","message":"Should we separate negative tests from positive one?","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abf627372cf6a71774521c58f63559d772b38ed3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9f034e37_c5f5122e","line":73,"range":{"start_line":68,"start_character":16,"end_line":73,"end_character":1},"in_reply_to":"1b7686b6_a27577c9","updated":"2024-08-05 13:41:13.000000000","message":"I don\u0027t know, I don\u0027t understand why tempest does that in some places as it doesn\u0027t make much sense to me. If it\u0027s necessary for some reason, then sure, but I wouldn\u0027t personally prefer that.","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cc5e60c4bf385f863c464d382a92802ec3d1788e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a1baf6fd_33ce22ad","line":73,"range":{"start_line":68,"start_character":16,"end_line":73,"end_character":1},"in_reply_to":"2b6e784a_dbcca4f4","updated":"2024-08-09 13:44:20.000000000","message":"Acknowledged","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2b6e784a_dbcca4f4","line":73,"range":{"start_line":68,"start_character":16,"end_line":73,"end_character":1},"in_reply_to":"9f034e37_c5f5122e","updated":"2024-08-09 00:26:10.000000000","message":"I think testing both reject and acceptable cases in test make sense instead of separating them","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2a98ab1960045673707eea65c0153158cf5ef408","unresolved":true,"context_lines":[{"line_number":44,"context_line":"class ImagesFormatTest(base.BaseV2ImageTest):"},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super().setUp()"},{"line_number":47,"context_line":"        if CONF.image.test_images_manifest is None:"},{"line_number":48,"context_line":"            self.skipTest(\u0027Image format testing is not configured\u0027)"},{"line_number":49,"context_line":"        self._image_base \u003d os.path.dirname(os.path.abspath("},{"line_number":50,"context_line":"            CONF.image.test_images_manifest))"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ff4e70b_6fe20946","line":47,"updated":"2024-08-06 18:06:00.000000000","message":"Shouldn\u0027t we also assert for image conversion is enabled or not?","commit_id":"6c41092e2ab3daf971246bc4a6d8c60591833c83"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7aa33543849a0dbcd4301eb209227458a9640129","unresolved":false,"context_lines":[{"line_number":44,"context_line":"class ImagesFormatTest(base.BaseV2ImageTest):"},{"line_number":45,"context_line":"    def setUp(self):"},{"line_number":46,"context_line":"        super().setUp()"},{"line_number":47,"context_line":"        if CONF.image.test_images_manifest is None:"},{"line_number":48,"context_line":"            self.skipTest(\u0027Image format testing is not configured\u0027)"},{"line_number":49,"context_line":"        self._image_base \u003d os.path.dirname(os.path.abspath("},{"line_number":50,"context_line":"            CONF.image.test_images_manifest))"}],"source_content_type":"text/x-python","patch_set":5,"id":"dadcf283_af71d492","line":47,"in_reply_to":"1ff4e70b_6fe20946","updated":"2024-08-06 18:06:53.000000000","message":"Ignore this comment, I forgot this is upload test and not import","commit_id":"6c41092e2ab3daf971246bc4a6d8c60591833c83"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":false,"context_lines":[{"line_number":34,"context_line":"    with open(CONF.image.test_images_manifest) as f:"},{"line_number":35,"context_line":"        ImagesFormatTest._manifest \u003d yaml.load(f, Loader\u003dyaml.SafeLoader)"},{"line_number":36,"context_line":"        for imgdef in ImagesFormatTest._manifest[\u0027images\u0027]:"},{"line_number":37,"context_line":"            ImagesFormatTest.scenarios.append((imgdef[\u0027name\u0027],"},{"line_number":38,"context_line":"                                               {\u0027imgdef\u0027: imgdef}))"},{"line_number":39,"context_line":"    result \u003d loader.suiteClass()"},{"line_number":40,"context_line":"    result.addTests(testscenarios.generate_scenarios(suite))"}],"source_content_type":"text/x-python","patch_set":6,"id":"40e60a57_ea7223f8","line":37,"range":{"start_line":37,"start_character":47,"end_line":37,"end_character":61},"updated":"2024-08-09 00:26:10.000000000","message":"+1, with name tests are more readable - test_accept_usable_formats(standard-qcow2v3)","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":true,"context_lines":[{"line_number":84,"context_line":"                self.assertRaises(lib_exc.BadRequest,"},{"line_number":85,"context_line":"                                  self._test_image, self.imgdef)"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            self.skipTest("},{"line_number":88,"context_line":"                \u0027Glance does not currently reject unusable images on upload\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"e970f72e_a73010fd","line":88,"range":{"start_line":87,"start_character":12,"end_line":88,"end_character":77},"updated":"2024-08-09 00:26:10.000000000","message":"one question (not related to tests but from glance perspective): unusable images sounds like those should be rejected right away? or \u0027unusable\u0027 here is something else?","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7ce50443ab56648c601aaad2ac4c43bed6f589da","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                self.assertRaises(lib_exc.BadRequest,"},{"line_number":85,"context_line":"                                  self._test_image, self.imgdef)"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            self.skipTest("},{"line_number":88,"context_line":"                \u0027Glance does not currently reject unusable images on upload\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"dfea1dcb_78f60a60","line":88,"range":{"start_line":87,"start_character":12,"end_line":88,"end_character":77},"in_reply_to":"c6343b28_f0eb33a4","updated":"2024-08-09 23:48:35.000000000","message":"ack, thanks","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cc5e60c4bf385f863c464d382a92802ec3d1788e","unresolved":true,"context_lines":[{"line_number":84,"context_line":"                self.assertRaises(lib_exc.BadRequest,"},{"line_number":85,"context_line":"                                  self._test_image, self.imgdef)"},{"line_number":86,"context_line":"        else:"},{"line_number":87,"context_line":"            self.skipTest("},{"line_number":88,"context_line":"                \u0027Glance does not currently reject unusable images on upload\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"c6343b28_f0eb33a4","line":88,"range":{"start_line":87,"start_character":12,"end_line":88,"end_character":77},"in_reply_to":"e970f72e_a73010fd","updated":"2024-08-09 13:44:20.000000000","message":"Yes, that\u0027s what it means. Glance does not currently do that (except in image conversion where it gets a chance to inspect them). Nova does though and that\u0027s what the last patch in this series in validating. I will be working on this for next cycle:\n\nhttps://review.opendev.org/c/openstack/glance-specs/+/925111\n\nWhich will make it much tighter. When I do that, I\u0027ll only be able to test the nova  part of this if I somehow disable glance\u0027s defenses (there will be a conf option).","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"}],"tempest/config.py":[{"author":{"_account_id":34510,"name":"Maxim Sava","email":"msava@redhat.com","username":"msava@redhat.com"},"change_message_id":"05767213ebc9c5d03ccca55bb7158b142fa92f40","unresolved":true,"context_lines":[{"line_number":687,"context_line":"                     \"users can specify.\"),"},{"line_number":688,"context_line":"    cfg.StrOpt(\u0027test_images_manifest\u0027,"},{"line_number":689,"context_line":"               default\u003dNone,"},{"line_number":690,"context_line":"               help\u003d\"A path to os-test-images\u0027 manifest.yml\"),"},{"line_number":691,"context_line":"]"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"image_feature_group \u003d cfg.OptGroup(name\u003d\u0027image-feature-enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"05675292_b1b30a06","line":690,"range":{"start_line":690,"start_character":15,"end_line":690,"end_character":62},"updated":"2024-08-05 09:57:44.000000000","message":"Need more details about that type/configurations of images","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"abf627372cf6a71774521c58f63559d772b38ed3","unresolved":true,"context_lines":[{"line_number":687,"context_line":"                     \"users can specify.\"),"},{"line_number":688,"context_line":"    cfg.StrOpt(\u0027test_images_manifest\u0027,"},{"line_number":689,"context_line":"               default\u003dNone,"},{"line_number":690,"context_line":"               help\u003d\"A path to os-test-images\u0027 manifest.yml\"),"},{"line_number":691,"context_line":"]"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"image_feature_group \u003d cfg.OptGroup(name\u003d\u0027image-feature-enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"eab73a7e_76aa675d","line":690,"range":{"start_line":690,"start_character":15,"end_line":690,"end_character":62},"in_reply_to":"05675292_b1b30a06","updated":"2024-08-05 13:41:13.000000000","message":"What detail? This is not something that should be created by an operator or anything, it\u0027s literally meant to point to an deployed manifest generates by `os-test-images`.","commit_id":"ea10c691c711010251092132d960c6b25e15de06"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"c03231b146534f3327b015f4772c75733c645387","unresolved":true,"context_lines":[{"line_number":685,"context_line":"                         \u0027vdi\u0027, \u0027iso\u0027, \u0027vhdx\u0027],"},{"line_number":686,"context_line":"                help\u003d\"A list of image\u0027s disk formats \""},{"line_number":687,"context_line":"                     \"users can specify.\"),"},{"line_number":688,"context_line":"    cfg.StrOpt(\u0027test_images_manifest\u0027,"},{"line_number":689,"context_line":"               default\u003dNone,"},{"line_number":690,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""},{"line_number":691,"context_line":"                    \"os-test-images project\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"196de2af_9f6960ac","line":688,"range":{"start_line":688,"start_character":16,"end_line":688,"end_character":36},"updated":"2024-08-09 00:26:10.000000000","message":"this sounds like bool option to tell if we want to test image manifest or not. can we name it images_manifest_file\n\nalso, can you push a release notes for this new config option","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cc5e60c4bf385f863c464d382a92802ec3d1788e","unresolved":false,"context_lines":[{"line_number":685,"context_line":"                         \u0027vdi\u0027, \u0027iso\u0027, \u0027vhdx\u0027],"},{"line_number":686,"context_line":"                help\u003d\"A list of image\u0027s disk formats \""},{"line_number":687,"context_line":"                     \"users can specify.\"),"},{"line_number":688,"context_line":"    cfg.StrOpt(\u0027test_images_manifest\u0027,"},{"line_number":689,"context_line":"               default\u003dNone,"},{"line_number":690,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""},{"line_number":691,"context_line":"                    \"os-test-images project\"),"}],"source_content_type":"text/x-python","patch_set":6,"id":"dcd201e8_63388e77","line":688,"range":{"start_line":688,"start_character":16,"end_line":688,"end_character":36},"in_reply_to":"196de2af_9f6960ac","updated":"2024-08-09 13:44:20.000000000","message":"Acknowledged","commit_id":"e4a439ee6c80a328390e8e38afa215be00b4426a"}]}
