)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"563812ba235644a3dd308216bb06828b2e1f8d83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b5ca1976_df4d8d16","updated":"2022-08-19 15:33:33.000000000","message":"LGTM","commit_id":"455f2dc2b570a5fd9c2fdba3a79734f33eae388b"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"5e36884464927a23640bc6268683f5dc1afc4d80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"efd0db15_5a7b48eb","updated":"2022-08-19 14:44:55.000000000","message":"OK, good to know about PEP-484. Thanks for working on this. ","commit_id":"455f2dc2b570a5fd9c2fdba3a79734f33eae388b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"9a102289c09d95babf968a4bf53d2aeacd3a3bc7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c1e4c1ba_054bb20c","updated":"2022-08-19 15:32:42.000000000","message":"This looks good to me.  Thanks!","commit_id":"455f2dc2b570a5fd9c2fdba3a79734f33eae388b"}],"os_brick/initiator/connectors/nvmeof.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"9e2c3eb16e52b78590150feca75dd6ea265a977c","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"b7bfb09c_faa387a9","line":382,"updated":"2022-08-18 15:12:47.000000000","message":"How is this still optional? Or does mypy think it\u0027s optional, even if in reality it won\u0027t be?","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"ae0adda4b0129e549392aec46a331adc4a01996c","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"78bc57ab_daee3fed","line":382,"in_reply_to":"1ac863aa_8df0fb0d","updated":"2022-08-18 18:51:29.000000000","message":"Ack, so this mypy annotation is correct.","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"366702e2dcdb508168cc295f1a92f19225cab06b","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ac863aa_8df0fb0d","line":382,"in_reply_to":"7885a32f_a4db7f5e","updated":"2022-08-18 18:43:06.000000000","message":"Normally it should not be None (in an environment functioning as expected), but I think it must be considered potentially None here because self.host_nqn might not have been set by __init__, and utils.get_host_nqn() will silently return None on some exception cases.\n\nget_host_nqn() was trying to silently hide errors, but they are showing up here now, basically.\n\nThis likely means that this method should have a check for hostnqn being None.","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9662ee2ceffc562666de79cbb53af6c06e1e4ef1","unresolved":false,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"d187e084_e8b528c3","line":382,"in_reply_to":"78bc57ab_daee3fed","updated":"2022-08-18 18:55:34.000000000","message":"Followed up with a patch here:\n    https://review.opendev.org/c/openstack/os-brick/+/853710","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"f964fc840d3edc6ae0a339e9a4069d48f09b846a","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"d77c4b00_efa1394e","line":382,"in_reply_to":"b7bfb09c_faa387a9","updated":"2022-08-18 18:17:06.000000000","message":"It turns out, this is fixing a failure that occurred earlier in the patch series, and not because of this patch.","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"4e585b6423104bad5ca53a9fcc5dfa207039bed8","unresolved":true,"context_lines":[{"line_number":379,"context_line":"        if all(p.controller for p in self.portals):  # all have been found"},{"line_number":380,"context_line":"            return"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        hostnqn: Optional[str] \u003d self.host_nqn or utils.get_host_nqn()"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        # List of portal addresses and transports for this target"},{"line_number":385,"context_line":"        # Unlike \"nvme list-subsys -o json\" sysfs addr is separated by a coma"}],"source_content_type":"text/x-python","patch_set":1,"id":"7885a32f_a4db7f5e","line":382,"in_reply_to":"d77c4b00_efa1394e","updated":"2022-08-18 18:32:15.000000000","message":"Sure, but I think my question still stands. Can a caller legitimately invoke this fn in a way that leaves hostnqn None?","commit_id":"717083732b718de4f4c851a1b342ee3d3585f0da"}],"setup.cfg":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"563812ba235644a3dd308216bb06828b2e1f8d83","unresolved":true,"context_lines":[{"line_number":48,"context_line":"show_error_codes \u003d true"},{"line_number":49,"context_line":"pretty \u003d true"},{"line_number":50,"context_line":"html_report \u003d mypy-report"},{"line_number":51,"context_line":"no_implicit_optional \u003d true"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"cd2ff057_36690b20","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":20},"updated":"2022-08-19 15:33:33.000000000","message":"if anyone is curious https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-no-implicit-optional","commit_id":"455f2dc2b570a5fd9c2fdba3a79734f33eae388b"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c181ef73b1a6f9936ee2b26de46b0e3b31a2d96e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"show_error_codes \u003d true"},{"line_number":49,"context_line":"pretty \u003d true"},{"line_number":50,"context_line":"html_report \u003d mypy-report"},{"line_number":51,"context_line":"no_implicit_optional \u003d true"}],"source_content_type":"text/x-ttcn-cfg","patch_set":2,"id":"8b203981_c0e00bf8","line":51,"range":{"start_line":51,"start_character":0,"end_line":51,"end_character":20},"in_reply_to":"cd2ff057_36690b20","updated":"2022-08-22 13:29:26.000000000","message":"Ack","commit_id":"455f2dc2b570a5fd9c2fdba3a79734f33eae388b"}]}
