summaryrefslogtreecommitdiffstats
path: root/nova/scheduler/manager.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-06-25 16:28:46 +0000
committerGerrit Code Review <review@openstack.org>2013-06-25 16:28:46 +0000
commit9331c5c1115c7d8cc5bcab71b1100eeea1ce72fe (patch)
treebfde7e32a3ef66a5ebb8f81b916b2643da3b5b68 /nova/scheduler/manager.py
parent24129187ed642f99e6085f8bd44da5a9eb39034f (diff)
parent2d7beddc0bb7830c2a8bf893b9221c0de568c55d (diff)
downloadnova-9331c5c1115c7d8cc5bcab71b1100eeea1ce72fe.tar.gz
nova-9331c5c1115c7d8cc5bcab71b1100eeea1ce72fe.tar.xz
nova-9331c5c1115c7d8cc5bcab71b1100eeea1ce72fe.zip
Merge "Extract live-migration scheduler logic from the scheduler driver"
Diffstat (limited to 'nova/scheduler/manager.py')
-rw-r--r--nova/scheduler/manager.py13
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):