Use plain routes list for os-availability-zone endpoint instead of stevedore

This patch adds os-availability-zone 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: I19ad0d6a3fce2342097d8a61ee4f60adf0e14aa3
This commit is contained in:
ghanshyam 2017-05-01 21:22:09 +03:00
parent 564f14f4bc
commit b33aabee07
4 changed files with 16 additions and 24 deletions

View File

@ -22,7 +22,6 @@ from nova.policies import availability_zone as az_policies
from nova import servicegroup
CONF = nova.conf.CONF
ALIAS = "os-availability-zone"
ATTRIBUTE_NAME = "availability_zone"
@ -121,28 +120,6 @@ class AvailabilityZoneController(wsgi.Controller):
return self._describe_availability_zones_verbose(context)
class AvailabilityZone(extensions.V21APIExtensionBase):
"""1. Add availability_zone to the Create Server API.
2. Add availability zones describing.
"""
name = "AvailabilityZone"
alias = ALIAS
version = 1
def get_resources(self):
resource = [extensions.ResourceExtension(ALIAS,
AvailabilityZoneController(),
collection_actions={'detail': 'GET'})]
return resource
def get_controller_extensions(self):
"""It's an abstract function V21APIExtensionBase and the extension
will not be loaded without it.
"""
return []
# NOTE(gmann): This function is not supposed to use 'body_deprecated_param'
# parameter as this is placed to handle scheduler_hint extension for V2.1.
def server_create(server_dict, create_kwargs, body_deprecated_param):

View File

@ -181,6 +181,11 @@ hardcoded_extensions = [
'alias': 'os-assisted-volume-snapshots',
'description': 'Assisted volume snapshots.'
},
{'name': 'AvailabilityZone',
'alias': 'os-availability-zone',
'description': '1. Add availability_zone to the Create Server API.\n'
' 2. Add availability zones describing.\n ',
},
{'name': 'DiskConfig',
'alias': 'os-disk-config',
'description': 'Disk Management Extension.'},

View File

@ -22,6 +22,7 @@ from nova.api.openstack.compute import admin_password
from nova.api.openstack.compute import agents
from nova.api.openstack.compute import aggregates
from nova.api.openstack.compute import assisted_volume_snapshots
from nova.api.openstack.compute import availability_zone
from nova.api.openstack.compute import config_drive
from nova.api.openstack.compute import console_output
from nova.api.openstack.compute import create_backup
@ -90,6 +91,10 @@ assisted_volume_snapshots_controller = functools.partial(
assisted_volume_snapshots.AssistedVolumeSnapshotsController, [], [])
availability_zone_controller = functools.partial(
_create_controller, availability_zone.AvailabilityZoneController, [], [])
keypairs_controller = functools.partial(
_create_controller, keypairs.KeypairController, [], [])
@ -239,6 +244,12 @@ ROUTE_LIST = (
('/os-assisted-volume-snapshots/{id}', {
'DELETE': [assisted_volume_snapshots_controller, 'delete']
}),
('/os-availability-zone', {
'GET': [availability_zone_controller, 'index']
}),
('/os-availability-zone/detail', {
'GET': [availability_zone_controller, 'detail'],
}),
('/os-floating-ip-dns', {
'GET': [floating_ip_dns_controller, 'index']
}),

View File

@ -73,7 +73,6 @@ wsgi_scripts =
nova.api.v21.extensions =
attach_interfaces = nova.api.openstack.compute.attach_interfaces:AttachInterfaces
availability_zone = nova.api.openstack.compute.availability_zone:AvailabilityZone
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
block_device_mapping = nova.api.openstack.compute.block_device_mapping:BlockDeviceMapping
cells = nova.api.openstack.compute.cells:Cells