liuhaijun e94826ce29 add server
Change-Id: I0760f17f6a01c0121b59fcbfafc666032dbc30af
2024-09-19 09:44:15 +00:00

132 lines
4.0 KiB
Go

package manage
import (
"bytes"
"encoding/json"
err1 "errors"
"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/app_manage/node"
"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"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/service/app_manage/assets"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/service/app_manage/common"
node2 "git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/service/app_manage/node"
"github.com/gin-gonic/gin"
)
func GetProjectData(c *gin.Context) {
nodeId := c.PostForm("nodeId")
id := c.PostForm("id")
if nodeId == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
if id == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
n := &node.Node{}
n.Id = nodeId
err := n.GetById(n)
if err != nil {
controller.FailCode(c, errors.ServerError, err, "没有对应的节点")
return
}
jsonBody := make(map[string]string)
jsonBody["id"] = id
body, _ := json.Marshal(jsonBody)
resp, err := common.Request5(n, common.Manage_GetProjectItem, bytes.NewReader(body))
if err != nil {
controller.FailCode(c, errors.ServerError, err, "查询失败")
return
}
if !resp.IsBusinessSuccess() {
controller.FailCode(c, errors.ServerError, err1.New(resp.Result.Msg), resp.Result.Data)
return
}
controller.Success(c, resp.Result.Data)
}
// ProjectAccessList 同/machine/white-list
func ProjectAccessList(c *gin.Context) {
machineId := c.PostForm("machineId")
m := &node.MachineNode{}
m.Id = machineId
err := m.GetById(m)
if err != nil {
controller.FailCode(c, errors.ServerError, err, "没有对应的机器")
return
}
result := assets.GetAgentWhitelist(m)
controller.Success(c, result)
}
// http://10.110.141.50:2122/node/manage/saveProject
// nodeId=895457ceee8340279d9d92e10242d77c&id=DQWKRY&name=test&runMode=Jar&whitelistDirectory=%2Fhome%2Ftmn%2Fjpom%2Fproject%2F&lib=test&logPath=
func SaveProject(c *gin.Context) {
//params, _ := request.GetPostFormParams(c)
//if params["nodeId"] == "" {
// controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
// return
//}
p := project_info.ProjectInfo{}
err := c.ShouldBindJSON(&p)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
nodeId := p.NodeId
if nodeId == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
id := p.Id
if id == "" {
controller.FailCode(c, errors.InvalidParameter, nil, "请检查参数!")
return
}
n := &node.Node{}
n.Id = nodeId
err = n.GetById(n)
if err != nil {
controller.FailCode(c, errors.ServerError, err, "没有对应的节点")
return
}
p.SetUserName(service.GetUserName(c))
p.WorkspaceId = n.WorkspaceId
p.NodeName = n.Name
body, _ := json.Marshal(p)
resp, err := common.Request5(n, common.Manage_SaveProject, bytes.NewReader(body))
if err != nil {
controller.FailCode(c, errors.ServerError, err, "创建项目失败")
return
}
if !resp.IsBusinessSuccess() {
controller.FailCode(c, errors.ServerError, err1.New(resp.Result.Msg), "创建项目失败-逻辑节点")
return
}
node2.SyncNodeProjectInfo(n, id)
controller.Success(c, "")
}
func ReleaseOutgiving(c *gin.Context) {
bodyToMap := request.GetBodyToMap(c)
response := app_manage.TryRequestNode("", bodyToMap, common.Manage_ReleaseOutGiving)
if response.Result.Code == errors.SUCCESS {
projectId, _ := bodyToMap["id"].(string)
n, _ := app_manage.TryGetNode(bodyToMap)
node2.SyncNodeProjectInfo(n, projectId)
controller.Success(c, response.Result.Data)
} else {
controller.FailCode(c, response.Result.Code, errors.NewBusinessError(response.Result.Code, response.Result.Msg), response.Result.Data)
}
}