💥 v2.0 必须更新面板,新增服务监控

This commit is contained in:
naiba
2021-01-16 00:45:49 +08:00
parent 0ce8017875
commit a41c792577
38 changed files with 1015 additions and 453 deletions

View File

@@ -33,6 +33,7 @@ func (ma *memberAPI) serve() {
mr.POST("/logout", ma.logout)
mr.POST("/server", ma.addOrEditServer)
mr.POST("/monitor", ma.addOrEditMonitor)
mr.POST("/notification", ma.addOrEditNotification)
mr.POST("/alert-rule", ma.addOrEditAlertRule)
mr.POST("/setting", ma.updateSetting)
@@ -64,6 +65,8 @@ func (ma *memberAPI) delete(c *gin.Context) {
if err == nil {
alertmanager.OnDeleteNotification(id)
}
case "monitor":
err = dao.DB.Delete(&model.Monitor{}, "id = ?", id).Error
case "alert-rule":
err = dao.DB.Delete(&model.AlertRule{}, "id = ?", id).Error
if err == nil {
@@ -125,7 +128,7 @@ func (ma *memberAPI) addOrEditServer(c *gin.Context) {
s.State = dao.ServerList[s.ID].State
} else {
s.Host = &model.Host{}
s.State = &model.State{}
s.State = &model.HostState{}
}
dao.ServerList[s.ID] = &s
dao.ReSortServer()
@@ -134,6 +137,42 @@ func (ma *memberAPI) addOrEditServer(c *gin.Context) {
})
}
type monitorForm struct {
ID uint64
Name string
Target string
Type uint8
}
func (ma *memberAPI) addOrEditMonitor(c *gin.Context) {
var mf monitorForm
var m model.Monitor
err := c.ShouldBindJSON(&mf)
if err == nil {
m.Name = mf.Name
m.Target = mf.Target
m.Type = mf.Type
m.ID = mf.ID
}
if err == nil {
if m.ID == 0 {
err = dao.DB.Create(&m).Error
} else {
err = dao.DB.Save(&m).Error
}
}
if err != nil {
c.JSON(http.StatusOK, model.Response{
Code: http.StatusBadRequest,
Message: fmt.Sprintf("请求错误:%s", err),
})
return
}
c.JSON(http.StatusOK, model.Response{
Code: http.StatusOK,
})
}
type notificationForm struct {
ID uint64
Name string