73 lines
2.2 KiB
Go
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
|
|
}
|