2 // ========================LICENSE_START=================================
5 // Copyright (C) 2021: Nordix Foundation
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 // ========================LICENSE_END===================================
23 type FaultMessage struct {
24 Event Event `json:"event"`
28 CommonEventHeader CommonEventHeader `json:"commonEventHeader"`
29 FaultFields FaultFields `json:"faultFields"`
32 type CommonEventHeader struct {
33 Domain string `json:"domain"`
34 SourceName string `json:"sourceName"`
37 type FaultFields struct {
38 AlarmCondition string `json:"alarmCondition"`
39 EventSeverity string `json:"eventSeverity"`
42 func (message FaultMessage) isFault() bool {
43 return message.Event.CommonEventHeader.Domain == "fault"
46 func (message FaultMessage) isLinkAlarm() bool {
47 return message.Event.FaultFields.AlarmCondition == "28"
50 func (message FaultMessage) isSeverityNormal() bool {
51 return message.Event.FaultFields.EventSeverity == "NORMAL"
54 func (message FaultMessage) IsLinkFailure() bool {
55 return message.isFault() && message.isLinkAlarm() && !message.isSeverityNormal()
58 func (message FaultMessage) IsClearLinkFailure() bool {
59 return message.isFault() && message.isLinkAlarm() && message.isSeverityNormal()
62 func (message FaultMessage) GetORuId() string {
63 return message.Event.CommonEventHeader.SourceName