)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"11ec9cd7f3ece37ceef447d9c5dbba05d9d3e61d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"b5026623_d51aa7c0","updated":"2025-02-13 23:37:33.000000000","message":"I think there\u0027s an issue in linuxscsi.py, but everything else looks OK except for the nit in the FC connector.","commit_id":"e940c07f0efaacada51148187982ebff749ac372"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f5ea543fbc8ff1174a43ef20442647332e26db2f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"dcfc90bf_c7aedbb3","updated":"2025-02-17 21:37:20.000000000","message":"Thanks for taking on this thankless task! LGTM.","commit_id":"74926cd4f00075a1392f72c5fc29da748acba9a1"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c242d0e977bff5ba68d4037deec2f64cb7640f51","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"57a8d241_1ad516dc","updated":"2025-02-18 13:25:23.000000000","message":"recheck\n\nlio-barbican ssh timeout in tempest.api.compute.servers.test_server_actions.ServerActionsTestOtherA.test_resize_volume_backed_server_confirm","commit_id":"74926cd4f00075a1392f72c5fc29da748acba9a1"}],"os_brick/initiator/connectors/fibre_channel.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"11ec9cd7f3ece37ceef447d9c5dbba05d9d3e61d","unresolved":true,"context_lines":[{"line_number":342,"context_line":"            platform, pci_num \u003d self._get_pci_num(hba)"},{"line_number":343,"context_line":"            if pci_num is not None:"},{"line_number":344,"context_line":"                for wwn, lun in targets:"},{"line_number":345,"context_line":"                    lun \u003d self._linuxscsi.lun_for_addressing(lun,"},{"line_number":346,"context_line":"                                                             addressing_mode)"},{"line_number":347,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":348,"context_line":"                    raw_devices.append((platform, pci_num, target_wwn, lun))"}],"source_content_type":"text/x-python","patch_set":1,"id":"a8100c66_2b507d03","line":345,"range":{"start_line":345,"start_character":31,"end_line":345,"end_character":60},"updated":"2025-02-13 23:37:33.000000000","message":"nit: I think you\u0027ve got this function typed to return an int (unless I\u0027m looking at the wrong one; line 56 in initiator/linuxscsi.py), so while Any isn\u0027t incorrect for the last position at line 326, you could maybe make this more specific?  (fwiw, I tried it locally, and mypy doesn\u0027t complain.)","commit_id":"e940c07f0efaacada51148187982ebff749ac372"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"53a56b6f44ec4f177dafc6567e64fb2d1ae7c88a","unresolved":false,"context_lines":[{"line_number":342,"context_line":"            platform, pci_num \u003d self._get_pci_num(hba)"},{"line_number":343,"context_line":"            if pci_num is not None:"},{"line_number":344,"context_line":"                for wwn, lun in targets:"},{"line_number":345,"context_line":"                    lun \u003d self._linuxscsi.lun_for_addressing(lun,"},{"line_number":346,"context_line":"                                                             addressing_mode)"},{"line_number":347,"context_line":"                    target_wwn \u003d \"0x%s\" % wwn.lower()"},{"line_number":348,"context_line":"                    raw_devices.append((platform, pci_num, target_wwn, lun))"}],"source_content_type":"text/x-python","patch_set":1,"id":"92a62eb9_521c1c39","line":345,"range":{"start_line":345,"start_character":31,"end_line":345,"end_character":60},"in_reply_to":"a8100c66_2b507d03","updated":"2025-02-17 17:30:50.000000000","message":"Done","commit_id":"e940c07f0efaacada51148187982ebff749ac372"}],"os_brick/initiator/linuxscsi.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"11ec9cd7f3ece37ceef447d9c5dbba05d9d3e61d","unresolved":true,"context_lines":[{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"import re"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"import typing"},{"line_number":27,"context_line":"from typing import Any, Iterable, Optional, Sequence"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_concurrency import processutils as putils"}],"source_content_type":"text/x-python","patch_set":1,"id":"0de157f5_32bb9a0d","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":13},"updated":"2025-02-13 23:37:33.000000000","message":"note to the next reviewer: need this for the \u0027overload\u0027 decorator","commit_id":"e940c07f0efaacada51148187982ebff749ac372"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"53a56b6f44ec4f177dafc6567e64fb2d1ae7c88a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"import os"},{"line_number":24,"context_line":"import re"},{"line_number":25,"context_line":"import time"},{"line_number":26,"context_line":"import typing"},{"line_number":27,"context_line":"from typing import Any, Iterable, Optional, Sequence"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"from oslo_concurrency import processutils as putils"}],"source_content_type":"text/x-python","patch_set":1,"id":"7673363f_6946a5ad","line":26,"range":{"start_line":26,"start_character":0,"end_line":26,"end_character":13},"in_reply_to":"0de157f5_32bb9a0d","updated":"2025-02-17 17:30:50.000000000","message":"Acknowledged","commit_id":"e940c07f0efaacada51148187982ebff749ac372"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"11ec9cd7f3ece37ceef447d9c5dbba05d9d3e61d","unresolved":true,"context_lines":[{"line_number":738,"context_line":"        return new_size"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"    @typing.overload"},{"line_number":741,"context_line":"    def process_lun_id(self, lun_ids: str) -\u003e str:"},{"line_number":742,"context_line":"        ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    @typing.overload"}],"source_content_type":"text/x-python","patch_set":1,"id":"a2d3694f_3ff17c92","line":741,"updated":"2025-02-13 23:37:33.000000000","message":"I\u0027m not sure this is correct.  If you call\n``process_lun_id(\u0027255\u0027)``\nyou hit the else branch at line 760 and you\u0027ll get an int back from _format_lun_id at line 768.\n\nSame thing for the overload at line 749 ... if you call\n``   process_lun_id(256)``\nyou\u0027ll get a string returned from line 770.","commit_id":"e940c07f0efaacada51148187982ebff749ac372"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"53a56b6f44ec4f177dafc6567e64fb2d1ae7c88a","unresolved":false,"context_lines":[{"line_number":738,"context_line":"        return new_size"},{"line_number":739,"context_line":""},{"line_number":740,"context_line":"    @typing.overload"},{"line_number":741,"context_line":"    def process_lun_id(self, lun_ids: str) -\u003e str:"},{"line_number":742,"context_line":"        ..."},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    @typing.overload"}],"source_content_type":"text/x-python","patch_set":1,"id":"6d6137c1_90ffe343","line":741,"in_reply_to":"a2d3694f_3ff17c92","updated":"2025-02-17 17:30:50.000000000","message":"Done","commit_id":"e940c07f0efaacada51148187982ebff749ac372"}],"os_brick/privileged/rootwrap.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"11ec9cd7f3ece37ceef447d9c5dbba05d9d3e61d","unresolved":true,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"@privileged.default.entrypoint"},{"line_number":202,"context_line":"def unlink_root(*links: Iterable[str], **kwargs: dict[str, Any]) -\u003e None:"},{"line_number":203,"context_line":"    \"\"\"Unlink system links with sys admin privileges."},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    By default it will raise an exception if a link does not exist and stop"}],"source_content_type":"text/x-python","patch_set":1,"id":"6d11396e_16ed52d1","line":202,"range":{"start_line":202,"start_character":39,"end_line":202,"end_character":63},"updated":"2025-02-13 23:37:33.000000000","message":"Not part of your change, but I don\u0027t get the use of a dict here.  We don\u0027t pass the kwargs onto another function, and there are only 2 of them.  I think we\u0027d be better off using boolean typed named keyword arguments with default value False, and then the interpreter can catch a typo in an argument name.","commit_id":"e940c07f0efaacada51148187982ebff749ac372"}]}
