summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2013-04-10 00:24:06 +0200
committerRussell Bryant <rbryant@redhat.com>2013-04-23 14:02:47 -0400
commita025d7eee28026cb21cb0e732e6510d5d9b7d96f (patch)
tree42a716488581cb5484b7f40b5ad1495e20b245ee
parent1a546c67ee94eef2260cd64e7fcb3fb0ed44b4f6 (diff)
Deprecate conductor ping method.
Deprecate the ping() method of the conductor API in favor of the one that comes with the base rpc API. Part of blueprint base-rpc-api. Change-Id: Iea46b7f6ce70f4919d0121433af2fd64d6346941
-rw-r--r--nova/conductor/api.py11
-rw-r--r--nova/conductor/manager.py2
-rw-r--r--nova/conductor/rpcapi.py5
-rw-r--r--nova/tests/conductor/test_conductor.py12
4 files changed, 10 insertions, 20 deletions
diff --git a/nova/conductor/api.py b/nova/conductor/api.py
index eacc215ee..bf2a66860 100644
--- a/nova/conductor/api.py
+++ b/nova/conductor/api.py
@@ -16,6 +16,7 @@
from oslo.config import cfg
+from nova import baserpc
from nova.conductor import manager
from nova.conductor import rpcapi
from nova import exception as exc
@@ -56,9 +57,6 @@ class LocalAPI(object):
# nothing to wait for in the local case.
pass
- def ping(self, context, arg, timeout=None):
- return self._manager.ping(context, arg)
-
def instance_update(self, context, instance_uuid, **updates):
"""Perform an instance update in the database."""
return self._manager.instance_update(context, instance_uuid,
@@ -355,6 +353,7 @@ class API(object):
def __init__(self):
self.conductor_rpcapi = rpcapi.ConductorAPI()
+ self.base_rpcapi = baserpc.BaseAPI(topic=CONF.conductor.topic)
def wait_until_ready(self, context, early_timeout=10, early_attempts=10):
'''Wait until a conductor service is up and running.
@@ -378,16 +377,14 @@ class API(object):
# This may fail the first time around if nova-conductor wasn't
# running when this service started.
try:
- self.ping(context, '1.21 GigaWatts', timeout=timeout)
+ self.base_rpcapi.ping(context, '1.21 GigaWatts',
+ timeout=timeout)
break
except rpc_common.Timeout as e:
LOG.warning(_('Timed out waiting for nova-conductor. '
'Is it running? Or did this service start '
'before nova-conductor?'))
- def ping(self, context, arg, timeout=None):
- return self.conductor_rpcapi.ping(context, arg, timeout)
-
def instance_update(self, context, instance_uuid, **updates):
"""Perform an instance update in the database."""
return self.conductor_rpcapi.instance_update(context, instance_uuid,
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index 3713b1de9..2d027a8f2 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -76,6 +76,8 @@ class ConductorManager(manager.Manager):
return self._compute_api
def ping(self, context, arg):
+ # NOTE(russellb) This method can be removed in 2.0 of this API. It is
+ # now a part of the base rpc API.
return jsonutils.to_primitive({'service': 'conductor', 'arg': arg})
@rpc_common.client_exceptions(KeyError, ValueError,
diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py
index 437bbfb81..6bd4be59b 100644
--- a/nova/conductor/rpcapi.py
+++ b/nova/conductor/rpcapi.py
@@ -97,11 +97,6 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy):
topic=CONF.conductor.topic,
default_version=self.BASE_RPC_API_VERSION)
- def ping(self, context, arg, timeout=None):
- arg_p = jsonutils.to_primitive(arg)
- msg = self.make_msg('ping', arg=arg_p)
- return self.call(context, msg, version='1.22', timeout=timeout)
-
def instance_update(self, context, instance_uuid, updates,
service=None):
updates_p = jsonutils.to_primitive(updates)
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index fee919a33..73bdf5d71 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -410,10 +410,6 @@ class _BaseTestCase(object):
'user_id': 'fake-user_id'},
'fake-refr', 'fake-bool')
- def test_ping(self):
- result = self.conductor.ping(self.context, 'foo')
- self.assertEqual(result, {'service': 'conductor', 'arg': 'foo'})
-
def test_compute_node_create(self):
self.mox.StubOutWithMock(db, 'compute_node_create')
db.compute_node_create(self.context, 'fake-values').AndReturn(
@@ -1073,17 +1069,17 @@ class ConductorAPITestCase(_BaseTestCase, test.TestCase):
'host')
self.assertEqual(result, 'fake-result')
- def test_ping(self):
+ def test_wait_until_ready(self):
timeouts = []
calls = dict(count=0)
- def fake_ping(_self, context, message, timeout):
+ def fake_ping(context, message, timeout):
timeouts.append(timeout)
calls['count'] += 1
if calls['count'] < 15:
raise rpc_common.Timeout("fake")
- self.stubs.Set(conductor_api.API, 'ping', fake_ping)
+ self.stubs.Set(self.conductor.base_rpcapi, 'ping', fake_ping)
self.conductor.wait_until_ready(self.context)
@@ -1117,7 +1113,7 @@ class ConductorLocalAPITestCase(ConductorAPITestCase):
self.assertRaises(KeyError,
self._do_update, instance['uuid'], foo='bar')
- def test_ping(self):
+ def test_wait_until_ready(self):
# Override test in ConductorAPITestCase
pass