)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"99f354b3e819e6afa02513a307dd55117cab61dc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"d32ccf39_f5825186","updated":"2024-06-11 02:45:27.000000000","message":"Looks good to me, test coverage fails without the fix and passes with the fix, thanks!","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"0a7e0542d83c224dd40bed348c0f9eef7f7f16cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7b62dce5_f541b4c7","updated":"2024-07-03 12:53:15.000000000","message":"hi sean, I have addressed your comments, thanks a lot for the review","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"68d4d4c79d3140ff5052caf5bd1a5988fbccc35e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"a5e9c6ee_34901481","updated":"2024-08-19 10:38:58.000000000","message":"commit msg is not clear to me. \nI understand you added the other patch patch comment but still can you please tell in commit msg, why making \"copy\" of obj is required, and if possible why it worked earlier.","commit_id":"057ccabc25638e54bc52811e6c9f6a2869fc5aee"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"f1677fad61813d53ac53a16f28d08d4c137a8984","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8bad511e_b8ce684a","updated":"2024-08-16 14:38:54.000000000","message":"hi auniyal, I have addressed your comments, thank for the review.","commit_id":"057ccabc25638e54bc52811e6c9f6a2869fc5aee"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"798ca4c13be37d8f0dfbde182a6dcb1eaf3c5026","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"67d96b56_64b03c20","in_reply_to":"a5e9c6ee_34901481","updated":"2024-08-20 05:25:30.000000000","message":"done, thanks","commit_id":"057ccabc25638e54bc52811e6c9f6a2869fc5aee"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"798ca4c13be37d8f0dfbde182a6dcb1eaf3c5026","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"170252cf_b0dc5717","updated":"2024-08-20 05:25:30.000000000","message":"Hi Amit, I have already modified commit msg to adress your comment as well, thanks a lot for the review.","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"11d370bc789ca8fc7b520aaa4cd7dfa106fd6317","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f7f7dbd3_29f12909","updated":"2024-08-20 11:43:27.000000000","message":"if Melaine is ok with the slight ugliness in the test then we can proceed with it as is","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"77517a7b65fce48cd5798bb02cf1888758d8f87a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"91341972_4ae20cc7","in_reply_to":"f7f7dbd3_29f12909","updated":"2024-08-20 21:48:01.000000000","message":"I\u0027ll remove the last reset_mock() call and approve. The rest looks good to me.","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"2d604baf0a283f698d84db3b85b373dabac2c3ad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"c97ddc42_38aa4b6f","updated":"2024-08-20 21:52:00.000000000","message":"I just removed the redundant reset_mock() call, Sean was previously +2, it looks like Amit\u0027s comments were addressed, LGTM so approving","commit_id":"065bf99fc79a3d086e1859f9542afaafa8c3bf00"}],"nova/tests/unit/virt/libvirt/test_blockinfo.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"496b03beca587aacc2f9dfb550f6fe93ec8470bd","unresolved":true,"context_lines":[{"line_number":1318,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1319,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        # call get_root_info() with objects.BlockDeviceMapping"},{"line_number":1322,"context_line":"        root_bdm \u003d objects.BlockDeviceMapping(self.context,"},{"line_number":1323,"context_line":"            **fake_block_device.FakeDbBlockDeviceDict("},{"line_number":1324,"context_line":"                {\u0027id\u0027: 3, \u0027instance_uuid\u0027: uuids.instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"e11e3ffe_faf60da4","line":1321,"updated":"2024-07-03 11:29:40.000000000","message":"you should not be extendign this test case\n\nyou shoul be added a new test method for each of the  commeted sections as each are really a seperate test.","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"0a7e0542d83c224dd40bed348c0f9eef7f7f16cd","unresolved":false,"context_lines":[{"line_number":1318,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1319,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1320,"context_line":""},{"line_number":1321,"context_line":"        # call get_root_info() with objects.BlockDeviceMapping"},{"line_number":1322,"context_line":"        root_bdm \u003d objects.BlockDeviceMapping(self.context,"},{"line_number":1323,"context_line":"            **fake_block_device.FakeDbBlockDeviceDict("},{"line_number":1324,"context_line":"                {\u0027id\u0027: 3, \u0027instance_uuid\u0027: uuids.instance,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1256eef7_199360eb","line":1321,"in_reply_to":"e11e3ffe_faf60da4","updated":"2024-07-03 12:53:15.000000000","message":"Done","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"496b03beca587aacc2f9dfb550f6fe93ec8470bd","unresolved":true,"context_lines":[{"line_number":1330,"context_line":"                 \u0027volume_id\u0027: \u0027fake-volume-id-1\u0027,"},{"line_number":1331,"context_line":"                 \u0027boot_index\u0027: 0}))"},{"line_number":1332,"context_line":"        # No root_device_name"},{"line_number":1333,"context_line":"        blockinfo.get_root_info(instance, \u0027kvm\u0027, image_meta, root_bdm,"},{"line_number":1334,"context_line":"                                \u0027virtio\u0027, \u0027ide\u0027)"},{"line_number":1335,"context_line":"        mock_get_info.assert_called_once_with(instance, \u0027kvm\u0027, image_meta,"},{"line_number":1336,"context_line":"                                              root_bdm, {}, \u0027virtio\u0027)"},{"line_number":1337,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1338,"context_line":"        # Both device names"},{"line_number":1339,"context_line":"        blockinfo.get_root_info(instance, \u0027kvm\u0027, image_meta, root_bdm,"},{"line_number":1340,"context_line":"                                \u0027virtio\u0027, \u0027scsi\u0027, root_device_name\u003d\u0027/dev/sda\u0027)"},{"line_number":1341,"context_line":"        mock_get_info.assert_called_once_with(instance, \u0027kvm\u0027,"},{"line_number":1342,"context_line":"                                              image_meta,"},{"line_number":1343,"context_line":"                                              root_bdm,"},{"line_number":1344,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1345,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1346,"context_line":"        # Missing device names"},{"line_number":1347,"context_line":"        original_bdm \u003d copy.deepcopy(root_bdm)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c55393f0_17cc98e5","line":1344,"range":{"start_line":1333,"start_character":0,"end_line":1344,"end_character":59},"updated":"2024-07-03 11:29:40.000000000","message":"nit: when wrapping lines you shoudl move all arges to a new line\n\n\ni.e. \n\n        blockinfo.get_root_info(\n            instance, \u0027kvm\u0027, image_meta, root_bdm, \u0027virtio\u0027, \u0027ide\u0027)\n        mock_get_info.assert_called_once_with(\n            instance, \u0027kvm\u0027, image_meta, root_bdm, {}, \u0027virtio\u0027)","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"0a7e0542d83c224dd40bed348c0f9eef7f7f16cd","unresolved":false,"context_lines":[{"line_number":1330,"context_line":"                 \u0027volume_id\u0027: \u0027fake-volume-id-1\u0027,"},{"line_number":1331,"context_line":"                 \u0027boot_index\u0027: 0}))"},{"line_number":1332,"context_line":"        # No root_device_name"},{"line_number":1333,"context_line":"        blockinfo.get_root_info(instance, \u0027kvm\u0027, image_meta, root_bdm,"},{"line_number":1334,"context_line":"                                \u0027virtio\u0027, \u0027ide\u0027)"},{"line_number":1335,"context_line":"        mock_get_info.assert_called_once_with(instance, \u0027kvm\u0027, image_meta,"},{"line_number":1336,"context_line":"                                              root_bdm, {}, \u0027virtio\u0027)"},{"line_number":1337,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1338,"context_line":"        # Both device names"},{"line_number":1339,"context_line":"        blockinfo.get_root_info(instance, \u0027kvm\u0027, image_meta, root_bdm,"},{"line_number":1340,"context_line":"                                \u0027virtio\u0027, \u0027scsi\u0027, root_device_name\u003d\u0027/dev/sda\u0027)"},{"line_number":1341,"context_line":"        mock_get_info.assert_called_once_with(instance, \u0027kvm\u0027,"},{"line_number":1342,"context_line":"                                              image_meta,"},{"line_number":1343,"context_line":"                                              root_bdm,"},{"line_number":1344,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1345,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1346,"context_line":"        # Missing device names"},{"line_number":1347,"context_line":"        original_bdm \u003d copy.deepcopy(root_bdm)"}],"source_content_type":"text/x-python","patch_set":2,"id":"534ca4a0_118792c8","line":1344,"range":{"start_line":1333,"start_character":0,"end_line":1344,"end_character":59},"in_reply_to":"c55393f0_17cc98e5","updated":"2024-07-03 12:53:15.000000000","message":"Done","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"496b03beca587aacc2f9dfb550f6fe93ec8470bd","unresolved":true,"context_lines":[{"line_number":1351,"context_line":"        expected_call \u003d mock.call(instance, \u0027kvm\u0027, image_meta,"},{"line_number":1352,"context_line":"                                  original_bdm, {}, \u0027virtio\u0027)"},{"line_number":1353,"context_line":"        actual_call \u003d mock_get_info.call_args"},{"line_number":1354,"context_line":"        assert str(expected_call) \u003d\u003d str(actual_call)"},{"line_number":1355,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def test_get_boot_order_simple(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"201afb5c_0c83df82","line":1354,"updated":"2024-07-03 11:29:40.000000000","message":"this is the pytest style of doing assert and we do not use that convention in nova\n\nthis should be ```self.assertEqual```\nhttps://docs.python.org/3/library/unittest.html#unittest.TestCase.assertEqual\n\nhowever when  testing alls we actully prefer using the more specialised methods on the mock\n\nso the convetion would be to do \n\n```\nmock_get_info.assert_called_with(\n    instance, \u0027kvm\u0027, image_meta, original_bdm, {}, \u0027virtio\u0027)\n```","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"0a7e0542d83c224dd40bed348c0f9eef7f7f16cd","unresolved":false,"context_lines":[{"line_number":1351,"context_line":"        expected_call \u003d mock.call(instance, \u0027kvm\u0027, image_meta,"},{"line_number":1352,"context_line":"                                  original_bdm, {}, \u0027virtio\u0027)"},{"line_number":1353,"context_line":"        actual_call \u003d mock_get_info.call_args"},{"line_number":1354,"context_line":"        assert str(expected_call) \u003d\u003d str(actual_call)"},{"line_number":1355,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1356,"context_line":""},{"line_number":1357,"context_line":"    def test_get_boot_order_simple(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"181822ae_1028a156","line":1354,"in_reply_to":"201afb5c_0c83df82","updated":"2024-07-03 12:53:15.000000000","message":"deepcopy may change object\u0027s memory address, so assert_called_with will not work. we use object_to_primitive instead of string to compare them properly as we said in irc","commit_id":"662915505fd10b3c01a5a790bee978a1bd78debb"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf3549b7f72abb06cfea1d2295a16ec7783bffe9","unresolved":true,"context_lines":[{"line_number":1324,"context_line":"        # call get_root_info() with BlockDeviceMapping"},{"line_number":1325,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":1326,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":1327,"context_line":"        root_bdm \u003d {\u0027mount_device\u0027: \u0027/dev/vda\u0027,"},{"line_number":1328,"context_line":"                    \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":1329,"context_line":"                    \u0027device_type\u0027: \u0027disk\u0027}"},{"line_number":1330,"context_line":"        root_bdm \u003d objects.BlockDeviceMapping(self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"a4a5f25a_dd69a65b","line":1327,"range":{"start_line":1327,"start_character":8,"end_line":1327,"end_character":16},"updated":"2024-08-16 12:26:38.000000000","message":"this is just over-written later","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"f1677fad61813d53ac53a16f28d08d4c137a8984","unresolved":false,"context_lines":[{"line_number":1324,"context_line":"        # call get_root_info() with BlockDeviceMapping"},{"line_number":1325,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":1326,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":1327,"context_line":"        root_bdm \u003d {\u0027mount_device\u0027: \u0027/dev/vda\u0027,"},{"line_number":1328,"context_line":"                    \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":1329,"context_line":"                    \u0027device_type\u0027: \u0027disk\u0027}"},{"line_number":1330,"context_line":"        root_bdm \u003d objects.BlockDeviceMapping(self.context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"11778e5b_da6406bf","line":1327,"range":{"start_line":1327,"start_character":8,"end_line":1327,"end_character":16},"in_reply_to":"a4a5f25a_dd69a65b","updated":"2024-08-16 14:38:54.000000000","message":"done, thanks","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"77517a7b65fce48cd5798bb02cf1888758d8f87a","unresolved":true,"context_lines":[{"line_number":1361,"context_line":"            original_bdm.obj_to_primitive(),"},{"line_number":1362,"context_line":"            actual_bdm.obj_to_primitive()"},{"line_number":1363,"context_line":"        )"},{"line_number":1364,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1365,"context_line":""},{"line_number":1366,"context_line":"    def test_get_boot_order_simple(self):"},{"line_number":1367,"context_line":"        disk_info \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f815074_49e4404b","line":1364,"updated":"2024-08-20 21:48:01.000000000","message":"FYI this line doesn\u0027t have purpose as you are not using `mock_get_info` again.","commit_id":"057ccabc25638e54bc52811e6c9f6a2869fc5aee"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"11d370bc789ca8fc7b520aaa4cd7dfa106fd6317","unresolved":true,"context_lines":[{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.blockinfo.get_info_from_bdm\u0027)"},{"line_number":1291,"context_line":"    def test_get_root_info_bdm(self, mock_get_info):"},{"line_number":1292,"context_line":"        # call get_root_info() with DriverBlockDevice"},{"line_number":1293,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":1294,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":1295,"context_line":"        root_bdm \u003d {\u0027mount_device\u0027: \u0027/dev/vda\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7b28f6d6_e74c0350","line":1292,"range":{"start_line":1292,"start_character":0,"end_line":1292,"end_character":2},"updated":"2024-08-20 11:43:27.000000000","message":"nit: this is unrelated and not really informative","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"77517a7b65fce48cd5798bb02cf1888758d8f87a","unresolved":true,"context_lines":[{"line_number":1289,"context_line":""},{"line_number":1290,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.blockinfo.get_info_from_bdm\u0027)"},{"line_number":1291,"context_line":"    def test_get_root_info_bdm(self, mock_get_info):"},{"line_number":1292,"context_line":"        # call get_root_info() with DriverBlockDevice"},{"line_number":1293,"context_line":"        instance \u003d objects.Instance(**self.test_instance)"},{"line_number":1294,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict(self.test_image_meta)"},{"line_number":1295,"context_line":"        root_bdm \u003d {\u0027mount_device\u0027: \u0027/dev/vda\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a784241_e9f82795","line":1292,"range":{"start_line":1292,"start_character":0,"end_line":1292,"end_character":2},"in_reply_to":"7b28f6d6_e74c0350","updated":"2024-08-20 21:48:01.000000000","message":"It\u0027s kind of related in that this test is for the case where the BDM is an instance of `DriverBlockDevice(dict)`. It\u0027s true the test is taking a shortcut using a dict instead of the class, but the overall point of the test is to cover the DriverBlockDevice case.","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"11d370bc789ca8fc7b520aaa4cd7dfa106fd6317","unresolved":true,"context_lines":[{"line_number":1317,"context_line":"                                               \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":1318,"context_line":"                                               \u0027device_type\u0027: \u0027disk\u0027},"},{"line_number":1319,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1320,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.blockinfo.get_info_from_bdm\u0027)"},{"line_number":1323,"context_line":"    def test_get_root_info_bdm_with_deepcopy(self, mock_get_info):"}],"source_content_type":"text/x-python","patch_set":5,"id":"289d9603_1cb7a112","line":1320,"updated":"2024-08-20 11:43:27.000000000","message":"nit: im not sure why this is here as it should not be required","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"77517a7b65fce48cd5798bb02cf1888758d8f87a","unresolved":true,"context_lines":[{"line_number":1317,"context_line":"                                               \u0027disk_bus\u0027: \u0027scsi\u0027,"},{"line_number":1318,"context_line":"                                               \u0027device_type\u0027: \u0027disk\u0027},"},{"line_number":1319,"context_line":"                                              {}, \u0027virtio\u0027)"},{"line_number":1320,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1321,"context_line":""},{"line_number":1322,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.blockinfo.get_info_from_bdm\u0027)"},{"line_number":1323,"context_line":"    def test_get_root_info_bdm_with_deepcopy(self, mock_get_info):"}],"source_content_type":"text/x-python","patch_set":5,"id":"50c6a9d1_b72ddb74","line":1320,"in_reply_to":"289d9603_1cb7a112","updated":"2024-08-20 21:48:01.000000000","message":"Probably was a typo or copy pasta.","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"11d370bc789ca8fc7b520aaa4cd7dfa106fd6317","unresolved":true,"context_lines":[{"line_number":1361,"context_line":"            original_bdm.obj_to_primitive(),"},{"line_number":1362,"context_line":"            actual_bdm.obj_to_primitive()"},{"line_number":1363,"context_line":"        )"},{"line_number":1364,"context_line":"        mock_get_info.reset_mock()"},{"line_number":1365,"context_line":""},{"line_number":1366,"context_line":"    def test_get_boot_order_simple(self):"},{"line_number":1367,"context_line":"        disk_info \u003d {"}],"source_content_type":"text/x-python","patch_set":5,"id":"09a188c0_528d775d","line":1364,"updated":"2024-08-20 11:43:27.000000000","message":"nit: i assume you are just following the conversation above\n\nbut the reset should not be requred. the object is not shared it a mock.MagicMock\ncreated only for this test.","commit_id":"c36b76ee9f93d9e58e39d21d6dd9d4a9019ea52d"}],"nova/virt/libvirt/blockinfo.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"d55c167f338011ad2da3181491c71aa15f397817","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":1,"id":"834e0b8f_86df4be0","line":450,"updated":"2024-05-30 01:10:16.000000000","message":"This change of course looks reasonable but we\u0027ll want to cover this in our unit tests, to call ``get_root_info()`` with a ``objects.BlockDeviceMapping`` to help prevent future regression. I believe we already have coverage with a ``DriverBlockDevice``.\n\nIf you are interested to add test coverage to this patch, that would be great. If you are not able to, alternatively I can propose a patch on top of this and the next patch to show the test coverage before we merge these. If you would prefer that, let me know.","commit_id":"9ca0ba58dad1db459a992dba0442c4af3086daec"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"248bf4c105a07ae3e9762d785dd27a7c4c6822d0","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":1,"id":"c94a2559_cb8e9c86","line":450,"in_reply_to":"834e0b8f_86df4be0","updated":"2024-06-03 08:08:11.000000000","message":"Hi @melwitt , I have added unit test to call get-root_info() with objects.BlockDeviceMapping, thanks a lot for the review.","commit_id":"9ca0ba58dad1db459a992dba0442c4af3086daec"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"3586788ec0e33813b847f1e3405def7c40dc4034","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":1,"id":"e532b817_39cacfa8","line":450,"in_reply_to":"c94a2559_cb8e9c86","updated":"2024-07-03 11:22:03.000000000","message":"i dont see those in this patch did you forget to pus them","commit_id":"9ca0ba58dad1db459a992dba0442c4af3086daec"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"496b03beca587aacc2f9dfb550f6fe93ec8470bd","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":1,"id":"151003d9_c67f8bc3","line":450,"in_reply_to":"e532b817_39cacfa8","updated":"2024-07-03 11:29:40.000000000","message":"oh never mind i was lookign at ps 1","commit_id":"9ca0ba58dad1db459a992dba0442c4af3086daec"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf3549b7f72abb06cfea1d2295a16ec7783bffe9","unresolved":true,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":3,"id":"dd570bb3_29d42c02","line":450,"updated":"2024-08-16 12:26:38.000000000","message":"why to use same same-name of copy object ?\n\nI believe its copied because, you do not want to modify the original object","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"f1677fad61813d53ac53a16f28d08d4c137a8984","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                \u0027boot_index\u0027: \u00271\u0027}"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    if not get_device_name(root_bdm) and root_device_name:"},{"line_number":450,"context_line":"        root_bdm \u003d copy.deepcopy(root_bdm)"},{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("}],"source_content_type":"text/x-python","patch_set":3,"id":"56e7c481_689b8e89","line":450,"in_reply_to":"dd570bb3_29d42c02","updated":"2024-08-16 14:38:54.000000000","message":"use root_bdb_copy instead now, thanks","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"bf3549b7f72abb06cfea1d2295a16ec7783bffe9","unresolved":true,"context_lines":[{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("},{"line_number":454,"context_line":"        instance, virt_type, image_meta, root_bdm, {}, disk_bus,"},{"line_number":455,"context_line":"    )"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a8cb7078_07f2a3ff","line":454,"range":{"start_line":454,"start_character":41,"end_line":454,"end_character":49},"updated":"2024-08-16 12:26:38.000000000","message":"which object is sent here ?","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"f1677fad61813d53ac53a16f28d08d4c137a8984","unresolved":false,"context_lines":[{"line_number":451,"context_line":"        root_bdm[\u0027device_name\u0027] \u003d root_device_name"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    return get_info_from_bdm("},{"line_number":454,"context_line":"        instance, virt_type, image_meta, root_bdm, {}, disk_bus,"},{"line_number":455,"context_line":"    )"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f1fb6db6_012b316b","line":454,"range":{"start_line":454,"start_character":41,"end_line":454,"end_character":49},"in_reply_to":"a8cb7078_07f2a3ff","updated":"2024-08-16 14:38:54.000000000","message":"use root_bdb_copy instead now, thanks","commit_id":"a3b15ef88d1be683060f7181476e53b5ed37ea0a"}]}
