From 959e3876fa662729d6b2f9a7a8250aff9d33cd04 Mon Sep 17 00:00:00 2001 From: Saju Madhavan Date: Sat, 21 Jan 2017 22:05:18 +0530 Subject: [PATCH] VNFFG Manager Tab throwing attribute error Change-Id: Idda7aff8632d25672f5aed40c4dd9068e5717f76 Closes-Bug: 1653865 --- .../dashboards/nfv/vnffgmanager/tables.py | 4 +-- .../dashboards/nfv/vnffgmanager/tabs.py | 16 ++++++++-- .../templates/vnffgmanager/vnffg_details.html | 31 +++++++++++++++++++ .../dashboards/nfv/vnffgmanager/views.py | 2 +- 4 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/templates/vnffgmanager/vnffg_details.html diff --git a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tables.py b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tables.py index e308495..6d777a2 100644 --- a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tables.py +++ b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tables.py @@ -25,10 +25,10 @@ from tackerclient.common.exceptions import NotFound class VNFFGManagerItem(object): - def __init__(self, name, description, vnffgs, status): + def __init__(self, id, name, description, status): + self.id = id self.name = name self.description = description - self.vnffgs = vnffgs self.status = status diff --git a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tabs.py b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tabs.py index 1e50f02..bd6c73c 100644 --- a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tabs.py +++ b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/tabs.py @@ -45,10 +45,10 @@ class VNFFGManagerTab(tabs.TableTab): except KeyError: vnffg_desc_str = "" - obj = VNFFGManagerItem(vnffg['name'], + obj = VNFFGManagerItem(vnffg['id'], + vnffg['name'], vnffg_desc_str, - vnffg['status'], - vnffg['id']) + vnffg['status']) VNFFGManagerItemList.add_item(obj) return VNFFGManagerItemList.VNFFGLIST_P except Exception: @@ -65,6 +65,16 @@ class VNFFGManagerTabs(tabs.TabGroup): sticky = True +class VNFFGDetailsTab(tabs.Tab): + name = _("VNFFG Detail") + slug = "VNFFG_Details" + template_name = "nfv/vnffgmanager/vnffg_details.html" + + def get_context_data(self, request): + return {'vnffg': self.tab_group.kwargs['vnffg']} + + class VNFFGDetailsTabs(tabs.TabGroup): slug = "VNFFG_details" + tabs = (VNFFGDetailsTab,) sticky = True diff --git a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/templates/vnffgmanager/vnffg_details.html b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/templates/vnffgmanager/vnffg_details.html new file mode 100644 index 0000000..7987833 --- /dev/null +++ b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/templates/vnffgmanager/vnffg_details.html @@ -0,0 +1,31 @@ +{% load i18n %} + + + + +

{% trans "VNFFG information" %}

+ + + + + + + + + + + + + +
{% trans "Id" %}
{% trans "Name" %}
{% trans "Description" %}
{% trans "Status" %}
{{ vnffg.vnffg.id }}{{ vnffg.vnffg.name }}{{ vnffg.vnffg.description }}{{ vnffg.vnffg.status }}
+ diff --git a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/views.py b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/views.py index f2ad5e8..9affe26 100644 --- a/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/views.py +++ b/tacker_horizon/openstack_dashboard/dashboards/nfv/vnffgmanager/views.py @@ -94,7 +94,7 @@ class DetailView(tabs.TabView): try: vnffg = tacker_api.tacker.get_vnffg(self.request, vnffg_id) vnffg["vnffg"]["mgmt_url"] = json.loads(vnffg["vnffg"]["mgmt_url"]) if \ - vnffg["vnffg"]["mgmt_url"] else None + vnffg["vnffg"].get("mgmt_url") else None return vnffg except ValueError as e: msg = _('Cannot decode json : %s') % e