Bring now-deleted Horizon utils in-tree

Horizon commit 26eebd4abbbabc1475bae61c51d1cfcf14dba770 deleted some
needed functions.

Change-Id: Ia8787a65c110731f1dab9339f382b2680240cab3
Story: 2006179
Task: 35703
This commit is contained in:
Jeremy Freudberg 2019-07-10 09:56:23 -04:00
parent a97d060ab9
commit 1b2eab6d45
1 changed files with 25 additions and 4 deletions

View File

@ -26,10 +26,9 @@ from horizon import forms
from horizon import workflows
from openstack_dashboard.api import cinder
from openstack_dashboard.api import neutron
from openstack_dashboard.api import nova
from openstack_dashboard.dashboards.project.instances \
import utils as nova_utils
from openstack_dashboard.dashboards.project.volumes \
import utils as cinder_utils
from sahara_dashboard.api import manila as manilaclient
from sahara_dashboard.api import sahara as saharaclient
@ -61,6 +60,28 @@ def storage_choices(request):
return choices
def volume_availability_zone_list(request):
"""Utility method to retrieve a list of volume availability zones."""
try:
if cinder.extension_supported(request, 'AvailabilityZones'):
return cinder.availability_zone_list(request)
return []
except Exception:
exceptions.handle(request,
_('Unable to retrieve volumes availability zones.'))
return []
def instance_availability_zone_list(request):
"""Utility method to retrieve a list of instance availability zones."""
try:
return nova.availability_zone_list(request)
except Exception:
exceptions.handle(request,
_('Unable to retrieve Nova availability zones.'))
return []
class GeneralConfigAction(workflows.Action):
nodegroup_name = forms.CharField(label=_("Template Name"))
@ -286,7 +307,7 @@ class GeneralConfigAction(workflows.Action):
# The default is None, i.e. not specifying any availability zone
az_list = [(None, _('No availability zone specified'))]
az_list.extend([(az.zoneName, az.zoneName)
for az in nova_utils.availability_zone_list(request)
for az in instance_availability_zone_list(request)
if az.zoneState['available']])
return az_list
@ -294,7 +315,7 @@ class GeneralConfigAction(workflows.Action):
az_list = [(None, _('No availability zone specified'))]
if is_cinder_enabled(request):
az_list.extend([(az.zoneName, az.zoneName)
for az in cinder_utils.availability_zone_list(
for az in volume_availability_zone_list(
request) if az.zoneState['available']])
return az_list