)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"013eefab5ebf538299c334ffcec2da750b507aa4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e95de7cc_3adf4d42","updated":"2026-05-07 08:14:15.000000000","message":"recheck","commit_id":"f4e9639d9d42eebd674d61f826cbfa65096f5a82"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"3ed793035c9e4834a435ff62d363c2a8856ebcb1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2d2762a5_9049f87f","updated":"2026-05-08 06:26:29.000000000","message":"these are already handled in https://review.opendev.org/c/openstack/glance/+/975118 I would suggest that you can rebase above patch instead going forward with this change.","commit_id":"f4e9639d9d42eebd674d61f826cbfa65096f5a82"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"f68e7b0de43febde8afd00aee8f6af12c8d7b35e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"189038ae_3517e8f2","in_reply_to":"2d2762a5_9049f87f","updated":"2026-05-08 09:37:44.000000000","message":"yeah make sense. I just missed your comment during previous update.","commit_id":"f4e9639d9d42eebd674d61f826cbfa65096f5a82"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"19a4f792724315d1c50ad89a9b3d539be545468f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"492a6365_8919405c","updated":"2026-05-08 13:24:26.000000000","message":"recheck on functional-py311 tests","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"88d0463c56d18fe509b72157ff13cb16f23ac06c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"baed8bb2_03151884","updated":"2026-05-11 08:39:00.000000000","message":"Thanks for the review ! please see the updated PS.","commit_id":"fca307e3b68b6ef3ced5cfe0202d43e67ba75da8"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"644c46204b89ef57b4e6dc54edb1b7ba712242eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"37924e72_3802c66b","updated":"2026-06-19 08:22:35.000000000","message":"Restoring +w as it\u0027s a rebase and previously voted +2 by another core","commit_id":"d6fa38bfa8cebfedc0c077708ecf3000c0f72b18"}],"glance/tests/functional/__init__.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d065aab4581009fdf400d2219660f1cdade9a2dc","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# load_paste_app() does not run wsgi_app.init_app(); match uWSGI pool sizing."},{"line_number":52,"context_line":"glance.async_.set_threadpool_model(\u0027native\u0027)"},{"line_number":53,"context_line":"api_common.DEFAULT_POOL_SIZE \u003d 16"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class SynchronousAPIBase(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"70093d4d_cabe5fb5","line":53,"updated":"2026-06-04 16:45:23.000000000","message":"Hmm, so you set this to 16 then reset it to the config\u0027d value below during `start_server()`?","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7426919d231b2ebc305ae1f7dc500b48d8273b75","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# load_paste_app() does not run wsgi_app.init_app(); match uWSGI pool sizing."},{"line_number":52,"context_line":"glance.async_.set_threadpool_model(\u0027native\u0027)"},{"line_number":53,"context_line":"api_common.DEFAULT_POOL_SIZE \u003d 16"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class SynchronousAPIBase(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"67b91f22_53bb9a11","line":53,"in_reply_to":"5e65dfd0_f7b12678","updated":"2026-06-10 17:46:48.000000000","message":"Done","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"a68051917e9fcf440f02df6c3174d88815698d11","unresolved":true,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"# load_paste_app() does not run wsgi_app.init_app(); match uWSGI pool sizing."},{"line_number":52,"context_line":"glance.async_.set_threadpool_model(\u0027native\u0027)"},{"line_number":53,"context_line":"api_common.DEFAULT_POOL_SIZE \u003d 16"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class SynchronousAPIBase(test_utils.BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5e65dfd0_f7b12678","line":53,"in_reply_to":"70093d4d_cabe5fb5","updated":"2026-06-08 07:17:52.000000000","message":"Removed the start_server() reset — we set DEFAULT_POOL_SIZE to 16 once at import only.","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d065aab4581009fdf400d2219660f1cdade9a2dc","unresolved":true,"context_lines":[{"line_number":480,"context_line":"        \"\"\""},{"line_number":481,"context_line":"        config.set_config_defaults()"},{"line_number":482,"context_line":"        CONF.import_opt(\u0027task_pool_threads\u0027, \u0027glance.common.config\u0027, group\u003d\u0027wsgi\u0027)"},{"line_number":483,"context_line":"        api_common.DEFAULT_POOL_SIZE \u003d CONF.wsgi.task_pool_threads"},{"line_number":484,"context_line":"        root_app \u003d \u0027glance-api\u0027"},{"line_number":485,"context_line":"        if enable_version_negotiation:"},{"line_number":486,"context_line":"            root_app \u003d \u0027glance-api-versionnegotiation\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"fd0e2114_ac625e4d","line":483,"updated":"2026-06-04 16:45:23.000000000","message":"If we\u0027re removing eventlet support we can probably make this more directly tied to the conf knob going forward. Maybe that happens later in this stack?\n\nI feel like it\u0027s probably a bad idea to be mutating this global every time we run a test and start a server. Can we not just set this to some value reasonable for the tests and avoid this?","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"a68051917e9fcf440f02df6c3174d88815698d11","unresolved":false,"context_lines":[{"line_number":480,"context_line":"        \"\"\""},{"line_number":481,"context_line":"        config.set_config_defaults()"},{"line_number":482,"context_line":"        CONF.import_opt(\u0027task_pool_threads\u0027, \u0027glance.common.config\u0027, group\u003d\u0027wsgi\u0027)"},{"line_number":483,"context_line":"        api_common.DEFAULT_POOL_SIZE \u003d CONF.wsgi.task_pool_threads"},{"line_number":484,"context_line":"        root_app \u003d \u0027glance-api\u0027"},{"line_number":485,"context_line":"        if enable_version_negotiation:"},{"line_number":486,"context_line":"            root_app \u003d \u0027glance-api-versionnegotiation\u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"9a027560_1b8c8e99","line":483,"in_reply_to":"fd0e2114_ac625e4d","updated":"2026-06-08 07:17:52.000000000","message":"Done","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"}],"glance/tests/functional/image_cache/drivers/test_centralized_db.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a96c8f6d2e353d03eec4f3514b10df0942b1d122","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestCentralizedDb, self).setUp()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def tearDown(self):"},{"line_number":41,"context_line":"        worker \u003d cached_images.WORKER"},{"line_number":42,"context_line":"        if worker is not None:"},{"line_number":43,"context_line":"            try:"},{"line_number":44,"context_line":"                worker.terminate()"},{"line_number":45,"context_line":"            except Exception:"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            cached_images.WORKER \u003d None"},{"line_number":48,"context_line":"        super(TestCentralizedDb, self).tearDown()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def start_server(self, enable_cache\u003dTrue, set_worker_url\u003dTrue):"},{"line_number":51,"context_line":"        if set_worker_url:"}],"source_content_type":"text/x-python","patch_set":5,"id":"39dbfa45_6dd1d1bd","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":49},"updated":"2026-05-11 06:40:30.000000000","message":"since you have added teardown in base class in init.py does this really needed here?","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"88d0463c56d18fe509b72157ff13cb16f23ac06c","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestCentralizedDb, self).setUp()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def tearDown(self):"},{"line_number":41,"context_line":"        worker \u003d cached_images.WORKER"},{"line_number":42,"context_line":"        if worker is not None:"},{"line_number":43,"context_line":"            try:"},{"line_number":44,"context_line":"                worker.terminate()"},{"line_number":45,"context_line":"            except Exception:"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            cached_images.WORKER \u003d None"},{"line_number":48,"context_line":"        super(TestCentralizedDb, self).tearDown()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def start_server(self, enable_cache\u003dTrue, set_worker_url\u003dTrue):"},{"line_number":51,"context_line":"        if set_worker_url:"}],"source_content_type":"text/x-python","patch_set":5,"id":"d10f32b5_aabcf694","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":49},"in_reply_to":"39dbfa45_6dd1d1bd","updated":"2026-05-11 08:39:00.000000000","message":"I missed removing it during rebase. Removed in the latest PS.","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"a68051917e9fcf440f02df6c3174d88815698d11","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def setUp(self):"},{"line_number":38,"context_line":"        super(TestCentralizedDb, self).setUp()"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def tearDown(self):"},{"line_number":41,"context_line":"        worker \u003d cached_images.WORKER"},{"line_number":42,"context_line":"        if worker is not None:"},{"line_number":43,"context_line":"            try:"},{"line_number":44,"context_line":"                worker.terminate()"},{"line_number":45,"context_line":"            except Exception:"},{"line_number":46,"context_line":"                pass"},{"line_number":47,"context_line":"            cached_images.WORKER \u003d None"},{"line_number":48,"context_line":"        super(TestCentralizedDb, self).tearDown()"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def start_server(self, enable_cache\u003dTrue, set_worker_url\u003dTrue):"},{"line_number":51,"context_line":"        if set_worker_url:"}],"source_content_type":"text/x-python","patch_set":5,"id":"93115b86_e3d9d3e9","line":48,"range":{"start_line":40,"start_character":0,"end_line":48,"end_character":49},"in_reply_to":"d10f32b5_aabcf694","updated":"2026-06-08 07:17:52.000000000","message":"Done","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"a68051917e9fcf440f02df6c3174d88815698d11","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        path \u003d \u0027/v2/cache/%s\u0027 % images[\u0027public\u0027]"},{"line_number":333,"context_line":"        self.list_cache()"},{"line_number":334,"context_line":"        with mock.patch.object(cached_images.WORKER, \u0027submit\u0027):"},{"line_number":335,"context_line":"            self.api_put(path)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # CacheWorker may cache image before we check queue"},{"line_number":338,"context_line":"        was_queued \u003d self.wait_for_queued(images[\u0027public\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"e475f11a_18422df3","line":335,"updated":"2026-06-08 07:17:52.000000000","message":"Agreed. Fixed by rebasing on updated 975118: removed was_queued/if/else and use strict queue assertions instead.","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d065aab4581009fdf400d2219660f1cdade9a2dc","unresolved":true,"context_lines":[{"line_number":332,"context_line":"        path \u003d \u0027/v2/cache/%s\u0027 % images[\u0027public\u0027]"},{"line_number":333,"context_line":"        self.list_cache()"},{"line_number":334,"context_line":"        with mock.patch.object(cached_images.WORKER, \u0027submit\u0027):"},{"line_number":335,"context_line":"            self.api_put(path)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # CacheWorker may cache image before we check queue"},{"line_number":338,"context_line":"        was_queued \u003d self.wait_for_queued(images[\u0027public\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"94381c8c_9c5081de","line":335,"updated":"2026-06-04 16:45:23.000000000","message":"This is related to my question on the previous patch. With this change, we\u0027ll never have `was_queued\u003dFalse` right? L348-L353 are dead code now?","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7426919d231b2ebc305ae1f7dc500b48d8273b75","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        path \u003d \u0027/v2/cache/%s\u0027 % images[\u0027public\u0027]"},{"line_number":333,"context_line":"        self.list_cache()"},{"line_number":334,"context_line":"        with mock.patch.object(cached_images.WORKER, \u0027submit\u0027):"},{"line_number":335,"context_line":"            self.api_put(path)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # CacheWorker may cache image before we check queue"},{"line_number":338,"context_line":"        was_queued \u003d self.wait_for_queued(images[\u0027public\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"32c02f8b_2d81e589","line":335,"in_reply_to":"94381c8c_9c5081de","updated":"2026-06-10 17:46:48.000000000","message":"Done","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7426919d231b2ebc305ae1f7dc500b48d8273b75","unresolved":false,"context_lines":[{"line_number":332,"context_line":"        path \u003d \u0027/v2/cache/%s\u0027 % images[\u0027public\u0027]"},{"line_number":333,"context_line":"        self.list_cache()"},{"line_number":334,"context_line":"        with mock.patch.object(cached_images.WORKER, \u0027submit\u0027):"},{"line_number":335,"context_line":"            self.api_put(path)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # CacheWorker may cache image before we check queue"},{"line_number":338,"context_line":"        was_queued \u003d self.wait_for_queued(images[\u0027public\u0027])"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f49ecaa_60c61911","line":335,"in_reply_to":"e475f11a_18422df3","updated":"2026-06-10 17:46:48.000000000","message":"Done","commit_id":"9d05fd6d05b4cf9058eb984bf6c71e55aa651930"}],"glance/tests/functional/v2/test_cache_api.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a96c8f6d2e353d03eec4f3514b10df0942b1d122","unresolved":true,"context_lines":[{"line_number":29,"context_line":"        super(TestImageCache, self).setUp()"},{"line_number":30,"context_line":"        self.policy \u003d policy.Enforcer(suppress_deprecation_warnings\u003dTrue)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def tearDown(self):"},{"line_number":33,"context_line":"        # Stop the process-global cache worker so prefetch threads cannot"},{"line_number":34,"context_line":"        # outlive this test (native threads + parallel stestr workers)."},{"line_number":35,"context_line":"        worker \u003d cached_images.WORKER"},{"line_number":36,"context_line":"        if worker is not None:"},{"line_number":37,"context_line":"            try:"},{"line_number":38,"context_line":"                worker.terminate()"},{"line_number":39,"context_line":"            except Exception:"},{"line_number":40,"context_line":"                pass"},{"line_number":41,"context_line":"            cached_images.WORKER \u003d None"},{"line_number":42,"context_line":"        super(TestImageCache, self).tearDown()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def set_policy_rules(self, rules):"},{"line_number":45,"context_line":"        self.policy.set_rules("}],"source_content_type":"text/x-python","patch_set":5,"id":"71b51aaa_b73403b3","line":42,"range":{"start_line":32,"start_character":0,"end_line":42,"end_character":46},"updated":"2026-05-11 06:40:30.000000000","message":"ditto","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"},{"author":{"_account_id":19138,"name":"Pranali Deore","email":"pdeore@redhat.com","username":"PranaliD"},"change_message_id":"88d0463c56d18fe509b72157ff13cb16f23ac06c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(TestImageCache, self).setUp()"},{"line_number":30,"context_line":"        self.policy \u003d policy.Enforcer(suppress_deprecation_warnings\u003dTrue)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def tearDown(self):"},{"line_number":33,"context_line":"        # Stop the process-global cache worker so prefetch threads cannot"},{"line_number":34,"context_line":"        # outlive this test (native threads + parallel stestr workers)."},{"line_number":35,"context_line":"        worker \u003d cached_images.WORKER"},{"line_number":36,"context_line":"        if worker is not None:"},{"line_number":37,"context_line":"            try:"},{"line_number":38,"context_line":"                worker.terminate()"},{"line_number":39,"context_line":"            except Exception:"},{"line_number":40,"context_line":"                pass"},{"line_number":41,"context_line":"            cached_images.WORKER \u003d None"},{"line_number":42,"context_line":"        super(TestImageCache, self).tearDown()"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def set_policy_rules(self, rules):"},{"line_number":45,"context_line":"        self.policy.set_rules("}],"source_content_type":"text/x-python","patch_set":5,"id":"f348cdb5_1d9547f3","line":42,"range":{"start_line":32,"start_character":0,"end_line":42,"end_character":46},"in_reply_to":"71b51aaa_b73403b3","updated":"2026-05-11 08:39:00.000000000","message":"Done","commit_id":"3c0a00295c224d24aa0617074e90167e9a32b945"}]}
