summaryrefslogtreecommitdiffstats
path: root/nova/tests
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2011-12-20 17:10:55 +0000
committerGerrit Code Review <review@openstack.org>2011-12-20 17:10:55 +0000
commit3828b89182a77a25cf42658d91c49e787dfea05c (patch)
treed958a585682689435d85dd7ca2c70fcde7e240ce /nova/tests
parente662da0c634c89ef65150540b9ebbde353d3450e (diff)
parentc6ea206bf81830ce949f33bde928226435c99f4b (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.py20
-rw-r--r--nova/tests/api/openstack/v2/contrib/test_extendedstatus.py16
-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.py2
-rw-r--r--nova/tests/api/openstack/v2/test_extensions.py32
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):