)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"0019db0d99b47fd538cc986b1c45bf8244cc460a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5f920ac8_2be722ea","updated":"2022-07-15 14:41:49.000000000","message":"check experimental","commit_id":"2620b2f88a9491461e321dc753cc8e450082f19b"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"48063d788525bfaf5b109fcf0ef41c4f2b739a4c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2118046a_f05f18f8","updated":"2022-08-18 17:59:56.000000000","message":"LGTM","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"437cbed371de83e44fb64cc15c50c281fc573047","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"960fb04d_0df1d41c","updated":"2022-08-18 15:05:36.000000000","message":"One annotation can definitely be improved, but I\u0027m not downvoting because this patch is in a series, and the improvement can be done in a follow up patch.","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"e837788009bb7293d9d7919096f4da7cbfcc2efa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"2281ec25_9ae98599","updated":"2022-08-19 14:08:04.000000000","message":"recheck\n\nunrelated failure of test_incremental_backup_respective_parents in os-brick-src-devstack-plugin-ceph-v","commit_id":"fc819c15402b134465b02ad9bac9649c6364142d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"738a89f957f5a00b5c377a131e3063c4069a4d38","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6f01300c_d1984a31","updated":"2022-08-23 12:35:49.000000000","message":"Agree with Rajat, this looks ready to merge.","commit_id":"dfa1d167b9f50c017a025374e82825f4ea0bee6c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"214c6fa4d4db6ee6156af580526f66b57fca752f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"038cb207_f1392439","updated":"2022-08-23 09:05:26.000000000","message":"changes LGTM and mypy job pased.","commit_id":"dfa1d167b9f50c017a025374e82825f4ea0bee6c"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6c99ab994e9e0f4c5571e184f37daf0174393fb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"85f4b990_af0a47e6","updated":"2022-08-23 08:47:50.000000000","message":"check experimental","commit_id":"dfa1d167b9f50c017a025374e82825f4ea0bee6c"}],"os_brick/initiator/connectors/rbd.py":[{"author":{"_account_id":21129,"name":"Alan Bishop","email":"abishopsweng@gmail.com","username":"ASBishop","status":"ex Red Hat"},"change_message_id":"437cbed371de83e44fb64cc15c50c281fc573047","unresolved":true,"context_lines":[{"line_number":75,"context_line":"        return []"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @staticmethod"},{"line_number":78,"context_line":"    def _check_or_get_keyring_contents(keyring, cluster_name: str, user: str):"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if keyring is None:"},{"line_number":81,"context_line":"                if user:"}],"source_content_type":"text/x-python","patch_set":4,"id":"8f1d5ce3_e92bdf6d","line":78,"range":{"start_line":78,"start_character":39,"end_line":78,"end_character":46},"updated":"2022-08-18 15:05:36.000000000","message":"I don\u0027t what the \"check\" aspect of this get_or_check function hopes to accomplish, but from a mypy perspective the keyring parameter looks to be an Optional[str]. And the function returns str.","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b6079f16fe41c9ca188feca529513bb89302404b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        return []"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    @staticmethod"},{"line_number":78,"context_line":"    def _check_or_get_keyring_contents(keyring, cluster_name: str, user: str):"},{"line_number":79,"context_line":"        try:"},{"line_number":80,"context_line":"            if keyring is None:"},{"line_number":81,"context_line":"                if user:"}],"source_content_type":"text/x-python","patch_set":4,"id":"efc73cc4_d5f0d03b","line":78,"range":{"start_line":78,"start_character":39,"end_line":78,"end_character":46},"in_reply_to":"8f1d5ce3_e92bdf6d","updated":"2022-08-22 15:32:23.000000000","message":"Done","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"48063d788525bfaf5b109fcf0ef41c4f2b739a4c","unresolved":true,"context_lines":[{"line_number":250,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":251,"context_line":"    def connect_volume(self,"},{"line_number":252,"context_line":"                       connection_properties: dict[str, Any]) -\u003e \\"},{"line_number":253,"context_line":"            dict[str, Union[linuxrbd.RBDVolumeIOWrapper, str]]:"},{"line_number":254,"context_line":"        \"\"\"Connect to a volume."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        :param connection_properties: The dictionary that describes all"}],"source_content_type":"text/x-python","patch_set":4,"id":"8c6865e9_1c93723c","line":253,"range":{"start_line":253,"start_character":12,"end_line":253,"end_character":62},"updated":"2022-08-18 17:59:56.000000000","message":"IIUC Here the return will only contain dict of form\n    \n    dict[str, linuxrbd.RBDVolumeIOWrapper]","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"8f626a234577d97863ba4bb5d0844b7a115d64c4","unresolved":false,"context_lines":[{"line_number":250,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":251,"context_line":"    def connect_volume(self,"},{"line_number":252,"context_line":"                       connection_properties: dict[str, Any]) -\u003e \\"},{"line_number":253,"context_line":"            dict[str, Union[linuxrbd.RBDVolumeIOWrapper, str]]:"},{"line_number":254,"context_line":"        \"\"\"Connect to a volume."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        :param connection_properties: The dictionary that describes all"}],"source_content_type":"text/x-python","patch_set":4,"id":"f9d87c49_2b8fa48d","line":253,"range":{"start_line":253,"start_character":12,"end_line":253,"end_character":62},"in_reply_to":"2ba9e5dc_65775313","updated":"2022-08-18 18:45:06.000000000","message":"Ack","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d2b6fbe800e57c11f5ffd2f6cf03d4d233a4454c","unresolved":true,"context_lines":[{"line_number":250,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":251,"context_line":"    def connect_volume(self,"},{"line_number":252,"context_line":"                       connection_properties: dict[str, Any]) -\u003e \\"},{"line_number":253,"context_line":"            dict[str, Union[linuxrbd.RBDVolumeIOWrapper, str]]:"},{"line_number":254,"context_line":"        \"\"\"Connect to a volume."},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        :param connection_properties: The dictionary that describes all"}],"source_content_type":"text/x-python","patch_set":4,"id":"2ba9e5dc_65775313","line":253,"range":{"start_line":253,"start_character":12,"end_line":253,"end_character":62},"in_reply_to":"8c6865e9_1c93723c","updated":"2022-08-18 18:31:35.000000000","message":"Line 265 returns dict[str, str]","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"48063d788525bfaf5b109fcf0ef41c4f2b739a4c","unresolved":true,"context_lines":[{"line_number":367,"context_line":"                    rbd_handle.close()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @staticmethod"},{"line_number":370,"context_line":"    def _check_valid_device(rbd_handle: \u0027io.BufferedReader\u0027) -\u003e bool:"},{"line_number":371,"context_line":"        original_offset \u003d rbd_handle.tell()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"0d16ae0c_ac768106","line":370,"range":{"start_line":370,"start_character":40,"end_line":370,"end_character":59},"updated":"2022-08-18 17:59:56.000000000","message":"NOTE: This is enclosed within quotes as \u0027io\u0027 is only imported if type checking is enabled\n\nhttps://docs.python.org/3/library/typing.html#constant","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d2b6fbe800e57c11f5ffd2f6cf03d4d233a4454c","unresolved":false,"context_lines":[{"line_number":367,"context_line":"                    rbd_handle.close()"},{"line_number":368,"context_line":""},{"line_number":369,"context_line":"    @staticmethod"},{"line_number":370,"context_line":"    def _check_valid_device(rbd_handle: \u0027io.BufferedReader\u0027) -\u003e bool:"},{"line_number":371,"context_line":"        original_offset \u003d rbd_handle.tell()"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"61be6290_7879c7b0","line":370,"range":{"start_line":370,"start_character":40,"end_line":370,"end_character":59},"in_reply_to":"0d16ae0c_ac768106","updated":"2022-08-18 18:31:35.000000000","message":"Ack","commit_id":"6db9d1474c0f15683b5b01a07006cf550cd83937"}]}
