From cf02a4b41b88de02ebb02627330bf26733053809 Mon Sep 17 00:00:00 2001 From: w-mj Date: Thu, 30 Mar 2023 21:27:54 +0800 Subject: [PATCH] project model --- src/config.go | 5 ++-- src/model/project_model.go | 61 ++++++++++++++++++++++++++++++++++++++ test/testdb.go | 30 +++++++++++++++++++ 3 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/model/project_model.go create mode 100644 test/testdb.go diff --git a/src/config.go b/src/config.go index 2ec2909..374aaea 100644 --- a/src/config.go +++ b/src/config.go @@ -1,7 +1,7 @@ package k8s_manager import ( - "fmt" + log "github.com/sirupsen/logrus" "os" "reflect" ) @@ -44,7 +44,8 @@ func InitConfig() { optionalFields := map[string]string{} for _, f := range mustFields { if getField(config, f) == "" { - panic(fmt.Sprintf("field %s must be set.", f)) + log.Warningf("filed %s has not been set", f) + // panic(fmt.Sprintf("field %s must be set.", f)) } } for f, v := range optionalFields { diff --git a/src/model/project_model.go b/src/model/project_model.go new file mode 100644 index 0000000..71eb139 --- /dev/null +++ b/src/model/project_model.go @@ -0,0 +1,61 @@ +package model + +import ( + "gorm.io/gorm" + "time" +) + +type ProjectModel struct { + gorm.Model + ProjectName string + UserName string + GroupName string + Type string + Comment string + + ImageID int + Image ImageModel + TrainData []*DataModel `gorm:"many2many:projects_data"` +} + +func (*ProjectModel) TableName() string { + return "projects" +} + +type ImageModel struct { + gorm.Model + Image string + Comment string + Command string + Env string + Port string + UserName string + IsPublished bool +} + +func (*ImageModel) TableName() string { + return "images" +} + +type DataModel struct { + gorm.Model + Type string + Name string + Comment string + AccessInfo string +} + +func (*DataModel) TableName() string { + return "data" +} + +type RunningProject struct { + Project *ProjectModel + StartTime *time.Time + UserName string + Nodes int + Cpus int + Memory int + Gpus int + GpuMemory int +} diff --git a/test/testdb.go b/test/testdb.go new file mode 100644 index 0000000..c200a14 --- /dev/null +++ b/test/testdb.go @@ -0,0 +1,30 @@ +package main + +import ( + "encoding/json" + "fmt" + k8s_manager "k8s-manager/src" + "k8s-manager/src/model" +) + +func CreateTables() { + db := k8s_manager.DB() + err := db.Migrator().AutoMigrate( + &model.ProjectModel{}, + &model.ImageModel{}, + &model.DataModel{}, + ) + if err != nil { + fmt.Println(err) + return + } +} + +func main() { + k8s_manager.InitConfig() + db := k8s_manager.DB() + p := model.ProjectModel{} + db.Preload("TrainData").Where("user_name = ?", "wmj").Find(&p) + j, _ := json.Marshal(&p) + fmt.Println(string(j)) +}