From 8acc357168b3203d8a521415c4163a5c85be9d65 Mon Sep 17 00:00:00 2001 From: He Jie Xu Date: Tue, 18 Jul 2017 22:57:00 +0800 Subject: [PATCH] Use plain routes list for extension_info instead of stevedore This patch adds extension_info related routes by a plain list, instead of using stevedore. After all the Nova API endpoints moves to the plain routes list, the usage of stevedore for API loading will be removed from Nova. Partial-implement-blueprint api-no-more-extensions-pike Change-Id: I07c5e0dc34042d4f3cea8b1b933b11a624ec9512 --- nova/api/openstack/compute/extension_info.py | 19 ------------------- nova/api/openstack/compute/routes.py | 10 ++++++++++ setup.cfg | 1 - 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 60722adfc3..d3eb9be948 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -21,7 +21,6 @@ from nova.api.openstack import wsgi from nova import exception from nova.policies import extensions as ext_policies -ALIAS = 'extensions' LOG = logging.getLogger(__name__) @@ -896,24 +895,6 @@ class ExtensionInfoController(wsgi.Controller): raise webob.exc.HTTPNotFound() -class ExtensionInfo(extensions.V21APIExtensionBase): - """Extension information.""" - - name = "Extensions" - alias = ALIAS - version = 1 - - def get_resources(self): - resources = [ - extensions.ResourceExtension( - ALIAS, ExtensionInfoController(self.extension_info), - member_name='extension')] - return resources - - def get_controller_extensions(self): - return [] - - class LoadedExtensionInfo(object): """Keep track of all loaded API extensions.""" diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 1b8a62045d..f7b170320b 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -148,6 +148,10 @@ cloudpipe_controller = functools.partial( _create_controller, cloudpipe.CloudpipeController, [], []) +extensions_controller = functools.partial( + _create_controller, extension_info.ExtensionInfoController, [], []) + + fixed_ips_controller = functools.partial(_create_controller, fixed_ips.FixedIPController, [], []) @@ -396,6 +400,12 @@ volumes_controller = functools.partial(_create_controller, ROUTE_LIST = ( # NOTE: '/os-volumes_boot' is a clone of '/servers'. We may want to # deprecate it in the future. + ('/extensions', { + 'GET': [extensions_controller, 'index'], + }), + ('/extensions/{id}', { + 'GET': [extensions_controller, 'show'], + }), ('/flavors', { 'GET': [flavor_controller, 'index'], 'POST': [flavor_controller, 'create'] diff --git a/setup.cfg b/setup.cfg index 02e407da00..755192e620 100644 --- a/setup.cfg +++ b/setup.cfg @@ -72,7 +72,6 @@ wsgi_scripts = nova-metadata-wsgi = nova.api.metadata.wsgi:init_application nova.api.v21.extensions = - extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo versions = nova.api.openstack.compute.versionsV21:Versions nova.api.v21.test_extensions =