diff --git a/alerta/database/backends/postgres/base.py b/alerta/database/backends/postgres/base.py index 69fbfab6f..5a9b5b8e0 100644 --- a/alerta/database/backends/postgres/base.py +++ b/alerta/database/backends/postgres/base.py @@ -205,8 +205,7 @@ def get_severity(self, alert): select = """ SELECT severity FROM alerts WHERE environment=%(environment)s AND resource=%(resource)s - AND ((event=%(event)s AND severity!=%(severity)s) - OR (event!=%(event)s AND %(event)s=ANY(correlate))) + AND (event=%(event)s AND severity!=%(severity)s) AND {customer} """.format(customer='customer=%(customer)s' if alert.customer else 'customer IS NULL') return self._fetchone(select, vars(alert)).severity @@ -215,7 +214,7 @@ def get_status(self, alert): select = """ SELECT status FROM alerts WHERE environment=%(environment)s AND resource=%(resource)s - AND (event=%(event)s OR %(event)s=ANY(correlate)) + AND event=%(event)s AND {customer} """.format(customer='customer=%(customer)s' if alert.customer else 'customer IS NULL') return self._fetchone(select, vars(alert)).status @@ -235,8 +234,7 @@ def is_correlated(self, alert): select = """ SELECT * FROM alerts WHERE environment=%(environment)s AND resource=%(resource)s - AND ((event=%(event)s AND severity!=%(severity)s) - OR (event!=%(event)s AND %(event)s=ANY(correlate))) + AND (event=%(event)s AND severity!=%(severity)s) AND {customer} """.format(customer='customer=%(customer)s' if alert.customer else 'customer IS NULL') return self._fetchone(select, vars(alert)) @@ -295,7 +293,7 @@ def correlate_alert(self, alert, history): attributes=attributes || %(attributes)s, {update_time}, history=(%(history)s || history)[1:{limit}] WHERE environment=%(environment)s AND resource=%(resource)s - AND ((event=%(event)s AND severity!=%(severity)s) OR (event!=%(event)s AND %(event)s=ANY(correlate))) + AND (event=%(event)s AND severity!=%(severity)s) AND {customer} RETURNING * """.format( @@ -345,7 +343,7 @@ def correlate_multiple_alerts(self, alerts): ) WHERE alerts.environment=al.environment AND alerts.resource=al.resource - AND ((alerts.event=al.event AND alerts.severity!=al.severity) OR (alerts.event!=al.event AND al.event=ANY(alerts.correlate))) + AND (alerts.event=al.event AND alerts.severity!=al.severity) RETURNING alerts.* """ return self._updateall(update, objs, returning=True) @@ -398,7 +396,7 @@ def create_multiple_alerts(self, alerts): alerts_insert = ','.join([ f""" ( - %(id{i})s, %(resource{i})s, %(event{i})s, %(environment{i})s, %(severity{i})s, %(correlate{i})s, %(status{i})s, + %(id{i})s, %(resource{i})s, %(event{i})s, %(environment{i})s, %(severity{i})s, %(status{i})s, %(service{i})s, %(group{i})s, %(value{i})s, %(text{i})s, %(tags{i})s, %(attributes{i})s, %(origin{i})s, %(event_type{i})s, %(create_time{i})s, %(timeout{i})s, %(raw_data{i})s, %(customer{i})s, %(duplicate_count{i})s, %(repeat{i})s, %(previous_severity{i})s, %(trend_indication{i})s, %(receive_time{i})s, %(last_receive_id{i})s, @@ -410,7 +408,7 @@ def create_multiple_alerts(self, alerts): objs.update({f'{key}{i}': value for key, value in vars(alert).items()}) insert = f""" - INSERT INTO alerts (id, resource, event, environment, severity, correlate, status, service, "group", + INSERT INTO alerts (id, resource, event, environment, severity, status, service, "group", value, text, tags, attributes, origin, type, create_time, timeout, raw_data, customer, duplicate_count, repeat, previous_severity, trend_indication, receive_time, last_receive_id, last_receive_time, update_time, history) @@ -421,11 +419,11 @@ def create_multiple_alerts(self, alerts): def create_alert(self, alert): insert = """ - INSERT INTO alerts (id, resource, event, environment, severity, correlate, status, service, "group", + INSERT INTO alerts (id, resource, event, environment, severity, status, service, "group", value, text, tags, attributes, origin, type, create_time, timeout, raw_data, customer, duplicate_count, repeat, previous_severity, trend_indication, receive_time, last_receive_id, last_receive_time, update_time, history) - VALUES (%(id)s, %(resource)s, %(event)s, %(environment)s, %(severity)s, %(correlate)s, %(status)s, + VALUES (%(id)s, %(resource)s, %(event)s, %(environment)s, %(severity)s, %(status)s, %(service)s, %(group)s, %(value)s, %(text)s, %(tags)s, %(attributes)s, %(origin)s, %(event_type)s, %(create_time)s, %(timeout)s, %(raw_data)s, %(customer)s, %(duplicate_count)s, %(repeat)s, %(previous_severity)s, %(trend_indication)s, %(receive_time)s, %(last_receive_id)s, @@ -601,7 +599,7 @@ def get_alerts(self, query=None, raw_data=False, history=False, page=None, page_ select = '*' else: select = ( - 'id, resource, event, environment, severity, correlate, status, service, "group", value, "text",' + 'id, resource, event, environment, severity, status, service, "group", value, "text",' + 'tags, custom_tags, attributes, origin, type, create_time, timeout, {raw_data}, customer, duplicate_count, repeat,' + 'previous_severity, trend_indication, receive_time, last_receive_id, last_receive_time, update_time,' + '{history}' @@ -629,7 +627,7 @@ def get_alerts(self, query=None, raw_data=False, history=False, page=None, page_ def get_escalate(self): select = """ - SELECT id, resource, event, environment, severity, correlate, status, service, "group", + SELECT id, resource, event, environment, severity, status, service, "group", value, text, tags, attributes, origin, type, create_time, timeout, raw_data, customer, duplicate_count, repeat, previous_severity, trend_indication, receive_time, last_receive_id, last_receive_time, update_time, history @@ -643,7 +641,7 @@ def get_alert_history(self, alert, page=None, page_size=None): SELECT resource, environment, service, "group", tags, attributes, origin, customer, h.* FROM alerts, unnest(history[1:{limit}]) h WHERE environment=%(environment)s AND resource=%(resource)s - AND (h.event=%(event)s OR %(event)s=ANY(correlate)) + AND h.event=%(event)s AND {customer} ORDER BY update_time DESC """.format( diff --git a/alerta/database/backends/postgres/utils.py b/alerta/database/backends/postgres/utils.py index 1b55d637b..68a99996b 100644 --- a/alerta/database/backends/postgres/utils.py +++ b/alerta/database/backends/postgres/utils.py @@ -148,7 +148,6 @@ class History(QueryBuilder): 'event': ('h"."event', 'event', 1), 'environment': ('environment', 'environment', 1), 'severity': ('h"."severity', 's.code', 1), - 'correlate': ('correlate', 'correlate', 1), 'status': ('h"."status', 'st.state', 1), 'service': ('service', 'service', 1), 'group': ('group', '"group"', 1), @@ -237,7 +236,6 @@ class Alerts(QueryBuilder): 'event': ('event', 'event', 1), 'environment': ('environment', 'environment', 1), 'severity': ('severity', 's.code', 1), - 'correlate': ('correlate', 'correlate', 1), 'status': ('status', 'st.state', 1), 'service': ('service', 'service', 1), 'group': ('group', '"group"', 1), diff --git a/alerta/models/alarms/isa_18_2.py b/alerta/models/alarms/isa_18_2.py index cda9e5316..d305d39fb 100644 --- a/alerta/models/alarms/isa_18_2.py +++ b/alerta/models/alarms/isa_18_2.py @@ -74,7 +74,9 @@ class StateMachine(AlarmModel): def register(self, app): - # import alerta.management.views + + import alerta.auth # noqa + self.name = 'ANSI/ISA 18.2' StateMachine.Severity = app.config['SEVERITY_MAP'] or SEVERITY_MAP diff --git a/alerta/models/alert.py b/alerta/models/alert.py index 8f62154f3..2c1c273a4 100644 --- a/alerta/models/alert.py +++ b/alerta/models/alert.py @@ -54,9 +54,6 @@ def __init__(self, resource: str, event: str, **kwargs) -> None: self.event = event self.environment = kwargs.get('environment', None) or '' self.severity = kwargs.get('severity', None) or alarm_model.DEFAULT_NORMAL_SEVERITY - self.correlate = kwargs.get('correlate', None) or list() - if self.correlate and event not in self.correlate: - self.correlate.append(event) self.status = kwargs.get('status', None) or alarm_model.DEFAULT_STATUS self.service = kwargs.get('service', None) or list() self.group = kwargs.get('group', None) or 'Misc' @@ -87,8 +84,6 @@ def __init__(self, resource: str, event: str, **kwargs) -> None: @classmethod def parse(cls, json: JSON) -> 'Alert': - if not isinstance(json.get('correlate', []), list): - raise ValueError('correlate must be a list') if not isinstance(json.get('service', []), list): raise ValueError('service must be a list') if not isinstance(json.get('tags', []), list): @@ -106,7 +101,6 @@ def parse(cls, json: JSON) -> 'Alert': event=json.get('event', None), environment=json.get('environment', None), severity=json.get('severity', None), - correlate=json.get('correlate', list()), status=json.get('status', None), service=json.get('service', list()), group=json.get('group', None), @@ -131,7 +125,6 @@ def serialize(self) -> Dict[str, Any]: 'event': self.event, 'environment': self.environment, 'severity': self.severity, - 'correlate': self.correlate, 'status': self.status, 'service': self.service, 'group': self.group, @@ -182,7 +175,6 @@ def from_document(cls, doc: Dict[str, Any]) -> 'Alert': event=doc.get('event', None), environment=doc.get('environment', None), severity=doc.get('severity', None), - correlate=doc.get('correlate', list()), status=doc.get('status', None), service=doc.get('service', list()), group=doc.get('group', None), @@ -216,7 +208,6 @@ def from_record(cls, rec) -> 'Alert': event=rec.event, environment=rec.environment, severity=rec.severity, - correlate=rec.correlate, status=rec.status, service=rec.service, group=rec.group, diff --git a/alerta/sql/schema.sql b/alerta/sql/schema.sql index 3d89f3ddf..2de936399 100644 --- a/alerta/sql/schema.sql +++ b/alerta/sql/schema.sql @@ -35,7 +35,6 @@ CREATE TABLE IF NOT EXISTS alerts ( event text NOT NULL, environment text, severity text, - correlate text[], status text, service text[], "group" text, @@ -61,6 +60,7 @@ CREATE TABLE IF NOT EXISTS alerts ( ALTER TABLE alerts ADD COLUMN IF NOT EXISTS update_time timestamp without time zone; ALTER TABLE alerts ADD COLUMN IF NOT EXISTS custom_tags text[]; +ALTER TABLE alerts DROP COLUMN IF EXISTS correlate; -- remove alerts with status set to null DO $$ diff --git a/alerta/utils/client.py b/alerta/utils/client.py index cef0302f2..4635d20bc 100644 --- a/alerta/utils/client.py +++ b/alerta/utils/client.py @@ -32,7 +32,6 @@ def send_alert(self, resource, event, **kwargs): 'event': event, 'environment': kwargs.get('environment'), 'severity': kwargs.get('severity'), - 'correlate': kwargs.get('correlate', None) or list(), 'service': kwargs.get('service', None) or list(), 'group': kwargs.get('group'), 'value': kwargs.get('value'), diff --git a/alerta/webhooks/prometheus.py b/alerta/webhooks/prometheus.py index ea8be6a89..31859226b 100644 --- a/alerta/webhooks/prometheus.py +++ b/alerta/webhooks/prometheus.py @@ -51,7 +51,6 @@ def parse_prometheus(alert: JSON, external_url: str) -> Alert: event = labels.pop('event', None) or labels.pop('alertname') environment = labels.pop('environment', current_app.config['DEFAULT_ENVIRONMENT']) customer = labels.pop('customer', None) - correlate = labels.pop('correlate').split(',') if 'correlate' in labels else None service = labels.pop('service', '').split(',') group = labels.pop('group', None) or labels.pop('job', 'Prometheus') origin = 'prometheus/' + labels.pop('monitor', '-') @@ -87,7 +86,6 @@ def parse_prometheus(alert: JSON, external_url: str) -> Alert: environment=environment, customer=customer, severity=severity, - correlate=correlate, service=service, group=group, value=value, diff --git a/tests/test_alerts.py b/tests/test_alerts.py index d427bd990..ae7070b90 100644 --- a/tests/test_alerts.py +++ b/tests/test_alerts.py @@ -81,6 +81,8 @@ def setUp(self): 'timeout': 100 } + self.normal_from_marginal_alert = {**self.normal_alert, 'event': 'node_marginal'} + self.ok_alert = { 'event': 'node_up', 'resource': self.resource, @@ -166,40 +168,6 @@ def test_alert(self): self.assertEqual(data['alert']['trendIndication'], 'moreSevere') self.assertEqual(data['alert']['updateTime'], update_time) - # correlate alert (diff event, same sev) - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - self.assertIn(alert_id, data['alert']['id']) - self.assertEqual(data['alert']['service'], ['Network', 'Shared']) - self.assertEqual(data['alert']['duplicateCount'], 0) - self.assertEqual(data['alert']['previousSeverity'], self.critical_alert['severity']) - self.assertEqual(data['alert']['trendIndication'], 'noChange') - self.assertEqual(data['alert']['updateTime'], update_time) - - # correlate alert (diff event, diff sev) - response = self.client.post('/alert', data=json.dumps(self.major_alert), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - self.assertIn(alert_id, data['alert']['id']) - self.assertEqual(data['alert']['service'], ['Network', 'Shared']) - self.assertEqual(data['alert']['duplicateCount'], 0) - self.assertEqual(data['alert']['previousSeverity'], self.fatal_alert['severity']) - self.assertEqual(data['alert']['trendIndication'], 'lessSevere') - self.assertEqual(data['alert']['updateTime'], update_time) - - # correlate alert (diff event, diff sev) - response = self.client.post('/alert', data=json.dumps(self.normal_alert), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - self.assertIn(alert_id, data['alert']['id']) - self.assertEqual(data['alert']['status'], 'closed') - self.assertEqual(data['alert']['service'], ['Network']) - self.assertEqual(data['alert']['duplicateCount'], 0) - self.assertEqual(data['alert']['previousSeverity'], self.major_alert['severity']) - self.assertEqual(data['alert']['trendIndication'], 'lessSevere') - self.assertEqual(data['alert']['updateTime'], data['alert']['receiveTime']) - # get alert response = self.client.get('/alert/' + alert_id) self.assertEqual(response.status_code, 200) @@ -308,72 +276,6 @@ def test_bulk_alert(self): self.assertEqual(second['trendIndication'], 'moreSevere') self.assertEqual(second['updateTime'], second_update_time) - # # correlate alert (diff event, same sev) - response = self.client.post('/alerts', data=json.dumps([{**self.fatal_alert, 'resource': 'major_alert'}, {**self.fatal_alert, 'resource': 'major_alert_2'}]), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - first, second = data['alerts'] - - self.assertIn(first_id, first['id']) - self.assertEqual(first['service'], ['Network', 'Shared']) - self.assertEqual(first['duplicateCount'], 0) - self.assertEqual(first['previousSeverity'], self.critical_alert['severity']) - self.assertEqual(first['trendIndication'], 'noChange') - self.assertEqual(first['updateTime'], first_update_time) - - self.assertIn(second_id, second['id']) - self.assertEqual(second['service'], ['Network', 'Shared']) - self.assertEqual(second['duplicateCount'], 0) - self.assertEqual(second['previousSeverity'], self.critical_alert['severity']) - self.assertEqual(second['trendIndication'], 'noChange') - self.assertEqual(second['updateTime'], second_update_time) - - # # correlate alert (diff event, diff sev) - response = self.client.post('/alerts', data=json.dumps([{**self.major_alert, 'resource': 'major_alert'}, {**self.major_alert, 'resource': 'major_alert_2'}]), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - first, second = data['alerts'] - - self.assertIn(first_id, first['id']) - self.assertEqual(first['service'], ['Network', 'Shared']) - self.assertEqual(first['duplicateCount'], 0) - self.assertEqual(first['severity'], self.major_alert['severity']) - self.assertEqual(first['previousSeverity'], self.fatal_alert['severity']) - self.assertEqual(first['trendIndication'], 'lessSevere') - self.assertEqual(first['updateTime'], first_update_time) - - self.assertIn(second_id, second['id']) - self.assertEqual(second['service'], ['Network', 'Shared']) - self.assertEqual(second['duplicateCount'], 0) - self.assertEqual(second['severity'], self.major_alert['severity']) - self.assertEqual(second['previousSeverity'], self.fatal_alert['severity']) - self.assertEqual(second['trendIndication'], 'lessSevere') - self.assertEqual(second['updateTime'], second_update_time) - - # # correlate alert (diff event, diff sev) - response = self.client.post('/alerts', data=json.dumps([{**self.normal_alert, 'resource': 'major_alert'}, {**self.normal_alert, 'resource': 'major_alert_2'}]), headers=self.headers) - self.assertEqual(response.status_code, 201) - data = json.loads(response.data.decode('utf-8')) - first, second = data['alerts'] - - self.assertIn(first_id, first['id']) - self.assertEqual(first['status'], 'closed') - self.assertEqual(first['severity'], 'normal') - self.assertEqual(first['service'], ['Network']) - self.assertEqual(first['duplicateCount'], 0) - self.assertEqual(first['previousSeverity'], self.major_alert['severity']) - self.assertEqual(first['trendIndication'], 'lessSevere') - self.assertEqual(first['updateTime'], first['receiveTime']) - - self.assertIn(second_id, second['id']) - self.assertEqual(second['status'], 'closed') - self.assertEqual(second['severity'], 'normal') - self.assertEqual(second['service'], ['Network']) - self.assertEqual(second['duplicateCount'], 0) - self.assertEqual(second['previousSeverity'], self.major_alert['severity']) - self.assertEqual(second['trendIndication'], 'lessSevere') - self.assertEqual(second['updateTime'], second['receiveTime']) - # # get alerts response = self.client.get('/alert/' + first_id) self.assertEqual(response.status_code, 200) @@ -477,7 +379,7 @@ def test_alert_status(self): update_time = data['alert']['updateTime'] # severity == normal -> status=closed - response = self.client.post('/alert', data=json.dumps(self.normal_alert), headers=self.headers) + response = self.client.post('/alert', data=json.dumps({**self.normal_alert, 'event': 'node_marginal'}), headers=self.headers) self.assertEqual(response.status_code, 201) data = json.loads(response.data.decode('utf-8')) self.assertEqual(data['alert']['status'], 'closed') @@ -596,7 +498,7 @@ def test_reopen_alerts(self): alert_id = data['id'] # severity == normal -> status=closed - response = self.client.post('/alert', data=json.dumps(self.normal_alert), headers=self.headers) + response = self.client.post('/alert', data=json.dumps(self.normal_from_marginal_alert), headers=self.headers) self.assertEqual(response.status_code, 201) data = json.loads(response.data.decode('utf-8')) self.assertEqual(data['alert']['severity'], 'normal') @@ -796,16 +698,16 @@ def test_alert_attributes(self): def test_history_limit(self): # create alert (history change is dropped because length > limit) - self.fatal_alert['value'] = '100' - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) + self.critical_alert['value'] = '100' + response = self.client.post('/alert', data=json.dumps(self.critical_alert), headers=self.headers) self.assertEqual(response.status_code, 201) data = json.loads(response.data.decode('utf-8')) alert_id = data['id'] # duplicate alert, value change (history change is dropped because length > limit) - self.fatal_alert['value'] = '101' - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) + self.critical_alert['value'] = '101' + response = self.client.post('/alert', data=json.dumps(self.critical_alert), headers=self.headers) self.assertEqual(response.status_code, 201) # ack alert, status change @@ -814,8 +716,8 @@ def test_history_limit(self): self.assertEqual(response.status_code, 200) # duplicate alert, value change - self.fatal_alert['value'] = '102' - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) + self.critical_alert['value'] = '102' + response = self.client.post('/alert', data=json.dumps(self.critical_alert), headers=self.headers) self.assertEqual(response.status_code, 201) # correlated alert, severity change @@ -824,13 +726,13 @@ def test_history_limit(self): self.assertEqual(response.status_code, 201) # correlated alert, severity change - self.fatal_alert['value'] = '104' - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) + self.critical_alert['value'] = '104' + response = self.client.post('/alert', data=json.dumps(self.critical_alert), headers=self.headers) self.assertEqual(response.status_code, 201) # duplicate alert, value change - self.fatal_alert['value'] = '105' - response = self.client.post('/alert', data=json.dumps(self.fatal_alert), headers=self.headers) + self.critical_alert['value'] = '105' + response = self.client.post('/alert', data=json.dumps(self.critical_alert), headers=self.headers) self.assertEqual(response.status_code, 201) data = json.loads(response.data.decode('utf-8')) diff --git a/tests/test_builtins.py b/tests/test_builtins.py index 6ad784c48..143d4da56 100644 --- a/tests/test_builtins.py +++ b/tests/test_builtins.py @@ -55,7 +55,7 @@ def setUp(self): } self.ok_alert = { - 'event': 'node_up', + 'event': 'node_down', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], diff --git a/tests/test_hooks.py b/tests/test_hooks.py index e1215b4e6..9da8c6a40 100644 --- a/tests/test_hooks.py +++ b/tests/test_hooks.py @@ -113,7 +113,6 @@ def pre_receive(self, alert, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'open') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') @@ -146,7 +145,6 @@ def post_receive(self, alert, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'open') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') @@ -188,7 +186,6 @@ def take_action(self, alert, action, text, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'open') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') @@ -233,7 +230,6 @@ def status_change(self, alert, status, text, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'open') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') @@ -278,7 +274,6 @@ def take_note(self, alert, text, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'ack') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') @@ -332,7 +327,6 @@ def delete(self, alert, **kwargs): self.assertEqual(alert.resource, resource) self.assertEqual(alert.event, 'node_down') self.assertEqual(alert.severity, 'critical') - self.assertCountEqual(alert.correlate, ['node_down', 'node_marginal', 'node_up']) self.assertEqual(alert.status, 'ack') self.assertCountEqual(alert.service, ['Network']) self.assertEqual(alert.group, 'Misc') diff --git a/tests/test_isa_18_2.py b/tests/test_isa_18_2.py index a70fce47d..bf4df6a59 100644 --- a/tests/test_isa_18_2.py +++ b/tests/test_isa_18_2.py @@ -25,7 +25,7 @@ def setUp(self): 'origin': 'LIC_101', 'value': 'ERROR', 'resource': 'LIC_101', - 'event': 'FAILED_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'Shutdown/Interlocked', 'type': 'FAULT', @@ -39,7 +39,7 @@ def setUp(self): 'origin': 'PID1', 'value': '19', 'resource': 'LIC_101', - 'event': 'HI_HI_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'High High Alarm Limit 15', 'type': 'ALARM', @@ -53,7 +53,7 @@ def setUp(self): 'origin': 'PID1', 'value': '13', 'resource': 'LIC_101', - 'event': 'HI_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'High Alarm Limit 10', 'type': 'ALARM', @@ -67,7 +67,7 @@ def setUp(self): 'origin': 'PID1', 'value': '6', 'resource': 'LIC_101', - 'event': 'LO_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'Low Alarm Limit 5', 'type': 'ALARM', @@ -81,7 +81,7 @@ def setUp(self): 'origin': 'PID1', 'value': '1', 'resource': 'LIC_101', - 'event': 'LO_LO_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'Low Low Alarm Limit 0', 'type': 'ALARM', @@ -95,7 +95,7 @@ def setUp(self): 'origin': 'PID1', 'value': '1', 'resource': 'LIC_101', - 'event': 'ADVISE_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'Low Low Alarm Limit 0', 'type': 'ALARM', @@ -109,7 +109,7 @@ def setUp(self): 'origin': 'PID1', 'value': '0', 'resource': 'LIC_101', - 'event': 'RST_ALM', + 'event': 'ALM', 'group': 'PROCESS', 'text': 'OK Alarm Limit 0', 'type': 'ALARM', @@ -137,7 +137,7 @@ def test_ack_active_alarm(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'UNACK') @@ -174,7 +174,7 @@ def test_ack_active_alarm(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'Critical') self.assertEqual(data['alert']['status'], 'UNACK') @@ -211,7 +211,7 @@ def test_ack_active_alarm(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'NORM') @@ -243,7 +243,7 @@ def test_rtn_before_ack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'UNACK') @@ -266,7 +266,7 @@ def test_rtn_before_ack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'RTNUN') @@ -289,7 +289,7 @@ def test_rtn_before_ack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'LO_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'Medium') self.assertEqual(data['alert']['status'], 'UNACK') @@ -312,7 +312,7 @@ def test_rtn_before_ack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'LO_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'Medium') self.assertEqual(data['alert']['status'], 'UNACK') @@ -335,7 +335,7 @@ def test_rtn_before_ack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'RTNUN') @@ -381,7 +381,7 @@ def test_operator_unack(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'UNACK') @@ -455,7 +455,7 @@ def test_operator_shelve(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'UNACK') @@ -534,7 +534,7 @@ def test_operator_shelve(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'SHLVD') @@ -582,7 +582,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'UNACK') @@ -632,7 +632,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'OOSRV') @@ -655,7 +655,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'LO_LO_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'Low') self.assertEqual(data['alert']['status'], 'OOSRV') @@ -687,7 +687,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'LO_LO_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'Low') self.assertEqual(data['alert']['status'], 'UNACK') @@ -724,7 +724,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'HI_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'High') self.assertEqual(data['alert']['status'], 'OOSRV') @@ -747,7 +747,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'OOSRV') @@ -779,7 +779,7 @@ def test_out_of_service(self): data = json.loads(response.data.decode('utf-8')) self.assertIn(alert_id, data['alert']['id']) self.assertEqual(data['alert']['resource'], 'LIC_101') - self.assertEqual(data['alert']['event'], 'RST_ALM') + self.assertEqual(data['alert']['event'], 'ALM') self.assertEqual(data['alert']['environment'], 'Production') self.assertEqual(data['alert']['severity'], 'OK') self.assertEqual(data['alert']['status'], 'NORM') diff --git a/tests/test_search.py b/tests/test_search.py index 29ad4f321..6c2f81846 100644 --- a/tests/test_search.py +++ b/tests/test_search.py @@ -27,7 +27,6 @@ def test_alerts_filter(self): ('event', 'event1'), ('environment', 'Development'), ('severity', 'major'), - ('correlate', 'event2'), ('status', 'closed'), ('service', 'Network'), ('service', 'Shared'), @@ -67,7 +66,6 @@ def test_alerts_sort_by(self): ('sort-by', 'event'), ('sort-by', 'environment'), ('sort-by', 'severity'), - ('sort-by', 'correlate'), ('sort-by', 'status'), ('sort-by', 'service'), ('sort-by', 'service'), diff --git a/tests/test_severity.py b/tests/test_severity.py index 633cd7ad3..f77f97886 100644 --- a/tests/test_severity.py +++ b/tests/test_severity.py @@ -20,7 +20,7 @@ def setUp(self): correlate = ['node_down', 'node_marginal', 'node_up', 'node_pwned', 'node_trace'] self.auth_alert = { - 'event': 'node_pwned', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -30,7 +30,7 @@ def setUp(self): 'attributes': {'foo': 'abc def', 'bar': 1234, 'baz': False} } self.critical_alert = { - 'event': 'node_down', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -38,7 +38,7 @@ def setUp(self): 'correlate': correlate } self.major_alert = { - 'event': 'node_marginal', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -46,7 +46,7 @@ def setUp(self): 'correlate': correlate } self.warn_alert = { - 'event': 'node_marginal', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -54,7 +54,7 @@ def setUp(self): 'correlate': correlate } self.normal_alert = { - 'event': 'node_up', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -63,7 +63,7 @@ def setUp(self): } self.trace_alert = { - 'event': 'node_trace', + 'event': 'node', 'resource': 'node1', 'environment': 'Production', 'service': ['Network'], @@ -72,7 +72,7 @@ def setUp(self): } self.ok_alert = { - 'event': 'node_ok', + 'event': 'node', 'resource': 'node2', 'environment': 'Production', 'service': ['Network'], @@ -81,7 +81,7 @@ def setUp(self): } self.inform_alert = { - 'event': 'node_inform', + 'event': 'node', 'resource': 'node3', 'environment': 'Production', 'service': ['Network'], @@ -90,7 +90,7 @@ def setUp(self): } self.debug_alert = { - 'event': 'node_debug', + 'event': 'node', 'resource': 'node4', 'environment': 'Production', 'service': ['Network'], diff --git a/tests/test_tags.py b/tests/test_tags.py index 3fd16328d..667133f9e 100644 --- a/tests/test_tags.py +++ b/tests/test_tags.py @@ -21,7 +21,7 @@ def setUp(self): self.resource = str(uuid4()).upper()[:8] self.node_down_alert = { - 'event': 'node_down', + 'event': 'node', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'], @@ -32,7 +32,7 @@ def setUp(self): } self.node_up_alert = { - 'event': 'node_up', + 'event': 'node', 'resource': self.resource, 'environment': 'Production', 'service': ['Network'],