summaryrefslogtreecommitdiffstats
path: root/nova/compute
diff options
context:
space:
mode:
authorJohn Garbutt <john@johngarbutt.com>2013-05-13 15:53:22 +0100
committerGerrit Code Review <review@openstack.org>2013-05-30 08:40:11 +0000
commitde2da83cfb895febcef58b972ed3ed0dff9ac064 (patch)
tree3b8f6f9bfe5752fb3348acbbe7d83c333514fd91 /nova/compute
parent783b0e836d9ba0630d4745a6457144fac6dfa9f0 (diff)
compute.api call conductor ComputeTaskManager for live-migrate
Before the compute api called the scheduler to perform live migrate. This change makes the compute api call the conductor, which in turn calls the scheduler. For those not using the conductor service, this does not add any extra rpc calls. This change in control flow means we can look to move live-migrate more related rpc calls into the conductor from both schduler driver and compute manager. part of blueprint live-migration-to-conductor Change-Id: I081c5e090921d69878d044839616a48f198ecb7d
Diffstat (limited to 'nova/compute')
-rw-r--r--nova/compute/api.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 19c59bbd5..927476810 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -197,10 +197,20 @@ class API(base.Base):
self.consoleauth_rpcapi = consoleauth_rpcapi.ConsoleAuthAPI()
self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI()
self.compute_rpcapi = compute_rpcapi.ComputeAPI()
+ self._compute_task_api = None
self.servicegroup_api = servicegroup.API()
super(API, self).__init__(**kwargs)
+ @property
+ def compute_task_api(self):
+ if self._compute_task_api is None:
+ # TODO(alaski): Remove calls into here from conductor manager so
+ # that this isn't necessary. #1180540
+ from nova import conductor
+ self._compute_task_api = conductor.ComputeTaskAPI()
+ return self._compute_task_api
+
def _instance_update(self, context, instance_uuid, **kwargs):
"""Update an instance in the database using kwargs as value."""
@@ -2501,8 +2511,11 @@ class API(base.Base):
task_state=task_states.MIGRATING,
expected_task_state=None)
- self.scheduler_rpcapi.live_migration(context, block_migration,
- disk_over_commit, instance, host_name)
+ self.compute_task_api.migrate_server(context, instance,
+ scheduler_hint={'host': host_name},
+ live=True, rebuild=False, flavor=None,
+ block_migration=block_migration,
+ disk_over_commit=disk_over_commit)
@check_instance_state(vm_state=[vm_states.ACTIVE, vm_states.STOPPED],
task_state=[None])