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
This commit is contained in:
jichenjc
2017-04-28 12:12:27 +08:00
parent a331c3222f
commit 0150eac1a0
4 changed files with 15 additions and 22 deletions
@@ -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'}
]
+12
View File
@@ -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']
@@ -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 []
-1
View File
@@ -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