mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-04 04:30:05 +00:00
add force update server api (#13)
This commit is contained in:
@@ -92,6 +92,7 @@ func routers(r *gin.Engine) {
|
||||
auth.GET("/server", commonHandler(listServer))
|
||||
auth.PATCH("/server/:id", commonHandler(updateServer))
|
||||
auth.POST("/batch-delete/server", commonHandler(batchDeleteServer))
|
||||
auth.POST("/force-update/server", commonHandler(forceUpdateServer))
|
||||
|
||||
auth.GET("/notification", commonHandler(listNotification))
|
||||
auth.POST("/notification", commonHandler(createNotification))
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/naiba/nezha/model"
|
||||
"github.com/naiba/nezha/pkg/utils"
|
||||
pb "github.com/naiba/nezha/proto"
|
||||
"github.com/naiba/nezha/service/singleton"
|
||||
)
|
||||
|
||||
@@ -129,3 +130,42 @@ func batchDeleteServer(c *gin.Context) (any, error) {
|
||||
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
// Force update Agent
|
||||
// @Summary Force update Agent
|
||||
// @Security BearerAuth
|
||||
// @Schemes
|
||||
// @Description Force update Agent
|
||||
// @Tags auth required
|
||||
// @Accept json
|
||||
// @param request body []uint64 true "id list"
|
||||
// @Produce json
|
||||
// @Success 200 {object} model.CommonResponse[model.ForceUpdateResponse]
|
||||
// @Router /force-update/server [post]
|
||||
func forceUpdateServer(c *gin.Context) (*model.ForceUpdateResponse, error) {
|
||||
var forceUpdateServers []uint64
|
||||
if err := c.ShouldBindJSON(&forceUpdateServers); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
forceUpdateResp := new(model.ForceUpdateResponse)
|
||||
|
||||
for _, sid := range forceUpdateServers {
|
||||
singleton.ServerLock.RLock()
|
||||
server := singleton.ServerList[sid]
|
||||
singleton.ServerLock.RUnlock()
|
||||
if server != nil && server.TaskStream != nil {
|
||||
if err := server.TaskStream.Send(&pb.Task{
|
||||
Type: model.TaskTypeUpgrade,
|
||||
}); err != nil {
|
||||
forceUpdateResp.Failure = append(forceUpdateResp.Failure, sid)
|
||||
} else {
|
||||
forceUpdateResp.Success = append(forceUpdateResp.Success, sid)
|
||||
}
|
||||
} else {
|
||||
forceUpdateResp.Offline = append(forceUpdateResp.Offline, sid)
|
||||
}
|
||||
}
|
||||
|
||||
return forceUpdateResp, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user