Display unique metric names for alarm

Cherry-picked from 6d66017608

Change-Id: Ib61ad695ea20d77efd1f1c62bc4ed1a23a4e89dc
Story: 2001826
Task: 12575
This commit is contained in:
Lukasz Zajaczkowski 2018-04-16 10:01:20 +02:00 committed by Witold Bedyk
parent a127f3e842
commit 9f84109800
2 changed files with 23 additions and 4 deletions

View File

@ -65,8 +65,9 @@ def show_alarm_id(data):
return data['id']
def show_metric_name(data):
return data['metrics'][0]['name']
def show_metric_names(data):
names = set(metric['name'] for metric in data['metrics'])
return ', '.join(names)
def show_def_name(data):
@ -227,8 +228,8 @@ class AlarmsTable(tables.DataTable):
filters=[show_status, template.defaultfilters.safe])
name = tables.Column(transform=show_def_name, verbose_name=_('Name'))
alarmId = tables.Column(transform=show_alarm_id, verbose_name=_('Alarm Id'))
metrics = tables.Column(transform=show_metric_name,
verbose_name=_('Metric Name'))
metrics = tables.Column(transform=show_metric_names,
verbose_name=_('Metric Names'))
dimensions = tables.Column(transform=show_metric_dimensions,
verbose_name=_('Metric Dimensions'))

View File

@ -15,6 +15,7 @@ from mock import patch, call # noqa
from monitoring.test import helpers
from monitoring.alarms import constants
from monitoring.alarms import tables
INDEX_URL = urlresolvers.reverse(
@ -47,3 +48,20 @@ class AlarmsTest(helpers.TestCase):
self.assertTemplateUsed(
res, 'monitoring/alarms/alarm.html')
def test_metric_conversion_single(self):
res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"}]})
self.assertEqual(res, "mem.used_bytes")
def test_metric_conversion_multiple(self):
res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"},
{"name": "mem.total_bytes"}]})
table_res = res.split(', ')
self.assertEqual(len(table_res), 2)
self.assertTrue("mem.used_bytes" in table_res)
self.assertTrue("mem.total_bytes" in table_res)
def test_metric_conversion_unique(self):
res = tables.show_metric_names({"metrics": [{"name": "mem.used_bytes"},
{"name": "mem.used_bytes"}]})
self.assertEqual(res, "mem.used_bytes")