From 7c73d39df624199bef493a9f7bb002c7ff028ab0 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Mon, 19 Jun 2017 16:46:02 +0100 Subject: [PATCH] Use plain routes list for os-remote-consoles instead of stevedore This patch adds os-remote-consoles 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: Id192220445e296656eedb79e39042cd00bbe65a7 --- nova/api/openstack/compute/remote_consoles.py | 22 ------------------- nova/api/openstack/compute/routes.py | 7 ++++++ setup.cfg | 1 - 3 files changed, 7 insertions(+), 23 deletions(-) diff --git a/nova/api/openstack/compute/remote_consoles.py b/nova/api/openstack/compute/remote_consoles.py index bf0ff67803..80faad25a9 100644 --- a/nova/api/openstack/compute/remote_consoles.py +++ b/nova/api/openstack/compute/remote_consoles.py @@ -24,9 +24,6 @@ from nova import exception from nova.policies import remote_consoles as rc_policies -ALIAS = "os-remote-consoles" - - class RemoteConsolesController(wsgi.Controller): def __init__(self, *args, **kwargs): self.compute_api = compute.API() @@ -186,22 +183,3 @@ class RemoteConsolesController(wsgi.Controller): raise webob.exc.HTTPBadRequest(explanation=e.format_message()) except NotImplementedError: common.raise_feature_not_supported() - - -class RemoteConsoles(extensions.V21APIExtensionBase): - """Interactive Console support.""" - name = "Consoles" - alias = ALIAS - version = 1 - - def get_controller_extensions(self): - return [] - - def get_resources(self): - parent = {'member_name': 'server', - 'collection_name': 'servers'} - resources = [ - extensions.ResourceExtension( - 'remote-consoles', RemoteConsolesController(), parent=parent, - member_name='remote-console')] - return resources diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 8f3892ca81..f094a9128c 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -294,6 +294,10 @@ server_password_controller = functools.partial(_create_controller, server_password.ServerPasswordController, [], []) +server_remote_consoles_controller = functools.partial(_create_controller, + remote_consoles.RemoteConsolesController, [], []) + + server_tags_controller = functools.partial(_create_controller, server_tags.ServerTagsController, [], []) @@ -641,6 +645,9 @@ ROUTE_LIST = ( ('/servers/{server_id}/os-virtual-interfaces', { 'GET': [virtual_interfaces_controller, 'index'] }), + ('/servers/{server_id}/remote-consoles', { + 'POST': [server_remote_consoles_controller, 'create'] + }), ('/servers/{server_id}/tags', { 'GET': [server_tags_controller, 'index'], 'PUT': [server_tags_controller, 'update_all'], diff --git a/setup.cfg b/setup.cfg index b77cd2e3ac..dacce26d2d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -80,7 +80,6 @@ nova.api.v21.extensions = image_size = nova.api.openstack.compute.image_size:ImageSize networks = nova.api.openstack.compute.networks:Networks networks_associate = nova.api.openstack.compute.networks_associate:NetworksAssociate - remote_consoles = nova.api.openstack.compute.remote_consoles:RemoteConsoles security_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules security_groups = nova.api.openstack.compute.security_groups:SecurityGroups versions = nova.api.openstack.compute.versionsV21:Versions