62 lines
2.5 KiB
Go
62 lines
2.5 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// BuildNode CI/CD 构建节点(Jenkins Agent 风格,基于 SSH 关联服务器资产) // Logan.Li
|
|
type BuildNode struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
Name string `gorm:"size:64;not null;uniqueIndex" json:"name"`
|
|
Description string `gorm:"size:255" json:"description"`
|
|
ServerID uint `gorm:"not null;index" json:"server_id"` // FK → servers
|
|
Labels string `gorm:"size:255;comment:标签(逗号分隔,用于调度匹配)" json:"labels,omitempty"`
|
|
MaxExecutors int `gorm:"default:2;comment:最大并发构建数" json:"max_executors"`
|
|
WorkspacePath string `gorm:"size:255;default:/data/aiops-workspace;comment:远程工作区根目录" json:"workspace_path"`
|
|
Enabled bool `gorm:"default:true" json:"enabled"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
|
|
// 运行时统计(非持久化,由调度器填充)
|
|
RunningCount int `gorm:"-" json:"running_count,omitempty"`
|
|
Hostname string `gorm:"-" json:"hostname,omitempty"`
|
|
IP string `gorm:"-" json:"ip,omitempty"`
|
|
}
|
|
|
|
func (BuildNode) TableName() string {
|
|
return "deploy_build_nodes"
|
|
}
|
|
|
|
// BuildMasterConfig Master 内置构建节点并发配置(单行) // Logan.Li
|
|
type BuildMasterConfig struct {
|
|
ID uint `gorm:"primarykey" json:"id"`
|
|
MaxExecutors int `gorm:"default:2;not null;comment:最大并发(1=串行排队)" json:"max_executors"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func (BuildMasterConfig) TableName() string { return "deploy_build_master_configs" }
|
|
|
|
// UpdateBuildMasterRequest 更新 Master 并发数 // Logan.Li
|
|
type UpdateBuildMasterRequest struct {
|
|
MaxExecutors int `json:"max_executors" binding:"required,min=1,max=32"`
|
|
}
|
|
|
|
// CreateBuildNodeRequest 创建构建节点
|
|
type CreateBuildNodeRequest struct {
|
|
Name string `json:"name" binding:"required"`
|
|
Description string `json:"description"`
|
|
ServerID uint `json:"server_id" binding:"required"`
|
|
Labels string `json:"labels"`
|
|
MaxExecutors int `json:"max_executors"`
|
|
WorkspacePath string `json:"workspace_path"`
|
|
}
|
|
|
|
// UpdateBuildNodeRequest 更新构建节点
|
|
type UpdateBuildNodeRequest struct {
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
ServerID *uint `json:"server_id"`
|
|
Labels string `json:"labels"`
|
|
MaxExecutors int `json:"max_executors"`
|
|
WorkspacePath string `json:"workspace_path"`
|
|
Enabled *bool `json:"enabled"`
|
|
}
|