diff options
Diffstat (limited to 'nova/scheduler/manager.py')
-rw-r--r-- | nova/scheduler/manager.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py index 5c99feb03..3d62ff9b0 100644 --- a/nova/scheduler/manager.py +++ b/nova/scheduler/manager.py @@ -30,6 +30,7 @@ from nova.compute import task_states from nova.compute import utils as compute_utils from nova.compute import vm_states from nova.conductor import api as conductor_api +from nova.conductor.tasks import live_migrate import nova.context from nova import exception from nova import manager @@ -102,9 +103,8 @@ class SchedulerManager(manager.Manager): def live_migration(self, context, instance, dest, block_migration, disk_over_commit): try: - return self.driver.schedule_live_migration( - context, instance, dest, - block_migration, disk_over_commit) + self._schedule_live_migration(context, instance, dest, + block_migration, disk_over_commit) except (exception.NoValidHost, exception.ComputeServiceUnavailable, exception.InvalidHypervisorType, @@ -131,6 +131,13 @@ class SchedulerManager(manager.Manager): {'vm_state': vm_states.ERROR}, context, ex, request_spec) + def _schedule_live_migration(self, context, instance, dest, + block_migration, disk_over_commit): + task = live_migrate.LiveMigrationTask(context, instance, + dest, block_migration, disk_over_commit, + self.driver.select_hosts) + return task.execute() + def run_instance(self, context, request_spec, admin_password, injected_files, requested_networks, is_first_time, filter_properties): |