diff options
| author | Jenkins <jenkins@review.openstack.org> | 2011-12-20 17:10:55 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2011-12-20 17:10:55 +0000 |
| commit | 3828b89182a77a25cf42658d91c49e787dfea05c (patch) | |
| tree | d958a585682689435d85dd7ca2c70fcde7e240ce /nova/tests | |
| parent | e662da0c634c89ef65150540b9ebbde353d3450e (diff) | |
| parent | c6ea206bf81830ce949f33bde928226435c99f4b (diff) | |
Merge "Creating mechanism that loads Admin API extensions"
Diffstat (limited to 'nova/tests')
| -rw-r--r-- | nova/tests/api/openstack/v2/contrib/test_admin_actions.py | 20 | ||||
| -rw-r--r-- | nova/tests/api/openstack/v2/contrib/test_extendedstatus.py | 16 | ||||
| -rw-r--r-- | nova/tests/api/openstack/v2/contrib/test_hosts.py (renamed from nova/tests/test_hosts.py) | 0 | ||||
| -rw-r--r-- | nova/tests/api/openstack/v2/extensions/foxinsocks.py | 2 | ||||
| -rw-r--r-- | nova/tests/api/openstack/v2/test_extensions.py | 32 |
5 files changed, 41 insertions, 29 deletions
diff --git a/nova/tests/api/openstack/v2/contrib/test_admin_actions.py b/nova/tests/api/openstack/v2/contrib/test_admin_actions.py index 159314ed9..a7237ae58 100644 --- a/nova/tests/api/openstack/v2/contrib/test_admin_actions.py +++ b/nova/tests/api/openstack/v2/contrib/test_admin_actions.py @@ -20,6 +20,7 @@ import webob from nova import compute from nova import flags from nova import test +from nova import utils from nova.tests.api.openstack import fakes @@ -60,28 +61,19 @@ class AdminActionsTest(test.TestCase): def setUp(self): super(AdminActionsTest, self).setUp() - self.flags(allow_admin_api=True) self.stubs.Set(compute.API, 'get', fake_compute_api_get) + self.UUID = utils.gen_uuid() + self.flags(allow_admin_api=True) for _method in self._methods: self.stubs.Set(compute.API, _method, fake_compute_api) - def test_admin_api_enabled(self): + def test_admin_api_actions(self): + self.maxDiff = None app = fakes.wsgi_app() for _action in self._actions: - req = webob.Request.blank('/v2/fake/servers/abcd/action') + req = webob.Request.blank('/v2/fake/servers/%s/action' % self.UUID) req.method = 'POST' req.body = json.dumps({_action: None}) req.content_type = 'application/json' res = req.get_response(app) self.assertEqual(res.status_int, 202) - - def test_admin_api_disabled(self): - FLAGS.allow_admin_api = False - app = fakes.wsgi_app() - for _action in self._actions: - req = webob.Request.blank('/v2/fake/servers/abcd/action') - req.method = 'POST' - req.body = json.dumps({_action: None}) - req.content_type = 'application/json' - res = req.get_response(app) - self.assertEqual(res.status_int, 404) diff --git a/nova/tests/api/openstack/v2/contrib/test_extendedstatus.py b/nova/tests/api/openstack/v2/contrib/test_extendedstatus.py index 59d44191a..66565650e 100644 --- a/nova/tests/api/openstack/v2/contrib/test_extendedstatus.py +++ b/nova/tests/api/openstack/v2/contrib/test_extendedstatus.py @@ -41,6 +41,7 @@ class ExtendedStatusTest(test.TestCase): self.uuid = '70f6db34-de8d-4fbd-aafb-4065bdfa6114' self.url = '/v2/openstack/servers/%s' % self.uuid fakes.stub_out_nw_api(self.stubs) + self.flags(allow_admin_api=True) self.stubs.Set(compute.api.API, 'routing_get', fake_compute_get) def _make_request(self): @@ -54,8 +55,7 @@ class ExtendedStatusTest(test.TestCase): self.assertEqual(server.get('OS-EXT-STS:power_state'), power_state) self.assertEqual(server.get('OS-EXT-STS:task_state'), task_state) - def test_extended_status_with_admin(self): - self.flags(allow_admin_api=True) + def test_extended_status(self): res = self._make_request() body = json.loads(res.body) @@ -65,19 +65,7 @@ class ExtendedStatusTest(test.TestCase): power_state='empowered', task_state='kayaking') - def test_extended_status_no_admin(self): - self.flags(allow_admin_api=False) - res = self._make_request() - body = json.loads(res.body) - - self.assertEqual(res.status_int, 200) - self.assertServerStates(body['server'], - vm_state=None, - power_state=None, - task_state=None) - def test_extended_status_no_instance_fails(self): - self.flags(allow_admin_api=True) def fake_compute_get(*args, **kwargs): raise exception.InstanceNotFound() diff --git a/nova/tests/test_hosts.py b/nova/tests/api/openstack/v2/contrib/test_hosts.py index a537ff2f3..a537ff2f3 100644 --- a/nova/tests/test_hosts.py +++ b/nova/tests/api/openstack/v2/contrib/test_hosts.py diff --git a/nova/tests/api/openstack/v2/extensions/foxinsocks.py b/nova/tests/api/openstack/v2/extensions/foxinsocks.py index d2995953a..ba1508668 100644 --- a/nova/tests/api/openstack/v2/extensions/foxinsocks.py +++ b/nova/tests/api/openstack/v2/extensions/foxinsocks.py @@ -26,7 +26,7 @@ class FoxInSocksController(object): return "Try to say this Mr. Knox, sir..." -class Foxinsocks(object): +class Foxinsocks(extensions.ExtensionDescriptor): """The Fox In Socks Extension""" name = "Fox In Socks" diff --git a/nova/tests/api/openstack/v2/test_extensions.py b/nova/tests/api/openstack/v2/test_extensions.py index 2c29f6eed..a3027194b 100644 --- a/nova/tests/api/openstack/v2/test_extensions.py +++ b/nova/tests/api/openstack/v2/test_extensions.py @@ -96,6 +96,7 @@ class ExtensionControllerTest(ExtensionTestCase): def setUp(self): super(ExtensionControllerTest, self).setUp() + self.flags(allow_admin_api=True) self.ext_list = [ "AdminActions", "Console_output", @@ -307,6 +308,19 @@ class InvalidExtension(object): alias = "THIRD" +class AdminExtension(extensions.ExtensionDescriptor): + """Admin-only extension""" + + name = "Admin Ext" + alias = "ADMIN" + namespace = "http://www.example.com/" + updated = "2011-01-22T13:25:27-06:00" + admin_only = True + + def __init__(self, *args, **kwargs): + pass + + class ExtensionManagerTest(ExtensionTestCase): response_body = "Try to say this Mr. Knox, sir..." @@ -330,6 +344,24 @@ class ExtensionManagerTest(ExtensionTestCase): self.assertTrue('FOXNSOX' in ext_mgr.extensions) self.assertTrue('THIRD' not in ext_mgr.extensions) + def test_admin_extensions(self): + self.flags(allow_admin_api=True) + app = v2.APIRouter() + ext_midware = extensions.ExtensionMiddleware(app) + ext_mgr = ext_midware.ext_mgr + ext_mgr.register(AdminExtension()) + self.assertTrue('FOXNSOX' in ext_mgr.extensions) + self.assertTrue('ADMIN' in ext_mgr.extensions) + + def test_admin_extensions_no_admin_api(self): + self.flags(allow_admin_api=False) + app = v2.APIRouter() + ext_midware = extensions.ExtensionMiddleware(app) + ext_mgr = ext_midware.ext_mgr + ext_mgr.register(AdminExtension()) + self.assertTrue('FOXNSOX' in ext_mgr.extensions) + self.assertTrue('ADMIN' not in ext_mgr.extensions) + class ActionExtensionTest(ExtensionTestCase): |
