From 0710fdaf4e4f9603c01eaa0a7f25873dcdad6c86 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Mon, 1 May 2017 18:39:40 +0300 Subject: [PATCH] Use plain routes list for os-floating-ips endpoint instead of stevedore This patch adds os-floating-ips 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: Iffcd760bc7b9f35596255ab8e59734166eed98af --- nova/api/openstack/compute/extension_info.py | 3 +++ nova/api/openstack/compute/floating_ips.py | 17 ----------------- nova/api/openstack/compute/routes.py | 12 ++++++++++++ setup.cfg | 1 - 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index ec32e17a4e..1d65f6aa4e 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -201,6 +201,9 @@ hardcoded_extensions = [ {'name': 'FlavorAccess', 'description': 'Flavor access support.', 'alias': 'os-flavor-access'}, + {'name': 'FloatingIps', + 'description': 'Floating IPs support.', + 'alias': 'os-floating-ips'}, {'name': 'Keypairs', 'description': 'Keypair Support.', 'alias': 'os-keypairs'} diff --git a/nova/api/openstack/compute/floating_ips.py b/nova/api/openstack/compute/floating_ips.py index 5492453094..e79bb46221 100644 --- a/nova/api/openstack/compute/floating_ips.py +++ b/nova/api/openstack/compute/floating_ips.py @@ -36,7 +36,6 @@ from nova.policies import floating_ips as fi_policies LOG = logging.getLogger(__name__) -ALIAS = 'os-floating-ips' def _translate_floating_ip_view(floating_ip): @@ -327,19 +326,3 @@ class FloatingIPActionController(wsgi.Controller): msg = _("Floating IP %(address)s is not associated with instance " "%(id)s.") % {'address': address, 'id': id} raise webob.exc.HTTPConflict(explanation=msg) - - -class FloatingIps(extensions.V21APIExtensionBase): - """Floating IPs support.""" - - name = "FloatingIps" - alias = ALIAS - version = 1 - - def get_resources(self): - resource = [extensions.ResourceExtension(ALIAS, - FloatingIPController())] - return resource - - def get_controller_extensions(self): - return [] diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 75b2241cf4..dcfae5b330 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -101,6 +101,10 @@ flavor_extraspec_controller = functools.partial(_create_controller, flavors_extraspecs.FlavorExtraSpecsController, [], []) +floating_ips_controller = functools.partial(_create_controller, + floating_ips.FloatingIPController, [], []) + + server_controller = functools.partial(_create_controller, servers.ServersController, [ @@ -191,6 +195,14 @@ ROUTE_LIST = ( ('/os-aggregates/{id}/action', { 'POST': [aggregates_controller, 'action'], }), + ('/os-floating-ips', { + 'GET': [floating_ips_controller, 'index'], + 'POST': [floating_ips_controller, 'create'] + }), + ('/os-floating-ips/{id}', { + 'GET': [floating_ips_controller, 'show'], + 'DELETE': [floating_ips_controller, 'delete'] + }), ('/os-keypairs', { 'GET': [keypairs_controller, 'index'], 'POST': [keypairs_controller, 'create'] diff --git a/setup.cfg b/setup.cfg index 507955b5d3..b3bbb9cb82 100644 --- a/setup.cfg +++ b/setup.cfg @@ -87,7 +87,6 @@ nova.api.v21.extensions = fixed_ips = nova.api.openstack.compute.fixed_ips:FixedIps 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 floating_ips_bulk = nova.api.openstack.compute.floating_ips_bulk:FloatingIpsBulk fping = nova.api.openstack.compute.fping:Fping hosts = nova.api.openstack.compute.hosts:Hosts