)]}'
{"nova/tests/functional/regressions/test_bug_1908075.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"84f9c6a99a622f0ed1d562cf63ea911f262c4269","unresolved":true,"context_lines":[{"line_number":55,"context_line":"            server_b[\u0027id\u0027],"},{"line_number":56,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        # Assert that we have bdms within Nova still for this attachment"},{"line_number":59,"context_line":"        block_device.BlockDeviceMapping.get_by_volume_and_instance("},{"line_number":60,"context_line":"            self.context, volume_id, server_a[\u0027id\u0027])"},{"line_number":61,"context_line":"        block_device.BlockDeviceMapping.get_by_volume_and_instance("},{"line_number":62,"context_line":"            self.context, volume_id, server_a[\u0027id\u0027])"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        # Assert that the new attachment is the only one in the fixture"},{"line_number":65,"context_line":"        self.assertIn("}],"source_content_type":"text/x-python","patch_set":1,"id":"6d6e1c79_5a0f8807","line":62,"range":{"start_line":58,"start_character":0,"end_line":62,"end_character":52},"updated":"2020-12-23 15:10:22.000000000","message":"I could use get_server_volumes for this without looking up objects from the db","commit_id":"26d246129e94e698e2fff99d092be350a4b08358"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eea801e77abd04e393c46fc05653d89c59b08867","unresolved":true,"context_lines":[{"line_number":26,"context_line":"    microversion \u003d \u0027latest\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super().setUp()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_volume_attach_after_cinder_reset_state(self):"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e379874a_b9be88ba","line":29,"updated":"2021-01-27 14:48:38.000000000","message":"Not necessary","commit_id":"66aed6ca07d29328def40f93812cfca2777154f8"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"834b9da1242e0a9ca585fe7f966b77775bb6905d","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    microversion \u003d \u0027latest\u0027"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def setUp(self):"},{"line_number":29,"context_line":"        super().setUp()"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def test_volume_attach_after_cinder_reset_state(self):"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6e4d32ca_0277d9bb","line":29,"in_reply_to":"e379874a_b9be88ba","updated":"2021-01-27 15:26:41.000000000","message":"Done","commit_id":"66aed6ca07d29328def40f93812cfca2777154f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eea801e77abd04e393c46fc05653d89c59b08867","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":37,"context_line":"        self.api.post_server_volume("},{"line_number":38,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":39,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":42,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":3,"id":"cc18a57f_0f470e07","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":58},"updated":"2021-01-27 14:48:38.000000000","message":"nit: any reason this couldn\u0027t be a literal?","commit_id":"66aed6ca07d29328def40f93812cfca2777154f8"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"834b9da1242e0a9ca585fe7f966b77775bb6905d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":37,"context_line":"        self.api.post_server_volume("},{"line_number":38,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":39,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":42,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":3,"id":"8326ac94_d6b048e6","line":39,"range":{"start_line":39,"start_character":12,"end_line":39,"end_character":58},"in_reply_to":"cc18a57f_0f470e07","updated":"2021-01-27 15:26:41.000000000","message":"Done","commit_id":"66aed6ca07d29328def40f93812cfca2777154f8"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"719ddea6836b4251fba47febbc57ddb8f00966ae","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        # have an active bdm record for this non-multiattach volume."},{"line_number":49,"context_line":"        self.api.post_server_volume("},{"line_number":50,"context_line":"            server_b[\u0027id\u0027],"},{"line_number":51,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Assert that we have bdms within Nova still for this attachment"},{"line_number":54,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"daf45737_916ee7d3","line":51,"updated":"2021-01-29 18:50:40.000000000","message":"nit: the fact that this is not consistent with L36 triggers me.","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c37c6c6ab68fcbf1db9f9a503e814cbae541c57d","unresolved":true,"context_lines":[{"line_number":48,"context_line":"        # have an active bdm record for this non-multiattach volume."},{"line_number":49,"context_line":"        self.api.post_server_volume("},{"line_number":50,"context_line":"            server_b[\u0027id\u0027],"},{"line_number":51,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        # Assert that we have bdms within Nova still for this attachment"},{"line_number":54,"context_line":"        self.assertEqual("}],"source_content_type":"text/x-python","patch_set":4,"id":"5b55ff91_3a82a637","line":51,"in_reply_to":"daf45737_916ee7d3","updated":"2021-02-01 10:02:59.000000000","message":"Ah yeah sorry I did mean to switch these back, I\u0027ll sort that out in a respin.","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"719ddea6836b4251fba47febbc57ddb8f00966ae","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertIn("},{"line_number":63,"context_line":"            volume_id, self.cinder.volume_ids_for_instance(server_b[\u0027id\u0027]))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_volume_attach_after_cinder_reset_state_multiattach_volume(self):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        volume_id \u003d self.cinder.MULTIATTACH_VOL"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"d5ddc0ba_25a13215","line":65,"updated":"2021-01-29 18:50:40.000000000","message":"Is this still a regression test? To me it reads like Nova/Cinder interaction weirdness... What I see happening is:\n\n1. Boot a server and attach a multiattach volume.\n2. Reset volume\u0027s state in Cinder \u003c-- Operators being dumb is not a bug?\n3. Attach the same volume to a different server \u003c-- This should and does work regardless of step 2, right?\n4. Make sure we have BDMs for both attachments of the volume\n5. Make sure Cinder only knows about the second attachment \u003c-- This is just testing Cinder\u0027s reset-state API, no?\n\nSo... what value does this test add?","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c73660acf1f4580fc847eaf3d9fc4395d9aad29b","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertIn("},{"line_number":63,"context_line":"            volume_id, self.cinder.volume_ids_for_instance(server_b[\u0027id\u0027]))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_volume_attach_after_cinder_reset_state_multiattach_volume(self):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        volume_id \u003d self.cinder.MULTIATTACH_VOL"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"21f7c974_be12e781","line":65,"in_reply_to":"86ca2f3b_226bdb70","updated":"2021-02-01 14:43:28.000000000","message":"Ah, to it\u0027s the \"control\" test case, so to speak, OK, thanks!","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c37c6c6ab68fcbf1db9f9a503e814cbae541c57d","unresolved":true,"context_lines":[{"line_number":62,"context_line":"        self.assertIn("},{"line_number":63,"context_line":"            volume_id, self.cinder.volume_ids_for_instance(server_b[\u0027id\u0027]))"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_volume_attach_after_cinder_reset_state_multiattach_volume(self):"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        volume_id \u003d self.cinder.MULTIATTACH_VOL"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"86ca2f3b_226bdb70","line":65,"in_reply_to":"d5ddc0ba_25a13215","updated":"2021-02-01 10:02:59.000000000","message":"It\u0027s just asserting that nothing changes in the multiattach use case, with or without the fix for non-multiattach attachments.","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"719ddea6836b4251fba47febbc57ddb8f00966ae","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":71,"context_line":"        self.api.post_server_volume("},{"line_number":72,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":73,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":76,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":4,"id":"43ba5233_5b731e1f","line":73,"updated":"2021-01-29 18:50:40.000000000","message":"nit: Looks like L36 is the exception, not the rule. I actually find its explicit dict syntax more readable than this dict() stuff.","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c37c6c6ab68fcbf1db9f9a503e814cbae541c57d","unresolved":true,"context_lines":[{"line_number":70,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":71,"context_line":"        self.api.post_server_volume("},{"line_number":72,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":73,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":76,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":4,"id":"8c01ca40_14635043","line":73,"in_reply_to":"43ba5233_5b731e1f","updated":"2021-02-01 10:02:59.000000000","message":"As above.","commit_id":"0dd9b699c4c883b62bc90f420ed130c974a85465"},{"author":{"_account_id":8864,"name":"Artom Lifshitz","email":"notartom@gmail.com","username":"artom"},"change_message_id":"c73660acf1f4580fc847eaf3d9fc4395d9aad29b","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":72,"context_line":"        self.api.post_server_volume("},{"line_number":73,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":74,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":77,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":5,"id":"e6c16412_d143dce0","line":74,"updated":"2021-02-01 14:43:28.000000000","message":"Lol how did this one remain in the dict() form?","commit_id":"ccc3343f1932d283e366c9723adb17d63177c586"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"13dae785420a8c52bc0c81fa3f2138b004e13322","unresolved":true,"context_lines":[{"line_number":71,"context_line":"        server_a \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":72,"context_line":"        self.api.post_server_volume("},{"line_number":73,"context_line":"            server_a[\u0027id\u0027],"},{"line_number":74,"context_line":"            dict(volumeAttachment\u003ddict(volumeId\u003dvolume_id)))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        # reset-state of the volume within the cinder fixture, we don\u0027t model"},{"line_number":77,"context_line":"        # the state of the volume within the fixture so this will have to do."}],"source_content_type":"text/x-python","patch_set":5,"id":"da5ce8da_c08061ac","line":74,"in_reply_to":"e6c16412_d143dce0","updated":"2021-02-01 14:52:34.000000000","message":"😭","commit_id":"ccc3343f1932d283e366c9723adb17d63177c586"}]}
