)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fc8060c002e41fa639d1a3da2bcbfe08d33ef456","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f05d133e_c49dca05","updated":"2021-11-19 13:58:37.000000000","message":"Simple enough. Thanks for the fish.","commit_id":"cfd6c6b76f0d3bb271fdebf5c3d245603ccdf7e2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"c10c2d6c1b12aa2a5849c363ec7c1c5ba2011d0d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e486e9e4_14788b45","updated":"2021-11-19 20:31:12.000000000","message":"recheck","commit_id":"cfd6c6b76f0d3bb271fdebf5c3d245603ccdf7e2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"0c80ccecba4d326106a009669b8443f2b8d30801","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f9f74559_20fc206b","updated":"2021-11-22 15:17:17.000000000","message":"recheck","commit_id":"cfd6c6b76f0d3bb271fdebf5c3d245603ccdf7e2"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"20f43a5fd88a2aa52901ecc611927e359556f66c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"465c3a92_9efe3639","updated":"2021-11-19 15:53:26.000000000","message":"recheck infra failure","commit_id":"cfd6c6b76f0d3bb271fdebf5c3d245603ccdf7e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f89eaded86b7f53f01f3721fcb28babd6c9ed5ec","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"14156d23_3f15ef94","updated":"2021-11-17 13:47:19.000000000","message":"yep my questions in the previous patch have been addressed and the code looks good.","commit_id":"cfd6c6b76f0d3bb271fdebf5c3d245603ccdf7e2"}],"nova/cmd/manage.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c1f4b38bebbcd613ce803f1577cdfc7edee68807","unresolved":false,"context_lines":[{"line_number":2870,"context_line":"                ctxt, instance_uuid)"},{"line_number":2871,"context_line":"            with context.target_cell(ctxt, im.cell_mapping) as cctxt:"},{"line_number":2872,"context_line":"                bdm \u003d objects.BlockDeviceMapping.get_by_volume("},{"line_number":2873,"context_line":"                    cctxt, volume_id, instance_uuid)"},{"line_number":2874,"context_line":"                if connection_info and json:"},{"line_number":2875,"context_line":"                    print(bdm.connection_info)"},{"line_number":2876,"context_line":"                elif connection_info:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dbff7dc8_a2d91791","side":"PARENT","line":2873,"updated":"2021-09-30 10:51:44.000000000","message":"ohh, we set expected_attr\u003dinstance_uuid. I guess mypy could caught that","commit_id":"d59188d5e2db3d7d33f9da0c2546101747da6423"}],"nova/tests/functional/test_nova_manage.py":[{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"3223fe14d950131094a99db1f4e214c544a72473","unresolved":true,"context_lines":[{"line_number":531,"context_line":"            \u0027/os-hypervisors\u0027).body[\u0027hypervisors\u0027]"},{"line_number":532,"context_line":"        self.assertEqual(2, len(hypervisors))"},{"line_number":533,"context_line":"        self.flavor \u003d self.api.get_flavors()[0]"},{"line_number":534,"context_line":"        self.output \u003d StringIO()"},{"line_number":535,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":536,"context_line":""},{"line_number":537,"context_line":"    def _boot_and_remove_allocations("},{"line_number":538,"context_line":"        self, flavor, hostname, volume_backed\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":1,"id":"79c47f7c_747fada9","line":535,"range":{"start_line":534,"start_character":0,"end_line":535,"end_character":72},"updated":"2021-09-30 07:24:57.000000000","message":"I should really add this to avoid stdout being dumped during the test.","commit_id":"c64479c2e4f5aa29c77bf9ba312383280f6a5265"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f6071c4df8eeeb2279bef86635c5c62dc53c0cf","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":270,"context_line":"        self.cli \u003d manage.VolumeAttachmentCommands()"},{"line_number":271,"context_line":"        self.output \u003d StringIO()"},{"line_number":272,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":273,"context_line":"        self.flags(my_ip\u003d\u0027192.168.1.100\u0027)"},{"line_number":274,"context_line":"        self.fake_connector \u003d {"},{"line_number":275,"context_line":"            \u0027ip\u0027: \u0027192.168.1.128\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"19d28c4e_86416f75","line":272,"range":{"start_line":272,"start_character":8,"end_line":272,"end_character":72},"updated":"2021-10-11 11:54:43.000000000","message":"this looks like a hack to me why are you doing this instead of using the global logging fixture.\n\nwe should not have any output to stdout in general so i would at least wont oe see a comment explaing why you are doing this.\n\nself.output does not appear to be used in this patch either so its not cleare why you are doing this.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a858d9a666521df9233d355b4c5ac3fc0c890c33","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":270,"context_line":"        self.cli \u003d manage.VolumeAttachmentCommands()"},{"line_number":271,"context_line":"        self.output \u003d StringIO()"},{"line_number":272,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":273,"context_line":"        self.flags(my_ip\u003d\u0027192.168.1.100\u0027)"},{"line_number":274,"context_line":"        self.fake_connector \u003d {"},{"line_number":275,"context_line":"            \u0027ip\u0027: \u0027192.168.1.128\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"869e9af7_6ac243ca","line":272,"range":{"start_line":272,"start_character":8,"end_line":272,"end_character":72},"in_reply_to":"19d28c4e_86416f75","updated":"2021-10-11 11:57:04.000000000","message":"is this becasue thsi is nova manage and it outputs to stdout by default to return results?\n\nif so i think we shoudl have a fixture for this","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fc336166dfc560a0d3f2d7aac652133109caeccd","unresolved":true,"context_lines":[{"line_number":269,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":270,"context_line":"        self.cli \u003d manage.VolumeAttachmentCommands()"},{"line_number":271,"context_line":"        self.output \u003d StringIO()"},{"line_number":272,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":273,"context_line":"        self.flags(my_ip\u003d\u0027192.168.1.100\u0027)"},{"line_number":274,"context_line":"        self.fake_connector \u003d {"},{"line_number":275,"context_line":"            \u0027ip\u0027: \u0027192.168.1.128\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ea05ecd5_f4d56a72","line":272,"range":{"start_line":272,"start_character":8,"end_line":272,"end_character":72},"in_reply_to":"869e9af7_6ac243ca","updated":"2021-10-18 15:20:06.000000000","message":"I think it is a pattern in nova-manage testing. See TestNovaManagePlacementHealAllocations also as an example. Although if self.output is not used below then I agree that we should drop it.\n\nIn general wrapping this in a fixture or using the standard one used by other tests is a good idea, but that should be done in a separate patch where the other test classes in these file is changed too.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f89eaded86b7f53f01f3721fcb28babd6c9ed5ec","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":270,"context_line":"        self.cli \u003d manage.VolumeAttachmentCommands()"},{"line_number":271,"context_line":"        self.output \u003d StringIO()"},{"line_number":272,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":273,"context_line":"        self.flags(my_ip\u003d\u0027192.168.1.100\u0027)"},{"line_number":274,"context_line":"        self.fake_connector \u003d {"},{"line_number":275,"context_line":"            \u0027ip\u0027: \u0027192.168.1.128\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5feec8d6_1a9ee614","line":272,"range":{"start_line":272,"start_character":8,"end_line":272,"end_character":72},"in_reply_to":"e70c360f_ab008401","updated":"2021-11-17 13:47:19.000000000","message":"ack","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"8e2e22a8da65bbdf015bced480ec5691e29826ff","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":270,"context_line":"        self.cli \u003d manage.VolumeAttachmentCommands()"},{"line_number":271,"context_line":"        self.output \u003d StringIO()"},{"line_number":272,"context_line":"        self.useFixture(fixtures.MonkeyPatch(\u0027sys.stdout\u0027, self.output))"},{"line_number":273,"context_line":"        self.flags(my_ip\u003d\u0027192.168.1.100\u0027)"},{"line_number":274,"context_line":"        self.fake_connector \u003d {"},{"line_number":275,"context_line":"            \u0027ip\u0027: \u0027192.168.1.128\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e70c360f_ab008401","line":272,"range":{"start_line":272,"start_character":8,"end_line":272,"end_character":72},"in_reply_to":"ea05ecd5_f4d56a72","updated":"2021-11-01 10:47:02.000000000","message":"Yeah this is just to avoid dumping stdout during the test run.\n\nI\u0027ve added it here because the new test added here will always dump output and it\u0027s just ugly. I don\u0027t actually assert anything in self.output so I get that it\u0027s not really required but at the same time it\u0027s not hurting anything.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f6071c4df8eeeb2279bef86635c5c62dc53c0cf","unresolved":true,"context_lines":[{"line_number":290,"context_line":"        self.assertEqual(\u0027create\u0027, actions[5][\u0027action\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def test_refresh(self):"},{"line_number":293,"context_line":"        server \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":294,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"},{"line_number":295,"context_line":"        self.api.post_server_volume("},{"line_number":296,"context_line":"            server[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"}],"source_content_type":"text/x-python","patch_set":2,"id":"aae2a7b2_a8ffc83e","line":293,"range":{"start_line":293,"start_character":7,"end_line":293,"end_character":53},"updated":"2021-10-11 11:54:43.000000000","message":"nit you have not mention why you have converted these test to no longer use networks but they dont appear to depend on networking so i gues that is fine.\n\nthis just seams like an unrelated change.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"8e2e22a8da65bbdf015bced480ec5691e29826ff","unresolved":true,"context_lines":[{"line_number":290,"context_line":"        self.assertEqual(\u0027create\u0027, actions[5][\u0027action\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def test_refresh(self):"},{"line_number":293,"context_line":"        server \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":294,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"},{"line_number":295,"context_line":"        self.api.post_server_volume("},{"line_number":296,"context_line":"            server[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"}],"source_content_type":"text/x-python","patch_set":2,"id":"f8d97ef9_53b0df38","line":293,"range":{"start_line":293,"start_character":7,"end_line":293,"end_character":53},"in_reply_to":"aae2a7b2_a8ffc83e","updated":"2021-11-01 10:47:02.000000000","message":"This is required now thanks to the microversion bump to 2.60, this should really be handled by the helper method tbh, I\u0027ll address that in a FUP.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f89eaded86b7f53f01f3721fcb28babd6c9ed5ec","unresolved":false,"context_lines":[{"line_number":290,"context_line":"        self.assertEqual(\u0027create\u0027, actions[5][\u0027action\u0027])"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"    def test_refresh(self):"},{"line_number":293,"context_line":"        server \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":294,"context_line":"        volume_id \u003d self.cinder.IMAGE_BACKED_VOL"},{"line_number":295,"context_line":"        self.api.post_server_volume("},{"line_number":296,"context_line":"            server[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"}],"source_content_type":"text/x-python","patch_set":2,"id":"8c0171f8_2e2ff6f1","line":293,"range":{"start_line":293,"start_character":7,"end_line":293,"end_character":53},"in_reply_to":"f8d97ef9_53b0df38","updated":"2021-11-17 13:47:19.000000000","message":"Ack","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f6071c4df8eeeb2279bef86635c5c62dc53c0cf","unresolved":true,"context_lines":[{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Launch two instances and attach the same multiattach volume to both"},{"line_number":502,"context_line":"        server_1 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":503,"context_line":"        self.api.post_server_volume("},{"line_number":504,"context_line":"            server_1[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"},{"line_number":505,"context_line":"        self._wait_for_volume_attach(server_1[\u0027id\u0027], volume_id)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        server_2 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":508,"context_line":"        self.api.post_server_volume("}],"source_content_type":"text/x-python","patch_set":2,"id":"66ae944a_35a0bb9d","line":505,"range":{"start_line":503,"start_character":8,"end_line":505,"end_character":63},"updated":"2021-10-11 11:54:43.000000000","message":"im surprised we do not have an integrated helpper method for attach volume that does this already.\ngenerally we also use the fake notificaiton fixture and wait for the notificaiotn for the instnace action completion too. that is typicaly to prevent race condtions but i dont think that can happen here.\n\n\nbut ya like the other action such as interface atach it would be nice if you extended the integrated_helper to add volume attach suport\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/integrated_helpers.py#L473-L489","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":10135,"name":"Lee Yarwood","display_name":"Lee Yarwood","email":"lyarwood@redhat.com","username":"lyarwood"},"change_message_id":"8e2e22a8da65bbdf015bced480ec5691e29826ff","unresolved":false,"context_lines":[{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Launch two instances and attach the same multiattach volume to both"},{"line_number":502,"context_line":"        server_1 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":503,"context_line":"        self.api.post_server_volume("},{"line_number":504,"context_line":"            server_1[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"},{"line_number":505,"context_line":"        self._wait_for_volume_attach(server_1[\u0027id\u0027], volume_id)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        server_2 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":508,"context_line":"        self.api.post_server_volume("}],"source_content_type":"text/x-python","patch_set":2,"id":"fb1a2ae1_c340a323","line":505,"range":{"start_line":503,"start_character":8,"end_line":505,"end_character":63},"in_reply_to":"66ae944a_35a0bb9d","updated":"2021-11-01 10:47:02.000000000","message":"Yeah I\u0027ll address this in a FUP now.","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f89eaded86b7f53f01f3721fcb28babd6c9ed5ec","unresolved":false,"context_lines":[{"line_number":500,"context_line":""},{"line_number":501,"context_line":"        # Launch two instances and attach the same multiattach volume to both"},{"line_number":502,"context_line":"        server_1 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":503,"context_line":"        self.api.post_server_volume("},{"line_number":504,"context_line":"            server_1[\u0027id\u0027], {\u0027volumeAttachment\u0027: {\u0027volumeId\u0027: volume_id}})"},{"line_number":505,"context_line":"        self._wait_for_volume_attach(server_1[\u0027id\u0027], volume_id)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"        server_2 \u003d self._create_server(networks\u003d\u0027none\u0027)"},{"line_number":508,"context_line":"        self.api.post_server_volume("}],"source_content_type":"text/x-python","patch_set":2,"id":"56254ec3_63bd611c","line":505,"range":{"start_line":503,"start_character":8,"end_line":505,"end_character":63},"in_reply_to":"fb1a2ae1_c340a323","updated":"2021-11-17 13:47:19.000000000","message":"ack","commit_id":"6e216927ff24c0cc6a061b6b0631cb0838978042"}]}
