summaryrefslogtreecommitdiffstats
path: root/nova/scheduler/manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'nova/scheduler/manager.py')
-rw-r--r--nova/scheduler/manager.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py
index fee29768a..2d63ee970 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):
@@ -208,7 +215,8 @@ class SchedulerManager(manager.Manager):
# The refactoring could go further but trying to minimize changes
# for essex timeframe
- LOG.warning(_("Failed to schedule_%(method)s: %(ex)s") % locals())
+ LOG.warning(_("Failed to schedule_%(method)s: %(ex)s"),
+ {'method': method, 'ex': ex})
vm_state = updates['vm_state']
properties = request_spec.get('instance_properties', {})
@@ -222,8 +230,8 @@ class SchedulerManager(manager.Manager):
for instance_uuid in request_spec.get('instance_uuids') or uuids:
if instance_uuid:
state = vm_state.upper()
- LOG.warning(_('Setting instance to %(state)s state.'),
- locals(), instance_uuid=instance_uuid)
+ LOG.warning(_('Setting instance to %s state.'), state,
+ instance_uuid=instance_uuid)
# update instance state and notify on the transition
(old_ref, new_ref) = self.db.instance_update_and_get_original(