diff options
| author | John Garbutt <john@johngarbutt.com> | 2013-05-13 15:53:22 +0100 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-05-30 08:40:11 +0000 |
| commit | de2da83cfb895febcef58b972ed3ed0dff9ac064 (patch) | |
| tree | 3b8f6f9bfe5752fb3348acbbe7d83c333514fd91 /nova/compute | |
| parent | 783b0e836d9ba0630d4745a6457144fac6dfa9f0 (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.py | 17 |
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]) |
