summaryrefslogtreecommitdiffstats
path: root/nova
diff options
context:
space:
mode:
authorRussell Bryant <rbryant@redhat.com>2013-01-11 09:54:07 -0500
committerRussell Bryant <rbryant@redhat.com>2013-01-11 18:06:57 -0500
commitb09dabae177d4eb1dc5ba19d0c7962c7fec9faad (patch)
tree2db6ad1f662e751cb4eee94abea78693d507c741 /nova
parent42f3d0bdbda3c54c0d3490e0f407e7dbb8f574ca (diff)
Allow forcing local conductor.
This patch updates the conductor API to allow passing in a kwarg to force local usage, even if configured for remote usage globally. This is useful if we want to convert some parts of the code to use conductor db proxy APIs, but want to optimize usage to be local for cases where using the db directly is not a problem. Part of bp no-db-compute. Change-Id: Ib7a717e1a6f132022787626e65cacaa8a4afd86c
Diffstat (limited to 'nova')
-rw-r--r--nova/conductor/__init__.py3
-rw-r--r--nova/tests/conductor/test_conductor.py5
2 files changed, 7 insertions, 1 deletions
diff --git a/nova/conductor/__init__.py b/nova/conductor/__init__.py
index 1e31da54c..4c702d037 100644
--- a/nova/conductor/__init__.py
+++ b/nova/conductor/__init__.py
@@ -18,7 +18,8 @@ import nova.openstack.common.importutils
def API(*args, **kwargs):
- if nova.openstack.common.cfg.CONF.conductor.use_local:
+ use_local = kwargs.pop('use_local', False)
+ if nova.openstack.common.cfg.CONF.conductor.use_local or use_local:
api = conductor_api.LocalAPI
else:
api = conductor_api.API
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 7986fc583..909174fa9 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -700,6 +700,11 @@ class ConductorImportTest(test.TestCase):
self.assertTrue(isinstance(conductor.API(),
conductor_api.API))
+ def test_import_conductor_override_to_local(self):
+ self.flags(use_local=False, group='conductor')
+ self.assertTrue(isinstance(conductor.API(use_local=True),
+ conductor_api.LocalAPI))
+
class ConductorPolicyTest(test.TestCase):
def test_all_allowed_keys(self):