)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"d3f00cdfe5a573fc626c08e903f1c3ec58605f0f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1a33eb7d_60e5ba39","updated":"2026-09-04 16:11:22.000000000","message":"needs some testing on my side still","commit_id":"dd13a194b69628f4c42012cc8b522bc06cac6625"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"264a8d7afb3bf0ec0c37834006ddab5366a7817e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"7d622b9a_96b29756","updated":"2026-09-07 11:30:13.000000000","message":"Looks good to me, thank you for working on this.","commit_id":"abc1077f16e8d0818825618f64cdd7c0fb6edcf1"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"43b08bd4a1e4c34031a5ac496f3992cc7f4d5188","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"5b106850_681a803d","updated":"2026-09-07 06:20:10.000000000","message":"This is better than introducing new config option.","commit_id":"abc1077f16e8d0818825618f64cdd7c0fb6edcf1"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"4a27eb9b25fa7bf29b9ce1ea7023e53a22c5e570","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c141b716_0dca9435","updated":"2026-09-07 09:18:42.000000000","message":"recheck","commit_id":"abc1077f16e8d0818825618f64cdd7c0fb6edcf1"}],"glance/common/scripts/utils.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8b8833cfa2a1f4c8114867242486889c38c0d89a","unresolved":true,"context_lines":[{"line_number":213,"context_line":"                        host, pinned_ip\u003daddr, **kwargs),"},{"line_number":214,"context_line":"                    req)"},{"line_number":215,"context_line":"            except Exception as exc:  # noqa"},{"line_number":216,"context_line":"                LOG.warning(\"Failed to import image %(url) using IP %(ip)s: \""},{"line_number":217,"context_line":"                            \"%(exc)s\","},{"line_number":218,"context_line":"                            {\"url\": req.full_url, \"ip\": addr, \"exc\": exc})"},{"line_number":219,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"d41f7867_1a4bbe78","line":216,"range":{"start_line":216,"start_character":52,"end_line":216,"end_character":58},"updated":"2026-09-04 16:18:44.000000000","message":"missed s","commit_id":"dd13a194b69628f4c42012cc8b522bc06cac6625"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"73f01ec206eb2ea181561da1b6f120aacef6e18d","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                        host, pinned_ip\u003daddr, **kwargs),"},{"line_number":214,"context_line":"                    req)"},{"line_number":215,"context_line":"            except Exception as exc:  # noqa"},{"line_number":216,"context_line":"                LOG.warning(\"Failed to import image %(url) using IP %(ip)s: \""},{"line_number":217,"context_line":"                            \"%(exc)s\","},{"line_number":218,"context_line":"                            {\"url\": req.full_url, \"ip\": addr, \"exc\": exc})"},{"line_number":219,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"5889382f_6abaf6eb","line":216,"range":{"start_line":216,"start_character":52,"end_line":216,"end_character":58},"in_reply_to":"d41f7867_1a4bbe78","updated":"2026-09-04 16:51:28.000000000","message":"Done","commit_id":"dd13a194b69628f4c42012cc8b522bc06cac6625"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"8b8833cfa2a1f4c8114867242486889c38c0d89a","unresolved":true,"context_lines":[{"line_number":234,"context_line":"                        host, pinned_ip\u003daddr, **kwargs),"},{"line_number":235,"context_line":"                    req)"},{"line_number":236,"context_line":"            except Exception as exc:  # noqa"},{"line_number":237,"context_line":"                LOG.warning(\"Failed to import image %(url) using IP %(ip)s: \""},{"line_number":238,"context_line":"                            \"%(exc)s\","},{"line_number":239,"context_line":"                            {\"url\": req.full_url, \"ip\": addr, \"exc\": exc})"},{"line_number":240,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"12a9a4d5_89ff5136","line":237,"range":{"start_line":237,"start_character":51,"end_line":237,"end_character":58},"updated":"2026-09-04 16:18:44.000000000","message":"missed s","commit_id":"dd13a194b69628f4c42012cc8b522bc06cac6625"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"73f01ec206eb2ea181561da1b6f120aacef6e18d","unresolved":false,"context_lines":[{"line_number":234,"context_line":"                        host, pinned_ip\u003daddr, **kwargs),"},{"line_number":235,"context_line":"                    req)"},{"line_number":236,"context_line":"            except Exception as exc:  # noqa"},{"line_number":237,"context_line":"                LOG.warning(\"Failed to import image %(url) using IP %(ip)s: \""},{"line_number":238,"context_line":"                            \"%(exc)s\","},{"line_number":239,"context_line":"                            {\"url\": req.full_url, \"ip\": addr, \"exc\": exc})"},{"line_number":240,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3bae4ac1_5b58afd9","line":237,"range":{"start_line":237,"start_character":51,"end_line":237,"end_character":58},"in_reply_to":"12a9a4d5_89ff5136","updated":"2026-09-04 16:51:28.000000000","message":"Done","commit_id":"dd13a194b69628f4c42012cc8b522bc06cac6625"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"4a27eb9b25fa7bf29b9ce1ea7023e53a22c5e570","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        pinned_ip \u003d _pinned_ip_for_request(req)"},{"line_number":209,"context_line":"        for addr in pinned_ip:"},{"line_number":210,"context_line":"            try:"},{"line_number":211,"context_line":"                return self.do_open("},{"line_number":212,"context_line":"                    lambda host, **kwargs: _PinnedHTTPConnection("},{"line_number":213,"context_line":"                        host, pinned_ip\u003daddr, **kwargs),"},{"line_number":214,"context_line":"                    req)"},{"line_number":215,"context_line":"            except Exception as exc:  # noqa"},{"line_number":216,"context_line":"                LOG.warning(\"Failed to import image %(url)s using IP %(ip)s: \""},{"line_number":217,"context_line":"                            \"%(exc)s\","}],"source_content_type":"text/x-python","patch_set":2,"id":"85181f47_a238a5f3","line":214,"range":{"start_line":211,"start_character":0,"end_line":214,"end_character":24},"updated":"2026-09-07 09:18:42.000000000","message":"I should note that ruff/flake8-bugbear flags this line (and L232 below) due to https://docs.astral.sh/ruff/rules/function-uses-loop-variable/\n\nhowever AFAIU this should not affect us. Here we do not collect functions/closures resulting from a loop iteration into some container to be executed later, we take only the last one, so the fact that it is bound to the last value of loop variable is exactly as expected.","commit_id":"abc1077f16e8d0818825618f64cdd7c0fb6edcf1"}]}
