From e91a282a3138fef030221f4f3416ff2f0ae43e51 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Fri, 14 Apr 2017 10:41:53 +0300 Subject: [PATCH] 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 --- nova/api/openstack/compute/extension_info.py | 5 ++++- .../openstack/compute/flavors_extraspecs.py | 20 ------------------- nova/api/openstack/compute/routes.py | 14 +++++++++++++ setup.cfg | 1 - 4 files changed, 18 insertions(+), 22 deletions(-) diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 7cab7f5e79..919a3e7a8b 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -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'} ] diff --git a/nova/api/openstack/compute/flavors_extraspecs.py b/nova/api/openstack/compute/flavors_extraspecs.py index f4329b92e5..aebca70e09 100644 --- a/nova/api/openstack/compute/flavors_extraspecs.py +++ b/nova/api/openstack/compute/flavors_extraspecs.py @@ -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 [] diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 7acaae77b7..209f270920 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -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'] diff --git a/setup.cfg b/setup.cfg index 388e2fbf46..4cb74c329c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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