summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-06-30 00:33:26 +0000
committerGerrit Code Review <review@openstack.org>2013-06-30 00:33:26 +0000
commit263fcb345407e9948343cc415cc7a0c345fd9eff (patch)
tree8d071901ed6f2a55cafdf718924e6b93041f9346
parent43849d18fd2fa8a298840a73b7756f3a346f2e6c (diff)
parentc27267ae9cf38616d03bd2bfba81c4357c52a342 (diff)
downloadnova-263fcb345407e9948343cc415cc7a0c345fd9eff.tar.gz
nova-263fcb345407e9948343cc415cc7a0c345fd9eff.tar.xz
nova-263fcb345407e9948343cc415cc7a0c345fd9eff.zip
Merge "Port server_diagnostics extension to v3 API Part2"
-rw-r--r--etc/nova/policy.json1
-rw-r--r--nova/api/openstack/compute/plugins/v3/server_diagnostics.py24
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_server_diagnostics.py11
-rw-r--r--nova/tests/fake_policy.py1
-rw-r--r--setup.cfg1
5 files changed, 21 insertions, 17 deletions
diff --git a/etc/nova/policy.json b/etc/nova/policy.json
index 2d1ac7d25..fc64e4692 100644
--- a/etc/nova/policy.json
+++ b/etc/nova/policy.json
@@ -103,6 +103,7 @@
"compute_extension:security_group_default_rules": "rule:admin_api",
"compute_extension:security_groups": "",
"compute_extension:server_diagnostics": "rule:admin_api",
+ "compute_extension:v3:os-server-diagnostics": "rule:admin_api",
"compute_extension:server_password": "",
"compute_extension:server_usage": "",
"compute_extension:services": "rule:admin_api",
diff --git a/nova/api/openstack/compute/plugins/v3/server_diagnostics.py b/nova/api/openstack/compute/plugins/v3/server_diagnostics.py
index 7711eb653..6a19732dc 100644
--- a/nova/api/openstack/compute/plugins/v3/server_diagnostics.py
+++ b/nova/api/openstack/compute/plugins/v3/server_diagnostics.py
@@ -22,7 +22,8 @@ from nova import compute
from nova import exception
-authorize = extensions.extension_authorizer('compute', 'server_diagnostics')
+ALIAS = "os-server-diagnostics"
+authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS)
sd_nsmap = {None: wsgi.XMLNS_V11}
@@ -49,19 +50,22 @@ class ServerDiagnosticsController(object):
return compute_api.get_diagnostics(context, instance)
-class Server_diagnostics(extensions.ExtensionDescriptor):
+class ServerDiagnostics(extensions.V3APIExtensionBase):
"""Allow Admins to view server diagnostics through server action."""
name = "ServerDiagnostics"
- alias = "os-server-diagnostics"
+ alias = ALIAS
namespace = ("http://docs.openstack.org/compute/ext/"
- "server-diagnostics/api/v1.1")
- updated = "2011-12-21T00:00:00+00:00"
+ "server-diagnostics/api/v3")
+ version = 1
def get_resources(self):
parent_def = {'member_name': 'server', 'collection_name': 'servers'}
- #NOTE(bcwaldon): This should be prefixed with 'os-'
- ext = extensions.ResourceExtension('diagnostics',
- ServerDiagnosticsController(),
- parent=parent_def)
- return [ext]
+ resources = [
+ extensions.ResourceExtension(ALIAS,
+ ServerDiagnosticsController(),
+ parent=parent_def)]
+ return resources
+
+ def get_controller_extensions(self):
+ return []
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_server_diagnostics.py b/nova/tests/api/openstack/compute/plugins/v3/test_server_diagnostics.py
index 783275ea2..61b78fea8 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_server_diagnostics.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_server_diagnostics.py
@@ -16,7 +16,7 @@
from lxml import etree
from nova.api.openstack import compute
-from nova.api.openstack.compute.contrib import server_diagnostics
+from nova.api.openstack.compute.plugins.v3 import server_diagnostics
from nova.api.openstack import wsgi
from nova.compute import api as compute_api
from nova.openstack.common import jsonutils
@@ -41,18 +41,15 @@ class ServerDiagnosticsTest(test.TestCase):
def setUp(self):
super(ServerDiagnosticsTest, self).setUp()
- self.flags(verbose=True,
- osapi_compute_extension=[
- 'nova.api.openstack.compute.contrib.select_extensions'],
- osapi_compute_ext_list=['Server_diagnostics'])
self.stubs.Set(compute_api.API, 'get_diagnostics',
fake_get_diagnostics)
self.stubs.Set(compute_api.API, 'get', fake_instance_get)
- self.router = compute.APIRouter(init_only=('servers', 'diagnostics'))
+ self.router = compute.APIRouterV3(init_only=('servers', 'os-server-diagnostics'))
def test_get_diagnostics(self):
- req = fakes.HTTPRequest.blank('/fake/servers/%s/diagnostics' % UUID)
+ req = fakes.HTTPRequestV3.blank(
+ '/servers/%s/os-server-diagnostics' % UUID)
res = req.get_response(self.router)
output = jsonutils.loads(res.body)
self.assertEqual(output, {'data': 'Some diagnostic info'})
diff --git a/nova/tests/fake_policy.py b/nova/tests/fake_policy.py
index 490ef5bc5..decd65a43 100644
--- a/nova/tests/fake_policy.py
+++ b/nova/tests/fake_policy.py
@@ -178,6 +178,7 @@ policy_data = """
"compute_extension:security_group_default_rules": "",
"compute_extension:security_groups": "",
"compute_extension:server_diagnostics": "",
+ "compute_extension:v3:os-server-diagnostics": "",
"compute_extension:server_password": "",
"compute_extension:server_usage": "",
"compute_extension:services": "",
diff --git a/setup.cfg b/setup.cfg
index 865f7a5fc..b43e6562b 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -67,6 +67,7 @@ nova.api.v3.extensions =
keypairs = nova.api.openstack.compute.plugins.v3.keypairs:Keypairs
quota_sets = nova.api.openstack.compute.plugins.v3.quota_sets:QuotaSets
rescue = nova.api.openstack.compute.plugins.v3.rescue:Rescue
+ server_diagnostics = nova.api.openstack.compute.plugins.v3.server_diagnostics:ServerDiagnostics
servers = nova.api.openstack.compute.plugins.v3.servers:Servers
nova.api.v3.extensions.server.create =