)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e60adfc2cdde95711a4481a59ee4f1bfbbe2e6","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Abhishek Kekane \u003cakekane@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-12 14:34:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Test glance hash calculation stopped on iamge deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Recently glance has added new location API which also calculates"},{"line_number":10,"context_line":"checksum and hash for the newly added image. This test helps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"787f8cab_b04ee0ca","line":7,"range":{"start_line":7,"start_character":40,"end_line":7,"end_character":45},"updated":"2025-06-13 15:12:40.000000000","message":"\"image\"","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e60adfc2cdde95711a4481a59ee4f1bfbbe2e6","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Abhishek Kekane \u003cakekane@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-12 14:34:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Test glance hash calculation stopped on iamge deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Recently glance has added new location API which also calculates"},{"line_number":10,"context_line":"checksum and hash for the newly added image. This test helps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"0ff85525_88d2ebe1","line":7,"range":{"start_line":7,"start_character":29,"end_line":7,"end_character":36},"updated":"2025-06-13 15:12:40.000000000","message":"I think you want to say \"stops\" here.. as in \"confirm that deleting an image *stops* the hash calculation\"","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Abhishek Kekane \u003cakekane@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-12 14:34:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Test glance hash calculation stopped on iamge deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Recently glance has added new location API which also calculates"},{"line_number":10,"context_line":"checksum and hash for the newly added image. This test helps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"e70e9ca6_8ae01ca0","line":7,"range":{"start_line":7,"start_character":29,"end_line":7,"end_character":36},"in_reply_to":"0ff85525_88d2ebe1","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Abhishek Kekane \u003cakekane@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2025-06-12 14:34:16 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Test glance hash calculation stopped on iamge deletion"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Recently glance has added new location API which also calculates"},{"line_number":10,"context_line":"checksum and hash for the newly added image. This test helps"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"77b08a2a_6f19825f","line":7,"range":{"start_line":7,"start_character":40,"end_line":7,"end_character":45},"in_reply_to":"787f8cab_b04ee0ca","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3bbb9733c16a47c5500f67cf3367ae70e37dd148","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e5650743_6e98f8fa","updated":"2025-06-05 17:17:43.000000000","message":"recheck unrelated failure","commit_id":"18416697b40348edc13564961f80347682fb75dc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ffb9ed5aa31a1afaf1ea319d5113d00f4f9eea17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a3a5bcd4_a88b6a9e","updated":"2025-06-10 13:46:03.000000000","message":"One suggestion inline that I think will make this more robust.\n\nDefinitely need to get some early review from someone like gmaan to determine if this thread and server approach is okay :)","commit_id":"bdca861410d478467a3ab0897319a00b77db6f4c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"e1af1603cb5dd959ff09eb26a43fd849b4d88fe3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"3bad3c6b_23ef701d","updated":"2025-06-09 15:25:49.000000000","message":"recheck dependency updated","commit_id":"bdca861410d478467a3ab0897319a00b77db6f4c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"ddbc27bae5e7ca898ea73209105409dd95d463c4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"93482c1b_62797a5c","updated":"2025-06-11 15:10:16.000000000","message":"recheck dependency updated","commit_id":"bdca861410d478467a3ab0897319a00b77db6f4c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ae24af88_949715ca","updated":"2025-06-18 20:36:41.000000000","message":"overall lgtm, some comments inline.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7cf9285b2f95440a4b615c101dd4bc8df3d08d8d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"ad40b5e9_049fcfe3","updated":"2025-06-19 16:07:47.000000000","message":"recheck unrelated time out","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4035175d6bf184d61a8aa7d8f64dc8be32cc366e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"27a0030f_4b4d8461","updated":"2025-06-20 05:10:39.000000000","message":"Thank you for review gmann and dansmith, made changes as per suggestion.","commit_id":"4bafe1581ac0c0fe5fe3d588e7033a0bc8c77b9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"42db06bd_07a14d3e","updated":"2025-06-19 17:49:34.000000000","message":"thanks Abhishek for updating. a few comments otherwise lgtm.","commit_id":"4bafe1581ac0c0fe5fe3d588e7033a0bc8c77b9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3977dc472528a67cecdeaf4442fcbc2f016cf8bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"2ebfc193_2a6c914f","updated":"2025-06-23 17:37:36.000000000","message":"lgtm one typo which you can fix in this if re-spin otherwise I am ok to fix in follow up.\n\nAs Dan and Cyril reviewed also, waiting for their vote/feedback if any otherwise I will approve it in evening.","commit_id":"c52dae782806442d652ef2202759d222c77fc949"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"c68e5708a1810207dde520c4b27a5177846a85ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"92d78742_a3418424","updated":"2025-06-20 08:17:16.000000000","message":"recheck grenade timeout not related to this change","commit_id":"c52dae782806442d652ef2202759d222c77fc949"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2b01d10592d539d4979df2fd4fbce0e5620e1947","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"b8dd6c16_17c21384","updated":"2025-06-24 15:15:56.000000000","message":"Thank you!!","commit_id":"102d762ea3ad8a8d6b9188539c122de740bfb9cf"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"95e5f4d9fbbdf1584edfca96bc29bab0ecf4059d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"ba3ac7c1_d4cebf30","updated":"2025-07-23 18:06:05.000000000","message":"recheck","commit_id":"102d762ea3ad8a8d6b9188539c122de740bfb9cf"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"62ff4daddc5dd2446471d296ac81110c7d278514","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3034d2b8_705764d3","updated":"2025-06-25 13:42:31.000000000","message":"recheck multiple unrelated failures","commit_id":"102d762ea3ad8a8d6b9188539c122de740bfb9cf"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3567f9dbbb64d994d6038d5667634f0815eb24ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"b7f8d6c8_d7038462","updated":"2025-07-23 20:14:58.000000000","message":"recheck resize volume failed, tempest.lib.exceptions.SSHTimeout: Connection to the 172.24.5.250 via SSH timed out.","commit_id":"102d762ea3ad8a8d6b9188539c122de740bfb9cf"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"1be472d8f7a837c4ed685edb65f9120b3101386e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"7c576094_9c32c0b8","updated":"2025-06-24 15:51:35.000000000","message":"thanks. small typo fix after test passed so that could not impact result. approving it considering the last run result were green.","commit_id":"102d762ea3ad8a8d6b9188539c122de740bfb9cf"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2e60adfc2cdde95711a4481a59ee4f1bfbbe2e6","unresolved":true,"context_lines":[{"line_number":1013,"context_line":"                cls.__name__)"},{"line_number":1014,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        if not CONF.image.alternate_image_endpoint:"},{"line_number":1017,"context_line":"            skip_msg \u003d (\u0027No image_remote service to test \u0027"},{"line_number":1018,"context_line":"                        \u0027against\u0027)"},{"line_number":1019,"context_line":"            raise cls.skipException(skip_msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"c8ca2cea_cb1370f8","line":1016,"updated":"2025-06-13 15:12:40.000000000","message":"So, I think maybe we want to always run this, and use the remote if it\u0027s present. If we only have a single worker, it\u0027s still useful and relevant to make sure the hash task gets canceled right? I think we can just use remote if present, else use the regular one, and just run it in more jobs.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":1013,"context_line":"                cls.__name__)"},{"line_number":1014,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        if not CONF.image.alternate_image_endpoint:"},{"line_number":1017,"context_line":"            skip_msg \u003d (\u0027No image_remote service to test \u0027"},{"line_number":1018,"context_line":"                        \u0027against\u0027)"},{"line_number":1019,"context_line":"            raise cls.skipException(skip_msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"91d45a07_d47aa5b7","line":1016,"in_reply_to":"72bd50dc_2e9d64f3","updated":"2025-06-19 05:05:44.000000000","message":"Done","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bde7d892c6ecda7edf1acd2249aaa0c73e61f1a0","unresolved":true,"context_lines":[{"line_number":1013,"context_line":"                cls.__name__)"},{"line_number":1014,"context_line":"            raise cls.skipException(skip_msg)"},{"line_number":1015,"context_line":""},{"line_number":1016,"context_line":"        if not CONF.image.alternate_image_endpoint:"},{"line_number":1017,"context_line":"            skip_msg \u003d (\u0027No image_remote service to test \u0027"},{"line_number":1018,"context_line":"                        \u0027against\u0027)"},{"line_number":1019,"context_line":"            raise cls.skipException(skip_msg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"72bd50dc_2e9d64f3","line":1016,"in_reply_to":"c8ca2cea_cb1370f8","updated":"2025-06-13 15:25:21.000000000","message":"Ack, I will wait for gmann\u0027s comment and then change it accordingly!!","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":1043,"context_line":"        # Start http server at random port to simulate the image location"},{"line_number":1044,"context_line":"        # and to provide random data for the image with slow transfer"},{"line_number":1045,"context_line":"        server \u003d image_utils.RandomDataServer()"},{"line_number":1046,"context_line":"        server.start()"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"        # Add a location to the image"},{"line_number":1049,"context_line":"        location \u003d \u0027http://localhost:%d\u0027 % server.port"}],"source_content_type":"text/x-python","patch_set":11,"id":"8d36fcac_e991e57e","line":1046,"range":{"start_line":1046,"start_character":21,"end_line":1046,"end_character":22},"updated":"2025-06-18 20:36:41.000000000","message":"For safer side, let\u0027s add a cleanup here for server.stop()\n\nself.addCleanup(server.stop)","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":1043,"context_line":"        # Start http server at random port to simulate the image location"},{"line_number":1044,"context_line":"        # and to provide random data for the image with slow transfer"},{"line_number":1045,"context_line":"        server \u003d image_utils.RandomDataServer()"},{"line_number":1046,"context_line":"        server.start()"},{"line_number":1047,"context_line":""},{"line_number":1048,"context_line":"        # Add a location to the image"},{"line_number":1049,"context_line":"        location \u003d \u0027http://localhost:%d\u0027 % server.port"}],"source_content_type":"text/x-python","patch_set":11,"id":"55d63569_0f83135a","line":1046,"range":{"start_line":1046,"start_character":21,"end_line":1046,"end_character":22},"in_reply_to":"8d36fcac_e991e57e","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"        # Verify that the hash calculation is initiated"},{"line_number":1054,"context_line":"        image_info \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":1055,"context_line":"        self.assertEqual(\u0027sha512\u0027, image_info[\u0027os_hash_algo\u0027])"},{"line_number":1056,"context_line":"        self.assertEqual(\u0027active\u0027, image_info[\u0027status\u0027])"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"        # delete image from staging to backend, but on the alternate worker"}],"source_content_type":"text/x-python","patch_set":11,"id":"088ead7f_d960a6c1","line":1055,"range":{"start_line":1055,"start_character":26,"end_line":1055,"end_character":32},"updated":"2025-06-18 20:36:41.000000000","message":"this is configurable right? and test will fail if operator as configured some other hash algo. \n\n- https://github.com/openstack/glance/blob/c41b6ff3c2d07d9b964cf26a77254c5b10ba4ab8/glance/common/config.py#L202\n\nEither we should make it configurable in tempest or pass it in add_image_location as validation_data\n- https://docs.openstack.org/api-ref/image/v2/index.html#add-location","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":true,"context_lines":[{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"        # Verify that the hash calculation is initiated"},{"line_number":1054,"context_line":"        image_info \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":1055,"context_line":"        self.assertEqual(\u0027sha512\u0027, image_info[\u0027os_hash_algo\u0027])"},{"line_number":1056,"context_line":"        self.assertEqual(\u0027active\u0027, image_info[\u0027status\u0027])"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"        # delete image from staging to backend, but on the alternate worker"}],"source_content_type":"text/x-python","patch_set":11,"id":"66b2ae4e_563719fd","line":1055,"range":{"start_line":1055,"start_character":26,"end_line":1055,"end_character":32},"in_reply_to":"088ead7f_d960a6c1","updated":"2025-06-19 05:05:44.000000000","message":"If we pass it in validation data then image will not become active immediately and this test will be of no use. I think we will make it configurable with default value as sha512, same as glance","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":false,"context_lines":[{"line_number":1052,"context_line":""},{"line_number":1053,"context_line":"        # Verify that the hash calculation is initiated"},{"line_number":1054,"context_line":"        image_info \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":1055,"context_line":"        self.assertEqual(\u0027sha512\u0027, image_info[\u0027os_hash_algo\u0027])"},{"line_number":1056,"context_line":"        self.assertEqual(\u0027active\u0027, image_info[\u0027status\u0027])"},{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"        # delete image from staging to backend, but on the alternate worker"}],"source_content_type":"text/x-python","patch_set":11,"id":"6cbd0809_4275d2c7","line":1055,"range":{"start_line":1055,"start_character":26,"end_line":1055,"end_character":32},"in_reply_to":"66b2ae4e_563719fd","updated":"2025-06-19 17:49:34.000000000","message":"Done","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"        # delete image from staging to backend, but on the alternate worker"},{"line_number":1059,"context_line":"        self.os_primary.image_client_remote.delete_image(image[\u0027id\u0027])"},{"line_number":1060,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # Verify that the hash calculation is cancelled and the"},{"line_number":1063,"context_line":"        # image is deleted"}],"source_content_type":"text/x-python","patch_set":11,"id":"d1a16905_fa5a4ec6","line":1060,"range":{"start_line":1060,"start_character":0,"end_line":1060,"end_character":59},"updated":"2025-06-18 20:36:41.000000000","message":"maybe here we can add comment that if image is deleted successfully it means glance has canceled the has calculation.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":1057,"context_line":""},{"line_number":1058,"context_line":"        # delete image from staging to backend, but on the alternate worker"},{"line_number":1059,"context_line":"        self.os_primary.image_client_remote.delete_image(image[\u0027id\u0027])"},{"line_number":1060,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # Verify that the hash calculation is cancelled and the"},{"line_number":1063,"context_line":"        # image is deleted"}],"source_content_type":"text/x-python","patch_set":11,"id":"ed9903ad_bdc41be4","line":1060,"range":{"start_line":1060,"start_character":0,"end_line":1060,"end_character":59},"in_reply_to":"d1a16905_fa5a4ec6","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":1059,"context_line":"        self.os_primary.image_client_remote.delete_image(image[\u0027id\u0027])"},{"line_number":1060,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # Verify that the hash calculation is cancelled and the"},{"line_number":1063,"context_line":"        # image is deleted"},{"line_number":1064,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":1065,"context_line":"                          self.client.show_image, image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"7663d310_4dfc71da","line":1062,"range":{"start_line":1062,"start_character":10,"end_line":1062,"end_character":55},"updated":"2025-06-18 20:36:41.000000000","message":"so image deleted is confirmation of hash cal is canceled right? or there is something we can verify here other than image is gone.\n\nIf so then we do not need separate show_image call as self.client.wait_for_resource_deletion(image[\u0027id\u0027]) L1060 verify the same\n\n- https://github.com/openstack/tempest/blob/905cb14d8d6d7225356d88a1db7f03afcc54a435/tempest/lib/common/rest_client.py#L973\n-https://github.com/openstack/tempest/blob/905cb14d8d6d7225356d88a1db7f03afcc54a435/tempest/lib/services/image/v2/images_client.py#L132","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        self.os_primary.image_client_remote.delete_image(image[\u0027id\u0027])"},{"line_number":1060,"context_line":"        self.client.wait_for_resource_deletion(image[\u0027id\u0027])"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"        # Verify that the hash calculation is cancelled and the"},{"line_number":1063,"context_line":"        # image is deleted"},{"line_number":1064,"context_line":"        self.assertRaises(lib_exc.NotFound,"},{"line_number":1065,"context_line":"                          self.client.show_image, image[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"ae3eb597_fceaae64","line":1062,"range":{"start_line":1062,"start_character":10,"end_line":1062,"end_character":55},"in_reply_to":"7663d310_4dfc71da","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":true,"context_lines":[{"line_number":1065,"context_line":"                          self.client.show_image, image[\u0027id\u0027])"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Stop the server"},{"line_number":1068,"context_line":"        server.stop()"}],"source_content_type":"text/x-python","patch_set":11,"id":"1d0e4f04_c940f681","line":1068,"updated":"2025-06-19 05:05:44.000000000","message":"Should I remove it as we are now adding it in cleanup?","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":true,"context_lines":[{"line_number":1065,"context_line":"                          self.client.show_image, image[\u0027id\u0027])"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Stop the server"},{"line_number":1068,"context_line":"        server.stop()"}],"source_content_type":"text/x-python","patch_set":11,"id":"44614a3d_7851f9ec","line":1068,"in_reply_to":"1d0e4f04_c940f681","updated":"2025-06-19 17:49:34.000000000","message":"no, keep it here too for success cases.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4035175d6bf184d61a8aa7d8f64dc8be32cc366e","unresolved":false,"context_lines":[{"line_number":1065,"context_line":"                          self.client.show_image, image[\u0027id\u0027])"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"        # Stop the server"},{"line_number":1068,"context_line":"        server.stop()"}],"source_content_type":"text/x-python","patch_set":11,"id":"7cc1c97d_44c04760","line":1068,"in_reply_to":"44614a3d_7851f9ec","updated":"2025-06-20 05:10:39.000000000","message":"Done","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"}],"tempest/common/image.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ffb9ed5aa31a1afaf1ea319d5113d00f4f9eea17","unresolved":true,"context_lines":[{"line_number":72,"context_line":"class RandomDataHandler(server.BaseHTTPRequestHandler):"},{"line_number":73,"context_line":"    def do_GET(self):"},{"line_number":74,"context_line":"        # Serve a fixed amount of random data (e.g., 10 KB)"},{"line_number":75,"context_line":"        size \u003d 10 * 1024  # 10 KB"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.send_response(200)"},{"line_number":78,"context_line":"        self.send_header(\u0027Content-Type\u0027, \u0027application/octet-stream\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"873c7b6e_b0cf8336","line":75,"updated":"2025-06-10 13:46:03.000000000","message":"So, this concerns me that we\u0027ll just do this all too quickly or completely in certain situations. Like imagine if there\u0027s a caching proxy in between glance and us, which will try to read at least 64KiB before starting the transfer to the reader...\n\nWhy not make this effectively serve infinite data to make sure that the hashing process has plenty of stuff to chew on, with some upper bound on how long it will run? Like, serve 64KiB (MSS for TCP) chunks (still with a delay) for up to 60s. Seems to me like that is less likely to result in a race and more likely to satisfy any HTTP client.","commit_id":"bdca861410d478467a3ab0897319a00b77db6f4c"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4e8513dc50c64ebc6f7fdd73abb331a8faf7067c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"class RandomDataHandler(server.BaseHTTPRequestHandler):"},{"line_number":73,"context_line":"    def do_GET(self):"},{"line_number":74,"context_line":"        # Serve a fixed amount of random data (e.g., 10 KB)"},{"line_number":75,"context_line":"        size \u003d 10 * 1024  # 10 KB"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self.send_response(200)"},{"line_number":78,"context_line":"        self.send_header(\u0027Content-Type\u0027, \u0027application/octet-stream\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"b70d6a6f_b21cb639","line":75,"in_reply_to":"873c7b6e_b0cf8336","updated":"2025-06-12 14:58:43.000000000","message":"Done","commit_id":"bdca861410d478467a3ab0897319a00b77db6f4c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":79,"context_line":"        chunk_size \u003d 64 * 1024  # 64 KiB per chunk"},{"line_number":80,"context_line":"        while time.time() - start_time \u003c 60:"},{"line_number":81,"context_line":"            data \u003d bytes(random.getrandbits(8) for _ in range(chunk_size))"},{"line_number":82,"context_line":"            self.wfile.write(data)"},{"line_number":83,"context_line":"            self.wfile.flush()"},{"line_number":84,"context_line":"            # simulate slow transfer"},{"line_number":85,"context_line":"            time.sleep(0.2)"}],"source_content_type":"text/x-python","patch_set":11,"id":"f6417220_505742ed","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":34},"updated":"2025-06-18 20:36:41.000000000","message":"test running fine but this throw a error\n\nhttps://zuul.opendev.org/t/openstack/build/89729983dd094b989ca2b7f917511d1f/log/job-output.txt#23952\n\n2025-06-13 16:20:23.467852 | controller | Exception occurred during processing of request from (\u0027127.0.0.1\u0027, 43832)\n2025-06-13 16:20:23.476028 | controller | Traceback (most recent call last):\n2025-06-13 16:20:23.478318 | controller |   File \"/usr/lib/python3.12/socketserver.py\", line 318, in _handle_request_noblock\n2025-06-13 16:20:23.478385 | controller |     self.process_request(request, client_address)\n2025-06-13 16:20:23.478397 | controller |   File \"/usr/lib/python3.12/socketserver.py\", line 349, in process_request\n2025-06-13 16:20:23.478405 | controller |     self.finish_request(request, client_address)\n2025-06-13 16:20:23.478417 | controller |   File \"/usr/lib/python3.12/socketserver.py\", line 362, in finish_request\n2025-06-13 16:20:23.478423 | controller |     self.RequestHandlerClass(request, client_address, self)\n2025-06-13 16:20:23.478431 | controller |   File \"/usr/lib/python3.12/socketserver.py\", line 761, in __init__\n2025-06-13 16:20:23.478439 | controller |     self.handle()\n2025-06-13 16:20:23.478446 | controller |   File \"/usr/lib/python3.12/http/server.py\", line 436, in handle\n2025-06-13 16:20:23.478452 | controller |     self.handle_one_request()\n2025-06-13 16:20:23.478458 | controller |   File \"/usr/lib/python3.12/http/server.py\", line 424, in handle_one_request\n2025-06-13 16:20:23.478464 | controller |     method()\n2025-06-13 16:20:23.478565 | controller |   File \"/opt/stack/tempest/tempest/common/image.py\", line 82, in do_GET\n2025-06-13 16:20:23.478572 | controller |     self.wfile.write(data)\n2025-06-13 16:20:23.478579 | controller |   File \"/usr/lib/python3.12/socketserver.py\", line 840, in write\n2025-06-13 16:20:23.478585 | controller |     self._sock.sendall(b)\n2025-06-13 16:20:23.478591 | controller | BrokenPipeError: [Errno 32] Broken pipe","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        chunk_size \u003d 64 * 1024  # 64 KiB per chunk"},{"line_number":80,"context_line":"        while time.time() - start_time \u003c 60:"},{"line_number":81,"context_line":"            data \u003d bytes(random.getrandbits(8) for _ in range(chunk_size))"},{"line_number":82,"context_line":"            self.wfile.write(data)"},{"line_number":83,"context_line":"            self.wfile.flush()"},{"line_number":84,"context_line":"            # simulate slow transfer"},{"line_number":85,"context_line":"            time.sleep(0.2)"}],"source_content_type":"text/x-python","patch_set":11,"id":"2c0a72b2_8c4a6e8f","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":34},"in_reply_to":"68229c85_a7e4b383","updated":"2025-06-19 17:49:34.000000000","message":"yeah I think that is better way, thanks.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":true,"context_lines":[{"line_number":79,"context_line":"        chunk_size \u003d 64 * 1024  # 64 KiB per chunk"},{"line_number":80,"context_line":"        while time.time() - start_time \u003c 60:"},{"line_number":81,"context_line":"            data \u003d bytes(random.getrandbits(8) for _ in range(chunk_size))"},{"line_number":82,"context_line":"            self.wfile.write(data)"},{"line_number":83,"context_line":"            self.wfile.flush()"},{"line_number":84,"context_line":"            # simulate slow transfer"},{"line_number":85,"context_line":"            time.sleep(0.2)"}],"source_content_type":"text/x-python","patch_set":11,"id":"68229c85_a7e4b383","line":82,"range":{"start_line":82,"start_character":0,"end_line":82,"end_character":34},"in_reply_to":"f6417220_505742ed","updated":"2025-06-19 05:05:44.000000000","message":"Yes this is expected as we are terminating the socket in between, should I catch this error here?","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"}],"tempest/config.py":[{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"818f078f4bd28fa4362290b56036190bb970f484","unresolved":true,"context_lines":[{"line_number":732,"context_line":"                help\u003d(\u0027Indicates that image format is enforced by glance, \u0027"},{"line_number":733,"context_line":"                      \u0027such that we should not expect to be able to upload \u0027"},{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"09d7b5a6_101c0d16","line":735,"range":{"start_line":735,"start_character":17,"end_line":735,"end_character":42},"updated":"2025-06-16 14:33:01.000000000","message":"Not a deal breaker, but I\u0027d name this \"do_secure_hash_enabled\" for more clarity.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":732,"context_line":"                help\u003d(\u0027Indicates that image format is enforced by glance, \u0027"},{"line_number":733,"context_line":"                      \u0027such that we should not expect to be able to upload \u0027"},{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9968465c_12ebe2de","line":735,"range":{"start_line":735,"start_character":17,"end_line":735,"end_character":42},"updated":"2025-06-18 20:36:41.000000000","message":"let\u0027s keep config same as what glance has, that is easy for users to enable/disable it.\n\n cfg.BoolOpt(\u0027do_secure_hash\u0027,","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":732,"context_line":"                help\u003d(\u0027Indicates that image format is enforced by glance, \u0027"},{"line_number":733,"context_line":"                      \u0027such that we should not expect to be able to upload \u0027"},{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"801e2c36_ec7318c8","line":735,"range":{"start_line":735,"start_character":17,"end_line":735,"end_character":42},"in_reply_to":"09d7b5a6_101c0d16","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":732,"context_line":"                help\u003d(\u0027Indicates that image format is enforced by glance, \u0027"},{"line_number":733,"context_line":"                      \u0027such that we should not expect to be able to upload \u0027"},{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"f60fe07c_092a709f","line":735,"range":{"start_line":735,"start_character":17,"end_line":735,"end_character":42},"in_reply_to":"9968465c_12ebe2de","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"},{"line_number":739,"context_line":"                default\u003dFalse,"},{"line_number":740,"context_line":"                help\u003d(\u0027Is http store is enabled in glance.\u0027)),"}],"source_content_type":"text/x-python","patch_set":11,"id":"2092d5f5_06293ea5","line":737,"range":{"start_line":737,"start_character":58,"end_line":737,"end_character":59},"updated":"2025-06-18 20:36:41.000000000","message":"This configuration value should be same as \u0027\n\u0027glance.conf: do_secure_hash config option.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"},{"line_number":739,"context_line":"                default\u003dFalse,"},{"line_number":740,"context_line":"                help\u003d(\u0027Is http store is enabled in glance.\u0027)),"}],"source_content_type":"text/x-python","patch_set":11,"id":"af1e06da_c5c4c3d0","line":737,"range":{"start_line":737,"start_character":58,"end_line":737,"end_character":59},"in_reply_to":"2092d5f5_06293ea5","updated":"2025-06-19 05:05:44.000000000","message":"yes in glance it is True by default","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":false,"context_lines":[{"line_number":734,"context_line":"                      \u0027bad images for testing other services.\u0027)),"},{"line_number":735,"context_line":"    cfg.BoolOpt(\u0027location_hash_calculation\u0027,"},{"line_number":736,"context_line":"                default\u003dTrue,"},{"line_number":737,"context_line":"                help\u003d(\u0027Is do_secure_hash enabled in glance.\u0027)),"},{"line_number":738,"context_line":"    cfg.BoolOpt(\u0027local_http_store_enabled\u0027,"},{"line_number":739,"context_line":"                default\u003dFalse,"},{"line_number":740,"context_line":"                help\u003d(\u0027Is http store is enabled in glance.\u0027)),"}],"source_content_type":"text/x-python","patch_set":11,"id":"de1eb5c2_d35daf0c","line":737,"range":{"start_line":737,"start_character":58,"end_line":737,"end_character":59},"in_reply_to":"af1e06da_c5c4c3d0","updated":"2025-06-19 17:49:34.000000000","message":"sorry for not clarifying my comment. I want to say add it in help msg. Many tester might not know what value it should match with so giving ref to service config option is helpful for them to make sure they configure same things in tempest also.\n\nhelp\u003d(\u0027Is do_secure_hash enabled in glance.\u0027\nThis configuration value should be same as \u0027\n\u0027glance.conf: do_secure_hash config option)),","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"4b7e9484fb0d143816bcf0a579805d6200d0b2a8","unresolved":true,"context_lines":[{"line_number":691,"context_line":"    cfg.StrOpt(\u0027hashing_algorithm\u0027,"},{"line_number":692,"context_line":"               default\u003d\u0027sha512\u0027,"},{"line_number":693,"context_line":"               help\u003d(\u0027Hashing algorithm used by glance to calculate image \u0027"},{"line_number":694,"context_line":"                     \u0027hashes.\u0027)),"},{"line_number":695,"context_line":"    cfg.StrOpt(\u0027images_manifest_file\u0027,"},{"line_number":696,"context_line":"               default\u003dNone,"},{"line_number":697,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""}],"source_content_type":"text/x-python","patch_set":12,"id":"16b43be2_28641a8b","line":694,"range":{"start_line":694,"start_character":30,"end_line":694,"end_character":33},"updated":"2025-06-19 17:49:34.000000000","message":"ditto, can you please add glance config option ref also here like i commented in https://review.opendev.org/c/openstack/tempest/+/951592/comment/2092d5f5_06293ea5/","commit_id":"4bafe1581ac0c0fe5fe3d588e7033a0bc8c77b9b"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"4035175d6bf184d61a8aa7d8f64dc8be32cc366e","unresolved":false,"context_lines":[{"line_number":691,"context_line":"    cfg.StrOpt(\u0027hashing_algorithm\u0027,"},{"line_number":692,"context_line":"               default\u003d\u0027sha512\u0027,"},{"line_number":693,"context_line":"               help\u003d(\u0027Hashing algorithm used by glance to calculate image \u0027"},{"line_number":694,"context_line":"                     \u0027hashes.\u0027)),"},{"line_number":695,"context_line":"    cfg.StrOpt(\u0027images_manifest_file\u0027,"},{"line_number":696,"context_line":"               default\u003dNone,"},{"line_number":697,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""}],"source_content_type":"text/x-python","patch_set":12,"id":"dfd6a9c6_18cdaee5","line":694,"range":{"start_line":694,"start_character":30,"end_line":694,"end_character":33},"in_reply_to":"16b43be2_28641a8b","updated":"2025-06-20 05:10:39.000000000","message":"Done","commit_id":"4bafe1581ac0c0fe5fe3d588e7033a0bc8c77b9b"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"3977dc472528a67cecdeaf4442fcbc2f016cf8bc","unresolved":true,"context_lines":[{"line_number":692,"context_line":"               default\u003d\u0027sha512\u0027,"},{"line_number":693,"context_line":"               help\u003d(\u0027Hashing algorithm used by glance to calculate image \u0027"},{"line_number":694,"context_line":"                     \u0027hashes. This configuration value should be same as \u0027"},{"line_number":695,"context_line":"                     \u0027glance-api.conf: hashing_algorithm config opetion.\u0027)),"},{"line_number":696,"context_line":"    cfg.StrOpt(\u0027images_manifest_file\u0027,"},{"line_number":697,"context_line":"               default\u003dNone,"},{"line_number":698,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""}],"source_content_type":"text/x-python","patch_set":13,"id":"4d605307_cfd1de27","line":695,"range":{"start_line":695,"start_character":64,"end_line":695,"end_character":71},"updated":"2025-06-23 17:37:36.000000000","message":"option","commit_id":"c52dae782806442d652ef2202759d222c77fc949"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"59eda538558e770309cca149ed18203ac5c96ebb","unresolved":true,"context_lines":[{"line_number":692,"context_line":"               default\u003d\u0027sha512\u0027,"},{"line_number":693,"context_line":"               help\u003d(\u0027Hashing algorithm used by glance to calculate image \u0027"},{"line_number":694,"context_line":"                     \u0027hashes. This configuration value should be same as \u0027"},{"line_number":695,"context_line":"                     \u0027glance-api.conf: hashing_algorithm config opetion.\u0027)),"},{"line_number":696,"context_line":"    cfg.StrOpt(\u0027images_manifest_file\u0027,"},{"line_number":697,"context_line":"               default\u003dNone,"},{"line_number":698,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""}],"source_content_type":"text/x-python","patch_set":13,"id":"e356a33a_ef13fb1a","line":695,"range":{"start_line":695,"start_character":64,"end_line":695,"end_character":71},"in_reply_to":"4d605307_cfd1de27","updated":"2025-06-24 13:43:03.000000000","message":"+1, can we quickly fix this and then fast approve the result?","commit_id":"c52dae782806442d652ef2202759d222c77fc949"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"2b01d10592d539d4979df2fd4fbce0e5620e1947","unresolved":false,"context_lines":[{"line_number":692,"context_line":"               default\u003d\u0027sha512\u0027,"},{"line_number":693,"context_line":"               help\u003d(\u0027Hashing algorithm used by glance to calculate image \u0027"},{"line_number":694,"context_line":"                     \u0027hashes. This configuration value should be same as \u0027"},{"line_number":695,"context_line":"                     \u0027glance-api.conf: hashing_algorithm config opetion.\u0027)),"},{"line_number":696,"context_line":"    cfg.StrOpt(\u0027images_manifest_file\u0027,"},{"line_number":697,"context_line":"               default\u003dNone,"},{"line_number":698,"context_line":"               help\u003d\"A path to a manifest.yml generated using the \""}],"source_content_type":"text/x-python","patch_set":13,"id":"2e3f86dc_7b799ba5","line":695,"range":{"start_line":695,"start_character":64,"end_line":695,"end_character":71},"in_reply_to":"e356a33a_ef13fb1a","updated":"2025-06-24 15:15:56.000000000","message":"Acknowledged","commit_id":"c52dae782806442d652ef2202759d222c77fc949"}],"tempest/lib/services/image/v2/images_client.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"9637541954de8f5997d9596441d9c59575db84a6","unresolved":true,"context_lines":[{"line_number":305,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":306,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def add_image_location(self, image_id, url, validation_data\u003dNone):"},{"line_number":309,"context_line":"        \"\"\"Add location for specific Image.\"\"\""},{"line_number":310,"context_line":"        if not validation_data:"},{"line_number":311,"context_line":"            validation_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":11,"id":"79dd83a6_0ec98220","line":308,"range":{"start_line":308,"start_character":0,"end_line":308,"end_character":70},"updated":"2025-06-18 20:36:41.000000000","message":"let\u0027s add a release notes about this interface.","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"7140e10eafe312f7cb9c0aeb0fd65ecaa3331852","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        self.expected_success(204, resp.status)"},{"line_number":306,"context_line":"        return rest_client.ResponseBody(resp)"},{"line_number":307,"context_line":""},{"line_number":308,"context_line":"    def add_image_location(self, image_id, url, validation_data\u003dNone):"},{"line_number":309,"context_line":"        \"\"\"Add location for specific Image.\"\"\""},{"line_number":310,"context_line":"        if not validation_data:"},{"line_number":311,"context_line":"            validation_data \u003d {}"}],"source_content_type":"text/x-python","patch_set":11,"id":"f44e671c_65dcad0e","line":308,"range":{"start_line":308,"start_character":0,"end_line":308,"end_character":70},"in_reply_to":"79dd83a6_0ec98220","updated":"2025-06-19 05:05:44.000000000","message":"Acknowledged","commit_id":"72db95f0a923da9a67421e1632acb00f17785623"}]}
