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