)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"c3c1d21f48c1a4334b7c6fda4bd895d62b3c8cdb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8812b4b4_ee522230","updated":"2022-05-07 05:22:54.000000000","message":"Seems a little weird, not putting -1 because I\u0027m not grasping what\u0027s going on. Why he annotations are so lax?","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":33431,"name":"Fábio Oliveira","email":"fabioaurelio1269@gmail.com","username":"fabiooliveira1"},"change_message_id":"434c67e9eac069dd57718900ee868c0a35dba511","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"c96a2f9b_ccff377d","updated":"2022-02-09 19:01:49.000000000","message":"would be useful to add tests for wrong data types?","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"875f5f634ecae08136981293bec94c7183c88b9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"be00f3a9_f083400f","in_reply_to":"c96a2f9b_ccff377d","updated":"2022-03-11 18:25:49.000000000","message":"I\u0027m not sure what you mean.  This patch adds type annotations for static analysis.","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"5850567c64acaa98a498b8193b63485ec13812ac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"726fc0b6_ee64becd","updated":"2022-07-19 13:17:32.000000000","message":"LGTM and the mypy job passed","commit_id":"9235e9e5a3b739775ef53573dbb23df1b6e6066e"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"36a0a609_38256e29","updated":"2022-07-25 22:57:07.000000000","message":"I don\u0027t like the unrelated stuff mixed in. Could be a worthwhile fix, but needs its own patch.","commit_id":"1bb288244a5ef1b47cf7f1cfe23cace7d4ae3466"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"a04ba7ef2bb5561489705796f050754203667295","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"01018143_4f835ab8","updated":"2022-08-18 14:45:28.000000000","message":"check experimental","commit_id":"37806996551a3766482a3a1dcb2ebc34f2d05ba1"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"94f2c9e0aab2075d6af000fb15808ced7cd3f4c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"466d4cce_28a8a892","updated":"2022-08-18 14:47:13.000000000","message":"check experimental","commit_id":"37806996551a3766482a3a1dcb2ebc34f2d05ba1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"91b62eee_e2dfb5b4","updated":"2022-08-19 15:16:37.000000000","message":"Few questions inline","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b5455209f6794a23ccc567019a126689bcea1753","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"b0bf4811_6d03adaf","updated":"2022-08-18 21:41:25.000000000","message":"LGTM!","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"baa4ead076427a29e634f96228b55f6299f76930","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"9db5a188_f8acc3c4","updated":"2022-08-19 15:21:41.000000000","message":"Since I mostly have questions or minor suggestions, they can be addressed in a followup. Also this is the base of chain with approved patches above so to avoid rework, better to address things in a followup.","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"3d3a6bfa7696f8986d714c1bbb1e7d1af8eacdd1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"67569122_d45cb5b3","updated":"2022-08-18 20:54:03.000000000","message":"check experimental","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/executor.py":[{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"c227ad84620f5e09edf92b1dc7c9ac493366d2a5","unresolved":true,"context_lines":[{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import threading"},{"line_number":22,"context_line":"from typing import Callable, Tuple  # noqa: H301"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":25,"context_line":"from oslo_context import context as context_utils"}],"source_content_type":"text/x-python","patch_set":13,"id":"3558c131_46b23a75","line":22,"range":{"start_line":22,"start_character":29,"end_line":22,"end_character":34},"updated":"2022-08-19 15:06:42.000000000","message":"Aren\u0027t we using tuple instead of Tuple. i.e: tuple[int, ...]]\nhttps://review.opendev.org/c/openstack/os-brick/+/849018","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"28be9495cad6743d1a25c345495c735d0410ee09","unresolved":false,"context_lines":[{"line_number":19,"context_line":"\"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import threading"},{"line_number":22,"context_line":"from typing import Callable, Tuple  # noqa: H301"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from oslo_concurrency import processutils as putils"},{"line_number":25,"context_line":"from oslo_context import context as context_utils"}],"source_content_type":"text/x-python","patch_set":13,"id":"6f933514_8214266e","line":22,"range":{"start_line":22,"start_character":29,"end_line":22,"end_character":34},"in_reply_to":"3558c131_46b23a75","updated":"2022-08-19 15:20:01.000000000","message":"Done. Looks like we can replace them in a follow up patch!","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/initiator/connectors/base.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"c3c1d21f48c1a4334b7c6fda4bd895d62b3c8cdb","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    os_type \u003d initiator.OS_TYPE_LINUX"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, root_helper: str, driver\u003dNone, execute\u003dNone,"},{"line_number":36,"context_line":"                 *args, **kwargs: Any):"},{"line_number":37,"context_line":"        self._linuxscsi \u003d linuxscsi.LinuxSCSI(root_helper, execute\u003dexecute)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if not driver:"}],"source_content_type":"text/x-python","patch_set":7,"id":"04503718_0443e8cc","line":36,"updated":"2022-05-07 05:22:54.000000000","message":"What is the intent of this? The PEP-484 says \"A function parameter without an annotation is assumed to be annotated with Any.\"","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7ab17b2505dc608f98a58910284b40b5d11ac8ec","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    os_type \u003d initiator.OS_TYPE_LINUX"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def __init__(self, root_helper: str, driver\u003dNone, execute\u003dNone,"},{"line_number":36,"context_line":"                 *args, **kwargs: Any):"},{"line_number":37,"context_line":"        self._linuxscsi \u003d linuxscsi.LinuxSCSI(root_helper, execute\u003dexecute)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        if not driver:"}],"source_content_type":"text/x-python","patch_set":7,"id":"df065a07_1e2555d7","line":36,"in_reply_to":"04503718_0443e8cc","updated":"2022-07-19 18:17:30.000000000","message":"Done","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":192,"context_line":"                LOG.warning(\u0027Block device %s is still read-only. \u0027"},{"line_number":193,"context_line":"                            \u0027Continuing anyway.\u0027, device_path)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        device_path \u003d typing.cast(str, device_path)"},{"line_number":196,"context_line":"        multipath_id \u003d typing.cast(str, multipath_id)"},{"line_number":197,"context_line":"        return device_path, multipath_id"}],"source_content_type":"text/x-python","patch_set":10,"id":"2bebd419_dc9feda5","line":195,"updated":"2022-07-25 22:57:07.000000000","message":"I\u0027m okay with this as a way to make progress, or we\u0027ll never complete. However, we ought to create some kind of reminder bugzilla ticket or something in Jira, \"make a pass over the code and eliminate typing cast\", I think.","commit_id":"1bb288244a5ef1b47cf7f1cfe23cace7d4ae3466"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d9499b04fddb4d338e617c50105b80dc30e1a625","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                LOG.warning(\u0027Block device %s is still read-only. \u0027"},{"line_number":193,"context_line":"                            \u0027Continuing anyway.\u0027, device_path)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        device_path \u003d typing.cast(str, device_path)"},{"line_number":196,"context_line":"        multipath_id \u003d typing.cast(str, multipath_id)"},{"line_number":197,"context_line":"        return device_path, multipath_id"}],"source_content_type":"text/x-python","patch_set":10,"id":"3778f009_41641cbd","line":195,"in_reply_to":"2bebd419_dc9feda5","updated":"2022-07-26 14:02:12.000000000","message":"If we were at a point where anyone other than me was adding this coverage, I\u0027d agree.  For now, I can just take it as a clear next step in this process without needing a bug for it.","commit_id":"1bb288244a5ef1b47cf7f1cfe23cace7d4ae3466"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"c227ad84620f5e09edf92b1dc7c9ac493366d2a5","unresolved":true,"context_lines":[{"line_number":155,"context_line":"    def _discover_mpath_device(self,"},{"line_number":156,"context_line":"                               device_wwn: str,"},{"line_number":157,"context_line":"                               connection_properties: dict,"},{"line_number":158,"context_line":"                               device_name: str) -\u003e Tuple[str, str]:"},{"line_number":159,"context_line":"        \"\"\"This method discovers a multipath device."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        Discover a multipath device based on a defined connection_property"}],"source_content_type":"text/x-python","patch_set":13,"id":"157e5f8f_90115e2c","line":158,"range":{"start_line":158,"start_character":52,"end_line":158,"end_character":57},"updated":"2022-08-19 15:06:42.000000000","message":"same \nhttps://review.opendev.org/c/openstack/os-brick/+/849018","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"28be9495cad6743d1a25c345495c735d0410ee09","unresolved":false,"context_lines":[{"line_number":155,"context_line":"    def _discover_mpath_device(self,"},{"line_number":156,"context_line":"                               device_wwn: str,"},{"line_number":157,"context_line":"                               connection_properties: dict,"},{"line_number":158,"context_line":"                               device_name: str) -\u003e Tuple[str, str]:"},{"line_number":159,"context_line":"        \"\"\"This method discovers a multipath device."},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        Discover a multipath device based on a defined connection_property"}],"source_content_type":"text/x-python","patch_set":13,"id":"a46c226c_2efe6d9a","line":158,"range":{"start_line":158,"start_character":52,"end_line":158,"end_character":57},"in_reply_to":"157e5f8f_90115e2c","updated":"2022-08-19 15:20:01.000000000","message":"Done. Looks like we can replace them in a follow up patch!","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/initiator/connectors/base_iscsi.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"50f313ee_be356707","side":"PARENT","line":2,"updated":"2022-07-25 22:57:07.000000000","message":"Why roll this into mypy? Mismerge?","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0dc0798548fc35297cb2c6f27a4aeba494fe479e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"8d613614_d3a1038a","side":"PARENT","line":2,"in_reply_to":"50f313ee_be356707","updated":"2022-07-26 14:00:30.000000000","message":"Done","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":true,"context_lines":[{"line_number":23,"context_line":"class BaseISCSIConnector(initiator_connector.InitiatorConnector):"},{"line_number":24,"context_line":"    def _iterate_all_targets("},{"line_number":25,"context_line":"            self,"},{"line_number":26,"context_line":"            connection_properties: dict) -\u003e Generator[Dict[str, Any],"},{"line_number":27,"context_line":"                                                      None, None]:"},{"line_number":28,"context_line":"        for portal, iqn, lun in self._get_all_targets(connection_properties):"},{"line_number":29,"context_line":"            props \u003d copy.deepcopy(connection_properties)"},{"line_number":30,"context_line":"            props[\u0027target_portal\u0027] \u003d portal"}],"source_content_type":"text/x-python","patch_set":13,"id":"aff7facd_01774335","line":27,"range":{"start_line":26,"start_character":54,"end_line":27,"end_character":64},"updated":"2022-08-19 15:16:37.000000000","message":"I don\u0027t exactly understand this annotation. Are we saying here that we will yield the following values in the sequence of yielding:\n1) dict\n2) None\n3) None","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"9c8c8c338b037e90de83f567e223a75b77029f0d","unresolved":true,"context_lines":[{"line_number":23,"context_line":"class BaseISCSIConnector(initiator_connector.InitiatorConnector):"},{"line_number":24,"context_line":"    def _iterate_all_targets("},{"line_number":25,"context_line":"            self,"},{"line_number":26,"context_line":"            connection_properties: dict) -\u003e Generator[Dict[str, Any],"},{"line_number":27,"context_line":"                                                      None, None]:"},{"line_number":28,"context_line":"        for portal, iqn, lun in self._get_all_targets(connection_properties):"},{"line_number":29,"context_line":"            props \u003d copy.deepcopy(connection_properties)"},{"line_number":30,"context_line":"            props[\u0027target_portal\u0027] \u003d portal"}],"source_content_type":"text/x-python","patch_set":13,"id":"7c2ef4f5_626ee5f5","line":27,"range":{"start_line":26,"start_character":54,"end_line":27,"end_character":64},"in_reply_to":"aff7facd_01774335","updated":"2022-08-19 15:19:57.000000000","message":"https://mypy.readthedocs.io/en/stable/kinds_of_types.html#generators\n\nThe tuple is for Generator[YieldType, SendType, ReturnType]\n\nWe are only using yield here, hence [\u003ctype\u003e, None, None]","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":true,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def _get_all_targets("},{"line_number":44,"context_line":"            self,"},{"line_number":45,"context_line":"            connection_properties: dict) -\u003e list[tuple[str, str, list]]:"},{"line_number":46,"context_line":"        if all(key in connection_properties for key in (\u0027target_portals\u0027,"},{"line_number":47,"context_line":"                                                        \u0027target_iqns\u0027)):"},{"line_number":48,"context_line":"            return list(zip(connection_properties[\u0027target_portals\u0027],"}],"source_content_type":"text/x-python","patch_set":13,"id":"50c4c50f_fcc01554","line":45,"range":{"start_line":45,"start_character":65,"end_line":45,"end_character":69},"updated":"2022-08-19 15:16:37.000000000","message":"The default value of target_lun is 0 so shouldn\u0027t this be Union[list, int]?\n\nconnection_properties.get(\u0027target_lun\u0027, 0)","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/initiator/connectors/base_rbd.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"c3c1d21f48c1a4334b7c6fda4bd895d62b3c8cdb","unresolved":true,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def _get_rbd_args(cls,"},{"line_number":37,"context_line":"                      connection_properties: dict,"},{"line_number":38,"context_line":"                      conf: str \u003d None) -\u003e List[str]:"},{"line_number":39,"context_line":"        user \u003d connection_properties.get(\u0027auth_username\u0027)"},{"line_number":40,"context_line":"        monitor_ips \u003d connection_properties.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f258407_8ed3418b","line":37,"updated":"2022-05-07 05:22:54.000000000","message":"not Dict[str, str] or even Dict[str, Any]?","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7ab17b2505dc608f98a58910284b40b5d11ac8ec","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @classmethod"},{"line_number":36,"context_line":"    def _get_rbd_args(cls,"},{"line_number":37,"context_line":"                      connection_properties: dict,"},{"line_number":38,"context_line":"                      conf: str \u003d None) -\u003e List[str]:"},{"line_number":39,"context_line":"        user \u003d connection_properties.get(\u0027auth_username\u0027)"},{"line_number":40,"context_line":"        monitor_ips \u003d connection_properties.get(\u0027hosts\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"48f720ba_936823f6","line":37,"in_reply_to":"1f258407_8ed3418b","updated":"2022-07-19 18:17:30.000000000","message":"Done","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"}],"os_brick/initiator/connectors/fibre_channel.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"c3c1d21f48c1a4334b7c6fda4bd895d62b3c8cdb","unresolved":true,"context_lines":[{"line_number":46,"context_line":"        self.use_multipath \u003d use_multipath"},{"line_number":47,"context_line":"        self.tries: int"},{"line_number":48,"context_line":"        self.host_device: Optional[str]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def set_execute(self, execute):"},{"line_number":51,"context_line":"        super(FibreChannelConnector, self).set_execute(execute)"},{"line_number":52,"context_line":"        self._linuxscsi.set_execute(execute)"}],"source_content_type":"text/x-python","patch_set":7,"id":"089f3efb_b0aa440b","line":49,"updated":"2022-05-07 05:22:54.000000000","message":"No self.device_name? Weird...","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7ab17b2505dc608f98a58910284b40b5d11ac8ec","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        self.use_multipath \u003d use_multipath"},{"line_number":47,"context_line":"        self.tries: int"},{"line_number":48,"context_line":"        self.host_device: Optional[str]"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    def set_execute(self, execute):"},{"line_number":51,"context_line":"        super(FibreChannelConnector, self).set_execute(execute)"},{"line_number":52,"context_line":"        self._linuxscsi.set_execute(execute)"}],"source_content_type":"text/x-python","patch_set":7,"id":"2eb746af_5fa7e207","line":49,"in_reply_to":"089f3efb_b0aa440b","updated":"2022-07-19 18:17:30.000000000","message":"Done","commit_id":"eac9ed196823f3f79099b2be2b216a0cb2413170"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"d1aedde5_bf90c03c","side":"PARENT","line":2,"updated":"2022-07-25 22:57:07.000000000","message":"One more","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0dc0798548fc35297cb2c6f27a4aeba494fe479e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"ebe88456_4e7d5bb4","side":"PARENT","line":2,"in_reply_to":"d1aedde5_bf90c03c","updated":"2022-07-26 14:00:30.000000000","message":"Done","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":true,"context_lines":[{"line_number":38,"context_line":"            self,"},{"line_number":39,"context_line":"            root_helper: str,"},{"line_number":40,"context_line":"            driver\u003dNone,"},{"line_number":41,"context_line":"            execute: Optional[str] \u003d None,"},{"line_number":42,"context_line":"            use_multipath: bool \u003d False,"},{"line_number":43,"context_line":"            device_scan_attempts: int \u003d initiator.DEVICE_SCAN_ATTEMPTS_DEFAULT,"},{"line_number":44,"context_line":"            *args, **kwargs):"}],"source_content_type":"text/x-python","patch_set":13,"id":"d136c460_e6035994","line":41,"range":{"start_line":41,"start_character":12,"end_line":41,"end_character":41},"updated":"2022-08-19 15:16:37.000000000","message":"I thought this was execute method being passed but when i searched through the base classes, it is not used anywhere\n\nBaseLinuxConnector doesn\u0027t use it: https://github.com/openstack/os-brick/blob/master/os_brick/initiator/connectors/base.py#L97-L106\n\nInitiatorConnector doesn\u0027t have an init method: https://github.com/openstack/os-brick/blob/master/os_brick/initiator/connector.py#L269","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/initiator/connectors/iscsi.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a65e05b_75638a0a","side":"PARENT","line":2,"updated":"2022-07-25 22:57:07.000000000","message":"Three","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0dc0798548fc35297cb2c6f27a4aeba494fe479e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":10,"id":"90e68f70_768cdadc","side":"PARENT","line":2,"in_reply_to":"5a65e05b_75638a0a","updated":"2022-07-26 14:00:30.000000000","message":"Done","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":true,"context_lines":[{"line_number":779,"context_line":"        elif not wwn:"},{"line_number":780,"context_line":"            wwn \u003d self._linuxscsi.get_sysfs_wwn(found, mpath)"},{"line_number":781,"context_line":""},{"line_number":782,"context_line":"        assert wwn is not None"},{"line_number":783,"context_line":"        return self._get_connect_result(connection_properties, wwn, found,"},{"line_number":784,"context_line":"                                        mpath)"},{"line_number":785,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"e613029e_43d3f087","line":782,"range":{"start_line":782,"start_character":8,"end_line":782,"end_character":30},"updated":"2022-08-19 15:16:37.000000000","message":"IIUC if mpath is None, we will log a warning and will never reach \"elif not wwn\" and if wwn is None then we will raise here which is not the intended behavior of original code?","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}],"os_brick/initiator/connectors/local.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"60b1edd0_58fddd0b","side":"PARENT","line":3,"updated":"2022-07-25 22:57:07.000000000","message":"Four","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0dc0798548fc35297cb2c6f27a4aeba494fe479e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"9f8043af_6a1f4190","side":"PARENT","line":3,"in_reply_to":"60b1edd0_58fddd0b","updated":"2022-07-26 14:00:30.000000000","message":"Done","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"}],"os_brick/initiator/connectors/remotefs.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"ecfe6b0314e2a6d266564ed8e0ec0b8abbd941f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"d15d0ddd_995bc014","side":"PARENT","line":3,"updated":"2022-07-25 22:57:07.000000000","message":"Five","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0dc0798548fc35297cb2c6f27a4aeba494fe479e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":5,"context_line":"#    a copy of the License at"},{"line_number":6,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":10,"id":"ae6b50e5_fe5e82cd","side":"PARENT","line":3,"in_reply_to":"d15d0ddd_995bc014","updated":"2022-07-26 14:00:30.000000000","message":"Done","commit_id":"4c21b40df20ef497c7a3c82ffcf32fe21621034c"}],"os_brick/initiator/linuxscsi.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"5afb7eb7c6f8245ed28bc78ca1b7594489a424b8","unresolved":true,"context_lines":[{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def extend_volume(self,"},{"line_number":605,"context_line":"                      volume_paths: list,"},{"line_number":606,"context_line":"                      use_multipath: bool \u003d False) -\u003e Optional[int]:"},{"line_number":607,"context_line":"        \"\"\"Signal the SCSI subsystem to test for volume resize."},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        This function tries to signal the local system\u0027s kernel"}],"source_content_type":"text/x-python","patch_set":13,"id":"59a17579_7e152d03","line":606,"range":{"start_line":606,"start_character":54,"end_line":606,"end_character":62},"updated":"2022-08-19 15:16:37.000000000","message":"is Optional correct here? I only see one return statement which returns the new_size","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"6a7ff21b6818ddf712b5971820ff3225f89044a7","unresolved":true,"context_lines":[{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def extend_volume(self,"},{"line_number":605,"context_line":"                      volume_paths: list,"},{"line_number":606,"context_line":"                      use_multipath: bool \u003d False) -\u003e Optional[int]:"},{"line_number":607,"context_line":"        \"\"\"Signal the SCSI subsystem to test for volume resize."},{"line_number":608,"context_line":""},{"line_number":609,"context_line":"        This function tries to signal the local system\u0027s kernel"}],"source_content_type":"text/x-python","patch_set":13,"id":"1ed4b475_6ca6177b","line":606,"range":{"start_line":606,"start_character":54,"end_line":606,"end_character":62},"in_reply_to":"59a17579_7e152d03","updated":"2022-08-19 15:24:05.000000000","message":"It has to be Optional because utils.get_device_size can return None.","commit_id":"a519dd8d07a65896b6151087c6b38b5294129bb6"}]}
