From d288c54073e8b7f11060b612d35865685f86e9e0 Mon Sep 17 00:00:00 2001 From: Vitaly Gridnev Date: Fri, 15 Jul 2016 12:09:29 +0300 Subject: [PATCH] be safer on retrieving objects when object is public, there is no guarantee that all resources are shared between tenants. so, it's better to safer on case of retrieving additional information about cluster details. Change-Id: Ib0d9b4d324f40504d3540d2716df64dd8e206af5 Closes-bug: 1588795 --- .../cluster-details-fix-4c53edfa60500d8a.yaml | 3 +++ .../data_processing/clusters/clusters/tabs.py | 25 +++++++++++++------ 2 files changed, 20 insertions(+), 8 deletions(-) create mode 100644 releasenotes/notes/cluster-details-fix-4c53edfa60500d8a.yaml diff --git a/releasenotes/notes/cluster-details-fix-4c53edfa60500d8a.yaml b/releasenotes/notes/cluster-details-fix-4c53edfa60500d8a.yaml new file mode 100644 index 00000000..589f6d33 --- /dev/null +++ b/releasenotes/notes/cluster-details-fix-4c53edfa60500d8a.yaml @@ -0,0 +1,3 @@ +--- +fixes: + - Fixed issue with retrieving details for public clusters. diff --git a/sahara_dashboard/content/data_processing/clusters/clusters/tabs.py b/sahara_dashboard/content/data_processing/clusters/clusters/tabs.py index 6cc1c512..22a6a67a 100644 --- a/sahara_dashboard/content/data_processing/clusters/clusters/tabs.py +++ b/sahara_dashboard/content/data_processing/clusters/clusters/tabs.py @@ -71,8 +71,13 @@ class GeneralTab(tabs.Tab): if str(val).startswith(('http://', 'https://')): cluster.info[info_key][key] = build_link(val) - base_image = glance.image_get(request, - cluster.default_image_id) + try: + base_image = glance.image_get(request, + cluster.default_image_id) + except Exception: + exceptions.handle( + request, _("Unable to fetch base image details")) + base_image = {} if getattr(cluster, 'cluster_template_id', None): cluster_template = saharaclient.safe_call( @@ -80,12 +85,16 @@ class GeneralTab(tabs.Tab): cluster.cluster_template_id) else: cluster_template = None - - if getattr(cluster, 'neutron_management_network', None): - net_id = cluster.neutron_management_network - network = neutron.network_get(request, net_id) - net_name = network.name_or_id - else: + try: + if getattr(cluster, 'neutron_management_network', None): + net_id = cluster.neutron_management_network + network = neutron.network_get(request, net_id) + net_name = network.name_or_id + else: + net_name = None + except Exception: + exceptions.handle( + request, _("Unable to fetch network details")) net_name = None cluster_info.update({"cluster": cluster,