diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index eb05a32af0..15fe96931f 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 31e07fc728..b76b5fad25 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 @@ -100,6 +101,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, [ @@ -254,6 +259,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 1dbe829d79..f0053cb150 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