From cf0c2e1acdb8b6b188e76716625e09304d6984de Mon Sep 17 00:00:00 2001 From: bravof Date: Thu, 17 Dec 2020 17:27:29 -0300 Subject: [PATCH] fix(dashboards): searches monitoring parameters through every VDU available inside a VNF Change-Id: I79b6d1cabf37ef216783688528b28707b2035215 Signed-off-by: bravof (cherry picked from commit 960d0469ad3cf54a31f650ece39b345705445fdd) --- osm_mon/dashboarder/service.py | 6 ++++-- osm_mon/dashboarder/utils.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 osm_mon/dashboarder/utils.py diff --git a/osm_mon/dashboarder/service.py b/osm_mon/dashboarder/service.py index 1e81c8a..10508e4 100644 --- a/osm_mon/dashboarder/service.py +++ b/osm_mon/dashboarder/service.py @@ -18,7 +18,7 @@ # License for the specific language governing permissions and limitations # under the License. # For those usages not covered by the Apache License, Version 2.0 please -# contact: glavado@whitestack.com +# contact: glavado@whitestack.com or fbravo@whitestack.com ## import logging @@ -26,6 +26,7 @@ from osm_mon.core.common_db import CommonDbClient from osm_mon.core.config import Config from osm_mon.dashboarder.backends.grafana import GrafanaBackend from osm_mon import __path__ as mon_path +from osm_mon.dashboarder.utils import find_in_list log = logging.getLogger(__name__) @@ -72,7 +73,8 @@ class DashboarderService: try: vnfd = self.common_db.get_vnfd_by_id(vnf_profile['vnfd-id']) # If there are metrics, create dashboard (if exists) - if vnfd and 'monitoring-parameter' in vnfd["vdu"][0]: + vdu_found = find_in_list(vnfd["vdu"], lambda a_vdu: "monitoring-parameter" in a_vdu) + if vdu_found: if nsr_id not in dashboard_uids: nsr_name = nsr['name'] project_id = nsr["_admin"]["projects_read"][0] diff --git a/osm_mon/dashboarder/utils.py b/osm_mon/dashboarder/utils.py new file mode 100644 index 0000000..7b13c9d --- /dev/null +++ b/osm_mon/dashboarder/utils.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- + +# Copyright 2018 Whitestack, LLC +# ************************************************************* + +# This file is part of OSM Monitoring module +# All Rights Reserved to Whitestack, LLC + +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at + +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# For those usages not covered by the Apache License, Version 2.0 please +# contact: fbravo@whitestack.com or agarcia@whitestack.com +## + +def find_in_list(the_list, condition_lambda): + for item in the_list: + if condition_lambda(item): + return item + else: + return None -- 2.17.1