Rename AlarmAdapter to AlarmManager
[ric-plt/alarm-go.git] / alarm / types.go
1 /*
2  *  Copyright (c) 2020 AT&T Intellectual Property.
3  *  Copyright (c) 2020 Nokia.
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  * This source code is part of the near-RT RIC (RAN Intelligent Controller)
18  * platform project (RICP).
19  */
20
21 package alarm
22
23 import (
24         "sync"
25         "unsafe"
26 )
27
28 import "C"
29
30 // Severity for alarms
31 type Severity string
32
33 // Possible values for Severity
34 const (
35         SeverityUnspecified Severity = "UNSPECIFIED"
36         SeverityCritical    Severity = "CRITICAL"
37         SeverityMajor       Severity = "MAJOR"
38         SeverityMinor       Severity = "MINOR"
39         SeverityWarning     Severity = "WARNING"
40         SeverityCleared     Severity = "CLEARED"
41         SeverityDefault     Severity = "DEFAULT"
42 )
43
44 // Alarm object - see README for more information
45 type Alarm struct {
46         ManagedObjectId   string   `json:"managedObjectId"`
47         ApplicationId     string   `json:"applicationId"`
48         SpecificProblem   int      `json:"specificProblem"`
49         PerceivedSeverity Severity `json:"perceivedSeverity"`
50         AdditionalInfo    string   `json:"additionalInfo"`
51         IdentifyingInfo   string   `json:"identifyingInfo"`
52 }
53
54 // Alarm actions
55 type AlarmAction string
56
57 // Possible values for alarm actions
58 const (
59         AlarmActionRaise    AlarmAction = "RAISE"
60         AlarmActionClear    AlarmAction = "CLEAR"
61         AlarmActionClearAll AlarmAction = "CLEARALL"
62 )
63
64 type AlarmMessage struct {
65         Alarm
66         AlarmAction
67         AlarmTime int64
68 }
69
70 // RICAlarm is an alarm instance
71 type RICAlarm struct {
72         moId       string
73         appId      string
74         managerUrl string
75         rmrCtx     unsafe.Pointer
76         rmrReady   bool
77         mutex      sync.Mutex
78 }
79
80 const (
81         RIC_ALARM_UPDATE = 13111
82         RIC_ALARM_QUERY  = 13112
83 )
84
85 // Temp alarm constants & definitions
86 const (
87         RIC_RT_DISTRIBUTION_FAILED     int = 8004
88         TCP_CONNECTIVITY_LOST_TO_DBAAS int = 8005
89         E2_CONNECTIVITY_LOST_TO_GNODEB int = 8006
90         E2_CONNECTIVITY_LOST_TO_ENODEB int = 8007
91 )
92
93 type AlarmDefinition struct {
94         AlarmId               int
95         AlarmText             string
96         EventType             string
97         OperationInstructions string
98 }
99
100 var RICAlarmDefinitions = map[int]AlarmDefinition{
101         RIC_RT_DISTRIBUTION_FAILED: {
102                 AlarmId:               RIC_RT_DISTRIBUTION_FAILED,
103                 AlarmText:             "RIC ROUTING TABLE DISTRIBUTION FAILED",
104                 EventType:             "Processing error",
105                 OperationInstructions: "Not defined",
106         },
107         TCP_CONNECTIVITY_LOST_TO_DBAAS: {
108                 AlarmId:               TCP_CONNECTIVITY_LOST_TO_DBAAS,
109                 AlarmText:             "TCP CONNECTIVITY LOST TO DBAAS",
110                 EventType:             "Communication error",
111                 OperationInstructions: "Not defined",
112         },
113         E2_CONNECTIVITY_LOST_TO_GNODEB: {
114                 AlarmId:               E2_CONNECTIVITY_LOST_TO_GNODEB,
115                 AlarmText:             "E2 CONNECTIVITY LOST TO G-NODEB",
116                 EventType:             "Communication error",
117                 OperationInstructions: "Not defined",
118         },
119         E2_CONNECTIVITY_LOST_TO_ENODEB: {
120                 AlarmId:               E2_CONNECTIVITY_LOST_TO_ENODEB,
121                 AlarmText:             "E2 CONNECTIVITY LOST TO E-NODEB",
122                 EventType:             "Communication error",
123                 OperationInstructions: "Not defined",
124         },
125 }
126
127 const (
128         ALARM_MANAGER_HTTP_URL string = "http://service-ricplt-alarmmanager-http.ricplt:8080"
129         ALARM_MANAGER_RMR_URL  string = "service-ricplt-alarmmanager-rmr.ricplt:4560"
130 )