From 576a561dd89ab27f4d91e402609d3cca69e298d6 Mon Sep 17 00:00:00 2001 From: Matthew Treinish Date: Wed, 19 Dec 2012 17:38:52 -0500 Subject: [PATCH] Add get_backdoor_port to cert. This adds a get_backdoor_port function to the cert service which enables returning the eventlet_backdoor port from rpc for the service. Change-Id: Iea2b1f9587ea2749c2def921d6a0d1e86f1645ee --- nova/cert/manager.py | 5 ++++- nova/cert/rpcapi.py | 5 +++++ nova/tests/cert/test_rpcapi.py | 10 +++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/nova/cert/manager.py b/nova/cert/manager.py index 2d17a675a963..3a00c47a6e70 100644 --- a/nova/cert/manager.py +++ b/nova/cert/manager.py @@ -34,7 +34,7 @@ LOG = logging.getLogger(__name__) class CertManager(manager.Manager): - RPC_API_VERSION = '1.0' + RPC_API_VERSION = '1.1' def init_host(self): crypto.ensure_ca_filesystem() @@ -66,3 +66,6 @@ class CertManager(manager.Manager): def decrypt_text(self, context, project_id, text): """Decrypt base64 encoded text using the projects private key.""" return crypto.decrypt_text(project_id, base64.b64decode(text)) + + def get_backdoor_port(self, context): + return self.backdoor_port diff --git a/nova/cert/rpcapi.py b/nova/cert/rpcapi.py index 35d02b6431cb..79b136571fb0 100644 --- a/nova/cert/rpcapi.py +++ b/nova/cert/rpcapi.py @@ -31,6 +31,7 @@ class CertAPI(nova.openstack.common.rpc.proxy.RpcProxy): API version history: 1.0 - Initial version. + 1.1 - Added get_backdoor_port() ''' # @@ -78,3 +79,7 @@ class CertAPI(nova.openstack.common.rpc.proxy.RpcProxy): return self.call(ctxt, self.make_msg('decrypt_text', project_id=project_id, text=text)) + + def get_backdoor_port(self, context, host): + return self.call(context, self.make_msg('get_backdoor_port'), + version='1.1') diff --git a/nova/tests/cert/test_rpcapi.py b/nova/tests/cert/test_rpcapi.py index 8db8a0f6cab6..f61d424081fc 100644 --- a/nova/tests/cert/test_rpcapi.py +++ b/nova/tests/cert/test_rpcapi.py @@ -33,8 +33,12 @@ class CertRpcAPITestCase(test.TestCase): ctxt = context.RequestContext('fake_user', 'fake_project') rpcapi = cert_rpcapi.CertAPI() expected_retval = 'foo' + expected_version = kwargs.pop('version', rpcapi.BASE_RPC_API_VERSION) expected_msg = rpcapi.make_msg(method, **kwargs) - expected_msg['version'] = rpcapi.BASE_RPC_API_VERSION + expected_msg['version'] = expected_version + + if method == 'get_backdoor_port': + del expected_msg['args']['host'] self.call_ctxt = None self.call_topic = None @@ -84,3 +88,7 @@ class CertRpcAPITestCase(test.TestCase): def test_decrypt_text(self): self._test_cert_api('decrypt_text', project_id='fake_project_id', text='blah') + + def test_get_backdoor_port(self): + self._test_cert_api('get_backdoor_port', host='fake_host', + version='1.1')