diff options
Diffstat (limited to 'nova/compute/manager.py')
-rwxr-xr-x | nova/compute/manager.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 70d88117d..edf9da667 100755 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -3224,7 +3224,8 @@ class ComputeManager(manager.SchedulerDependentManager): raise exception.FixedIpNotFoundForInstance( instance_uuid=instance['uuid']) - self.driver.pre_live_migration(context, instance, + pre_live_migration_data = self.driver.pre_live_migration(context, + instance, block_device_info, self._legacy_nw_info(network_info), migrate_data) @@ -3246,6 +3247,8 @@ class ComputeManager(manager.SchedulerDependentManager): if block_migration: self.driver.pre_block_migration(context, instance, disk) + return pre_live_migration_data + def live_migration(self, context, dest, instance, block_migration=False, migrate_data=None): """Executing live migration. @@ -3257,14 +3260,18 @@ class ComputeManager(manager.SchedulerDependentManager): :param migrate_data: implementation specific params """ + # Create a local copy since we'll be modifying the dictionary + migrate_data = dict(migrate_data or {}) try: if block_migration: disk = self.driver.get_instance_disk_info(instance['name']) else: disk = None - self.compute_rpcapi.pre_live_migration(context, instance, - block_migration, disk, dest, migrate_data) + pre_migration_data = self.compute_rpcapi.pre_live_migration( + context, instance, + block_migration, disk, dest, migrate_data) + migrate_data['pre_live_migration_result'] = pre_migration_data except Exception: with excutils.save_and_reraise_exception(): |