diff options
| author | Jenkins <jenkins@review.openstack.org> | 2013-04-17 13:40:23 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2013-04-17 13:40:23 +0000 |
| commit | 3baff97b3f98ac5f5cf46ccf497b53317a535004 (patch) | |
| tree | 5ef77f83129045a5a944d1b682d3061877b1405a /nova/api | |
| parent | 964df95013fe65d38b3675592ae02249e93d2bc5 (diff) | |
| parent | 7172fdc2bf4061039fe34cdb97e442c073a7570a (diff) | |
Merge "Fix bug in os-availability-zone extension."
Diffstat (limited to 'nova/api')
| -rw-r--r-- | nova/api/openstack/compute/contrib/availability_zone.py | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/nova/api/openstack/compute/contrib/availability_zone.py b/nova/api/openstack/compute/contrib/availability_zone.py index 14602265b..22001b65f 100644 --- a/nova/api/openstack/compute/contrib/availability_zone.py +++ b/nova/api/openstack/compute/contrib/availability_zone.py @@ -76,24 +76,28 @@ class AvailabilityZoneController(wsgi.Controller): super(AvailabilityZoneController, self).__init__() self.servicegroup_api = servicegroup.API() - def _describe_availability_zones(self, context, **kwargs): - ctxt = context.elevated() - available_zones, not_available_zones = \ - availability_zones.get_availability_zones(ctxt) - + def _get_filtered_availability_zones(self, zones, is_available): result = [] - for zone in available_zones: + for zone in zones: # Hide internal_service_availability_zone if zone == CONF.internal_service_availability_zone: continue result.append({'zoneName': zone, - 'zoneState': {'available': True}, - "hosts": None}) - for zone in not_available_zones: - result.append({'zoneName': zone, - 'zoneState': {'available': False}, + 'zoneState': {'available': is_available}, "hosts": None}) - return {'availabilityZoneInfo': result} + return result + + def _describe_availability_zones(self, context, **kwargs): + ctxt = context.elevated() + available_zones, not_available_zones = \ + availability_zones.get_availability_zones(ctxt) + + filtered_available_zones = \ + self._get_filtered_availability_zones(available_zones, True) + filtered_not_available_zones = \ + self._get_filtered_availability_zones(not_available_zones, False) + return {'availabilityZoneInfo': filtered_available_zones + + filtered_not_available_zones} def _describe_availability_zones_verbose(self, context, **kwargs): ctxt = context.elevated() |
