Where is the compute manager code converting an object to a dict?
If _do_live_migration does not get an object for migrate_data, it converts it to one here:
https://github.com/openstack/nova/blob/2d7a851199b12355b36a3982ea0fc7bb5a7cd11f/nova/compute/manager.py#L5174
And then migrate_data (as an object) should be passed down to _rollback_live_migration here:
https://github.com/openstack/nova/blob/2d7a851199b12355b36a3982ea0fc7bb5a7cd11f/nova/compute/manager.py#L5195
And even if _rollback_live_migration gets a dict for migrate_data, it should convert it to an object here:
https://github.com/openstack/nova/blob/2d7a851199b12355b36a3982ea0fc7bb5a7cd11f/nova/compute/manager.py#L5486
Are you saying it's the call to compute rpcapi that's converting it to a dict?
https://github.com/openstack/nova/blob/2d7a851199b12355b36a3982ea0fc7bb5a7cd11f/nova/compute/manager.py#L5511
Where is the compute manager code converting an object to a dict?
If _do_live_migration does not get an object for migrate_data, it converts it to one here:
https:/ /github. com/openstack/ nova/blob/ 2d7a851199b1235 5b36a3982ea0fc7 bb5a7cd11f/ nova/compute/ manager. py#L5174
And then migrate_data (as an object) should be passed down to _rollback_ live_migration here:
https:/ /github. com/openstack/ nova/blob/ 2d7a851199b1235 5b36a3982ea0fc7 bb5a7cd11f/ nova/compute/ manager. py#L5195
And even if _rollback_ live_migration gets a dict for migrate_data, it should convert it to an object here:
https:/ /github. com/openstack/ nova/blob/ 2d7a851199b1235 5b36a3982ea0fc7 bb5a7cd11f/ nova/compute/ manager. py#L5486
Are you saying it's the call to compute rpcapi that's converting it to a dict?
https:/ /github. com/openstack/ nova/blob/ 2d7a851199b1235 5b36a3982ea0fc7 bb5a7cd11f/ nova/compute/ manager. py#L5511