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:
@@ -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 []
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user