)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"be724ff757e3d1fb1367222364d1df6aa13d2be0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"e127f523_8ab17b81","updated":"2026-04-01 06:28:55.000000000","message":"Thanks for the review, Abhishek!","commit_id":"fc7c3972244bd7a0bfbb983fc705f7252c42605a"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"3d69705d533e70e28d12cb5213cdfb3ca3ec3275","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0d567cc6_19998928","updated":"2026-04-03 14:07:03.000000000","message":"LGTM just one comment for awareness and future changes.","commit_id":"3af2395854e1a72222f7ef5ef9570939b5b0c07a"},{"author":{"_account_id":32704,"name":"Alfredo Garcia","email":"alfrgarc@redhat.com","username":"alfrgarc"},"change_message_id":"01971a2cdc1571d76722c7fbe38d1a9262513bff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"277aedc1_ffc0c63a","updated":"2026-04-01 13:09:09.000000000","message":"Well structured and well commented, LGTM","commit_id":"3af2395854e1a72222f7ef5ef9570939b5b0c07a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"319750a161765b43134f18ec714657b90ea14e77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9c64fa08_855591d2","updated":"2026-04-28 00:17:04.000000000","message":"lgtm, test is passing https://zuul.opendev.org/t/openstack/build/f089496de5fe433fb75649c2ff3417fc/log/job-output.txt#23471\n\none comment, can you please add a releasenotes for the new config?","commit_id":"3af2395854e1a72222f7ef5ef9570939b5b0c07a"}],"tempest/api/image/v2/test_images.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"daeb73f0db1412b0e9407ede1ea9ebca11c1a804","unresolved":true,"context_lines":[{"line_number":1080,"context_line":"    @classmethod"},{"line_number":1081,"context_line":"    def skip_checks(cls):"},{"line_number":1082,"context_line":"        super(StoreWeightTest, cls).skip_checks()"},{"line_number":1083,"context_line":"        if not CONF.image_feature_enabled.store_weight:"},{"line_number":1084,"context_line":"            raise cls.skipException("},{"line_number":1085,"context_line":"                \u0027%s skipped as store weight is not configured\u0027"},{"line_number":1086,"context_line":"                % cls.__name__)"},{"line_number":1087,"context_line":"        if not CONF.image_feature_enabled.import_image:"},{"line_number":1088,"context_line":"            raise cls.skipException("},{"line_number":1089,"context_line":"                \u0027%s skipped as image import is not available\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"99a8f152_190e3f16","line":1086,"range":{"start_line":1083,"start_character":0,"end_line":1086,"end_character":31},"updated":"2026-03-30 12:00:17.000000000","message":"this seems useless","commit_id":"cba2276cd46c8bd0e5ad6dc1f5c3cabe50e355ef"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"384b6f036f29143d22b7f9297f9af432d0513afe","unresolved":false,"context_lines":[{"line_number":1080,"context_line":"    @classmethod"},{"line_number":1081,"context_line":"    def skip_checks(cls):"},{"line_number":1082,"context_line":"        super(StoreWeightTest, cls).skip_checks()"},{"line_number":1083,"context_line":"        if not CONF.image_feature_enabled.store_weight:"},{"line_number":1084,"context_line":"            raise cls.skipException("},{"line_number":1085,"context_line":"                \u0027%s skipped as store weight is not configured\u0027"},{"line_number":1086,"context_line":"                % cls.__name__)"},{"line_number":1087,"context_line":"        if not CONF.image_feature_enabled.import_image:"},{"line_number":1088,"context_line":"            raise cls.skipException("},{"line_number":1089,"context_line":"                \u0027%s skipped as image import is not available\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"c3336b30_fc3f1f6d","line":1086,"range":{"start_line":1083,"start_character":0,"end_line":1086,"end_character":31},"in_reply_to":"309b7d17_a0063938","updated":"2026-04-01 07:26:06.000000000","message":"Acknowledged, I really think instead of having this skip check here, you should check order of location as per weight in test it self only if all or any stores have weight \u003e 0","commit_id":"cba2276cd46c8bd0e5ad6dc1f5c3cabe50e355ef"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"be724ff757e3d1fb1367222364d1df6aa13d2be0","unresolved":true,"context_lines":[{"line_number":1080,"context_line":"    @classmethod"},{"line_number":1081,"context_line":"    def skip_checks(cls):"},{"line_number":1082,"context_line":"        super(StoreWeightTest, cls).skip_checks()"},{"line_number":1083,"context_line":"        if not CONF.image_feature_enabled.store_weight:"},{"line_number":1084,"context_line":"            raise cls.skipException("},{"line_number":1085,"context_line":"                \u0027%s skipped as store weight is not configured\u0027"},{"line_number":1086,"context_line":"                % cls.__name__)"},{"line_number":1087,"context_line":"        if not CONF.image_feature_enabled.import_image:"},{"line_number":1088,"context_line":"            raise cls.skipException("},{"line_number":1089,"context_line":"                \u0027%s skipped as image import is not available\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"309b7d17_a0063938","line":1086,"range":{"start_line":1083,"start_character":0,"end_line":1086,"end_character":31},"in_reply_to":"99a8f152_190e3f16","updated":"2026-04-01 06:28:55.000000000","message":"Ohh why? I think this skip check is essential and follows the standard tempest pattern. The StoreWeightTest will be discoverable by every tempest job that runs tempest.api.image.* tests — that includes tempest-full-py3, tempest-integrated-storage, nova-ceph-multistore, etc. In jobs without weights configured, Glance returns stores in default order (not weight-sorted), so the weight ordering assertion would fail \u0026 the test would break every non-weight-configured job in the gate.","commit_id":"cba2276cd46c8bd0e5ad6dc1f5c3cabe50e355ef"},{"author":{"_account_id":34373,"name":"Jason Paroly","email":"jparoly@redhat.com","username":"jparoly"},"change_message_id":"3d69705d533e70e28d12cb5213cdfb3ca3ec3275","unresolved":true,"context_lines":[{"line_number":1127,"context_line":"            self.client, image[\u0027id\u0027], \u0027active\u0027)"},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        # Verify stores are ordered by weight (highest first)"},{"line_number":1130,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":1131,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":1132,"context_line":"        self.assertIn(\u0027stores\u0027, body,"},{"line_number":1133,"context_line":"                      \u0027Image response should contain stores field\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"36bc86cf_b5faa9ed","line":1130,"updated":"2026-04-03 14:07:03.000000000","message":"JFYI and for awareness: At some point soon we should use the reader client for read functions to help test and support SRBAC.  There are many examples in api compute tests done recently.","commit_id":"3af2395854e1a72222f7ef5ef9570939b5b0c07a"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"319750a161765b43134f18ec714657b90ea14e77","unresolved":true,"context_lines":[{"line_number":1127,"context_line":"            self.client, image[\u0027id\u0027], \u0027active\u0027)"},{"line_number":1128,"context_line":""},{"line_number":1129,"context_line":"        # Verify stores are ordered by weight (highest first)"},{"line_number":1130,"context_line":"        body \u003d self.client.show_image(image[\u0027id\u0027])"},{"line_number":1131,"context_line":"        self.assertEqual(\u0027active\u0027, body[\u0027status\u0027])"},{"line_number":1132,"context_line":"        self.assertIn(\u0027stores\u0027, body,"},{"line_number":1133,"context_line":"                      \u0027Image response should contain stores field\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"cc5b6407_072c755a","line":1130,"in_reply_to":"36bc86cf_b5faa9ed","updated":"2026-04-28 00:17:04.000000000","message":"++","commit_id":"3af2395854e1a72222f7ef5ef9570939b5b0c07a"}],"tempest/config.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"daeb73f0db1412b0e9407ede1ea9ebca11c1a804","unresolved":true,"context_lines":[{"line_number":765,"context_line":"                      \u0027http store needs to be mentioned either in \u0027"},{"line_number":766,"context_line":"                      \u0027glance-api.conf: stores or in enabled_backends \u0027"},{"line_number":767,"context_line":"                      \u0027configuration option.\u0027)),"},{"line_number":768,"context_line":"    cfg.BoolOpt(\u0027store_weight\u0027,"},{"line_number":769,"context_line":"                default\u003dFalse,"},{"line_number":770,"context_line":"                help\u003d(\u0027Are store weights configured in glance. \u0027"},{"line_number":771,"context_line":"                      \u0027When enabled, multiple stores are expected to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"56ffbf97_f4020030","line":768,"range":{"start_line":768,"start_character":0,"end_line":768,"end_character":2},"updated":"2026-03-30 12:00:17.000000000","message":"store_weight_enabled/store_weight_configured?","commit_id":"fc7c3972244bd7a0bfbb983fc705f7252c42605a"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"be724ff757e3d1fb1367222364d1df6aa13d2be0","unresolved":false,"context_lines":[{"line_number":765,"context_line":"                      \u0027http store needs to be mentioned either in \u0027"},{"line_number":766,"context_line":"                      \u0027glance-api.conf: stores or in enabled_backends \u0027"},{"line_number":767,"context_line":"                      \u0027configuration option.\u0027)),"},{"line_number":768,"context_line":"    cfg.BoolOpt(\u0027store_weight\u0027,"},{"line_number":769,"context_line":"                default\u003dFalse,"},{"line_number":770,"context_line":"                help\u003d(\u0027Are store weights configured in glance. \u0027"},{"line_number":771,"context_line":"                      \u0027When enabled, multiple stores are expected to \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"6b2991c5_7473e729","line":768,"range":{"start_line":768,"start_character":0,"end_line":768,"end_character":2},"in_reply_to":"56ffbf97_f4020030","updated":"2026-04-01 06:28:55.000000000","message":"Done","commit_id":"fc7c3972244bd7a0bfbb983fc705f7252c42605a"}]}
