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 }