Skip to content

Commit f7bc040

Browse files
gmaanosmriedem
authored andcommitted
Merge extended availability zone response into server controller
As nova extensions has been deprecated already and goal is to merge all scattered code into main controller side. Currently schema and request/response extended code are there among all extensions. This commit merge the extended AZ resposne into server controller. Partially implements: blueprint api-extensions-merge-stein Change-Id: Iebed7756c4599fbf03a5cf1130c047ee8f22d21c
1 parent c587a85 commit f7bc040

File tree

6 files changed

+74
-206
lines changed

6 files changed

+74
-206
lines changed

nova/api/openstack/compute/extended_availability_zone.py

Lines changed: 0 additions & 46 deletions
This file was deleted.

nova/api/openstack/compute/routes.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
from nova.api.openstack.compute import create_backup
3636
from nova.api.openstack.compute import deferred_delete
3737
from nova.api.openstack.compute import evacuate
38-
from nova.api.openstack.compute import extended_availability_zone
3938
from nova.api.openstack.compute import extended_server_attributes
4039
from nova.api.openstack.compute import extended_status
4140
from nova.api.openstack.compute import extended_volumes
@@ -270,7 +269,6 @@ def _create_controller(main_controller, controller_list,
270269
servers.ServersController,
271270
[
272271
config_drive.ConfigDriveController,
273-
extended_availability_zone.ExtendedAZController,
274272
extended_server_attributes.ExtendedServerAttributesController,
275273
extended_status.ExtendedStatusController,
276274
extended_volumes.ExtendedVolumesController,

nova/api/openstack/compute/servers.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,8 @@ def update(self, req, id, body):
717717
instance = self.compute_api.update_instance(ctxt, instance,
718718
update_dict)
719719
return self._view_builder.show(req, instance,
720-
extend_address=False)
720+
extend_address=False,
721+
show_AZ=False)
721722
except exception.InstanceNotFound:
722723
msg = _("Instance could not be found")
723724
raise exc.HTTPNotFound(explanation=msg)
@@ -981,7 +982,8 @@ def _action_rebuild(self, req, id, body):
981982

982983
instance = self._get_server(context, req, id, is_detail=True)
983984

984-
view = self._view_builder.show(req, instance, extend_address=False)
985+
view = self._view_builder.show(req, instance, extend_address=False,
986+
show_AZ=False)
985987

986988
# Add on the admin_password attribute since the view doesn't do it
987989
# unless instance passwords are disabled

nova/api/openstack/compute/views/servers.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from nova.api.openstack.compute.views import addresses as views_addresses
2222
from nova.api.openstack.compute.views import flavors as views_flavors
2323
from nova.api.openstack.compute.views import images as views_images
24+
from nova import availability_zones as avail_zone
2425
from nova import context as nova_context
2526
from nova import exception
2627
from nova import objects
@@ -110,7 +111,7 @@ def get_show_expected_attrs(self, expected_attrs=None):
110111
return sorted(list(set(self._show_expected_attrs + expected_attrs)))
111112

112113
def show(self, request, instance, extend_address=True,
113-
show_extra_specs=None):
114+
show_extra_specs=None, show_AZ=True):
114115
"""Detailed view of a single instance."""
115116
ip_v4 = instance.get('access_ip_v4')
116117
ip_v6 = instance.get('access_ip_v6')
@@ -160,6 +161,14 @@ def show(self, request, instance, extend_address=True,
160161
if server["server"]["status"] in self._progress_statuses:
161162
server["server"]["progress"] = instance.get("progress", 0)
162163

164+
if show_AZ:
165+
context = request.environ['nova.context']
166+
az = avail_zone.get_instance_availability_zone(context, instance)
167+
# NOTE(mriedem): The OS-EXT-AZ prefix should not be used for new
168+
# attributes after v2.1. They are only in v2.1 for backward compat
169+
# with v2.0.
170+
server["server"]["OS-EXT-AZ:availability_zone"] = az or ''
171+
163172
if api_version_request.is_supported(request, min_version="2.9"):
164173
server["server"]["locked"] = (True if instance["locked_by"]
165174
else False)

nova/tests/unit/api/openstack/compute/test_extended_availability_zone.py

Lines changed: 0 additions & 149 deletions
This file was deleted.

0 commit comments

Comments
 (0)