)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"539be76db68901f829297125f1986b3fe67240f6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"is being called on live-migration failure for Hyper-V compute nodes,"},{"line_number":16,"context_line":"which will clean up the Planned VM."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Depends-On: I91636a82b057f566eab9887c422911163668f556"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I4d61325793ed559dede408813ebda5aed2b0f110"},{"line_number":21,"context_line":"Closes-Bug: #1604078"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"3f79a3b5_5c0a9f1f","line":18,"range":{"start_line":18,"start_character":12,"end_line":18,"end_character":53},"updated":"2018-08-16 07:36:57.000000000","message":"OK this was released in 2.1.0 and we require at least 3.0.0 in lower-constraints so this is OK.","commit_id":"deb21af3e2dd961b013594fddf57fe9986d8d907"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"9bbab6f01889ac6b29d84dda11e1b2582bc5afad","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Claudiu Belu \u003ccbelu@cloudbasesolutions.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-08-13 13:28:38 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"hyperv: Cleans up live migration Planned VM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an instance having iSCSI volumes attached is being"},{"line_number":10,"context_line":"live-migrated, a Planned VM is created at the destination."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3f79a3b5_78bd20b5","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":1},"updated":"2018-08-16 13:15:30.000000000","message":"The first letter is best in uppercase.","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a0ea872924eb12ce0c2d9453f8a36737e1c76942","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Claudiu Belu \u003ccbelu@cloudbasesolutions.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-08-13 13:28:38 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"hyperv: Cleans up live migration Planned VM"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"If an instance having iSCSI volumes attached is being"},{"line_number":10,"context_line":"live-migrated, a Planned VM is created at the destination."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"3f79a3b5_392440c6","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":1},"in_reply_to":"3f79a3b5_78bd20b5","updated":"2018-08-20 19:04:17.000000000","message":"This is OK.","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"539be76db68901f829297125f1986b3fe67240f6","unresolved":false,"context_lines":[{"line_number":6166,"context_line":"        destroy_disks \u003d False"},{"line_number":6167,"context_line":"        if isinstance(migrate_data, migrate_data_obj.LibvirtLiveMigrateData):"},{"line_number":6168,"context_line":"            # No instance booting at source host, but instance dir"},{"line_number":6169,"context_line":"            # must be deleted for preparing next block migration"},{"line_number":6170,"context_line":"            # must be deleted for preparing next live migration w/o shared"},{"line_number":6171,"context_line":"            # storage"},{"line_number":6172,"context_line":"            do_cleanup \u003d not migrate_data.is_shared_instance_path"},{"line_number":6173,"context_line":"            destroy_disks \u003d not migrate_data.is_shared_block_storage"},{"line_number":6174,"context_line":"        elif isinstance(migrate_data, migrate_data_obj.XenapiLiveMigrateData):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_1c10a74d","line":6171,"range":{"start_line":6169,"start_character":12,"end_line":6171,"end_character":21},"updated":"2018-08-16 07:36:57.000000000","message":"typo?","commit_id":"deb21af3e2dd961b013594fddf57fe9986d8d907"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"724a629d94d0491e5d589d137017def0f66185c7","unresolved":false,"context_lines":[{"line_number":6166,"context_line":"        destroy_disks \u003d False"},{"line_number":6167,"context_line":"        if isinstance(migrate_data, migrate_data_obj.LibvirtLiveMigrateData):"},{"line_number":6168,"context_line":"            # No instance booting at source host, but instance dir"},{"line_number":6169,"context_line":"            # must be deleted for preparing next block migration"},{"line_number":6170,"context_line":"            # must be deleted for preparing next live migration w/o shared"},{"line_number":6171,"context_line":"            # storage"},{"line_number":6172,"context_line":"            do_cleanup \u003d not migrate_data.is_shared_instance_path"},{"line_number":6173,"context_line":"            destroy_disks \u003d not migrate_data.is_shared_block_storage"},{"line_number":6174,"context_line":"        elif isinstance(migrate_data, migrate_data_obj.XenapiLiveMigrateData):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_7f2d0a93","line":6171,"range":{"start_line":6169,"start_character":12,"end_line":6171,"end_character":21},"in_reply_to":"3f79a3b5_1c10a74d","updated":"2018-08-16 10:42:33.000000000","message":"this is the same text from L6177-6179, didn\u0027t change it.","commit_id":"deb21af3e2dd961b013594fddf57fe9986d8d907"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"b72e4677fd8919b23b9bb5bf941837b9a09b3946","unresolved":false,"context_lines":[{"line_number":6517,"context_line":"        destroy_disks \u003d False"},{"line_number":6518,"context_line":"        if isinstance(migrate_data, migrate_data_obj.LibvirtLiveMigrateData):"},{"line_number":6519,"context_line":"            # No instance booting at source host, but instance dir"},{"line_number":6520,"context_line":"            # must be deleted for preparing next block migration"},{"line_number":6521,"context_line":"            # must be deleted for preparing next live migration w/o shared"},{"line_number":6522,"context_line":"            # storage"},{"line_number":6523,"context_line":"            do_cleanup \u003d not migrate_data.is_shared_instance_path"},{"line_number":6524,"context_line":"            destroy_disks \u003d not migrate_data.is_shared_block_storage"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_5d60fd0d","line":6521,"range":{"start_line":6520,"start_character":0,"end_line":6521,"end_character":74},"updated":"2018-09-13 16:03:42.000000000","message":"This reads weirdly. Is there a conjunction missing?","commit_id":"70296431908208375677ae428a147f312b60e1ad"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"12f664d4b8636d8b54bc931445f193bbfb673173","unresolved":false,"context_lines":[{"line_number":6393,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6394,"context_line":"            migrate_data)"},{"line_number":6395,"context_line":"        self.assertFalse(cleanup)"},{"line_number":6396,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6397,"context_line":""},{"line_number":6398,"context_line":"    def test_live_migration_cleanup_flags_xenapi(self):"},{"line_number":6399,"context_line":"        migrate_data \u003d objects.XenapiLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_2872a84a","line":6396,"updated":"2018-08-20 22:21:04.000000000","message":"This test looks identical to:\n\nhttps://review.openstack.org/#/c/478943/11/nova/tests/unit/compute/test_compute_mgr.py@8288","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a2be81d8ad1e3e2931a3f0a29613b35943b97d2a","unresolved":false,"context_lines":[{"line_number":6393,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6394,"context_line":"            migrate_data)"},{"line_number":6395,"context_line":"        self.assertFalse(cleanup)"},{"line_number":6396,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6397,"context_line":""},{"line_number":6398,"context_line":"    def test_live_migration_cleanup_flags_xenapi(self):"},{"line_number":6399,"context_line":"        migrate_data \u003d objects.XenapiLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_75cd69b5","line":6396,"in_reply_to":"3f79a3b5_2872a84a","updated":"2018-08-24 10:39:32.000000000","message":"Done","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"12f664d4b8636d8b54bc931445f193bbfb673173","unresolved":false,"context_lines":[{"line_number":6402,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6403,"context_line":"            migrate_data)"},{"line_number":6404,"context_line":"        self.assertTrue(cleanup)"},{"line_number":6405,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6406,"context_line":""},{"line_number":6407,"context_line":"    def test_live_migration_cleanup_flags_hyperv(self):"},{"line_number":6408,"context_line":"        migrate_data \u003d objects.HyperVLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_88989c6a","line":6405,"updated":"2018-08-20 22:21:04.000000000","message":"This test looks identical to:\n\nhttps://review.openstack.org/#/c/478943/11/nova/tests/unit/compute/test_compute_mgr.py@8306","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a2be81d8ad1e3e2931a3f0a29613b35943b97d2a","unresolved":false,"context_lines":[{"line_number":6402,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6403,"context_line":"            migrate_data)"},{"line_number":6404,"context_line":"        self.assertTrue(cleanup)"},{"line_number":6405,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6406,"context_line":""},{"line_number":6407,"context_line":"    def test_live_migration_cleanup_flags_hyperv(self):"},{"line_number":6408,"context_line":"        migrate_data \u003d objects.HyperVLiveMigrateData("}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_f5b89911","line":6405,"in_reply_to":"3f79a3b5_88989c6a","updated":"2018-08-24 10:39:32.000000000","message":"Done","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"12f664d4b8636d8b54bc931445f193bbfb673173","unresolved":false,"context_lines":[{"line_number":6411,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6412,"context_line":"            migrate_data)"},{"line_number":6413,"context_line":"        self.assertTrue(cleanup)"},{"line_number":6414,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6415,"context_line":""},{"line_number":6416,"context_line":"    def test_live_migration_cleanup_flags_other(self):"},{"line_number":6417,"context_line":"        migrate_data \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_28a708aa","line":6414,"updated":"2018-08-20 22:21:04.000000000","message":"This test looks identical to:\n\nhttps://review.openstack.org/#/c/478943/11/nova/tests/unit/compute/test_compute_mgr.py@8326","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a2be81d8ad1e3e2931a3f0a29613b35943b97d2a","unresolved":false,"context_lines":[{"line_number":6411,"context_line":"        cleanup, destroy_disks \u003d self.compute._live_migration_cleanup_flags("},{"line_number":6412,"context_line":"            migrate_data)"},{"line_number":6413,"context_line":"        self.assertTrue(cleanup)"},{"line_number":6414,"context_line":"        self.assertTrue(destroy_disks)"},{"line_number":6415,"context_line":""},{"line_number":6416,"context_line":"    def test_live_migration_cleanup_flags_other(self):"},{"line_number":6417,"context_line":"        migrate_data \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_9537e5b0","line":6414,"in_reply_to":"3f79a3b5_28a708aa","updated":"2018-08-24 10:39:32.000000000","message":"Done","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"12f664d4b8636d8b54bc931445f193bbfb673173","unresolved":false,"context_lines":[{"line_number":6420,"context_line":"            migrate_data)"},{"line_number":6421,"context_line":"        self.assertFalse(cleanup)"},{"line_number":6422,"context_line":"        self.assertFalse(destroy_disks)"},{"line_number":6423,"context_line":""},{"line_number":6424,"context_line":"    @mock.patch.object(fake.FakeDriver, \u0027unfilter_instance\u0027)"},{"line_number":6425,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI,"},{"line_number":6426,"context_line":"                       \u0027post_live_migration_at_destination\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_e83030a1","line":6423,"updated":"2018-08-20 22:21:04.000000000","message":"Why are these tests added to this file? The first three look like dupes from nova/tests/unit/compute/test_compute_mgr.py, and the new test test_live_migration_cleanup_flags_other looks like it should be added to nova/tests/unit/compute/test_compute_mgr.py alongside the other test_live_migration_cleanup_flags* tests.","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"a2be81d8ad1e3e2931a3f0a29613b35943b97d2a","unresolved":false,"context_lines":[{"line_number":6420,"context_line":"            migrate_data)"},{"line_number":6421,"context_line":"        self.assertFalse(cleanup)"},{"line_number":6422,"context_line":"        self.assertFalse(destroy_disks)"},{"line_number":6423,"context_line":""},{"line_number":6424,"context_line":"    @mock.patch.object(fake.FakeDriver, \u0027unfilter_instance\u0027)"},{"line_number":6425,"context_line":"    @mock.patch.object(compute_rpcapi.ComputeAPI,"},{"line_number":6426,"context_line":"                       \u0027post_live_migration_at_destination\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f79a3b5_956045a7","line":6423,"in_reply_to":"3f79a3b5_e83030a1","updated":"2018-08-24 10:39:32.000000000","message":"Done","commit_id":"16c2a747abdc3f924d2ae77f28a5849a464e91f2"}],"nova/virt/hyperv/vmops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"539be76db68901f829297125f1986b3fe67240f6","unresolved":false,"context_lines":[{"line_number":720,"context_line":"                self.power_off(instance)"},{"line_number":721,"context_line":"                self._vmutils.destroy_vm(instance_name)"},{"line_number":722,"context_line":"            elif self._migrutils.planned_vm_exists(instance_name):"},{"line_number":723,"context_line":"                self._migrutils.destroy_planned_vm(instance_name)"},{"line_number":724,"context_line":"            else:"},{"line_number":725,"context_line":"                LOG.debug(\"Instance not found\", instance\u003dinstance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_1c3987d5","line":723,"range":{"start_line":723,"start_character":32,"end_line":723,"end_character":50},"updated":"2018-08-16 07:36:57.000000000","message":"destroy_existing_planned_vm?\n\nhttps://review.openstack.org/#/c/478572/6/os_win/utils/compute/migrationutils.py","commit_id":"deb21af3e2dd961b013594fddf57fe9986d8d907"},{"author":{"_account_id":8213,"name":"Claudiu Belu","email":"cbelu@cloudbasesolutions.com","username":"claudiub"},"change_message_id":"724a629d94d0491e5d589d137017def0f66185c7","unresolved":false,"context_lines":[{"line_number":720,"context_line":"                self.power_off(instance)"},{"line_number":721,"context_line":"                self._vmutils.destroy_vm(instance_name)"},{"line_number":722,"context_line":"            elif self._migrutils.planned_vm_exists(instance_name):"},{"line_number":723,"context_line":"                self._migrutils.destroy_planned_vm(instance_name)"},{"line_number":724,"context_line":"            else:"},{"line_number":725,"context_line":"                LOG.debug(\"Instance not found\", instance\u003dinstance)"},{"line_number":726,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"3f79a3b5_3f7f9266","line":723,"range":{"start_line":723,"start_character":32,"end_line":723,"end_character":50},"in_reply_to":"3f79a3b5_1c3987d5","updated":"2018-08-16 10:42:33.000000000","message":"ack.","commit_id":"deb21af3e2dd961b013594fddf57fe9986d8d907"}]}
