openpdu/src/webui/syslog_ui.go

47 lines
1.3 KiB
Go

package webui
import (
"strings"
"git.openpdu.org/OpenPDU/openpdu/config"
"git.openpdu.org/OpenPDU/openpdu/events"
"git.openpdu.org/OpenPDU/openpdu/syslog"
"gopkg.in/macaron.v1"
)
func syslogPage(ctx *macaron.Context) {
ctx.Data["host"] = config.GetString("Syslog.Host")
ctx.Data["port"] = config.GetInt("Syslog.Port")
ctx.Data["protocol"] = config.GetString("Syslog.Protocol")
ctx.Data["format"] = config.GetString("Syslog.Format")
if syslog.Connected {
ctx.Data["status"] = "Connected"
} else {
ctx.Data["status"] = "Disconnected"
}
ctx.HTML(200, "syslog")
}
type SyslogPostForm struct {
Host string `form:"host" binding:"Required"`
Port int `form:"port" binding:"Required"`
Protocol string `form:"protocol" binding:"Required"`
Format string `form:"format" binding:"Required"`
}
func syslogPost(ctx *macaron.Context, f SyslogPostForm) {
// TODO: check protocol, it should be 'udp' or 'tcp'
config.Set("Syslog.Host", strings.ToLower(strings.TrimSpace(f.Host)))
config.Set("Syslog.Port", f.Port)
config.Set("Syslog.Protocol", strings.TrimSpace(f.Protocol))
// TODO: check format, it should be 'RFC5424' or 'RFC3164'
config.Set("Syslog.Format", strings.TrimSpace(f.Format))
config.WriteConfig()
events.FireEvent("syslog_config_changed")
syslogPage(ctx)
}