)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20873,"name":"Laszlo Hegedus","email":"hegedues.laszlo@gmail.com","username":"laszloh"},"change_message_id":"febfe23affdcf48d16c5266bf5301f0e0ff6619c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"The valid source is volume. But source_type is"},{"line_number":14,"context_line":"not volume, is image in the block_device_mapping table. It causes"},{"line_number":15,"context_line":"migration failure."},{"line_number":16,"context_line":"Actually source_type. May be image snapshot and volume. At"},{"line_number":17,"context_line":"swap_volume, it should call the convert_volume, but not"},{"line_number":18,"context_line":"DriverVolumeBlockDevice."},{"line_number":19,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"dab17558_a943766b","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":55},"updated":"2016-05-13 07:51:36.000000000","message":"I think you wanted to rewrite this to one sentence.","commit_id":"8f6b5a60e6c2098c23a5a523d6012371fec644ce"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"cb4f11d93df9d7c316cc1c3fbecb7e813a403b1e","unresolved":false,"context_lines":[{"line_number":14434,"context_line":""},{"line_number":14435,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._disconnect_volume\u0027)"},{"line_number":14436,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._swap_volume\u0027)"},{"line_number":14437,"context_line":"    @mock.patch(\u0027nova.virt.block_device.DriverVolumeBlockDevice.save\u0027)"},{"line_number":14438,"context_line":"    @mock.patch(\u0027nova.objects.block_device.BlockDeviceMapping.\u0027"},{"line_number":14439,"context_line":"                \u0027get_by_volume_and_instance\u0027)"},{"line_number":14440,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._get_volume_config\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_5072e511","line":14437,"range":{"start_line":14437,"start_character":40,"end_line":14437,"end_character":63},"updated":"2016-07-07 05:50:51.000000000","message":"I think you\u0027d better to assert that DriverImageBlockDevice.save is called instead of it\u0027s base class.","commit_id":"09ec0fe7e93a0e6ad086911a208bbee74e598351"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"6965002970573d2147615373d54a8a83a071967b","unresolved":false,"context_lines":[{"line_number":14434,"context_line":""},{"line_number":14435,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._disconnect_volume\u0027)"},{"line_number":14436,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._swap_volume\u0027)"},{"line_number":14437,"context_line":"    @mock.patch(\u0027nova.virt.block_device.DriverVolumeBlockDevice.save\u0027)"},{"line_number":14438,"context_line":"    @mock.patch(\u0027nova.objects.block_device.BlockDeviceMapping.\u0027"},{"line_number":14439,"context_line":"                \u0027get_by_volume_and_instance\u0027)"},{"line_number":14440,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._get_volume_config\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_269eecb8","line":14437,"range":{"start_line":14437,"start_character":40,"end_line":14437,"end_character":63},"in_reply_to":"1aa78d24_5072e511","updated":"2016-07-07 13:43:29.000000000","message":"I do not change DriverVolumeBlockDevice which it is the base class. I have restructured the test func, please review again.","commit_id":"09ec0fe7e93a0e6ad086911a208bbee74e598351"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"44d008d981f17c8d35d44f06b90546309a7dce20","unresolved":false,"context_lines":[{"line_number":14440,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._get_volume_config\u0027)"},{"line_number":14441,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._connect_volume\u0027)"},{"line_number":14442,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.host.Host.get_guest\u0027)"},{"line_number":14443,"context_line":"    def test_swap_volume_driver_bdm_save_source_image(self, get_guest,"},{"line_number":14444,"context_line":"                                         connect_volume, get_volume_config,"},{"line_number":14445,"context_line":"                                         get_by_volume_and_instance,"},{"line_number":14446,"context_line":"                                         volume_save, swap_volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_d0ea5573","line":14443,"range":{"start_line":14443,"start_character":8,"end_line":14443,"end_character":53},"updated":"2016-07-07 05:51:28.000000000","message":"how about rename it so test_swap_volume_driver_bdm_save_source_is_image","commit_id":"09ec0fe7e93a0e6ad086911a208bbee74e598351"},{"author":{"_account_id":12184,"name":"Weiwei Gu","email":"gu.weiwei@zte.com.cn","username":"guweiwei"},"change_message_id":"6965002970573d2147615373d54a8a83a071967b","unresolved":false,"context_lines":[{"line_number":14440,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._get_volume_config\u0027)"},{"line_number":14441,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._connect_volume\u0027)"},{"line_number":14442,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.host.Host.get_guest\u0027)"},{"line_number":14443,"context_line":"    def test_swap_volume_driver_bdm_save_source_image(self, get_guest,"},{"line_number":14444,"context_line":"                                         connect_volume, get_volume_config,"},{"line_number":14445,"context_line":"                                         get_by_volume_and_instance,"},{"line_number":14446,"context_line":"                                         volume_save, swap_volume,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1aa78d24_2bf1956b","line":14443,"range":{"start_line":14443,"start_character":8,"end_line":14443,"end_character":53},"in_reply_to":"1aa78d24_d0ea5573","updated":"2016-07-07 13:43:29.000000000","message":"Done","commit_id":"09ec0fe7e93a0e6ad086911a208bbee74e598351"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"f571eaa46b36a97e29ea2fa19efaccd498613618","unresolved":false,"context_lines":[{"line_number":14377,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._get_volume_config\u0027)"},{"line_number":14378,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.driver.LibvirtDriver._connect_volume\u0027)"},{"line_number":14379,"context_line":"    @mock.patch(\u0027nova.virt.libvirt.host.Host.get_guest\u0027)"},{"line_number":14380,"context_line":"    def _swap_volume_driver_bdm_save(self, get_guest,"},{"line_number":14381,"context_line":"                                         connect_volume, get_volume_config,"},{"line_number":14382,"context_line":"                                         get_by_volume_and_instance,"},{"line_number":14383,"context_line":"                                         swap_volume,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_287b327d","line":14380,"updated":"2016-07-08 03:10:43.000000000","message":"Nit: better to add test prefix, for example _test_swap_ ...","commit_id":"2a3cfcf8a71ed81192fb49004c4c5fefed5c765b"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a947b9620b5daf313d728430722863027d513e4d","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"        volume_id \u003d new_connection_info.get(\u0027serial\u0027)"},{"line_number":1307,"context_line":"        bdm \u003d objects.BlockDeviceMapping.get_by_volume_and_instance("},{"line_number":1308,"context_line":"            nova_context.get_admin_context(), volume_id, instance.uuid)"},{"line_number":1309,"context_line":"        driver_bdm \u003d driver_block_device.convert_volume(bdm)"},{"line_number":1310,"context_line":"        driver_bdm[\u0027connection_info\u0027] \u003d new_connection_info"},{"line_number":1311,"context_line":"        driver_bdm.save()"},{"line_number":1312,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_2d78642b","line":1309,"updated":"2016-07-08 02:47:54.000000000","message":"I guess you want to use \u0027convert_all_volumes\u0027 at here. If you use \u0027convert_volumes\u0027 looks like the bug isn\u0027t fixed.","commit_id":"2a3cfcf8a71ed81192fb49004c4c5fefed5c765b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e1fc8c82f1f40a35c88365c0f89faafa0be71924","unresolved":false,"context_lines":[{"line_number":1306,"context_line":"        volume_id \u003d new_connection_info.get(\u0027serial\u0027)"},{"line_number":1307,"context_line":"        bdm \u003d objects.BlockDeviceMapping.get_by_volume_and_instance("},{"line_number":1308,"context_line":"            nova_context.get_admin_context(), volume_id, instance.uuid)"},{"line_number":1309,"context_line":"        driver_bdm \u003d driver_block_device.convert_volume(bdm)"},{"line_number":1310,"context_line":"        driver_bdm[\u0027connection_info\u0027] \u003d new_connection_info"},{"line_number":1311,"context_line":"        driver_bdm.save()"},{"line_number":1312,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1aa78d24_4d8850c7","line":1309,"in_reply_to":"1aa78d24_2d78642b","updated":"2016-07-08 02:58:52.000000000","message":"Oops, my mistake. you used \u0027convert_volume\u0027, not \u0027convert_volumes\u0027","commit_id":"2a3cfcf8a71ed81192fb49004c4c5fefed5c765b"}]}
