+func (a *AlarmManager) ReadAlarmDefinitionFromJson() {
+
+ filename := os.Getenv("DEF_FILE")
+ file, err := ioutil.ReadFile(filename)
+ if err == nil {
+ data := RicAlarmDefinitions{}
+ err = json.Unmarshal([]byte(file), &data)
+ if err == nil {
+ for _, alarmDefinition := range data.AlarmDefinitions {
+ _, exists := alarm.RICAlarmDefinitions[alarmDefinition.AlarmId]
+ if exists {
+ app.Logger.Error("ReadAlarmDefinitionFromJson: alarm definition already exists for %v", alarmDefinition.AlarmId)
+ } else {
+ app.Logger.Debug("ReadAlarmDefinitionFromJson: alarm %v", alarmDefinition.AlarmId)
+ ricAlarmDefintion := new(alarm.AlarmDefinition)
+ ricAlarmDefintion.AlarmId = alarmDefinition.AlarmId
+ ricAlarmDefintion.AlarmText = alarmDefinition.AlarmText
+ ricAlarmDefintion.EventType = alarmDefinition.EventType
+ ricAlarmDefintion.OperationInstructions = alarmDefinition.OperationInstructions
+ ricAlarmDefintion.RaiseDelay = alarmDefinition.RaiseDelay
+ ricAlarmDefintion.ClearDelay = alarmDefinition.ClearDelay
+ alarm.RICAlarmDefinitions[alarmDefinition.AlarmId] = ricAlarmDefintion
+ }
+ }
+ } else {
+ app.Logger.Error("ReadAlarmDefinitionFromJson: json.Unmarshal failed with error %v", err)
+ }
+ } else {
+ app.Logger.Error("ReadAlarmDefinitionFromJson: ioutil.ReadFile failed with error %v", err)
+ }
+}
+
+func (a *AlarmManager) ReadAlarmInfoFromPersistentVolume() {
+ var alarmpersistentinfo AlarmPersistentInfo
+ byteValue, rerr := ioutil.ReadFile(a.alarmInfoPvFile)
+ if rerr != nil {
+ app.Logger.Error("ararminfo.json file read error %v", rerr)
+ } else {
+ err := json.Unmarshal(byteValue, &alarmpersistentinfo)
+ if err != nil {
+ app.Logger.Error("alarmpersistentinfo json unmarshal error %v", err)
+ } else {
+ a.uniqueAlarmId = alarmpersistentinfo.UniqueAlarmId
+ a.activeAlarms = make([]AlarmNotification, len(alarmpersistentinfo.ActiveAlarms))
+ a.alarmHistory = make([]AlarmNotification, len(alarmpersistentinfo.AlarmHistory))
+ copy(a.activeAlarms, alarmpersistentinfo.ActiveAlarms)
+ copy(a.alarmHistory, alarmpersistentinfo.AlarmHistory)
+ }
+ }
+}
+
+func (a *AlarmManager) WriteAlarmInfoToPersistentVolume() {
+ var alarmpersistentinfo AlarmPersistentInfo
+ alarmpersistentinfo.UniqueAlarmId = a.uniqueAlarmId
+ alarmpersistentinfo.ActiveAlarms = make([]AlarmNotification, len(a.activeAlarms))
+ alarmpersistentinfo.AlarmHistory = make([]AlarmNotification, len(a.alarmHistory))
+ copy(alarmpersistentinfo.ActiveAlarms, a.activeAlarms)
+ copy(alarmpersistentinfo.AlarmHistory, a.alarmHistory)
+ wdata, err := json.MarshalIndent(alarmpersistentinfo, "", " ")
+ if err != nil {
+ app.Logger.Error("alarmpersistentinfo json marshal error %v", err)
+ } else {
+ werr := ioutil.WriteFile(a.alarmInfoPvFile, wdata, 0777)
+ if werr != nil {
+ app.Logger.Error("alarminfo.json file write error %v", werr)
+ }
+ }
+}
+