From b841952906de33ff93c90cc04ea0509afeaab89f Mon Sep 17 00:00:00 2001 From: Akihiro Motoki Date: Fri, 26 Feb 2021 03:44:15 +0900 Subject: [PATCH] Handle an attached volume without volume_image_metadata There is a case where volume_image_metadata attribute does not exist. It looks like it happens for example when a volume was created before the volume_image_metadata feature was implemented. Change-Id: I0b8e6b2e540a1782b9edd9921490a9371d31afc7 Closes-Bug: #1916891 --- .../dashboards/project/instances/tabs.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/openstack_dashboard/dashboards/project/instances/tabs.py b/openstack_dashboard/dashboards/project/instances/tabs.py index 57bbd1c0bd..46b7203514 100644 --- a/openstack_dashboard/dashboards/project/instances/tabs.py +++ b/openstack_dashboard/dashboards/project/instances/tabs.py @@ -41,12 +41,19 @@ class OverviewTab(tabs.Tab): try: volume = api.cinder.volume_get( self.request, volume_id=instance.volumes[0].volumeId) - instance.image = { - 'id': volume.volume_image_metadata['image_id'], - 'name': volume.volume_image_metadata['image_name']} except Exception: exceptions.handle(self.request, _('Failed to get attached volume.')) + try: + instance.image = { + 'id': volume.volume_image_metadata['image_id'], + 'name': volume.volume_image_metadata['image_name'], + } + except (AttributeError, KeyError): + # AttributeError is raised when volume_image_metadata does not + # exist. KeyError is raised when volume_image_metadata exists + # but image_id or image_name is not included. + instance.image = None return {"instance": instance}