diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 919a3e7a8b..5402c90524 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -194,7 +194,10 @@ hardcoded_extensions = [ 'alias': 'os-flavor-rxtx'}, {'name': 'FlavorExtraSpecs', 'description': 'Flavors extra specs support.', - 'alias': 'os-flavor-extra-specs'} + 'alias': 'os-flavor-extra-specs'}, + {'name': 'FlavorAccess', + 'description': 'Flavor access support.', + 'alias': 'os-flavor-access'} ] diff --git a/nova/api/openstack/compute/flavor_access.py b/nova/api/openstack/compute/flavor_access.py index 8790ef724c..163a327f3e 100644 --- a/nova/api/openstack/compute/flavor_access.py +++ b/nova/api/openstack/compute/flavor_access.py @@ -27,8 +27,6 @@ from nova import exception from nova.i18n import _ from nova.policies import flavor_access as fa_policies -ALIAS = 'os-flavor-access' - def _marshall_flavor_access(flavor): rval = [] @@ -60,7 +58,7 @@ class FlavorAccessController(wsgi.Controller): class FlavorActionController(wsgi.Controller): """The flavor access API controller for the OpenStack API.""" def _extend_flavor(self, flavor_rval, flavor_ref): - key = "%s:is_public" % (FlavorAccess.alias) + key = "os-flavor-access:is_public" flavor_rval[key] = flavor_ref['is_public'] @wsgi.extends @@ -134,22 +132,3 @@ class FlavorActionController(wsgi.Controller): exception.FlavorNotFound) as e: raise webob.exc.HTTPNotFound(explanation=e.format_message()) return _marshall_flavor_access(flavor) - - -class FlavorAccess(extensions.V21APIExtensionBase): - """Flavor access support.""" - - name = "FlavorAccess" - alias = ALIAS - version = 1 - - def get_resources(self): - res = extensions.ResourceExtension( - ALIAS, - controller=FlavorAccessController(), - parent=dict(member_name='flavor', collection_name='flavors')) - - return [res] - - def get_controller_extensions(self): - return [] diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 209f270920..0b6ac4e625 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -84,6 +84,10 @@ flavor_controller = functools.partial(_create_controller, ) +flavor_access_controller = functools.partial(_create_controller, + flavor_access.FlavorAccessController, [], []) + + flavor_extraspec_controller = functools.partial(_create_controller, flavors_extraspecs.FlavorExtraSpecsController, [], []) @@ -163,6 +167,9 @@ ROUTE_LIST = ( 'PUT': [flavor_extraspec_controller, 'update'], 'DELETE': [flavor_extraspec_controller, 'delete'] }), + ('/flavors/{flavor_id}/os-flavor-access', { + 'GET': [flavor_access_controller, 'index'] + }), ('/os-volumes_boot', { 'GET': [server_controller, 'index'], 'POST': [server_controller, 'create'] diff --git a/setup.cfg b/setup.cfg index 4cb74c329c..7c16c605ce 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 - 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 floating_ips = nova.api.openstack.compute.floating_ips:FloatingIps