)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":10,"context_line":"is unclear if there are multiple attachments even though the"},{"line_number":11,"context_line":"multiattach setting is turned off"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes Bug: #1964576"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If83ec9455b4c7caf26d11b1b97905c82963dbca4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bc2906f5_45e78d29","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"updated":"2022-04-05 11:04:39.000000000","message":"supernit: Closes-Bug","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":10,"context_line":"is unclear if there are multiple attachments even though the"},{"line_number":11,"context_line":"multiattach setting is turned off"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closes Bug: #1964576"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: If83ec9455b4c7caf26d11b1b97905c82963dbca4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ed2893b5_c3b75542","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":10},"in_reply_to":"bc2906f5_45e78d29","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"11a4ebec_61387c1e","updated":"2022-04-05 11:04:39.000000000","message":"This _seems_ like an impossible corner case. It clearly isn\u0027t, if you encountered it, but we need a lot more context before we can merge this IMO. See comments inline","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"b74baaea88977d58023f34b3df2cf388a742852c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"6cd32650_7efa5553","updated":"2022-03-16 07:40:50.000000000","message":"recheck","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5859f7bf_3df14217","updated":"2022-04-05 15:26:00.000000000","message":"This looks better, though there\u0027s still some missing context. This will also fail pep8.\n\nAside: Can you mark comments as \"done\" once you\u0027ve addressed them? Just so I know/the comments are hidden.","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"}],"nova/exception.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":true,"context_lines":[{"line_number":2413,"context_line":""},{"line_number":2414,"context_line":"class TooManyVolumeAttachments(NovaException):"},{"line_number":2415,"context_line":"    msg_fmt \u003d _(\"The volume: %(v_id)s has more than one attachment\")"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"class VolumeAttachmentInstanceMissmatch(NovaException):"},{"line_number":2418,"context_line":"    msg_fmt \u003d _(\"The volume: %(v_id)s has one attachment, but it doesn\u0027t point\""},{"line_number":2419,"context_line":"                \" to the instance %(i_id)s.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"1104f6d7_a7bca5da","line":2416,"updated":"2022-04-05 15:26:00.000000000","message":"You need two spaces between each of these. Either run \u0027tox -e fast8\u0027 or install pre-commit to fix this.","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":2413,"context_line":""},{"line_number":2414,"context_line":"class TooManyVolumeAttachments(NovaException):"},{"line_number":2415,"context_line":"    msg_fmt \u003d _(\"The volume: %(v_id)s has more than one attachment\")"},{"line_number":2416,"context_line":""},{"line_number":2417,"context_line":"class VolumeAttachmentInstanceMissmatch(NovaException):"},{"line_number":2418,"context_line":"    msg_fmt \u003d _(\"The volume: %(v_id)s has one attachment, but it doesn\u0027t point\""},{"line_number":2419,"context_line":"                \" to the instance %(i_id)s.\")"}],"source_content_type":"text/x-python","patch_set":6,"id":"b37e6702_d27b695c","line":2416,"in_reply_to":"1104f6d7_a7bca5da","updated":"2022-04-27 08:18:48.000000000","message":"Thanks for the hint with fast8","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"}],"nova/tests/unit/volume/test_cinder.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":669,"context_line":"        mock_volumes.detach.assert_called_once_with(\u0027id1\u0027, \u0027fakeid\u0027)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":672,"context_line":"    def test_detach_no_attachment_id_no_attachments("},{"line_number":673,"context_line":"                                                    self, mock_cinderclient):"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        mock_volumes \u003d mock.MagicMock()"},{"line_number":676,"context_line":"        mock_cinderclient.return_value \u003d mock.MagicMock(version\u003d\u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"6e8f02a6_9c9646a1","line":673,"range":{"start_line":672,"start_character":0,"end_line":673,"end_character":77},"updated":"2022-04-05 11:04:39.000000000","message":"style nit: this fits on one line. Ditto for the below","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":669,"context_line":"        mock_volumes.detach.assert_called_once_with(\u0027id1\u0027, \u0027fakeid\u0027)"},{"line_number":670,"context_line":""},{"line_number":671,"context_line":"    @mock.patch(\u0027nova.volume.cinder.cinderclient\u0027)"},{"line_number":672,"context_line":"    def test_detach_no_attachment_id_no_attachments("},{"line_number":673,"context_line":"                                                    self, mock_cinderclient):"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        mock_volumes \u003d mock.MagicMock()"},{"line_number":676,"context_line":"        mock_cinderclient.return_value \u003d mock.MagicMock(version\u003d\u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"669d1d00_f65b8479","line":673,"range":{"start_line":672,"start_character":0,"end_line":673,"end_character":77},"in_reply_to":"6e8f02a6_9c9646a1","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":688,"context_line":"                                                    self, mock_cinderclient):"},{"line_number":689,"context_line":"        attachment \u003d {\u0027server_id\u0027: \u0027fake_uuid\u0027,"},{"line_number":690,"context_line":"                      \u0027attachment_id\u0027: \u0027fakeid\u0027"},{"line_number":691,"context_line":"                     }"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        mock_volumes \u003d mock.MagicMock()"},{"line_number":694,"context_line":"        mock_cinderclient.return_value \u003d mock.MagicMock(version\u003d\u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"b0ad1cd8_064ac68a","line":691,"updated":"2022-04-05 11:04:39.000000000","message":"style nit: this is weird indentation\n\n  attachment \u003d {\n      \u0027server_id\u0027: \u0027fake_uuid\u0027,\n      \u0027attachment_id\u0027: \u0027fakeid\u0027\n  }\n\n?\n\nDitto for the below","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":688,"context_line":"                                                    self, mock_cinderclient):"},{"line_number":689,"context_line":"        attachment \u003d {\u0027server_id\u0027: \u0027fake_uuid\u0027,"},{"line_number":690,"context_line":"                      \u0027attachment_id\u0027: \u0027fakeid\u0027"},{"line_number":691,"context_line":"                     }"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        mock_volumes \u003d mock.MagicMock()"},{"line_number":694,"context_line":"        mock_cinderclient.return_value \u003d mock.MagicMock(version\u003d\u00272\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f72c829_bfcf9fee","line":691,"in_reply_to":"b0ad1cd8_064ac68a","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"}],"nova/volume/cinder.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":292,"context_line":"    d[\u0027attach_time\u0027] \u003d \"\""},{"line_number":293,"context_line":"    d[\u0027mountpoint\u0027] \u003d \"\""},{"line_number":294,"context_line":"    d[\u0027multiattach\u0027] \u003d getattr(vol, \u0027multiattach\u0027, False)"},{"line_number":295,"context_line":"    # test"},{"line_number":296,"context_line":"    if vol.attachments:"},{"line_number":297,"context_line":"        d[\u0027attachments\u0027] \u003d collections.OrderedDict()"},{"line_number":298,"context_line":"        for attachment in vol.attachments:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3689c543_dbd55473","line":295,"updated":"2022-04-05 11:04:39.000000000","message":"Is this comment necessary?","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":292,"context_line":"    d[\u0027attach_time\u0027] \u003d \"\""},{"line_number":293,"context_line":"    d[\u0027mountpoint\u0027] \u003d \"\""},{"line_number":294,"context_line":"    d[\u0027multiattach\u0027] \u003d getattr(vol, \u0027multiattach\u0027, False)"},{"line_number":295,"context_line":"    # test"},{"line_number":296,"context_line":"    if vol.attachments:"},{"line_number":297,"context_line":"        d[\u0027attachments\u0027] \u003d collections.OrderedDict()"},{"line_number":298,"context_line":"        for attachment in vol.attachments:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ce312ad_70d60b40","line":295,"in_reply_to":"3689c543_dbd55473","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":601,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":602,"context_line":"                                \"cannot perform the detach.\","},{"line_number":603,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":604,"context_line":"            else:"},{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":4,"id":"2e075fe3_0d2a79af","line":604,"updated":"2022-04-05 11:04:39.000000000","message":"We need context comments and logs for each of the below cases. I\u0027ve posted comments below to ensure *I* understand the logic here","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":601,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":602,"context_line":"                                \"cannot perform the detach.\","},{"line_number":603,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":604,"context_line":"            else:"},{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"}],"source_content_type":"text/x-python","patch_set":4,"id":"ae0e3efa_010f7499","line":604,"in_reply_to":"2e075fe3_0d2a79af","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":603,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":604,"context_line":"            else:"},{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"},{"line_number":608,"context_line":"                    if attachments.get(instance_uuid) is not None:"},{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"2b97fd97_e4d4ac93","line":606,"updated":"2022-04-05 11:04:39.000000000","message":"1. Just so I understand this logic correctly, this handles the case where you detach a volume that is not actually attached, yes?","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":603,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":604,"context_line":"            else:"},{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"},{"line_number":608,"context_line":"                    if attachments.get(instance_uuid) is not None:"},{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"8a448e51_a241d6fb","line":606,"in_reply_to":"2b97fd97_e4d4ac93","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"},{"line_number":608,"context_line":"                    if attachments.get(instance_uuid) is not None:"},{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"},{"line_number":610,"context_line":"                            get(\u0027attachment_id\u0027)"},{"line_number":611,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"b2758798_589522f4","line":608,"updated":"2022-04-05 11:04:39.000000000","message":"style nit:\n\n  if instance_uuid in attachments:\n\nwould be clearer, IMO. We would never have a None value in this dict, right?","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":605,"context_line":"                if len(attachments) \u003d\u003d 0:"},{"line_number":606,"context_line":"                    return"},{"line_number":607,"context_line":"                elif len(attachments) \u003d\u003d 1:"},{"line_number":608,"context_line":"                    if attachments.get(instance_uuid) is not None:"},{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"},{"line_number":610,"context_line":"                            get(\u0027attachment_id\u0027)"},{"line_number":611,"context_line":"                    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"88a59c3d_70eb1ea4","line":608,"in_reply_to":"b2758798_589522f4","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"},{"line_number":610,"context_line":"                            get(\u0027attachment_id\u0027)"},{"line_number":611,"context_line":"                    else:"},{"line_number":612,"context_line":"                        raise ValueError(\"Unexpected attachments found\")"},{"line_number":613,"context_line":"                else:"},{"line_number":614,"context_line":"                    raise ValueError(\"More than one attachment found\")"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ad79759_76d95dec","line":612,"updated":"2022-04-05 11:04:39.000000000","message":"2. This means the volume we\u0027re trying to detach is attached...to another volume? Is that ever going to happen? How did we get here. Logging and context comments please\n\nLet\u0027s settle on a better exception for this. Don\u0027t forget to handle it at the caller (if you don\u0027t, I suspect it\u0027ll bubble up as a HTTP 500 eventually)","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":609,"context_line":"                        attachment_id \u003d attachments[instance_uuid].\\"},{"line_number":610,"context_line":"                            get(\u0027attachment_id\u0027)"},{"line_number":611,"context_line":"                    else:"},{"line_number":612,"context_line":"                        raise ValueError(\"Unexpected attachments found\")"},{"line_number":613,"context_line":"                else:"},{"line_number":614,"context_line":"                    raise ValueError(\"More than one attachment found\")"},{"line_number":615,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"4a472131_b01697e5","line":612,"in_reply_to":"1ad79759_76d95dec","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a3b18d64f8d28b8304b3f1a1d1161e22f3fdb6d6","unresolved":true,"context_lines":[{"line_number":611,"context_line":"                    else:"},{"line_number":612,"context_line":"                        raise ValueError(\"Unexpected attachments found\")"},{"line_number":613,"context_line":"                else:"},{"line_number":614,"context_line":"                    raise ValueError(\"More than one attachment found\")"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        client.volumes.detach(volume_id, attachment_id)"},{"line_number":617,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3c364d0d_6c84627f","line":614,"updated":"2022-04-05 11:04:39.000000000","message":"3. As this means the volume is not a multi-attach volume and yet it\u0027s attached to multiple instances. How can this happen? Is this a cinder bug? Again, a detailed log would help explain this","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":611,"context_line":"                    else:"},{"line_number":612,"context_line":"                        raise ValueError(\"Unexpected attachments found\")"},{"line_number":613,"context_line":"                else:"},{"line_number":614,"context_line":"                    raise ValueError(\"More than one attachment found\")"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        client.volumes.detach(volume_id, attachment_id)"},{"line_number":617,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"f30b45af_239f77a7","line":614,"in_reply_to":"3c364d0d_6c84627f","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"b319aa690dd4c3b5513d1c1f5db6b57878dab88d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":true,"context_lines":[{"line_number":599,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":600,"context_line":"                                \"cannot perform the detach.\","},{"line_number":601,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":602,"context_line":"            # If there is a missmatch between cinder attachments and nova "},{"line_number":603,"context_line":"            # block device mappings, we need to identifiy which case we have "},{"line_number":604,"context_line":"            # and handle it differently."},{"line_number":605,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"8776401f_61e0dcbd","line":602,"range":{"start_line":602,"start_character":73,"end_line":602,"end_character":74},"updated":"2022-04-05 15:26:00.000000000","message":"nit: You need to strip these trailing spaces","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":true,"context_lines":[{"line_number":599,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":600,"context_line":"                                \"cannot perform the detach.\","},{"line_number":601,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":602,"context_line":"            # If there is a missmatch between cinder attachments and nova "},{"line_number":603,"context_line":"            # block device mappings, we need to identifiy which case we have "},{"line_number":604,"context_line":"            # and handle it differently."},{"line_number":605,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"638b4b03_fe12fc56","line":602,"range":{"start_line":602,"start_character":28,"end_line":602,"end_character":37},"updated":"2022-04-05 15:26:00.000000000","message":"nit: mismatch","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":600,"context_line":"                                \"cannot perform the detach.\","},{"line_number":601,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":602,"context_line":"            # If there is a missmatch between cinder attachments and nova "},{"line_number":603,"context_line":"            # block device mappings, we need to identifiy which case we have "},{"line_number":604,"context_line":"            # and handle it differently."},{"line_number":605,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c2697b8b_c42f250a","line":602,"range":{"start_line":602,"start_character":28,"end_line":602,"end_character":37},"in_reply_to":"638b4b03_fe12fc56","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                                \"attachment_id Cinder most probably \""},{"line_number":600,"context_line":"                                \"cannot perform the detach.\","},{"line_number":601,"context_line":"                                {\u0027volume_id\u0027: volume_id})"},{"line_number":602,"context_line":"            # If there is a missmatch between cinder attachments and nova "},{"line_number":603,"context_line":"            # block device mappings, we need to identifiy which case we have "},{"line_number":604,"context_line":"            # and handle it differently."},{"line_number":605,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"c77664ec_558074a9","line":602,"range":{"start_line":602,"start_character":73,"end_line":602,"end_character":74},"in_reply_to":"8776401f_61e0dcbd","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":true,"context_lines":[{"line_number":631,"context_line":"                            i_id\u003dinstance_uuid"},{"line_number":632,"context_line":"                        )"},{"line_number":633,"context_line":"                # There is a bdm and multiple attachments from cinder which "},{"line_number":634,"context_line":"                # means we cannot detach."},{"line_number":635,"context_line":"                else:"},{"line_number":636,"context_line":"                    LOG.error(\"There are more than one instances attached to \""},{"line_number":637,"context_line":"                              \"a non mulitattach volume %(volume)s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"59d72ddc_26aec103","line":634,"updated":"2022-04-05 15:26:00.000000000","message":"But why?","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":631,"context_line":"                            i_id\u003dinstance_uuid"},{"line_number":632,"context_line":"                        )"},{"line_number":633,"context_line":"                # There is a bdm and multiple attachments from cinder which "},{"line_number":634,"context_line":"                # means we cannot detach."},{"line_number":635,"context_line":"                else:"},{"line_number":636,"context_line":"                    LOG.error(\"There are more than one instances attached to \""},{"line_number":637,"context_line":"                              \"a non mulitattach volume %(volume)s\","}],"source_content_type":"text/x-python","patch_set":6,"id":"75d46980_19bc49f8","line":634,"in_reply_to":"59d72ddc_26aec103","updated":"2022-04-27 08:18:48.000000000","message":"i hope this explains it a bit","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0da4b1063d7d0edfa5bf0bcb506cf2cd1305c70e","unresolved":true,"context_lines":[{"line_number":634,"context_line":"                # means we cannot detach."},{"line_number":635,"context_line":"                else:"},{"line_number":636,"context_line":"                    LOG.error(\"There are more than one instances attached to \""},{"line_number":637,"context_line":"                              \"a non mulitattach volume %(volume)s\","},{"line_number":638,"context_line":"                              {\"volume\": volume_id})"},{"line_number":639,"context_line":"                    raise exception.TooManyVolumeAttachments(v_id\u003dvolume_id)"},{"line_number":640,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ad4bb090_889c336c","line":637,"range":{"start_line":637,"start_character":33,"end_line":637,"end_character":49},"updated":"2022-04-05 15:26:00.000000000","message":"nit: non-multiattach","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"},{"author":{"_account_id":33237,"name":"Maxim Korezkij","email":"maxim.korezkij@mail.schwarz","username":"korezkij"},"change_message_id":"a2a10bbb46a09d64ae8adc910c70ab8d06b78ffe","unresolved":false,"context_lines":[{"line_number":634,"context_line":"                # means we cannot detach."},{"line_number":635,"context_line":"                else:"},{"line_number":636,"context_line":"                    LOG.error(\"There are more than one instances attached to \""},{"line_number":637,"context_line":"                              \"a non mulitattach volume %(volume)s\","},{"line_number":638,"context_line":"                              {\"volume\": volume_id})"},{"line_number":639,"context_line":"                    raise exception.TooManyVolumeAttachments(v_id\u003dvolume_id)"},{"line_number":640,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9126cb6c_08fc5b1c","line":637,"range":{"start_line":637,"start_character":33,"end_line":637,"end_character":49},"in_reply_to":"ad4bb090_889c336c","updated":"2022-04-27 08:18:48.000000000","message":"Done","commit_id":"f1013ea7e3bd4ebd98626202798ef1d8cb29bbfd"}]}
