mirror of
https://github.com/XShengTech/MEGREZ.git
synced 2026-01-14 00:57:17 +08:00
63 lines
2.0 KiB
Go
63 lines
2.0 KiB
Go
package models
|
|
|
|
import (
|
|
"slices"
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Status int
|
|
|
|
const (
|
|
InstanceFail Status = -1
|
|
InstanceRunning Status = 0
|
|
InstancePaused Status = 1
|
|
InstanceStopped Status = 2
|
|
|
|
InstanceReady Status = 3
|
|
InstanceStarting Status = 4
|
|
InstanceStopping Status = 5
|
|
InstancePausing Status = 6
|
|
InstanceRestarting Status = 7
|
|
InstanceModifying Status = 8
|
|
InstanceDeleting Status = 9
|
|
)
|
|
|
|
var instanceIngStatus = []Status{InstanceReady, InstanceStarting, InstanceStopping, InstancePausing, InstanceRestarting, InstanceModifying, InstanceDeleting}
|
|
|
|
type Instances struct {
|
|
ID uint `json:"id" gorm:"primary_key;autoIncrement;index"`
|
|
|
|
UserID uint `json:"user_id,omitempty" gorm:"not null"`
|
|
ServerID uint `json:"server_id" gorm:"not null"`
|
|
|
|
ImageName string `json:"image_name" gorm:"type:varchar(255);not null"`
|
|
ContainerName string `json:"container_name,omitempty" gorm:"type:varchar(255);not null"`
|
|
CpuOnly bool `json:"cpu_only" gorm:"not null"`
|
|
GpuCount int `json:"gpu_count" gorm:"not null"`
|
|
VolumeName string `json:"volume_name,omitempty" gorm:"type:varchar(255);not null"`
|
|
VolumeSize int `json:"volume_size" gorm:"not null"`
|
|
|
|
SshAddress string `json:"ssh_address" gorm:"type:varchar(255)"`
|
|
SshPasswd string `json:"ssh_passwd" gorm:"type:varchar(255)"`
|
|
JupyterAddress string `json:"jupyter_address" gorm:"type:varchar(255)"`
|
|
TensorBoardAddress string `json:"tensor_board_address" gorm:"type:varchar(255)"`
|
|
GrafanaAddress string `json:"grafana_address" gorm:"type:varchar(255)"`
|
|
CodeServerAddress string `json:"code_server_address" gorm:"type:varchar(255)"`
|
|
Status Status `json:"status" gorm:"not null"` // Detail in Constants
|
|
|
|
Label string `json:"label" gorm:"type:varchar(255)"`
|
|
|
|
CreatedAt time.Time `json:"create_at"`
|
|
UpdatedAt time.Time `json:"update_at"`
|
|
DeletedAt gorm.DeletedAt `json:"-" gorm:"index"`
|
|
}
|
|
|
|
func InstanceIngStatusCheck(status Status) bool {
|
|
if slices.Index(instanceIngStatus, status) != -1 {
|
|
return true
|
|
}
|
|
return false
|
|
}
|