Seed code
[nonrtric/rapp/orufhrecovery.git] / goversion / internal / ves / message.go
1 // -
2 //   ========================LICENSE_START=================================
3 //   O-RAN-SC
4 //   %%
5 //   Copyright (C) 2021: Nordix Foundation
6 //   %%
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
10 //
11 //        http://www.apache.org/licenses/LICENSE-2.0
12 //
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===================================
19 //
20
21 package ves
22
23 type FaultMessage struct {
24         Event Event `json:"event"`
25 }
26
27 type Event struct {
28         CommonEventHeader CommonEventHeader `json:"commonEventHeader"`
29         FaultFields       FaultFields       `json:"faultFields"`
30 }
31
32 type CommonEventHeader struct {
33         Domain     string `json:"domain"`
34         SourceName string `json:"sourceName"`
35 }
36
37 type FaultFields struct {
38         AlarmCondition string `json:"alarmCondition"`
39         EventSeverity  string `json:"eventSeverity"`
40 }
41
42 func (message FaultMessage) isFault() bool {
43         return message.Event.CommonEventHeader.Domain == "fault"
44 }
45
46 func (message FaultMessage) isLinkAlarm() bool {
47         return message.Event.FaultFields.AlarmCondition == "28"
48 }
49
50 func (message FaultMessage) isSeverityNormal() bool {
51         return message.Event.FaultFields.EventSeverity == "NORMAL"
52 }
53
54 func (message FaultMessage) IsLinkFailure() bool {
55         return message.isFault() && message.isLinkAlarm() && !message.isSeverityNormal()
56 }
57
58 func (message FaultMessage) IsClearLinkFailure() bool {
59         return message.isFault() && message.isLinkAlarm() && message.isSeverityNormal()
60 }
61
62 func (message FaultMessage) GetORuId() string {
63         return message.Event.CommonEventHeader.SourceName
64 }