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
This commit is contained in:
He Jie Xu 2017-07-18 22:57:00 +08:00
parent 2b912ccbf1
commit 8acc357168
3 changed files with 10 additions and 20 deletions

View File

@ -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."""

View File

@ -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']

View File

@ -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 =