)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"280ec00b005314419392667837971091a3c41ff8","unresolved":false,"context_lines":[{"line_number":5253,"context_line":"        if not self.compute_rpcapi.supports_new_live_migration_workflow("},{"line_number":5254,"context_line":"                context):"},{"line_number":5255,"context_line":"            try:"},{"line_number":5256,"context_line":"                block_device_info \u003d self._get_instance_block_device_info("},{"line_number":5257,"context_line":"                     context, instance)"},{"line_number":5258,"context_line":"                disk \u003d self._get_disk_info_for_block_migration("},{"line_number":5259,"context_line":"                    instance, migrate_data, block_device_info)"},{"line_number":5260,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"dada55a8_b72c0f03","line":5257,"range":{"start_line":5256,"start_character":16,"end_line":5257,"end_character":39},"updated":"2016-07-20 18:22:37.000000000","message":"This is only used in case of block migration, so I think it should be moved inside _get_disk_info_for_block_migration method. Right now this code is doing unnecessary DB calls when block_migration\u003dFalse.","commit_id":"59440475c3c29522054afa9af3e2772bbed69d75"}],"nova/objects/migrate_data.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"280ec00b005314419392667837971091a3c41ff8","unresolved":false,"context_lines":[{"line_number":27,"context_line":"@obj_base.NovaObjectRegistry.register_if(False)"},{"line_number":28,"context_line":"class LiveMigrateData(obj_base.NovaObject):"},{"line_number":29,"context_line":"    # Version 1.0: Initial version"},{"line_number":30,"context_line":"    # Version 1.1: Added block_migration and disk_info"},{"line_number":31,"context_line":"    VERSION \u003d \u00271.1\u0027"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    fields \u003d {"}],"source_content_type":"text/x-python","patch_set":24,"id":"dada55a8_4a124b58","line":30,"range":{"start_line":30,"start_character":4,"end_line":30,"end_character":54},"updated":"2016-07-20 18:22:37.000000000","message":"I have a feeling that this should be a separate patch. I think that we can move those two flags to base object without breaking anything, and then move forward with calling pre_live_migrate from conductor.","commit_id":"59440475c3c29522054afa9af3e2772bbed69d75"}],"nova/tests/unit/conductor/tasks/test_live_migrate.py":[{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"280ec00b005314419392667837971091a3c41ff8","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        self.mox.ReplayAll()"},{"line_number":85,"context_line":"        self.assertEqual(\"bob\", self.task.execute())"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    def test_execute_with_destination(self):"},{"line_number":88,"context_line":"        self.task.migrate_data \u003d objects.LibvirtLiveMigrateData()"},{"line_number":89,"context_line":"        self.task.migrate_data.disk_info \u003d None"},{"line_number":90,"context_line":"        self.mox.StubOutWithMock(self.task, \u0027_check_host_is_up\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"dada55a8_578b1368","line":87,"updated":"2016-07-20 18:22:37.000000000","message":"Can you write new tests using mock instead of mox? It should be simple enough as there are only basic stub outs, it would also help folks that are working on removing mox completely from nova.","commit_id":"59440475c3c29522054afa9af3e2772bbed69d75"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"280ec00b005314419392667837971091a3c41ff8","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.mox.ReplayAll()"},{"line_number":137,"context_line":"        self.assertRaises(test.TestingException, self.task.execute)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_pre_live_migration_fails_without_destionation(self):"},{"line_number":140,"context_line":"        self.destination \u003d None"},{"line_number":141,"context_line":"        self._generate_task()"},{"line_number":142,"context_line":"        self.task.migrate_data \u003d objects.LibvirtLiveMigrateData()"}],"source_content_type":"text/x-python","patch_set":24,"id":"dada55a8_d7cc23bd","line":139,"updated":"2016-07-20 18:22:37.000000000","message":"ditto","commit_id":"59440475c3c29522054afa9af3e2772bbed69d75"},{"author":{"_account_id":12299,"name":"Paweł Koniszewski","email":"pawel.koniszewski@gmail.com","username":"pawel.koniszewski"},"change_message_id":"280ec00b005314419392667837971091a3c41ff8","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            self.assertTrue(mock_save.called)"},{"line_number":196,"context_line":"            self.assertEqual(\u0027found_host\u0027, self.migration.dest_compute)"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_execute_without_destination(self):"},{"line_number":199,"context_line":"        self.destination \u003d None"},{"line_number":200,"context_line":"        self._generate_task()"},{"line_number":201,"context_line":"        self.task.migrate_data \u003d objects.LibvirtLiveMigrateData()"}],"source_content_type":"text/x-python","patch_set":24,"id":"dada55a8_973d8b91","line":198,"updated":"2016-07-20 18:22:37.000000000","message":"ditto","commit_id":"59440475c3c29522054afa9af3e2772bbed69d75"}]}
