Use plain routes list for server ips endpoint

This patch adds server 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: I4c0a023ab295cdb0c71ff4800f288946215745ce
This commit is contained in:
Stephen Finucane 2017-06-01 11:48:34 +01:00 committed by He Jie Xu
parent 0fc64f0ab6
commit 10462fc744
3 changed files with 11 additions and 23 deletions

View File

@ -23,8 +23,6 @@ from nova.api.openstack import wsgi
from nova.i18n import _
from nova.policies import ips as ips_policies
ALIAS = 'ips'
class IPsController(wsgi.Controller):
"""The servers addresses API controller for the OpenStack API."""
@ -57,23 +55,3 @@ class IPsController(wsgi.Controller):
raise exc.HTTPNotFound(explanation=msg)
return self._view_builder.show(networks[id], id)
class IPs(extensions.V21APIExtensionBase):
"""Server addresses."""
name = "Ips"
alias = ALIAS
version = 1
def get_resources(self):
parent = {'member_name': 'server',
'collection_name': 'servers'}
resources = [
extensions.ResourceExtension(
ALIAS, IPsController(), parent=parent, member_name='ip')]
return resources
def get_controller_extensions(self):
return []

View File

@ -47,6 +47,7 @@ from nova.api.openstack.compute import floating_ips
from nova.api.openstack.compute import floating_ips_bulk
from nova.api.openstack.compute import hide_server_addresses
from nova.api.openstack.compute import instance_usage_audit_log
from nova.api.openstack.compute import ips
from nova.api.openstack.compute import keypairs
from nova.api.openstack.compute import limits
from nova.api.openstack.compute import lock_server
@ -163,6 +164,10 @@ instance_usage_audit_log_controller = functools.partial(_create_controller,
instance_usage_audit_log.InstanceUsageAuditLogController, [], [])
ips_controller = functools.partial(_create_controller,
ips.IPsController, [], [])
keypairs_controller = functools.partial(
_create_controller, keypairs.KeypairController, [], [])
@ -441,6 +446,12 @@ ROUTE_LIST = (
('/servers/{server_id}/diagnostics', {
'GET': [server_diagnostics_controller, 'index']
}),
('/servers/{server_id}/ips', {
'GET': [ips_controller, 'index']
}),
('/servers/{server_id}/ips/{id}', {
'GET': [ips_controller, 'show']
}),
('/servers/{server_id}/metadata', {
'GET': [server_metadata_controller, 'index'],
'POST': [server_metadata_controller, 'create'],

View File

@ -86,7 +86,6 @@ nova.api.v21.extensions =
image_metadata = nova.api.openstack.compute.image_metadata:ImageMetadata
image_size = nova.api.openstack.compute.image_size:ImageSize
instance_actions = nova.api.openstack.compute.instance_actions:InstanceActions
ips = nova.api.openstack.compute.ips:IPs
multiple_create = nova.api.openstack.compute.multiple_create:MultipleCreate
networks = nova.api.openstack.compute.networks:Networks
networks_associate = nova.api.openstack.compute.networks_associate:NetworksAssociate