109 lines
3.1 KiB
Go
109 lines
3.1 KiB
Go
package node
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/controller"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/controller/v1/app_manage"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model/app_manage/project_info"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/errors"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/request"
|
|
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/service/app_manage/node"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
type ProjectPageBody struct {
|
|
PageInfo *request.PageInfo `json:"pageInfo" binding:"required"`
|
|
NodeId string `json:"nodeId"`
|
|
Group string `json:"group"`
|
|
Keyword string `json:"keyword"`
|
|
RunMode string `json:"runMode"`
|
|
}
|
|
|
|
// ProjectList 加载节点项目列表
|
|
func ProjectList(c *gin.Context) {
|
|
var pageBody *ProjectPageBody
|
|
body := request.GetBody(c)
|
|
err := json.Unmarshal(body, &pageBody)
|
|
if err != nil {
|
|
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
|
|
return
|
|
}
|
|
|
|
p := project_info.New()
|
|
fields := map[string]interface{}{}
|
|
if len(pageBody.NodeId) > 0 {
|
|
fields["node_id"] = pageBody.NodeId
|
|
}
|
|
if len(pageBody.Group) > 0 {
|
|
fields["\"group\""] = pageBody.Group
|
|
}
|
|
if len(pageBody.RunMode) > 0 {
|
|
fields["run_mode"] = pageBody.RunMode
|
|
}
|
|
workspaceId := app_manage.GetWorkspaceId(c)
|
|
fields["workspace_id"] = workspaceId
|
|
|
|
page := &model.PageConfig{}
|
|
page.Covert(pageBody.PageInfo)
|
|
result, err := p.Page(p, page, fields)
|
|
if err != nil {
|
|
controller.FailCode(c, errors.ServerError, err, "内部错误!")
|
|
return
|
|
}
|
|
page.Data = result
|
|
controller.Success(c, page)
|
|
}
|
|
|
|
// ProjectListAll 加载节点项目列表
|
|
func ProjectListAll(c *gin.Context) {
|
|
p := project_info.New()
|
|
|
|
fields := map[string]interface{}{}
|
|
workspaceId := app_manage.GetWorkspaceId(c)
|
|
fields["workspace_id"] = workspaceId
|
|
all, err := p.GetAll(p, fields, nil)
|
|
if err != nil {
|
|
return
|
|
}
|
|
controller.Success(c, all)
|
|
}
|
|
|
|
// ListProjectGroup 查询所有的分组
|
|
func ListProjectGroup(c *gin.Context) {
|
|
p := &project_info.ProjectInfo{}
|
|
result, _ := p.ListGroup()
|
|
controller.Success(c, result)
|
|
}
|
|
|
|
// SyncProject 同步节点项目
|
|
func SyncProject(c *gin.Context) {
|
|
bodyToMap := request.GetBodyToMap(c)
|
|
n, err := app_manage.TryGetNode(bodyToMap)
|
|
if err != nil {
|
|
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
|
|
return
|
|
}
|
|
workspaceId := c.Request.Header.Get("workspaceId")
|
|
|
|
count, err := project_info.DeleteProjectByNodeIdAndWorkspaceId(n.Id, workspaceId)
|
|
if err != nil {
|
|
controller.FailCode(c, errors.ServerError, err, "删除节点缓存项目信息失败!")
|
|
return
|
|
}
|
|
|
|
msg := node.SyncExecuteNode(n)
|
|
controller.Success(c, fmt.Sprintf("主动清除:%d个项目, 同步信息:%s", count, msg))
|
|
|
|
}
|
|
|
|
func ClearAll(c *gin.Context) {
|
|
all, err := project_info.ClearAll()
|
|
if err != nil {
|
|
controller.FailCode(c, errors.ServerError, err, "删除节点缓存项目失败!")
|
|
return
|
|
}
|
|
controller.Success(c, fmt.Sprintf("成功删除 %d 条项目缓存", all))
|
|
}
|