diff options
| author | Dan Smith <danms@us.ibm.com> | 2012-10-03 11:21:24 -0700 |
|---|---|---|
| committer | Dan Smith <danms@us.ibm.com> | 2012-11-26 09:16:53 -0800 |
| commit | 717c9755805aa06340130b6bc4e7de8f81ea8e57 (patch) | |
| tree | 2a86ba5ade21356dcd7954a66da287238ba4842b /nova/compute | |
| parent | c695b812ca05942e5cde461cf2b2f3e7d2478acc (diff) | |
Make compute manager use nova-conductor for instance_update
Several tests require changes to ensure that the conductor service
is started (or set to local mode) before they ask the compute
manager to do instance updates.
Changes were required to some of the tests that check the value
of the timestamps by converting to strings. After passing the instances
through jsonutils.to_primitive(), the strings are a bit different.
Change-Id: I660e471178f3e5b36c4be27d47047fb4e4e1f851
Diffstat (limited to 'nova/compute')
| -rw-r--r-- | nova/compute/manager.py | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py index 2b621d5f6..5e77cb504 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -51,6 +51,7 @@ from nova.compute import rpcapi as compute_rpcapi from nova.compute import task_states from nova.compute import utils as compute_utils from nova.compute import vm_states +from nova import conductor import nova.context from nova import exception from nova.image import glance @@ -258,9 +259,9 @@ class ComputeVirtAPI(virtapi.VirtAPI): self._compute = compute def instance_update(self, context, instance_uuid, updates): - return self._compute.db.instance_update_and_get_original(context, - instance_uuid, - updates) + return self._compute._instance_update(context, + instance_uuid, + **updates) def instance_get_by_uuid(self, context, instance_uuid): return self._compute.db.instance_get_by_uuid(context, instance_uuid) @@ -322,6 +323,7 @@ class ComputeManager(manager.SchedulerDependentManager): self.compute_api = compute.API() self.compute_rpcapi = compute_rpcapi.ComputeAPI() self.scheduler_rpcapi = scheduler_rpcapi.SchedulerAPI() + self.conductor_api = conductor.API() super(ComputeManager, self).__init__(service_name="compute", *args, **kwargs) @@ -340,11 +342,11 @@ class ComputeManager(manager.SchedulerDependentManager): def _instance_update(self, context, instance_uuid, **kwargs): """Update an instance in the database using kwargs as value.""" - (old_ref, instance_ref) = self.db.instance_update_and_get_original( - context, instance_uuid, kwargs) + instance_ref = self.conductor_api.instance_update(context, + instance_uuid, + **kwargs) rt = self._get_resource_tracker(instance_ref.get('node')) rt.update_usage(context, instance_ref) - notifications.send_update(context, old_ref, instance_ref) return instance_ref @@ -741,8 +743,7 @@ class ComputeManager(manager.SchedulerDependentManager): if ip['version'] == 6: update_info['access_ip_v6'] = ip['address'] if update_info: - self.db.instance_update(context, instance['uuid'], update_info) - notifications.send_update(context, instance, instance) + self._instance_update(context, instance['uuid'], **update_info) def _check_instance_not_already_created(self, context, instance): """Ensure an instance with the same name is not already present.""" |
