From 0150eac1a071ce600ad338988a9f0dc19cd8843a Mon Sep 17 00:00:00 2001 From: jichenjc Date: Fri, 28 Apr 2017 12:12:27 +0800 Subject: [PATCH] use plain routes list for os-simple-tenant-usage This patch adds os-simple-tenant-usage 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: I3c8832f82c3e4137be564ee97b4de28a6e836f18 --- nova/api/openstack/compute/extension_info.py | 3 +++ nova/api/openstack/compute/routes.py | 12 +++++++++++ .../openstack/compute/simple_tenant_usage.py | 21 ------------------- setup.cfg | 1 - 4 files changed, 15 insertions(+), 22 deletions(-) diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 80f44b82ffb3..52423795d850 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -216,6 +216,9 @@ hardcoded_extensions = [ {'name': 'ServerMetadata', 'description': 'Server metadata Support.', 'alias': 'server-metadata'}, + {'name': 'SimpleTenantUsage', + 'description': 'Simple tenant usage extension.', + 'alias': 'os-simple-tenant-usage'} ] diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 76cecc635fdc..9b21ca8653fe 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -51,6 +51,7 @@ from nova.api.openstack.compute import server_metadata from nova.api.openstack.compute import server_usage from nova.api.openstack.compute import servers from nova.api.openstack.compute import shelve +from nova.api.openstack.compute import simple_tenant_usage from nova.api.openstack.compute import suspend_server from nova.api.openstack import wsgi import nova.conf @@ -153,6 +154,11 @@ server_controller = functools.partial(_create_controller, server_metadata_controller = functools.partial(_create_controller, server_metadata.ServerMetadataController, [], []) + +simple_tenant_usage_controller = functools.partial(_create_controller, + simple_tenant_usage.SimpleTenantUsageController, [], []) + + # NOTE(alex_xu): This is structure of this route list as below: # ( # ('Route path': { @@ -236,6 +242,12 @@ ROUTE_LIST = ( 'GET': [keypairs_controller, 'show'], 'DELETE': [keypairs_controller, 'delete'] }), + ('/os-simple-tenant-usage', { + 'GET': [simple_tenant_usage_controller, 'index'] + }), + ('/os-simple-tenant-usage/{id}', { + 'GET': [simple_tenant_usage_controller, 'show'] + }), ('/os-volumes_boot', { 'GET': [server_controller, 'index'], 'POST': [server_controller, 'create'] diff --git a/nova/api/openstack/compute/simple_tenant_usage.py b/nova/api/openstack/compute/simple_tenant_usage.py index 051ddb8d7b23..b0a1701ba7d0 100644 --- a/nova/api/openstack/compute/simple_tenant_usage.py +++ b/nova/api/openstack/compute/simple_tenant_usage.py @@ -33,7 +33,6 @@ from nova import objects from nova.policies import simple_tenant_usage as stu_policies CONF = nova.conf.CONF -ALIAS = "os-simple-tenant-usage" def parse_strtime(dstr, fmt): @@ -364,23 +363,3 @@ class SimpleTenantUsageController(wsgi.Controller): tenant_usage['tenant_usage_links'] = usages_links return tenant_usage - - -class SimpleTenantUsage(extensions.V21APIExtensionBase): - """Simple tenant usage extension.""" - - name = "SimpleTenantUsage" - alias = ALIAS - version = 1 - - def get_resources(self): - resources = [] - - res = extensions.ResourceExtension(ALIAS, - SimpleTenantUsageController()) - resources.append(res) - - return resources - - def get_controller_extensions(self): - return [] diff --git a/setup.cfg b/setup.cfg index 2f620e0e9213..f74a833f6069 100644 --- a/setup.cfg +++ b/setup.cfg @@ -112,7 +112,6 @@ nova.api.v21.extensions = server_tags = nova.api.openstack.compute.server_tags:ServerTags server_groups = nova.api.openstack.compute.server_groups:ServerGroups services = nova.api.openstack.compute.services:Services - simple_tenant_usage = nova.api.openstack.compute.simple_tenant_usage:SimpleTenantUsage tenant_networks = nova.api.openstack.compute.tenant_networks:TenantNetworks used_limits = nova.api.openstack.compute.used_limits:UsedLimits user_data = nova.api.openstack.compute.user_data:UserData