)]}'
{"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1702,"context_line":""},{"line_number":1703,"context_line":"        def fake_raise(*args, **kwargs):"},{"line_number":1704,"context_line":"            raise exception.MigrationError(reason\u003d\u0027test failure\u0027)"},{"line_number":1705,"context_line":"        self.stub_out("},{"line_number":1706,"context_line":"            \u0027nova.virt.xenapi.vmops.VMOps._migrate_disk_resizing_up\u0027,"},{"line_number":1707,"context_line":"            fake_raise)"},{"line_number":1708,"context_line":""},{"line_number":1709,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1710,"context_line":"        self.assertRaises(exception.MigrationError,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_4e778702","line":1707,"range":{"start_line":1705,"start_character":0,"end_line":1707,"end_character":23},"updated":"2017-02-28 14:20:21.000000000","message":"Why don\u0027t you use a decorator here like you did above?","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1702,"context_line":""},{"line_number":1703,"context_line":"        def fake_raise(*args, **kwargs):"},{"line_number":1704,"context_line":"            raise exception.MigrationError(reason\u003d\u0027test failure\u0027)"},{"line_number":1705,"context_line":"        self.stub_out("},{"line_number":1706,"context_line":"            \u0027nova.virt.xenapi.vmops.VMOps._migrate_disk_resizing_up\u0027,"},{"line_number":1707,"context_line":"            fake_raise)"},{"line_number":1708,"context_line":""},{"line_number":1709,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1710,"context_line":"        self.assertRaises(exception.MigrationError,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_4a8851c5","line":1707,"range":{"start_line":1705,"start_character":0,"end_line":1707,"end_character":23},"in_reply_to":"ba2be162_4e778702","updated":"2017-05-29 08:55:28.000000000","message":"We could, but lets leave things as they are to get this in","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1733,"context_line":"        xenapi_fake.create_vm(instance[\u0027name\u0027], \u0027Running\u0027)"},{"line_number":1734,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1735,"context_line":"        vm_ref \u003d vm_utils.lookup(conn._session, instance[\u0027name\u0027])"},{"line_number":1736,"context_line":"        volume_utils.is_booted_from_volume(conn._session, vm_ref)"},{"line_number":1737,"context_line":"        conn.migrate_disk_and_power_off(self.context, instance,"},{"line_number":1738,"context_line":"                                        \u0027127.0.0.1\u0027, flavor, None)"},{"line_number":1739,"context_line":"        mock_boot.assert_any_call(conn._session, vm_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_ce59b790","line":1736,"range":{"start_line":1736,"start_character":7,"end_line":1736,"end_character":65},"updated":"2017-02-28 14:20:21.000000000","message":"You want to assert this method was called with these arguments - not actually call them (that\u0027s how Mox works)","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1733,"context_line":"        xenapi_fake.create_vm(instance[\u0027name\u0027], \u0027Running\u0027)"},{"line_number":1734,"context_line":"        conn \u003d xenapi_conn.XenAPIDriver(fake.FakeVirtAPI(), False)"},{"line_number":1735,"context_line":"        vm_ref \u003d vm_utils.lookup(conn._session, instance[\u0027name\u0027])"},{"line_number":1736,"context_line":"        volume_utils.is_booted_from_volume(conn._session, vm_ref)"},{"line_number":1737,"context_line":"        conn.migrate_disk_and_power_off(self.context, instance,"},{"line_number":1738,"context_line":"                                        \u0027127.0.0.1\u0027, flavor, None)"},{"line_number":1739,"context_line":"        mock_boot.assert_any_call(conn._session, vm_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_2ad75dc2","line":1736,"range":{"start_line":1736,"start_character":7,"end_line":1736,"end_character":65},"in_reply_to":"ba2be162_ce59b790","updated":"2017-05-29 08:55:28.000000000","message":"Done","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1760,"context_line":"            \u0027.VDI_resize_online\u0027, fake_vdi_resize)"},{"line_number":1761,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vmops.VMOps._start\u0027, fake_vm_start)"},{"line_number":1762,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vmops.VMOps.finish_revert_migration\u0027,"},{"line_number":1763,"context_line":"                       fake_finish_revert_migration)"},{"line_number":1764,"context_line":"        stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests,"},{"line_number":1765,"context_line":"                              product_version\u003d(4, 0, 0),"},{"line_number":1766,"context_line":"                              product_brand\u003d\u0027XenServer\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_0e54af52","line":1763,"range":{"start_line":1763,"start_character":22,"end_line":1763,"end_character":23},"updated":"2017-02-28 14:20:21.000000000","message":"extra whitespace","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1760,"context_line":"            \u0027.VDI_resize_online\u0027, fake_vdi_resize)"},{"line_number":1761,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vmops.VMOps._start\u0027, fake_vm_start)"},{"line_number":1762,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vmops.VMOps.finish_revert_migration\u0027,"},{"line_number":1763,"context_line":"                       fake_finish_revert_migration)"},{"line_number":1764,"context_line":"        stubs.stubout_session(self.stubs, stubs.FakeSessionForVMTests,"},{"line_number":1765,"context_line":"                              product_version\u003d(4, 0, 0),"},{"line_number":1766,"context_line":"                              product_brand\u003d\u0027XenServer\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_4ada91e9","line":1763,"range":{"start_line":1763,"start_character":22,"end_line":1763,"end_character":23},"in_reply_to":"ba2be162_0e54af52","updated":"2017-05-29 08:55:28.000000000","message":"Done","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1877,"context_line":"        def fake_get_partitions(partition):"},{"line_number":1878,"context_line":"            return [(1, 2, 3, 4, \"\", \"\"), (1, 2, 3, 4, \"\", \"\")]"},{"line_number":1879,"context_line":""},{"line_number":1880,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vm_utils._get_partitions\u0027,"},{"line_number":1881,"context_line":"                      fake_get_partitions)"},{"line_number":1882,"context_line":""},{"line_number":1883,"context_line":"        self.assertRaises(exception.InstanceFaultRollback,"},{"line_number":1884,"context_line":"                          conn.migrate_disk_and_power_off,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_6e4b6bb1","line":1881,"range":{"start_line":1880,"start_character":7,"end_line":1881,"end_character":42},"updated":"2017-02-28 14:20:21.000000000","message":"This could be moved to a decorator with a \u0027return_value\u0027 argument","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1877,"context_line":"        def fake_get_partitions(partition):"},{"line_number":1878,"context_line":"            return [(1, 2, 3, 4, \"\", \"\"), (1, 2, 3, 4, \"\", \"\")]"},{"line_number":1879,"context_line":""},{"line_number":1880,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vm_utils._get_partitions\u0027,"},{"line_number":1881,"context_line":"                      fake_get_partitions)"},{"line_number":1882,"context_line":""},{"line_number":1883,"context_line":"        self.assertRaises(exception.InstanceFaultRollback,"},{"line_number":1884,"context_line":"                          conn.migrate_disk_and_power_off,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_eaf9654d","line":1881,"range":{"start_line":1880,"start_character":7,"end_line":1881,"end_character":42},"in_reply_to":"ba2be162_6e4b6bb1","updated":"2017-05-29 08:55:28.000000000","message":"Actually, let\u0027s leave this as is","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1895,"context_line":"        def fake_get_partitions(partition):"},{"line_number":1896,"context_line":"            return [(1, 2, 3, \"ext2\", \"\", \"boot\")]"},{"line_number":1897,"context_line":""},{"line_number":1898,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vm_utils._get_partitions\u0027,"},{"line_number":1899,"context_line":"                      fake_get_partitions)"},{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"        self.assertRaises(exception.InstanceFaultRollback,"},{"line_number":1902,"context_line":"                          conn.migrate_disk_and_power_off,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_ced0d7cc","line":1899,"range":{"start_line":1898,"start_character":8,"end_line":1899,"end_character":42},"updated":"2017-02-28 14:20:21.000000000","message":"Decorator","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1895,"context_line":"        def fake_get_partitions(partition):"},{"line_number":1896,"context_line":"            return [(1, 2, 3, \"ext2\", \"\", \"boot\")]"},{"line_number":1897,"context_line":""},{"line_number":1898,"context_line":"        self.stub_out(\u0027nova.virt.xenapi.vm_utils._get_partitions\u0027,"},{"line_number":1899,"context_line":"                      fake_get_partitions)"},{"line_number":1900,"context_line":""},{"line_number":1901,"context_line":"        self.assertRaises(exception.InstanceFaultRollback,"},{"line_number":1902,"context_line":"                          conn.migrate_disk_and_power_off,"}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_ca9461eb","line":1899,"range":{"start_line":1898,"start_character":8,"end_line":1899,"end_character":42},"in_reply_to":"ba2be162_ced0d7cc","updated":"2017-05-29 08:55:28.000000000","message":"Ditto","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"52d71d86a4836c76e6f97384623c505e07b76a8e","unresolved":false,"context_lines":[{"line_number":1935,"context_line":"        new_vdi_ref \u003d \"new_ref\""},{"line_number":1936,"context_line":"        new_vdi_uuid \u003d \"new_uuid\""},{"line_number":1937,"context_line":"        mock_disk.return_value \u003d (new_vdi_ref, new_vdi_uuid)"},{"line_number":1938,"context_line":"        mock_migrate.side_effect \u003d exception.ResizeError(reason\u003d\"asdf\")"},{"line_number":1939,"context_line":"        vm_utils.destroy_vdi(vmops._session, new_vdi_ref)"},{"line_number":1940,"context_line":"        vmops._restore_orig_vm_and_cleanup_orphan(instance)"},{"line_number":1941,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba2be162_6ee28ba1","line":1938,"range":{"start_line":1938,"start_character":7,"end_line":1938,"end_character":71},"updated":"2017-02-28 14:20:21.000000000","message":"I guess you could move this into the decorator?","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"27056fcada31802b5efb93af6d5aad21366e8b11","unresolved":false,"context_lines":[{"line_number":1935,"context_line":"        new_vdi_ref \u003d \"new_ref\""},{"line_number":1936,"context_line":"        new_vdi_uuid \u003d \"new_uuid\""},{"line_number":1937,"context_line":"        mock_disk.return_value \u003d (new_vdi_ref, new_vdi_uuid)"},{"line_number":1938,"context_line":"        mock_migrate.side_effect \u003d exception.ResizeError(reason\u003d\"asdf\")"},{"line_number":1939,"context_line":"        vm_utils.destroy_vdi(vmops._session, new_vdi_ref)"},{"line_number":1940,"context_line":"        vmops._restore_orig_vm_and_cleanup_orphan(instance)"},{"line_number":1941,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"df140735_eae04599","line":1938,"range":{"start_line":1938,"start_character":7,"end_line":1938,"end_character":71},"in_reply_to":"ba2be162_6ee28ba1","updated":"2017-05-29 08:55:28.000000000","message":"Actually, John prefers this style so meh","commit_id":"b562e24b0a19742c0835f6e54e7ea79d3b992785"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"542dbec4a6338d652dc9221bc933fc0a7d502769","unresolved":false,"context_lines":[{"line_number":1970,"context_line":""},{"line_number":1971,"context_line":"        vmops._resize_ensure_vm_is_shutdown(fake_instance, \"ref\")"},{"line_number":1972,"context_line":"        mock_shutdown.assert_called_once_with(vmops._session, \"ref\")"},{"line_number":1973,"context_line":"        mock_clean.assert_called_once_with(vmops._session, fake_instance,"},{"line_number":1974,"context_line":"                                           \"ref\")"},{"line_number":1975,"context_line":""},{"line_number":1976,"context_line":"    @mock.patch.object(vm_utils, \u0027is_vm_shutdown\u0027)"},{"line_number":1977,"context_line":"    @mock.patch.object(vm_utils, \u0027clean_shutdown_vm\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_1c6623ef","line":1974,"range":{"start_line":1973,"start_character":0,"end_line":1974,"end_character":49},"updated":"2017-05-29 12:03:17.000000000","message":"we should check mock_hard gets called in this case.","commit_id":"c341943aa9d1e6f8ec49f984f4496d9bcf019717"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"542dbec4a6338d652dc9221bc933fc0a7d502769","unresolved":false,"context_lines":[{"line_number":2027,"context_line":"        mock_shutdown.return_value \u003d True"},{"line_number":2028,"context_line":""},{"line_number":2029,"context_line":"        vmops._resize_ensure_vm_is_shutdown(fake_instance, \"ref\")"},{"line_number":2030,"context_line":"        mock_shutdown.assert_called_once_with(vmops._session, \"ref\")"},{"line_number":2031,"context_line":""},{"line_number":2032,"context_line":""},{"line_number":2033,"context_line":"class XenAPIImageTypeTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df140735_7ca4ff08","line":2030,"range":{"start_line":2030,"start_character":0,"end_line":2030,"end_character":68},"updated":"2017-05-29 12:03:17.000000000","message":"we should check  mock_hard and mock_clean not being called.","commit_id":"c341943aa9d1e6f8ec49f984f4496d9bcf019717"}]}
