diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-12-11 17:45:27 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-12-11 17:45:27 +0000 |
| commit | 78bbc71bc3a10048e158be6757bf44f2a685458d (patch) | |
| tree | 7228a0a7d1b15baa0b78456e076ad95e8aecaa7e | |
| parent | fa49ec0027e864bbe994818ddb0314e0412e3e58 (diff) | |
| parent | 2b100e15002fb07c9eeb1497ca11c4c42bab1ba3 (diff) | |
| download | nova-78bbc71bc3a10048e158be6757bf44f2a685458d.tar.gz nova-78bbc71bc3a10048e158be6757bf44f2a685458d.tar.xz nova-78bbc71bc3a10048e158be6757bf44f2a685458d.zip | |
Merge "Add get_backdoor_port to nova-conductor."
| -rw-r--r-- | nova/conductor/api.py | 10 | ||||
| -rw-r--r-- | nova/conductor/manager.py | 5 | ||||
| -rw-r--r-- | nova/conductor/rpcapi.py | 5 | ||||
| -rw-r--r-- | nova/tests/conductor/test_conductor.py | 25 |
4 files changed, 44 insertions, 1 deletions
diff --git a/nova/conductor/api.py b/nova/conductor/api.py index fe4f6ca98..b9013c4c6 100644 --- a/nova/conductor/api.py +++ b/nova/conductor/api.py @@ -16,6 +16,7 @@ from nova.conductor import manager from nova.conductor import rpcapi +from nova import exception as exc from nova.openstack.common import cfg conductor_opts = [ @@ -76,6 +77,9 @@ class LocalAPI(object): last_ctr_in, last_ctr_out, last_refreshed) + def get_backdoor_port(self, context, host): + raise exc.InvalidRequest + class API(object): """Conductor API that does updates via RPC to the ConductorManager""" @@ -121,3 +125,9 @@ class API(object): context, uuid, mac, start_period, bw_in, bw_out, last_ctr_in, last_ctr_out, last_refreshed) + + #NOTE(mtreinish): This doesn't work on multiple conductors without any + # topic calculation in conductor_rpcapi. So the host param isn't used + # currently. + def get_backdoor_port(self, context, host): + return self.conductor_rpcapi.get_backdoor_port(context) diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py index 4a37b9dfb..796b99360 100644 --- a/nova/conductor/manager.py +++ b/nova/conductor/manager.py @@ -41,7 +41,7 @@ datetime_fields = ['launched_at', 'terminated_at'] class ConductorManager(manager.SchedulerDependentManager): """Mission: TBD""" - RPC_API_VERSION = '1.5' + RPC_API_VERSION = '1.6' def __init__(self, *args, **kwargs): super(ConductorManager, self).__init__(service_name='conductor', @@ -100,3 +100,6 @@ class ConductorManager(manager.SchedulerDependentManager): last_refreshed) usage = self.db.bw_usage_get(context, uuid, start_period, mac) return jsonutils.to_primitive(usage) + + def get_backdoor_port(self, context): + return self.backdoor_port diff --git a/nova/conductor/rpcapi.py b/nova/conductor/rpcapi.py index e8a9a2fed..1f38b0ea5 100644 --- a/nova/conductor/rpcapi.py +++ b/nova/conductor/rpcapi.py @@ -32,6 +32,7 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy): 1.3 - Added aggregate_host_add and aggregate_host_delete 1.4 - Added migration_get 1.5 - Added bw_usage_update + 1.6 - Added get_backdoor_port() """ BASE_RPC_API_VERSION = '1.0' @@ -89,3 +90,7 @@ class ConductorAPI(nova.openstack.common.rpc.proxy.RpcProxy): last_ctr_in=last_ctr_in, last_ctr_out=last_ctr_out, last_refreshed=last_refreshed) return self.call(context, msg, version='1.5') + + def get_backdoor_port(self, context): + msg = self.make_msg('get_backdoor_port') + return self.call(context, msg, version='1.6') diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py index 8805ac648..cace21984 100644 --- a/nova/tests/conductor/test_conductor.py +++ b/nova/tests/conductor/test_conductor.py @@ -23,6 +23,7 @@ from nova.conductor import rpcapi as conductor_rpcapi from nova import context from nova import db from nova.db.sqlalchemy import models +from nova import exception as exc from nova import notifications from nova.openstack.common import jsonutils from nova.openstack.common import timeutils @@ -168,6 +169,30 @@ class ConductorTestCase(BaseTestCase): result = self.conductor.bw_usage_update(*update_args) self.assertEqual(result, 'foo') + def test_get_backdoor_port(self): + backdoor_port = 59697 + + def fake_get_backdoor_port(self, context): + return backdoor_port + + if isinstance(self.conductor, conductor_api.API): + self.stubs.Set(conductor_manager.ConductorManager, + 'get_backdoor_port', fake_get_backdoor_port) + port = self.conductor.get_backdoor_port(self.context, 'fake_host') + elif isinstance(self.conductor, conductor_api.LocalAPI): + try: + self.conductor.get_backdoor_port(self.context, 'fake_host') + except exc.InvalidRequest: + port = backdoor_port + else: + if isinstance(self.conductor, conductor_rpcapi.ConductorAPI): + self.stubs.Set(conductor_manager.ConductorManager, + 'get_backdoor_port', fake_get_backdoor_port) + self.conductor.backdoor_port = backdoor_port + port = self.conductor.get_backdoor_port(self.context) + + self.assertEqual(port, backdoor_port) + class ConductorRPCAPITestCase(ConductorTestCase): """Conductor RPC API Tests""" |
