diff --git a/nova/api/openstack/compute/availability_zone.py b/nova/api/openstack/compute/availability_zone.py index e31f40aa42..33e61d3fb1 100644 --- a/nova/api/openstack/compute/availability_zone.py +++ b/nova/api/openstack/compute/availability_zone.py @@ -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): diff --git a/nova/api/openstack/compute/extension_info.py b/nova/api/openstack/compute/extension_info.py index 2fa678a320..3da22658fa 100644 --- a/nova/api/openstack/compute/extension_info.py +++ b/nova/api/openstack/compute/extension_info.py @@ -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.'}, diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index bed453b6dc..63002a086a 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -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'] }), diff --git a/setup.cfg b/setup.cfg index 1cd7d7f4d7..416ea8d151 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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