)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"b2724d788b9e78ebf4e2e35f8e6b6458c095c786","unresolved":false,"context_lines":[{"line_number":4085,"context_line":"                    ctxt, instance, migration)"},{"line_number":4086,"context_line":"        do_revert()"},{"line_number":4087,"context_line":""},{"line_number":4088,"context_line":"    def _revert_snapshot_based_resize_at_source("},{"line_number":4089,"context_line":"            self, ctxt, instance, migration):"},{"line_number":4090,"context_line":"        \"\"\"Private version of revert_snapshot_based_resize_at_dest."},{"line_number":4091,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_3825685d","line":4088,"range":{"start_line":4088,"start_character":37,"end_line":4088,"end_character":47},"updated":"2019-02-18 21:32:07.000000000","message":"at_dest","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b7615db0a83e9289875c8e5670e14dc45839f4a","unresolved":false,"context_lines":[{"line_number":4085,"context_line":"                    ctxt, instance, migration)"},{"line_number":4086,"context_line":"        do_revert()"},{"line_number":4087,"context_line":""},{"line_number":4088,"context_line":"    def _revert_snapshot_based_resize_at_source("},{"line_number":4089,"context_line":"            self, ctxt, instance, migration):"},{"line_number":4090,"context_line":"        \"\"\"Private version of revert_snapshot_based_resize_at_dest."},{"line_number":4091,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_5bb866e4","line":4088,"range":{"start_line":4088,"start_character":37,"end_line":4088,"end_character":47},"in_reply_to":"9fdfeff1_3825685d","updated":"2019-02-18 22:53:47.000000000","message":"Done","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3a724c9d1b5cb1b0e4d08a0e378731dda7c5dff","unresolved":false,"context_lines":[{"line_number":4130,"context_line":"        self.rt.drop_move_claim(ctxt, instance, instance.node,"},{"line_number":4131,"context_line":"                                instance_type\u003dinstance.new_flavor)"},{"line_number":4132,"context_line":""},{"line_number":4133,"context_line":"        migration.status \u003d \u0027reverted\u0027"},{"line_number":4134,"context_line":"        migration.save()"},{"line_number":4135,"context_line":""},{"line_number":4136,"context_line":"    def _delete_volume_attachments(self, ctxt, bdms):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_f847e01d","line":4133,"updated":"2019-02-18 21:24:47.000000000","message":"It\u0027s weird that this happens here when the resize is not actually fully reverted (but this is copied from revert_resize()).","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6b34e41f1ace5d4ac7ca68100794b679e9ccb333","unresolved":false,"context_lines":[{"line_number":4132,"context_line":""},{"line_number":4133,"context_line":"        migration.status \u003d \u0027reverted\u0027"},{"line_number":4134,"context_line":"        migration.save()"},{"line_number":4135,"context_line":""},{"line_number":4136,"context_line":"    def _delete_volume_attachments(self, ctxt, bdms):"},{"line_number":4137,"context_line":"        \"\"\"Deletes volume attachment records for the given bdms."},{"line_number":4138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_d828dc98","line":4135,"updated":"2019-02-18 22:17:23.000000000","message":"Should call _delete_scheduler_instance_info and clear_events_for_instance.","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b7615db0a83e9289875c8e5670e14dc45839f4a","unresolved":false,"context_lines":[{"line_number":4132,"context_line":""},{"line_number":4133,"context_line":"        migration.status \u003d \u0027reverted\u0027"},{"line_number":4134,"context_line":"        migration.save()"},{"line_number":4135,"context_line":""},{"line_number":4136,"context_line":"    def _delete_volume_attachments(self, ctxt, bdms):"},{"line_number":4137,"context_line":"        \"\"\"Deletes volume attachment records for the given bdms."},{"line_number":4138,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_1b8f3e2f","line":4135,"in_reply_to":"9fdfeff1_d828dc98","updated":"2019-02-18 22:53:47.000000000","message":"Done","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fcb0607eb3a627d712f0a29068fe42d61bbb427f","unresolved":false,"context_lines":[{"line_number":4130,"context_line":"        self.rt.drop_move_claim(ctxt, instance, instance.node,"},{"line_number":4131,"context_line":"                                instance_type\u003dinstance.new_flavor)"},{"line_number":4132,"context_line":""},{"line_number":4133,"context_line":"        migration.status \u003d \u0027reverted\u0027"},{"line_number":4134,"context_line":"        migration.save()"},{"line_number":4135,"context_line":""},{"line_number":4136,"context_line":"        # Broadcast to all schedulers that the instance is no longer on this"},{"line_number":4137,"context_line":"        # host."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_f4d7d7ed","line":4134,"range":{"start_line":4133,"start_character":8,"end_line":4134,"end_character":24},"updated":"2019-02-19 17:43:03.000000000","message":"We should probably remove this and let finish_revert_snapshot_based_resize_at_source deal with it.","commit_id":"f7e196b11ec4362ec1b055a99361c88795e3b807"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"374130c3d634bbc2e68d31ab17c1339b69619c6d","unresolved":false,"context_lines":[{"line_number":4130,"context_line":"        self.rt.drop_move_claim(ctxt, instance, instance.node,"},{"line_number":4131,"context_line":"                                instance_type\u003dinstance.new_flavor)"},{"line_number":4132,"context_line":""},{"line_number":4133,"context_line":"        migration.status \u003d \u0027reverted\u0027"},{"line_number":4134,"context_line":"        migration.save()"},{"line_number":4135,"context_line":""},{"line_number":4136,"context_line":"        # Broadcast to all schedulers that the instance is no longer on this"},{"line_number":4137,"context_line":"        # host."}],"source_content_type":"text/x-python","patch_set":2,"id":"9fdfeff1_f15da4ec","line":4134,"range":{"start_line":4133,"start_character":8,"end_line":4134,"end_character":24},"in_reply_to":"9fdfeff1_f4d7d7ed","updated":"2019-02-19 20:29:41.000000000","message":"Done","commit_id":"f7e196b11ec4362ec1b055a99361c88795e3b807"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1a698ba63b8cbce799eadf02f1e614943cb95c59","unresolved":false,"context_lines":[{"line_number":4121,"context_line":"                LOG.error(\u0027Failed to delete port bindings from target host. \u0027"},{"line_number":4122,"context_line":"                          \u0027Error: %s\u0027, six.text_type(e), instance\u003dinstance)"},{"line_number":4123,"context_line":""},{"line_number":4124,"context_line":"        # Delete any volume attachments remaining for this target host."},{"line_number":4125,"context_line":"        self._delete_volume_attachments(ctxt, bdms)"},{"line_number":4126,"context_line":""},{"line_number":4127,"context_line":"        # Free up the new_flavor usage from the resource tracker for this host."},{"line_number":4128,"context_line":"        instance.revert_migration_context()"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_7a503bd6","line":4125,"range":{"start_line":4124,"start_character":8,"end_line":4125,"end_character":51},"updated":"2019-02-25 23:48:09.000000000","message":"This is probably OK since we\u0027re going to delete these BDMs anyway when we destroy the target cell instance in conductor, but we need to create new empty attachments for the volumes in the source cell database so we can update/complete them in finish_revert_snapshot_based_resize_at_source. That would have to happen in conductor...","commit_id":"ae8ec2a10f2f37cb1e0f25810a1b97d1b864db8a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f389574b57056a3ececf914f1d202943604fab8b","unresolved":false,"context_lines":[{"line_number":4243,"context_line":"            LOG.debug(\u0027Deleting port bindings for target host.\u0027,"},{"line_number":4244,"context_line":"                      instance\u003dinstance)"},{"line_number":4245,"context_line":"            try:"},{"line_number":4246,"context_line":"                # Note that deleting the destination host port bindings does"},{"line_number":4247,"context_line":"                # not automatically activate the source host port bindings."},{"line_number":4248,"context_line":"                # That will happen in"},{"line_number":4249,"context_line":"                # finish_revert_snapshot_based_resize_at_source."},{"line_number":4250,"context_line":"                self.network_api.setup_networks_on_host("},{"line_number":4251,"context_line":"                    ctxt, instance, host\u003dself.host, teardown\u003dTrue)"},{"line_number":4252,"context_line":"            except exception.PortBindingDeletionFailed as e:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bfb3d3c7_7714174f","line":4249,"range":{"start_line":4246,"start_character":16,"end_line":4249,"end_character":64},"updated":"2019-05-21 19:50:03.000000000","message":"We need to activate the source host port binding first, like in here:\n\nhttps://review.opendev.org/#/c/594139/1/nova/network/neutronv2/api.py\n\nOtherwise when the call migrate_instance_finish on the source host it fails in neutron because the port binding:host_id update only works on the active port binding (which we just deleted):\n\nhttps://review.opendev.org/#/c/637647/24/nova/compute/manager.py@4381","commit_id":"b79bda07afe6c020192f6b33a46ff9d3658d8bee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"274e1303231b911451ac640f163055b619e16ed7","unresolved":false,"context_lines":[{"line_number":4243,"context_line":"            LOG.debug(\u0027Deleting port bindings for target host.\u0027,"},{"line_number":4244,"context_line":"                      instance\u003dinstance)"},{"line_number":4245,"context_line":"            try:"},{"line_number":4246,"context_line":"                # Note that deleting the destination host port bindings does"},{"line_number":4247,"context_line":"                # not automatically activate the source host port bindings."},{"line_number":4248,"context_line":"                # That will happen in"},{"line_number":4249,"context_line":"                # finish_revert_snapshot_based_resize_at_source."},{"line_number":4250,"context_line":"                self.network_api.setup_networks_on_host("},{"line_number":4251,"context_line":"                    ctxt, instance, host\u003dself.host, teardown\u003dTrue)"},{"line_number":4252,"context_line":"            except exception.PortBindingDeletionFailed as e:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bfb3d3c7_9265eee3","line":4249,"range":{"start_line":4246,"start_character":16,"end_line":4249,"end_character":64},"in_reply_to":"bfb3d3c7_108da17a","updated":"2019-05-23 15:27:50.000000000","message":"Yup this fixed the issue, now test_revert_cold_migration is passing in the multi-cell job:\n\nhttp://logs.openstack.org/56/656656/13/check/nova-multi-cell/02c8d8e/testr_results.html.gz","commit_id":"b79bda07afe6c020192f6b33a46ff9d3658d8bee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"180c3e3ba18b292e3917b16878f32442de7c1ba0","unresolved":false,"context_lines":[{"line_number":4243,"context_line":"            LOG.debug(\u0027Deleting port bindings for target host.\u0027,"},{"line_number":4244,"context_line":"                      instance\u003dinstance)"},{"line_number":4245,"context_line":"            try:"},{"line_number":4246,"context_line":"                # Note that deleting the destination host port bindings does"},{"line_number":4247,"context_line":"                # not automatically activate the source host port bindings."},{"line_number":4248,"context_line":"                # That will happen in"},{"line_number":4249,"context_line":"                # finish_revert_snapshot_based_resize_at_source."},{"line_number":4250,"context_line":"                self.network_api.setup_networks_on_host("},{"line_number":4251,"context_line":"                    ctxt, instance, host\u003dself.host, teardown\u003dTrue)"},{"line_number":4252,"context_line":"            except exception.PortBindingDeletionFailed as e:"}],"source_content_type":"text/x-python","patch_set":25,"id":"bfb3d3c7_108da17a","line":4249,"range":{"start_line":4246,"start_character":16,"end_line":4249,"end_character":64},"in_reply_to":"bfb3d3c7_7714174f","updated":"2019-05-21 21:50:12.000000000","message":"Done","commit_id":"b79bda07afe6c020192f6b33a46ff9d3658d8bee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f389574b57056a3ececf914f1d202943604fab8b","unresolved":false,"context_lines":[{"line_number":4256,"context_line":"                          \u0027Error: %s\u0027, six.text_type(e), instance\u003dinstance)"},{"line_number":4257,"context_line":""},{"line_number":4258,"context_line":"        # Delete any volume attachments remaining for this target host."},{"line_number":4259,"context_line":"        self._delete_volume_attachments(ctxt, bdms)"},{"line_number":4260,"context_line":""},{"line_number":4261,"context_line":"        # Free up the new_flavor usage from the resource tracker for this host."},{"line_number":4262,"context_line":"        instance.revert_migration_context()"}],"source_content_type":"text/x-python","patch_set":25,"id":"bfb3d3c7_e56db498","line":4259,"updated":"2019-05-21 19:50:03.000000000","message":"Log something for this.","commit_id":"b79bda07afe6c020192f6b33a46ff9d3658d8bee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5763ab98badaa2f79b1bf6f05ca69ed9c373f1e2","unresolved":false,"context_lines":[{"line_number":4256,"context_line":"                          \u0027Error: %s\u0027, six.text_type(e), instance\u003dinstance)"},{"line_number":4257,"context_line":""},{"line_number":4258,"context_line":"        # Delete any volume attachments remaining for this target host."},{"line_number":4259,"context_line":"        self._delete_volume_attachments(ctxt, bdms)"},{"line_number":4260,"context_line":""},{"line_number":4261,"context_line":"        # Free up the new_flavor usage from the resource tracker for this host."},{"line_number":4262,"context_line":"        instance.revert_migration_context()"}],"source_content_type":"text/x-python","patch_set":25,"id":"bfb3d3c7_6d844a0d","line":4259,"in_reply_to":"bfb3d3c7_e56db498","updated":"2019-05-21 21:15:00.000000000","message":"Done","commit_id":"b79bda07afe6c020192f6b33a46ff9d3658d8bee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30395e402e00e78796c95ffaaafa9cbfd6610b6b","unresolved":false,"context_lines":[{"line_number":4534,"context_line":"        self._delete_scheduler_instance_info(ctxt, instance.uuid)"},{"line_number":4535,"context_line":"        self.instance_events.clear_events_for_instance(instance)"},{"line_number":4536,"context_line":""},{"line_number":4537,"context_line":"    def _delete_volume_attachments(self, ctxt, bdms):"},{"line_number":4538,"context_line":"        \"\"\"Deletes volume attachment records for the given bdms."},{"line_number":4539,"context_line":""},{"line_number":4540,"context_line":"        This method will log but not re-raise any exceptions if the volume"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_62d04820","line":4537,"updated":"2019-10-31 21:19:41.000000000","message":"Should probably have done this in https://review.opendev.org/#/c/637058/ so we could just re-use it here.","commit_id":"2d1defc741e607bebe25a4242213a1976d609a99"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"29778236529d400c11d83fc880a43dec98affd1c","unresolved":false,"context_lines":[{"line_number":4534,"context_line":"        self._delete_scheduler_instance_info(ctxt, instance.uuid)"},{"line_number":4535,"context_line":"        self.instance_events.clear_events_for_instance(instance)"},{"line_number":4536,"context_line":""},{"line_number":4537,"context_line":"    def _delete_volume_attachments(self, ctxt, bdms):"},{"line_number":4538,"context_line":"        \"\"\"Deletes volume attachment records for the given bdms."},{"line_number":4539,"context_line":""},{"line_number":4540,"context_line":"        This method will log but not re-raise any exceptions if the volume"}],"source_content_type":"text/x-python","patch_set":46,"id":"3fa7e38b_426f4c5f","line":4537,"in_reply_to":"3fa7e38b_62d04820","updated":"2019-10-31 21:26:09.000000000","message":"Done","commit_id":"2d1defc741e607bebe25a4242213a1976d609a99"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2a986bb83e5560310f59d466f2a7a002e837de61","unresolved":false,"context_lines":[{"line_number":4548,"context_line":"                migration, dest_compute\u003dmigration.source_compute):"},{"line_number":4549,"context_line":"            LOG.debug(\u0027Activating port bindings for source host %s.\u0027,"},{"line_number":4550,"context_line":"                      migration.source_compute, instance\u003dinstance)"},{"line_number":4551,"context_line":"            # TODO(mriedem): https://review.opendev.org/#/c/594139/ would allow"},{"line_number":4552,"context_line":"            # us to remove this and make setup_networks_on_host do it."},{"line_number":4553,"context_line":"            # TODO(mriedem): Should we try/except/log any errors but continue?"},{"line_number":4554,"context_line":"            self.network_api.migrate_instance_start("}],"source_content_type":"text/x-python","patch_set":48,"id":"3fa7e38b_c7d80082","line":4551,"updated":"2019-11-05 15:42:42.000000000","message":"Some new thoughts here:\n\nhttps://review.opendev.org/#/c/594139/1/nova/network/neutronv2/api.py@431\n\nCould write a new method which is passed the activation host and the teardown host and does the work under the covers using the existing neutron API methods (migrate_instance_start and setup_networks_on_host) so that would deal with the necessary mutations and the caller doesn\u0027t have to care about it.","commit_id":"7a72c2da72858940763bd59ae9f108f0f52f0df2"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"6ea91b9f10a00706e377640815265aae14736e19","unresolved":false,"context_lines":[{"line_number":4667,"context_line":"            try:"},{"line_number":4668,"context_line":"                # Note that deleting the destination host port bindings does"},{"line_number":4669,"context_line":"                # not automatically activate the source host port bindings."},{"line_number":4670,"context_line":"                self.network_api.setup_networks_on_host("},{"line_number":4671,"context_line":"                    ctxt, instance, host\u003dself.host, teardown\u003dTrue)"},{"line_number":4672,"context_line":"            except exception.PortBindingDeletionFailed as e:"},{"line_number":4673,"context_line":"                # Do not let this stop us from cleaning up since the guest"}],"source_content_type":"text/x-python","patch_set":56,"id":"3fa7e38b_af54d9fd","line":4670,"updated":"2019-12-12 12:19:13.000000000","message":"I see that we can use  https://review.opendev.org/#/c/697162 here as well and you already did that in the FUP. nice.","commit_id":"1b1628e62b8cf4aa27541e0a3dd79a60da58b382"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cf0114ce357a00587bdf8aa517c8cf89589c37fa","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        :param instance: Instance object whose vm_state is \"resized\" and"},{"line_number":1051,"context_line":"            task_state is \"resize_reverting\"."},{"line_number":1052,"context_line":"        :param migration: Migration object whose status is \"reverting\"."},{"line_number":1053,"context_line":"        :raises: nova.exception.MigrationError if the source compute is too"},{"line_number":1054,"context_line":"            old to perform the operation"},{"line_number":1055,"context_line":"        :raises: oslo_messaging.exceptions.MessagingTimeout if the RPC call"},{"line_number":1056,"context_line":"            times out"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_383ec88b","line":1053,"range":{"start_line":1053,"start_character":54,"end_line":1053,"end_character":60},"updated":"2019-02-18 21:22:04.000000000","message":"destination","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b7615db0a83e9289875c8e5670e14dc45839f4a","unresolved":false,"context_lines":[{"line_number":1050,"context_line":"        :param instance: Instance object whose vm_state is \"resized\" and"},{"line_number":1051,"context_line":"            task_state is \"resize_reverting\"."},{"line_number":1052,"context_line":"        :param migration: Migration object whose status is \"reverting\"."},{"line_number":1053,"context_line":"        :raises: nova.exception.MigrationError if the source compute is too"},{"line_number":1054,"context_line":"            old to perform the operation"},{"line_number":1055,"context_line":"        :raises: oslo_messaging.exceptions.MessagingTimeout if the RPC call"},{"line_number":1056,"context_line":"            times out"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_5b862616","line":1053,"range":{"start_line":1053,"start_character":54,"end_line":1053,"end_character":60},"in_reply_to":"9fdfeff1_383ec88b","updated":"2019-02-18 22:53:47.000000000","message":"Done","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3a724c9d1b5cb1b0e4d08a0e378731dda7c5dff","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        client \u003d self.router.client(ctxt)"},{"line_number":1060,"context_line":"        if not client.can_send_version(version):"},{"line_number":1061,"context_line":"            raise exception.MigrationError(reason\u003d_(\u0027Compute too old\u0027))"},{"line_number":1062,"context_line":"        cctxt \u003d client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":1063,"context_line":"                               version\u003dversion,"},{"line_number":1064,"context_line":"                               call_monitor_timeout\u003dCONF.rpc_response_timeout,"},{"line_number":1065,"context_line":"                               timeout\u003dCONF.long_rpc_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_986254ad","line":1062,"range":{"start_line":1062,"start_character":38,"end_line":1062,"end_character":67},"updated":"2019-02-18 21:24:47.000000000","message":"Change this to migration.dest_compute.","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b7615db0a83e9289875c8e5670e14dc45839f4a","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"        client \u003d self.router.client(ctxt)"},{"line_number":1060,"context_line":"        if not client.can_send_version(version):"},{"line_number":1061,"context_line":"            raise exception.MigrationError(reason\u003d_(\u0027Compute too old\u0027))"},{"line_number":1062,"context_line":"        cctxt \u003d client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":1063,"context_line":"                               version\u003dversion,"},{"line_number":1064,"context_line":"                               call_monitor_timeout\u003dCONF.rpc_response_timeout,"},{"line_number":1065,"context_line":"                               timeout\u003dCONF.long_rpc_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9fdfeff1_fb7a7a23","line":1062,"range":{"start_line":1062,"start_character":38,"end_line":1062,"end_character":67},"in_reply_to":"9fdfeff1_986254ad","updated":"2019-02-18 22:53:47.000000000","message":"Done","commit_id":"7f399fb5956e03441c9bd4c56b119d57882b2e17"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"62bd553d1c2c34ecf870a6aac0446410cf0d10a3","unresolved":false,"context_lines":[{"line_number":1156,"context_line":"        version \u003d \u00275.9\u0027"},{"line_number":1157,"context_line":"        client \u003d self.router.client(ctxt)"},{"line_number":1158,"context_line":"        if not client.can_send_version(version):"},{"line_number":1159,"context_line":"            raise exception.MigrationError(reason\u003d_(\u0027Compute too old\u0027))"},{"line_number":1160,"context_line":"        cctxt \u003d client.prepare(server\u003dmigration.dest_compute,"},{"line_number":1161,"context_line":"                               version\u003dversion,"},{"line_number":1162,"context_line":"                               call_monitor_timeout\u003dCONF.rpc_response_timeout,"}],"source_content_type":"text/x-python","patch_set":54,"id":"3fa7e38b_a452f334","line":1159,"range":{"start_line":1159,"start_character":28,"end_line":1159,"end_character":42},"updated":"2019-12-09 15:39:06.000000000","message":"Any reason not to use \u0027ServiceTooOld\u0027 here? I note \u0027MigrationError\u0027 is used elsewhere here so not a big deal","commit_id":"4f9710ad3182ca937f29fd4788f2baacdd5f2281"}]}
