blob: d1a655b9e48e8e0958796cfe6c2a57b64f25fee9 [file] [log] [blame]
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +01001# Copyright 2018: Mirantis Inc.
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16
17RESOLVED_STATUSES = ('UP', 'OK', 'resolved')
18
19
Michal Kobus23ba2f72018-12-03 17:11:20 +010020def _format_subject(alert):
21 subject = alert['annotations']['summary']
Michal Kobusba987052018-11-30 13:01:08 +010022 host = alert['labels'].get('host')
23 if host is not None:
Michal Kobus23ba2f72018-12-03 17:11:20 +010024 return '[{}] {}'.format(host, subject)
25 return subject
Michal Kobusba987052018-11-30 13:01:08 +010026
27
Michal Kobus23ba2f72018-12-03 17:11:20 +010028def _remove_advice(description):
29 return description.split(' Modify the')[0]
30
31
32def _format_description(alert):
33 return _remove_advice(alert['annotations']['description'])
34
35
36def alert_fields_and_action(alert):
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +010037 fields = []
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +010038
39 if alert['status'] in RESOLVED_STATUSES:
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +010040 action = 'close_case'
Michal Kobusafbf4d02018-11-28 14:18:05 +010041 fields.append(alert['labels'])
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +010042 else:
Michal Kobusafbf4d02018-11-28 14:18:05 +010043 action = 'create_case'
Michal Kobusba987052018-11-30 13:01:08 +010044 # Order of keys matters
Michal Kobus23ba2f72018-12-03 17:11:20 +010045 fields.append(_format_subject(alert))
46 fields.append(_format_description(alert))
Mateusz Matuszkowiak2820c662018-11-21 12:07:25 +010047 fields.append(alert['status'])
48 fields.append(alert['labels'])
49 return fields, action