X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=cli%2Falarm-cli.go;h=97ccb912de48420cc675a94141faf72b4edc3450;hb=refs%2Fchanges%2F67%2F4767%2F5;hp=665f968f9f454da8612cfaaf8e7c0b15aee4dfce;hpb=2be5ac5ed9a2b8d7fc21f34bcb9c4c721112434e;p=ric-plt%2Falarm-go.git diff --git a/cli/alarm-cli.go b/cli/alarm-cli.go index 665f968..97ccb91 100755 --- a/cli/alarm-cli.go +++ b/cli/alarm-cli.go @@ -74,6 +74,18 @@ func main() { postAlarm(flags, readAlarmParams(flags, true), alarm.AlarmActionClear) }) + // Configure an alarm manager + commando. + Register("configure"). + SetShortDescription("Configure alarm manager with given parameters"). + AddFlag("mal", "max active alarms", commando.Int, nil). + AddFlag("mah", "max alarm history", commando.Int, nil). + AddFlag("host", "Alarm manager host address", commando.String, "localhost"). + AddFlag("port", "Alarm manager host address", commando.String, "8080"). + SetAction(func(args map[string]commando.ArgValue, flags map[string]commando.FlagValue) { + postAlarmConfig(flags) + }) + // parse command-line arguments commando.Parse(nil) } @@ -162,3 +174,24 @@ func displayAlarms(alarms []alarm.AlarmMessage, isHistory bool) { t.SetStyle(table.StyleColoredBright) t.Render() } + +func postAlarmConfig(flags map[string]commando.FlagValue) { + host, _ := flags["host"].GetString() + port, _ := flags["port"].GetString() + maxactivealarms, _ := flags["mal"].GetInt() + maxalarmhistory, _ := flags["mah"].GetInt() + targetUrl := fmt.Sprintf("http://%s:%s/ric/v1/alarms/config", host, port) + + m := alarm.AlarmConfigParams{MaxActiveAlarms: maxactivealarms, MaxAlarmHistory: maxalarmhistory} + jsonData, err := json.Marshal(m) + if err != nil { + fmt.Println("json.Marshal failed: %v", err) + return + } + + resp, err := http.Post(targetUrl, "application/json", bytes.NewBuffer(jsonData)) + if err != nil || resp == nil { + fmt.Println("Couldn't fetch post alarm configuration due to error: %v", err) + return + } +}