Use plain routes list for flavors-extraspecs endpoint instead of stevedore

This patch adds flavors-extraspecs 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: I7578ef265458365b44b366c4021d0566c39ea936
This commit is contained in:
ghanshyam
2017-04-14 10:41:53 +03:00
committed by He Jie Xu
parent 66dd9aa1ce
commit e91a282a31
4 changed files with 18 additions and 22 deletions
+4 -1
View File
@@ -191,7 +191,10 @@ hardcoded_extensions = [
'alias': 'os-flavor-manage'},
{'name': 'FlavorRxtx',
'description': 'Support to show the rxtx status of a flavor.',
'alias': 'os-flavor-rxtx'}
'alias': 'os-flavor-rxtx'},
{'name': 'FlavorExtraSpecs',
'description': 'Flavors extra specs support.',
'alias': 'os-flavor-extra-specs'}
]
@@ -26,8 +26,6 @@ from nova.i18n import _
from nova.policies import flavor_extra_specs as fes_policies
from nova import utils
ALIAS = 'os-flavor-extra-specs'
class FlavorExtraSpecsController(wsgi.Controller):
"""The flavor extra specs API controller for the OpenStack API."""
@@ -130,21 +128,3 @@ class FlavorExtraSpecsController(wsgi.Controller):
"key %(key)s.") % dict(flavor_id=flavor_id,
key=id)
raise webob.exc.HTTPNotFound(explanation=msg)
class FlavorsExtraSpecs(extensions.V21APIExtensionBase):
"""Flavors extra specs support."""
name = 'FlavorExtraSpecs'
alias = ALIAS
version = 1
def get_resources(self):
extra_specs = extensions.ResourceExtension(
'os-extra_specs',
FlavorExtraSpecsController(),
parent=dict(member_name='flavor', collection_name='flavors'))
return [extra_specs]
def get_controller_extensions(self):
return []
+14
View File
@@ -33,6 +33,7 @@ from nova.api.openstack.compute import flavor_access
from nova.api.openstack.compute import flavor_manage
from nova.api.openstack.compute import flavor_rxtx
from nova.api.openstack.compute import flavors
from nova.api.openstack.compute import flavors_extraspecs
from nova.api.openstack.compute import floating_ips
from nova.api.openstack.compute import hide_server_addresses
from nova.api.openstack.compute import keypairs
@@ -83,6 +84,10 @@ flavor_controller = functools.partial(_create_controller,
)
flavor_extraspec_controller = functools.partial(_create_controller,
flavors_extraspecs.FlavorExtraSpecsController, [], [])
server_controller = functools.partial(_create_controller,
servers.ServersController,
[
@@ -149,6 +154,15 @@ ROUTE_LIST = (
('/flavors/{id}/action', {
'POST': [flavor_controller, 'action']
}),
('/flavors/{flavor_id}/os-extra_specs', {
'GET': [flavor_extraspec_controller, 'index'],
'POST': [flavor_extraspec_controller, 'create']
}),
('/flavors/{flavor_id}/os-extra_specs/{id}', {
'GET': [flavor_extraspec_controller, 'show'],
'PUT': [flavor_extraspec_controller, 'update'],
'DELETE': [flavor_extraspec_controller, 'delete']
}),
('/os-volumes_boot', {
'GET': [server_controller, 'index'],
'POST': [server_controller, 'create']
-1
View File
@@ -85,7 +85,6 @@ nova.api.v21.extensions =
consoles = nova.api.openstack.compute.consoles:Consoles
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
fixed_ips = nova.api.openstack.compute.fixed_ips:FixedIps
flavors_extraspecs = nova.api.openstack.compute.flavors_extraspecs:FlavorsExtraSpecs
flavor_access = nova.api.openstack.compute.flavor_access:FlavorAccess
floating_ip_dns = nova.api.openstack.compute.floating_ip_dns:FloatingIpDns
floating_ip_pools = nova.api.openstack.compute.floating_ip_pools:FloatingIpPools