summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorDan Smith <danms@us.ibm.com>2013-01-04 06:56:39 -0800
committerDan Smith <danms@us.ibm.com>2013-01-04 08:37:20 -0800
commitd7542c116f45b3e314ecc7bacfd885ee43a36808 (patch)
treec10588a2964730942f7517e97475e460abcda13a /nova
parent9f1b8228c93571552de4df73d1827dcd21498256 (diff)
Move instance_info_cache_delete() to conductor
This patch moves compute/manager's use of instance_info_cache_delete() to conductor. Related to blueprint no-db-compute-manager Change-Id: I4e7f2d95ddc26c0dbea1a644ca23026339ce720e
Diffstat (limited to 'nova')
-rw-r--r--nova/compute/manager.py2
-rw-r--r--nova/conductor/api.py7
-rw-r--r--nova/conductor/manager.py5
-rw-r--r--nova/conductor/rpcapi.py6
-rw-r--r--nova/tests/conductor/test_conductor.py7
5 files changed, 25 insertions, 2 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index cf35b24ff..d712550d9 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -1029,7 +1029,7 @@ class ComputeManager(manager.SchedulerDependentManager):
def _delete_instance(self, context, instance, bdms):
"""Delete an instance on this host."""
instance_uuid = instance['uuid']
- self.db.instance_info_cache_delete(context, instance_uuid)
+ self.conductor_api.instance_info_cache_delete(context, instance)
self._notify_about_instance_usage(context, instance, "delete.start")
self._shutdown_instance(context, instance, bdms)
# NOTE(vish): We have already deleted the instance, so we have
diff --git a/nova/conductor/api.py b/nova/conductor/api.py
index 838b4c050..4f954a02d 100644
--- a/nova/conductor/api.py
+++ b/nova/conductor/api.py
@@ -101,6 +101,9 @@ class LocalAPI(object):
return self._manager.instance_get_active_by_window(
context, begin, end, project_id, host)
+ def instance_info_cache_delete(self, context, instance):
+ return self._manager.instance_info_cache_delete(context, instance)
+
def migration_get(self, context, migration_id):
return self._manager.migration_get(context, migration_id)
@@ -234,6 +237,10 @@ class API(object):
return self.conductor_rpcapi.instance_get_active_by_window(
context, begin, end, project_id, host)
+ def instance_info_cache_delete(self, context, instance):
+ return self.conductor_rpcapi.instance_info_cache_delete(context,
+ instance)
+
def migration_get(self, context, migration_id):
return self.conductor_rpcapi.migration_get(context, migration_id)
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index 997e23c60..1a9736a6b 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -43,7 +43,7 @@ datetime_fields = ['launched_at', 'terminated_at']
class ConductorManager(manager.SchedulerDependentManager):
"""Mission: TBD"""
- RPC_API_VERSION = '1.16'
+ RPC_API_VERSION = '1.17'
def __init__(self, *args, **kwargs):
super(ConductorManager, self).__init__(service_name='conductor',
@@ -208,3 +208,6 @@ class ConductorManager(manager.SchedulerDependentManager):
def instance_destroy(self, context, instance):
self.db.instance_destroy(context, instance['uuid'])
+
+ def instance_info_cache_delete(self, context, instance):
+ self.db.instance_info_cache_delete(context, instance['uuid'])
diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py
index bbbdd7054..1279cdcf0 100644
--- a/nova/conductor/rpcapi.py
+++ b/nova/conductor/rpcapi.py
@@ -48,6 +48,7 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
instance_get_active_by_window
Deprecated instance_get_all_by_host
1.16 - Added instance_destroy
+ 1.17 - Added instance_info_cache_delete
"""
BASE_RPC_API_VERSION = '1.0'
@@ -196,3 +197,8 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
instance_p = jsonutils.to_primitive(instance)
msg = self.make_msg('instance_destroy', instance=instance_p)
self.call(context, msg, version='1.16')
+
+ def instance_info_cache_delete(self, context, instance):
+ instance_p = jsonutils.to_primitive(instance)
+ msg = self.make_msg('instance_info_cache_delete', instance=instance_p)
+ self.call(context, msg, version='1.17')
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 18035c135..2cfbe904f 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -294,6 +294,13 @@ class _BaseTestCase(object):
self.mox.ReplayAll()
self.conductor.instance_destroy(self.context, {'uuid': 'fake-uuid'})
+ def test_instance_info_cache_delete(self):
+ self.mox.StubOutWithMock(db, 'instance_info_cache_delete')
+ db.instance_info_cache_delete(self.context, 'fake-uuid')
+ self.mox.ReplayAll()
+ self.conductor.instance_info_cache_delete(self.context,
+ {'uuid': 'fake-uuid'})
+
class ConductorTestCase(_BaseTestCase, test.TestCase):
"""Conductor Manager Tests"""