Display unique metric names for alarm

Change-Id: Ia1bfae05e4d4de28689a7cb9495383e328ff51ba
Story: 2001826
Task: 12575
This commit is contained in:
Lukasz Zajaczkowski 2018-04-11 12:55:05 +02:00
parent 6b81870164
commit 6d66017608
2 changed files with 23 additions and 10 deletions

View File

@ -66,14 +66,9 @@ def show_alarm_id(data):
return data['id']
def show_metric_name(data):
if len(data['metrics']) > 1:
names = []
for metric in data['metrics']:
names.append(metric['name'])
return ', '.join(['%s' % (n) for n in names])
else:
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):
@ -248,8 +243,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(
@ -48,3 +49,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")