From 53ab2fd52ac17c1a8a42635afd9c3385fa6e84a1 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Mon, 1 May 2017 21:36:56 +0300 Subject: [PATCH] Use plain routes list for os-fixed-ips endpoint instead of stevedore This patch adds os-fixed-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: I0035397a78f05f406c64c064ef953d41c2cd79e4 --- nova/api/openstack/compute/extension_info.py | 3 +++ nova/api/openstack/compute/fixed_ips.py | 20 -------------------- nova/api/openstack/compute/routes.py | 11 +++++++++++ setup.cfg | 1 - 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 3da22658fa..5de4fc5044 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -199,6 +199,9 @@ hardcoded_extensions = [ {'name': 'Personality', 'description': 'Personality support.', 'alias': 'os-personality'}, + {'name': 'FixedIPs', + 'description': 'Fixed IPs support.', + 'alias': 'os-fixed-ips'}, {'name': 'Flavors', 'description': 'Flavors Extension.', 'alias': 'flavors'}, diff --git a/nova/api/openstack/compute/fixed_ips.py b/nova/api/openstack/compute/fixed_ips.py index a2fc25a0ec..1814f042a8 100644 --- a/nova/api/openstack/compute/fixed_ips.py +++ b/nova/api/openstack/compute/fixed_ips.py @@ -26,8 +26,6 @@ from nova.i18n import _ from nova import objects from nova.policies import fixed_ips as fi_policies -ALIAS = 'os-fixed-ips' - class FixedIPController(wsgi.Controller): @@ -108,21 +106,3 @@ class FixedIPController(wsgi.Controller): except exception.FixedIpInvalid: msg = _("Fixed IP %s not valid") % address raise webob.exc.HTTPBadRequest(explanation=msg) - - -class FixedIps(extensions.V21APIExtensionBase): - """Fixed IPs support.""" - - name = "FixedIPs" - alias = ALIAS - version = 1 - - def get_resources(self): - member_actions = {'action': 'POST'} - resources = extensions.ResourceExtension(ALIAS, - FixedIPController(), - member_actions=member_actions) - return [resources] - - def get_controller_extensions(self): - return [] diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 63002a086a..1c5d1f7960 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 extended_server_attributes from nova.api.openstack.compute import extended_status from nova.api.openstack.compute import extended_volumes from nova.api.openstack.compute import extension_info +from nova.api.openstack.compute import fixed_ips from nova.api.openstack.compute import flavor_access from nova.api.openstack.compute import flavor_manage from nova.api.openstack.compute import flavor_rxtx @@ -99,6 +100,10 @@ keypairs_controller = functools.partial( _create_controller, keypairs.KeypairController, [], []) +fixed_ips_controller = functools.partial(_create_controller, + fixed_ips.FixedIPController, [], []) + + flavor_controller = functools.partial(_create_controller, flavors.FlavorsController, [ @@ -250,6 +255,12 @@ ROUTE_LIST = ( ('/os-availability-zone/detail', { 'GET': [availability_zone_controller, 'detail'], }), + ('/os-fixed-ips/{id}', { + 'GET': [fixed_ips_controller, 'show'] + }), + ('/os-fixed-ips/{id}/action', { + 'POST': [fixed_ips_controller, 'action'], + }), ('/os-floating-ip-dns', { 'GET': [floating_ip_dns_controller, 'index'] }), diff --git a/setup.cfg b/setup.cfg index 416ea8d151..94888a1ee8 100644 --- a/setup.cfg +++ b/setup.cfg @@ -81,7 +81,6 @@ nova.api.v21.extensions = console_auth_tokens = nova.api.openstack.compute.console_auth_tokens:ConsoleAuthTokens 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 fping = nova.api.openstack.compute.fping:Fping hosts = nova.api.openstack.compute.hosts:Hosts hypervisors = nova.api.openstack.compute.hypervisors:Hypervisors