diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-01-05 06:53:37 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-01-05 06:53:37 +0000 |
| commit | ef0ff2f51ad769b3c9f60a4fc7d3e7eb7b0ae305 (patch) | |
| tree | ad0286163d87c8a4831eb55dfd217a4fad894121 | |
| parent | d150f8a799cce1ced542375987d040f643f86344 (diff) | |
| parent | 5ee157c428b09b102906a7ec6834985557369b20 (diff) | |
| download | nova-ef0ff2f51ad769b3c9f60a4fc7d3e7eb7b0ae305.tar.gz nova-ef0ff2f51ad769b3c9f60a4fc7d3e7eb7b0ae305.tar.xz nova-ef0ff2f51ad769b3c9f60a4fc7d3e7eb7b0ae305.zip | |
Merge "Add ping to conductor"
| -rw-r--r-- | nova/conductor/api.py | 6 | ||||
| -rw-r--r-- | nova/conductor/manager.py | 5 | ||||
| -rw-r--r-- | nova/conductor/rpcapi.py | 6 | ||||
| -rw-r--r-- | nova/tests/conductor/test_conductor.py | 4 |
4 files changed, 20 insertions, 1 deletions
diff --git a/nova/conductor/api.py b/nova/conductor/api.py index 0f622ec9b..66badb756 100644 --- a/nova/conductor/api.py +++ b/nova/conductor/api.py @@ -68,6 +68,9 @@ class LocalAPI(object): # other/future users of this sort of functionality. self._manager = ExceptionHelper(manager.ConductorManager()) + 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, updates) @@ -238,6 +241,9 @@ class API(object): def __init__(self): self.conductor_rpcapi = rpcapi.ConductorAPI() + 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 392ef6b4d..123e7e13f 100644 --- a/nova/conductor/manager.py +++ b/nova/conductor/manager.py @@ -43,12 +43,15 @@ datetime_fields = ['launched_at', 'terminated_at'] class ConductorManager(manager.SchedulerDependentManager): """Mission: TBD""" - RPC_API_VERSION = '1.21' + RPC_API_VERSION = '1.22' def __init__(self, *args, **kwargs): super(ConductorManager, self).__init__(service_name='conductor', *args, **kwargs) + def ping(self, context, arg): + return jsonutils.to_primitive({'service': 'conductor', 'arg': arg}) + @rpc_common.client_exceptions(KeyError, ValueError, exception.InvalidUUID, exception.InstanceNotFound, diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py index ab8aaa318..0f2fe1f0c 100644 --- a/nova/conductor/rpcapi.py +++ b/nova/conductor/rpcapi.py @@ -53,6 +53,7 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy): 1.19 - Added vol_get_usage_by_time and vol_usage_update 1.20 - Added migration_get_unconfirmed_by_dest_compute 1.21 - Added service_get_all_by + 1.22 - Added ping """ BASE_RPC_API_VERSION = '1.0' @@ -62,6 +63,11 @@ 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): updates_p = jsonutils.to_primitive(updates) return self.call(context, diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py index f919b0465..86f47a79c 100644 --- a/nova/tests/conductor/test_conductor.py +++ b/nova/tests/conductor/test_conductor.py @@ -339,6 +339,10 @@ class _BaseTestCase(object): {'uuid': 'fake-id'}, 'fake-refr', 'fake-bool') + def test_ping(self): + result = self.conductor.ping(self.context, 'foo') + self.assertEqual(result, {'service': 'conductor', 'arg': 'foo'}) + class ConductorTestCase(_BaseTestCase, test.TestCase): """Conductor Manager Tests""" |
