)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"95d8113e06dd2d58db51198c315f77383c5dcc0b","unresolved":false,"context_lines":[{"line_number":4354,"context_line":"        if migrate_data:"},{"line_number":4355,"context_line":"            is_volume_backed \u003d migrate_data.get(\u0027is_volume_backed\u0027, False)"},{"line_number":4356,"context_line":"            is_shared_storage \u003d migrate_data.get(\u0027is_shared_storage\u0027, True)"},{"line_number":4357,"context_line":"        if block_migration or (is_volume_backed and not is_shared_storage):"},{"line_number":4358,"context_line":"            self.compute_rpcapi.rollback_live_migration_at_destination(context,"},{"line_number":4359,"context_line":"                    instance, dest)"},{"line_number":4360,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2FynM%3D","line":4357,"updated":"2014-01-08 12:38:11.000000000","message":"@Chris it is called from here, after a failure in the driver.live_migrate method.","commit_id":"df73306b2b419e456f79338e3082825b8d80c2d0"}],"nova/tests/virt/vmwareapi/test_vmwareapi.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2b9a9384150edf29dbdcb96daa31019c9e3ebf18","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"        # currently there are 2 data stores"},{"line_number":1359,"context_line":"        self.assertEqual(2, len(vmops._datastore_dc_mapping))"},{"line_number":1360,"context_line":""},{"line_number":1361,"context_line":"    def test_rollback_live_migration_at_destination(self):"},{"line_number":1362,"context_line":"        with mock.patch.object(self.conn, \"destroy\") as mock_destroy:"},{"line_number":1363,"context_line":"            self.conn.rollback_live_migration_at_destination(self.context,"},{"line_number":1364,"context_line":"                    \"instance\", [], None)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FyXk%3D","line":1361,"updated":"2014-01-08 13:26:35.000000000","message":"this needs to be tested for both drivers at the moment it is just with the VC and not the ESX","commit_id":"aa7987dae3b7bfbabd1e2eb77dfa1da55b86ad46"}],"nova/virt/driver.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"0518d69020318a4663a937ec6d6ba1ced8fcfdeb","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        \"\"\"Clean up destination node after a failed live migration."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        :params ctxt: security context"},{"line_number":536,"context_line":"        :params instance_ref:"},{"line_number":537,"context_line":"            nova.db.sqlalchemy.models.Instance object"},{"line_number":538,"context_line":"            instance object that is migrated."},{"line_number":539,"context_line":"        :param network_info: instance network information"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2FrfU%3D","line":536,"updated":"2014-01-03 16:21:17.000000000","message":"I think it\u0027s actually a a nova.objects instance","commit_id":"df73306b2b419e456f79338e3082825b8d80c2d0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"95d8113e06dd2d58db51198c315f77383c5dcc0b","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        \"\"\"Clean up destination node after a failed live migration."},{"line_number":534,"context_line":""},{"line_number":535,"context_line":"        :params ctxt: security context"},{"line_number":536,"context_line":"        :params instance_ref:"},{"line_number":537,"context_line":"            nova.db.sqlalchemy.models.Instance object"},{"line_number":538,"context_line":"            instance object that is migrated."},{"line_number":539,"context_line":"        :param network_info: instance network information"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fyow%3D","line":536,"in_reply_to":"AAAAT3%2F%2FrfU%3D","updated":"2014-01-08 12:38:11.000000000","message":"Sorry, thats probably true, bad cut and paste.","commit_id":"df73306b2b419e456f79338e3082825b8d80c2d0"}],"nova/virt/vmwareapi/driver.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"2b9a9384150edf29dbdcb96daa31019c9e3ebf18","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                   post_method, recover_method,"},{"line_number":464,"context_line":"                                   block_migration)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def rollback_live_migration_at_destination(self, context, instance,"},{"line_number":467,"context_line":"                                               network_info,"},{"line_number":468,"context_line":"                                               block_device_info):"},{"line_number":469,"context_line":"        \"\"\"Clean up destination node after a failed live migration.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FyX8%3D","line":466,"updated":"2014-01-08 13:26:35.000000000","message":"why is this not implemented in the ESX driver?\nThere are 2 drivers here VMwareVCDriver and VMwareESXDriver. Ideally the method can just be added to the latter","commit_id":"aa7987dae3b7bfbabd1e2eb77dfa1da55b86ad46"},{"author":{"_account_id":7629,"name":"Shawn Hartsock","email":"hartsock@acm.org","username":"hartsocks"},"change_message_id":"da888310e863b52b62a49d96543ae834f69321fb","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                   post_method, recover_method,"},{"line_number":464,"context_line":"                                   block_migration)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def rollback_live_migration_at_destination(self, context, instance,"},{"line_number":467,"context_line":"                                               network_info,"},{"line_number":468,"context_line":"                                               block_device_info):"},{"line_number":469,"context_line":"        \"\"\"Clean up destination node after a failed live migration.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Fv64%3D","line":466,"in_reply_to":"AAAAUH%2F%2Fw9E%3D","updated":"2014-01-08 22:32:11.000000000","message":"This looks correct to me.\n\nThe ESX driver just leaves all this unimplemented there\u0027s not much else you could do.","commit_id":"aa7987dae3b7bfbabd1e2eb77dfa1da55b86ad46"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"48dec5bb885049dea89464cd42dd064915f5760b","unresolved":false,"context_lines":[{"line_number":463,"context_line":"                                   post_method, recover_method,"},{"line_number":464,"context_line":"                                   block_migration)"},{"line_number":465,"context_line":""},{"line_number":466,"context_line":"    def rollback_live_migration_at_destination(self, context, instance,"},{"line_number":467,"context_line":"                                               network_info,"},{"line_number":468,"context_line":"                                               block_device_info):"},{"line_number":469,"context_line":"        \"\"\"Clean up destination node after a failed live migration.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2Fw9E%3D","line":466,"in_reply_to":"AAAAUH%2F%2FyX8%3D","updated":"2014-01-08 18:24:45.000000000","message":"But the ESX driver simply doesn\u0027t implement any of the live-migrate stuff, so it just inherits from the base class as before. That seemed the best thing.","commit_id":"aa7987dae3b7bfbabd1e2eb77dfa1da55b86ad46"}],"nova/virt/xenapi/driver.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"0518d69020318a4663a937ec6d6ba1ced8fcfdeb","unresolved":false,"context_lines":[{"line_number":550,"context_line":"    def rollback_live_migration_at_destination(self, context, instance,"},{"line_number":551,"context_line":"                                               network_info,"},{"line_number":552,"context_line":"                                               block_device_info):"},{"line_number":553,"context_line":"        # NOTE(johngarbutt) Destroying the VM is not appropriate here"},{"line_number":554,"context_line":"        # and in the cases where it might make sense,"},{"line_number":555,"context_line":"        # XenServer has already done it."},{"line_number":556,"context_line":"        # TODO(johngarbutt) investigate if any cleanup is required here"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAT3%2F%2Frek%3D","line":553,"updated":"2014-01-03 16:21:17.000000000","message":"Are there different cases?  My understanding was that live migrate will either succeed or xenserver will not leave a VM at the destination?","commit_id":"df73306b2b419e456f79338e3082825b8d80c2d0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"95d8113e06dd2d58db51198c315f77383c5dcc0b","unresolved":false,"context_lines":[{"line_number":550,"context_line":"    def rollback_live_migration_at_destination(self, context, instance,"},{"line_number":551,"context_line":"                                               network_info,"},{"line_number":552,"context_line":"                                               block_device_info):"},{"line_number":553,"context_line":"        # NOTE(johngarbutt) Destroying the VM is not appropriate here"},{"line_number":554,"context_line":"        # and in the cases where it might make sense,"},{"line_number":555,"context_line":"        # XenServer has already done it."},{"line_number":556,"context_line":"        # TODO(johngarbutt) investigate if any cleanup is required here"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fynk%3D","line":553,"in_reply_to":"AAAAT3%2F%2Frek%3D","updated":"2014-01-08 12:38:11.000000000","message":"You are correct, but there can be an error in the nova code that runs after xenserver live-migrate has completed, but before we have done things like refresh security groups rules.\n\nIn that case we end up deleting the customer VM, that has reached the destination and been deleted at the source.","commit_id":"df73306b2b419e456f79338e3082825b8d80c2d0"}]}
