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

73 lines
2.2 KiB
Go

package node
import (
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model"
"gorm.io/gorm"
)
type Node struct {
model.BaseMachineModel
Url string `gorm:"column:url" json:"url"`
LoginName string `gorm:"column:login_name" json:"loginName"`
LoginPwd string `gorm:"column:login_pwd" json:"loginPwd"`
Name string `gorm:"column:name" json:"name"`
Protocol string `gorm:"column:protocol" json:"protocol"`
OpenStatus int `gorm:"column:open_status" json:"openStatus"`
TimeOut int `gorm:"column:timeout" json:"timeOut"`
HttpProxy string `gorm:"column:http_proxy" json:"httpProxy"`
HttpProxyType string `gorm:"column:http_proxy_type" json:"httpProxyType"`
SortValue float32 `gorm:"column:sort_value" json:"sortValue"`
MachineNodeData *MachineNode `gorm:"-" json:"machineNodeData"`
}
func New() *Node {
n := &Node{}
n.Handler = n
return n
}
func (*Node) TableName() string {
return "sched_node_info"
}
func (n *Node) ListGroup() ([]string, error) {
var result []string
tx := model.DB().Table(n.TableName()).Select("\"group\"").Distinct().Scan(&result)
return result, tx.Error
}
func (n *Node) FindResult(db *gorm.DB) (interface{}, error) {
var result []Node
if db == nil {
return result, nil
}
err := db.Find(&result).Error
return result, err
}
// 根据节点id获取节点信息
func GetNodeById(id string) *Node {
node := New()
model.DB().Where("id = ?", id).First(node)
return node
}
// 根据节点id批量获取节点信息
func GetNodeByIds(ids []string) []Node {
var nodes []Node
model.DB().Where("id in (?)", ids).Find(&nodes)
return nodes
}
// 根据工作空间(WorkspaceId)计算节点数量
func CountNodeByWorkspaceId(workspaceId string) (int64, error) {
var count int64
tx := model.DB().Table(New().TableName()).Where("workspace_id = ?", workspaceId).Count(&count)
return count, tx.Error
}
// 根据MachineId更新Node的LoginPwd
func UpdateNodeLoginPwdByMachineId(machineId string, loginPwd string) error {
return model.DB().Table(New().TableName()).Where("machine_id = ?", machineId).Update("login_pwd", loginPwd).Error
}