Use plain routes list for os-cells endpoint instead of stevedore

This patch adds os-cells 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: Iec6e720b4e225251ce06ddfecb316569f9260913
This commit is contained in:
jichenjc
2017-05-28 11:39:27 +08:00
committed by Ghanshyam Mann
parent 7c73d39df6
commit 408fcfd604
3 changed files with 29 additions and 32 deletions

View File

@@ -36,8 +36,6 @@ from nova import rpc
CONF = nova.conf.CONF
ALIAS = "os-cells"
def _filter_keys(item, keys):
"""Filters all model attributes except for keys
@@ -303,32 +301,3 @@ class CellsController(wsgi.Controller):
deleted = strutils.bool_from_string(deleted, strict=True)
self.cells_rpcapi.sync_instances(context, project_id=project_id,
updated_since=updated_since, deleted=deleted)
class Cells(extensions.V21APIExtensionBase):
"""Enables cells-related functionality such as adding neighbor cells,
listing neighbor cells, and getting the capabilities of the local cell.
"""
name = "Cells"
alias = ALIAS
version = 1
def get_resources(self):
coll_actions = {
'detail': 'GET',
'info': 'GET',
'sync_instances': 'POST',
'capacities': 'GET',
}
memb_actions = {
'capacities': 'GET',
}
res = extensions.ResourceExtension(ALIAS, CellsController(),
collection_actions=coll_actions,
member_actions=memb_actions)
return [res]
def get_controller_extensions(self):
return []

View File

@@ -24,6 +24,7 @@ from nova.api.openstack.compute import aggregates
from nova.api.openstack.compute import assisted_volume_snapshots
from nova.api.openstack.compute import attach_interfaces
from nova.api.openstack.compute import availability_zone
from nova.api.openstack.compute import cells
from nova.api.openstack.compute import certificates
from nova.api.openstack.compute import cloudpipe
from nova.api.openstack.compute import config_drive
@@ -123,6 +124,10 @@ availability_zone_controller = functools.partial(
_create_controller, availability_zone.AvailabilityZoneController, [], [])
cells_controller = functools.partial(
_create_controller, cells.CellsController, [], [])
certificates_controller = functools.partial(
_create_controller, certificates.CertificatesController, [], [])
@@ -397,6 +402,30 @@ ROUTE_LIST = (
('/os-availability-zone/detail', {
'GET': [availability_zone_controller, 'detail'],
}),
('/os-cells', {
'POST': [cells_controller, 'create'],
'GET': [cells_controller, 'index'],
}),
('/os-cells/capacities', {
'GET': [cells_controller, 'capacities']
}),
('/os-cells/detail', {
'GET': [cells_controller, 'detail']
}),
('/os-cells/info', {
'GET': [cells_controller, 'info']
}),
('/os-cells/sync_instances', {
'POST': [cells_controller, 'sync_instances']
}),
('/os-cells/{id}', {
'GET': [cells_controller, 'show'],
'PUT': [cells_controller, 'update'],
'DELETE': [cells_controller, 'delete']
}),
('/os-cells/{id}/capacities', {
'GET': [cells_controller, 'capacities']
}),
('/os-certificates', {
'POST': [certificates_controller, 'create']
}),

View File

@@ -73,7 +73,6 @@ wsgi_scripts =
nova.api.v21.extensions =
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
cells = nova.api.openstack.compute.cells:Cells
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
images = nova.api.openstack.compute.images:Images
image_metadata = nova.api.openstack.compute.image_metadata:ImageMetadata