)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7b4c203203ba4fad63e14ae1bd55a48ed680f4d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"aea8d5c2_8532cdf1","updated":"2022-05-09 07:35:48.000000000","message":"Few questions inline, else LGTM.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c6acbb0071c6c6ecfe9c4e6d2224003baad5ec69","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d6296d98_8b40e20e","updated":"2022-05-11 13:33:44.000000000","message":"LGTM!","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5329933136aca009e32c45a4f84bd22e1d11d0f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e1cfe558_515466b4","updated":"2022-05-11 05:02:51.000000000","message":"Thanks for answering my queries Eric, upgrading my vote to +2.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"ce47e74b04556e0b3e5aacc25b0a4825492e6ba3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"430e0d1e_6b70a335","updated":"2022-05-16 17:37:25.000000000","message":"The mypy job fails on this patch when it\u0027s rebased to master, which contains d3afa4db0.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c765feeb224e7fe3cd0f2a7b2a891ab3a9123c43","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"958cfc27_02d990ff","updated":"2022-05-12 05:47:45.000000000","message":"recheck","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"19597e145909e5899529fa1fa4b36ff839516412","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"be89d1e4_c8214796","updated":"2022-05-16 17:12:20.000000000","message":"recheck","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"c4919c3016a693fa5720e9b8457ab117532ab851","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e620177e_1a02f702","updated":"2022-05-17 14:29:41.000000000","message":"LGTM!","commit_id":"dfb658aa51978255b4b162f716c9cf0f44a3ef36"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"4e470c2f843235844978dddd802cb52adf457846","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0795f8db_5e56728d","updated":"2022-05-17 07:37:11.000000000","message":"Still LGTM.","commit_id":"dfb658aa51978255b4b162f716c9cf0f44a3ef36"}],"cinder/image/glance.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7b4c203203ba4fad63e14ae1bd55a48ed680f4d7","unresolved":true,"context_lines":[{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"import textwrap"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from typing import (Any, Callable, Dict, Iterable, List,  # noqa: H301"},{"line_number":27,"context_line":"                    NoReturn, Optional, Tuple)            # noqa: H301"},{"line_number":28,"context_line":"import urllib"},{"line_number":29,"context_line":"import urllib.parse"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"640484ba_2a489824","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":70},"updated":"2022-05-09 07:35:48.000000000","message":"why are we avoiding multiple imports here?\n\nfrom typing import Any, Callable, Dict, Iterable, List\nfrom typing import NoReturn, Optional, Tuple","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bd91f3fee866a8b4a2a610829da9ec3e2c86a26c","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"import textwrap"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from typing import (Any, Callable, Dict, Iterable, List,  # noqa: H301"},{"line_number":27,"context_line":"                    NoReturn, Optional, Tuple)            # noqa: H301"},{"line_number":28,"context_line":"import urllib"},{"line_number":29,"context_line":"import urllib.parse"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"f20933a7_778b1049","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":70},"in_reply_to":"640484ba_2a489824","updated":"2022-05-09 08:02:04.000000000","message":"Ignore this, I understand we would need to mention every module/class import on a separate line which is not very convenient.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2dda7fdf42ee0011881c53ac4f9cd09ba6b3bf97","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import sys"},{"line_number":24,"context_line":"import textwrap"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"from typing import (Any, Callable, Dict, Iterable, List,  # noqa: H301"},{"line_number":27,"context_line":"                    NoReturn, Optional, Tuple)            # noqa: H301"},{"line_number":28,"context_line":"import urllib"},{"line_number":29,"context_line":"import urllib.parse"},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"05baca4e_515e3625","line":27,"range":{"start_line":26,"start_character":0,"end_line":27,"end_character":70},"in_reply_to":"f20933a7_778b1049","updated":"2022-05-09 17:38:27.000000000","message":"Yeah, I decided that H301 was just \"incorrect\" for this particular usage, because listing each on a separate line seems silly.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7b4c203203ba4fad63e14ae1bd55a48ed680f4d7","unresolved":true,"context_lines":[{"line_number":190,"context_line":"                 use_ssl: bool \u003d False):"},{"line_number":191,"context_line":"        self.client: Optional[glanceclient.Client]"},{"line_number":192,"context_line":"        if netloc is not None:"},{"line_number":193,"context_line":"            assert context is not None"},{"line_number":194,"context_line":"            self.client \u003d self._create_static_client(context,"},{"line_number":195,"context_line":"                                                     netloc,"},{"line_number":196,"context_line":"                                                     use_ssl)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3bbca6de_c3594c9a","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":38},"updated":"2022-05-09 07:35:48.000000000","message":"isn\u0027t this contradicting the default value at L#188? not sure what is a good default though","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2dda7fdf42ee0011881c53ac4f9cd09ba6b3bf97","unresolved":true,"context_lines":[{"line_number":190,"context_line":"                 use_ssl: bool \u003d False):"},{"line_number":191,"context_line":"        self.client: Optional[glanceclient.Client]"},{"line_number":192,"context_line":"        if netloc is not None:"},{"line_number":193,"context_line":"            assert context is not None"},{"line_number":194,"context_line":"            self.client \u003d self._create_static_client(context,"},{"line_number":195,"context_line":"                                                     netloc,"},{"line_number":196,"context_line":"                                                     use_ssl)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f5c07b5_d5154f29","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":38},"in_reply_to":"3bbca6de_c3594c9a","updated":"2022-05-09 17:38:27.000000000","message":"No, since if netloc is not specified, you don\u0027t have to provide a context.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5329933136aca009e32c45a4f84bd22e1d11d0f1","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                 use_ssl: bool \u003d False):"},{"line_number":191,"context_line":"        self.client: Optional[glanceclient.Client]"},{"line_number":192,"context_line":"        if netloc is not None:"},{"line_number":193,"context_line":"            assert context is not None"},{"line_number":194,"context_line":"            self.client \u003d self._create_static_client(context,"},{"line_number":195,"context_line":"                                                     netloc,"},{"line_number":196,"context_line":"                                                     use_ssl)"}],"source_content_type":"text/x-python","patch_set":5,"id":"835c0b72_6382b7b8","line":193,"range":{"start_line":193,"start_character":12,"end_line":193,"end_character":38},"in_reply_to":"7f5c07b5_d5154f29","updated":"2022-05-11 05:02:51.000000000","message":"Ack","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"7b4c203203ba4fad63e14ae1bd55a48ed680f4d7","unresolved":true,"context_lines":[{"line_number":224,"context_line":"             context: context.RequestContext,"},{"line_number":225,"context_line":"             method: str,"},{"line_number":226,"context_line":"             *args: Any,"},{"line_number":227,"context_line":"             **kwargs: str) -\u003e Any:"},{"line_number":228,"context_line":"        \"\"\"Call a glance client method."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        If we get a connection error,"}],"source_content_type":"text/x-python","patch_set":5,"id":"24cd49aa_693a70a9","line":227,"range":{"start_line":227,"start_character":13,"end_line":227,"end_character":26},"updated":"2022-05-09 07:35:48.000000000","message":"are we certain that all the values here will be of string type? what happens if we pass something as None here like\n\n    .call(..., store_id\u003dNone)","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"2dda7fdf42ee0011881c53ac4f9cd09ba6b3bf97","unresolved":true,"context_lines":[{"line_number":224,"context_line":"             context: context.RequestContext,"},{"line_number":225,"context_line":"             method: str,"},{"line_number":226,"context_line":"             *args: Any,"},{"line_number":227,"context_line":"             **kwargs: str) -\u003e Any:"},{"line_number":228,"context_line":"        \"\"\"Call a glance client method."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        If we get a connection error,"}],"source_content_type":"text/x-python","patch_set":5,"id":"fe3175c3_7ce914f4","line":227,"range":{"start_line":227,"start_character":13,"end_line":227,"end_character":26},"in_reply_to":"24cd49aa_693a70a9","updated":"2022-05-09 17:38:27.000000000","message":"If we find code that passes in a non-str type, it will error on the mypy check and we can modify this.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5329933136aca009e32c45a4f84bd22e1d11d0f1","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             context: context.RequestContext,"},{"line_number":225,"context_line":"             method: str,"},{"line_number":226,"context_line":"             *args: Any,"},{"line_number":227,"context_line":"             **kwargs: str) -\u003e Any:"},{"line_number":228,"context_line":"        \"\"\"Call a glance client method."},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"        If we get a connection error,"}],"source_content_type":"text/x-python","patch_set":5,"id":"66f27be4_959b5d5a","line":227,"range":{"start_line":227,"start_character":13,"end_line":227,"end_character":26},"in_reply_to":"fe3175c3_7ce914f4","updated":"2022-05-11 05:02:51.000000000","message":"Ack","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c6acbb0071c6c6ecfe9c4e6d2224003baad5ec69","unresolved":true,"context_lines":[{"line_number":673,"context_line":"    return output"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"def _reraise_translated_image_exception(image_id: str) -\u003e NoReturn:"},{"line_number":677,"context_line":"    \"\"\"Transform the exception for the image but keep its traceback intact.\"\"\""},{"line_number":678,"context_line":"    _exc_type, exc_value, exc_trace \u003d sys.exc_info()"},{"line_number":679,"context_line":"    assert exc_value is not None"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a0e9a4e_452cfaac","line":676,"range":{"start_line":676,"start_character":58,"end_line":676,"end_character":66},"updated":"2022-05-11 13:33:44.000000000","message":"Hadn\u0027t seen this one before!","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"c4919c3016a693fa5720e9b8457ab117532ab851","unresolved":false,"context_lines":[{"line_number":673,"context_line":"    return output"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"def _reraise_translated_image_exception(image_id: str) -\u003e NoReturn:"},{"line_number":677,"context_line":"    \"\"\"Transform the exception for the image but keep its traceback intact.\"\"\""},{"line_number":678,"context_line":"    _exc_type, exc_value, exc_trace \u003d sys.exc_info()"},{"line_number":679,"context_line":"    assert exc_value is not None"}],"source_content_type":"text/x-python","patch_set":5,"id":"63a38945_2899de19","line":676,"range":{"start_line":676,"start_character":58,"end_line":676,"end_character":66},"in_reply_to":"4bba410a_fd199669","updated":"2022-05-17 14:29:41.000000000","message":"cool","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"dcb308f0723d0be504dd737f2e24ba65d59d7b80","unresolved":false,"context_lines":[{"line_number":673,"context_line":"    return output"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":""},{"line_number":676,"context_line":"def _reraise_translated_image_exception(image_id: str) -\u003e NoReturn:"},{"line_number":677,"context_line":"    \"\"\"Transform the exception for the image but keep its traceback intact.\"\"\""},{"line_number":678,"context_line":"    _exc_type, exc_value, exc_trace \u003d sys.exc_info()"},{"line_number":679,"context_line":"    assert exc_value is not None"}],"source_content_type":"text/x-python","patch_set":5,"id":"4bba410a_fd199669","line":676,"range":{"start_line":676,"start_character":58,"end_line":676,"end_character":66},"in_reply_to":"9a0e9a4e_452cfaac","updated":"2022-05-16 17:44:17.000000000","message":"Yes, it\u0027s handy for methods that raise exceptions.","commit_id":"3178822ae7a13a36c22caf3884be07d874f85825"}]}
