From 0cd2223e532747e0f18f37ca44eaeaf0e40d3d5f Mon Sep 17 00:00:00 2001 From: liuzx Date: Fri, 17 Jun 2022 17:39:19 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BA=91=E8=84=91=E6=A6=9C=E5=8D=95?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- models/cloudbrain_static.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/models/cloudbrain_static.go b/models/cloudbrain_static.go index 27cccf415e..03cd7d2bc3 100644 --- a/models/cloudbrain_static.go +++ b/models/cloudbrain_static.go @@ -213,7 +213,7 @@ func GetWaittingTop() ([]*CloudbrainInfo, error) { cond = cond.And( builder.Eq{"cloudbrain.status": string(JobWaiting)}, ) - sess.OrderBy("(cloudbrain.start_time-cloudbrain.created_unix) DESC limit 10") + sess.OrderBy("cloudbrain.created_unix ASC limit 10") cloudbrains := make([]*CloudbrainInfo, 0, 10) if err := sess.Table(&Cloudbrain{}).Where(cond). Find(&cloudbrains); err != nil { @@ -228,7 +228,7 @@ func GetRunningTop() ([]*CloudbrainInfo, error) { cond = cond.And( builder.Eq{"cloudbrain.status": string(JobRunning)}, ) - sess.OrderBy("(cloudbrain.end_time-cloudbrain.start_time) DESC limit 10") + sess.OrderBy("cloudbrain.duration DESC limit 10") cloudbrains := make([]*CloudbrainInfo, 0, 10) if err := sess.Table(&Cloudbrain{}).Where(cond). Find(&cloudbrains); err != nil { -- 2.34.1 From 09f66aa74366e8342afb9547eca33ed66288ece4 Mon Sep 17 00:00:00 2001 From: liuzx Date: Fri, 17 Jun 2022 17:42:54 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BA=91=E8=84=91=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E6=A6=82=E8=A7=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- routers/api/v1/repo/cloudbrain_dashboard.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 07298ffdc6..2e1c979b7a 100644 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -121,6 +121,13 @@ func GetAllCloudbrainsOverview(ctx *context.Context) { } } + cloudBrainTypeList := []int{0, 1, 2} + for _, v := range cloudBrainTypeList { + if _, ok := cloudBrainNum[v]; !ok { + cloudBrainNum[v] = 0 + } + } + todayRunningCount := todayStatusResult[string(models.JobRunning)] todayCompletedCount := todayStatusResult[string(models.ModelArtsTrainJobCompleted)] + todayStatusResult[string(models.JobFailed)] + todayStatusResult[string(models.ModelArtsStartFailed)] + todayStatusResult[string(models.JobStopped)] + todayStatusResult[string(models.JobSucceeded)] + todayStatusResult[string(models.ModelArtsTrainJobKilled)] -- 2.34.1 From 9971a63fd302640b8f22f4aa9862a791e33633a0 Mon Sep 17 00:00:00 2001 From: liuzx Date: Mon, 20 Jun 2022 17:53:01 +0800 Subject: [PATCH 3/3] update --- models/cloudbrain.go | 41 +++++++++++++++++++++ routers/api/v1/repo/cloudbrain_dashboard.go | 14 +++---- 2 files changed, 48 insertions(+), 7 deletions(-) diff --git a/models/cloudbrain.go b/models/cloudbrain.go index 4840b78c00..7d5de3335d 100755 --- a/models/cloudbrain.go +++ b/models/cloudbrain.go @@ -1795,3 +1795,44 @@ func CloudbrainAll(opts *CloudbrainsOptions) ([]*CloudbrainInfo, int64, error) { return cloudbrains, count, nil } +func CloudbrainAllStatic(opts *CloudbrainsOptions) ([]*CloudbrainInfo, int64, error) { + sess := x.NewSession() + defer sess.Close() + + var cond = builder.NewCond() + + if (opts.Type) >= 0 { + cond = cond.And( + builder.Eq{"cloudbrain.type": opts.Type}, + ) + } + if opts.BeginTimeUnix > 0 && opts.EndTimeUnix > 0 { + cond = cond.And( + builder.And(builder.Gte{"cloudbrain.created_unix": opts.BeginTimeUnix}, builder.Lte{"cloudbrain.created_unix": opts.EndTimeUnix}), + ) + } + var count int64 + var err error + count, err = sess.Unscoped().Where(cond).Count(new(Cloudbrain)) + + if err != nil { + return nil, 0, fmt.Errorf("Count: %v", err) + } + + if opts.Page >= 0 && opts.PageSize > 0 { + var start int + if opts.Page == 0 { + start = 0 + } else { + start = (opts.Page - 1) * opts.PageSize + } + sess.Limit(opts.PageSize, start) + } + sess.OrderBy("cloudbrain.created_unix DESC") + cloudbrains := make([]*CloudbrainInfo, 0, setting.UI.IssuePagingNum) + if err := sess.Cols("status", "type", "job_type", "train_job_duration", "duration", "compute_resource", "created_unix", "start_time", "end_time").Table(&Cloudbrain{}).Unscoped().Where(cond). + Find(&cloudbrains); err != nil { + return nil, 0, fmt.Errorf("Find: %v", err) + } + return cloudbrains, count, nil +} diff --git a/routers/api/v1/repo/cloudbrain_dashboard.go b/routers/api/v1/repo/cloudbrain_dashboard.go index 2e1c979b7a..f102a0f057 100644 --- a/routers/api/v1/repo/cloudbrain_dashboard.go +++ b/routers/api/v1/repo/cloudbrain_dashboard.go @@ -67,7 +67,7 @@ func GetAllCloudbrainsOverview(ctx *context.Context) { pagesize := 1000 count := pagesize for count == pagesize && count != 0 { - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, PageSize: pagesize, @@ -511,7 +511,7 @@ func GetAllCloudbrainsPeriodDistribution(ctx *context.Context) { count := pagesize //Each time a maximum of 1000 pieces of data are detected to the memory, batch processing for count == pagesize && count != 0 { - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, PageSize: pagesize, @@ -620,7 +620,7 @@ func GetCloudbrainsStatusAnalysis(ctx *context.Context) { pagesize := 1000 count := pagesize for count == pagesize && count != 0 { - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ ListOptions: models.ListOptions{ Page: page, PageSize: pagesize, @@ -1028,7 +1028,7 @@ func getCloudbrainCount(beginTime time.Time, endTime time.Time, cloudbrains []*m func getDayCloudbrainNum(beginTime time.Time, endTime time.Time) ([]DateCloudbrainNum, error) { var endTimeTemp time.Time endTimeTemp = beginTime.AddDate(0, 0, 1) - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ Type: models.TypeCloudBrainAll, BeginTimeUnix: beginTime.Unix(), EndTimeUnix: endTime.Unix(), @@ -1064,7 +1064,7 @@ func getMonthCloudbrainNum(beginTime time.Time, endTime time.Time) ([]DateCloudb endTimeTemp = beginTime.AddDate(0, 1, 0) endTimeTemp = time.Date(endTimeTemp.Year(), endTimeTemp.Month(), 1, 0, 0, 0, 0, now.Location()) monthCloudbrainNum := make([]DateCloudbrainNum, 0) - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ Type: models.TypeCloudBrainAll, BeginTimeUnix: beginTime.Unix(), EndTimeUnix: endTime.Unix(), @@ -1100,7 +1100,7 @@ func getDayCloudbrainInfo(beginTime time.Time, endTime time.Time) ([]DateCloudbr if endTimeTemp.Equal(endTime) { endTimeTemp = endTimeTemp.AddDate(0, 0, -1) } - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ Type: models.TypeCloudBrainAll, BeginTimeUnix: beginTime.Unix(), EndTimeUnix: endTime.Unix(), @@ -1131,7 +1131,7 @@ func getMonthCloudbrainInfo(beginTime time.Time, endTime time.Time) ([]DateCloud if endTimeTemp.Equal(endTime) { endTimeTemp = endTimeTemp.AddDate(0, -1, 0) } - cloudbrains, _, err := models.CloudbrainAll(&models.CloudbrainsOptions{ + cloudbrains, _, err := models.CloudbrainAllStatic(&models.CloudbrainsOptions{ Type: models.TypeCloudBrainAll, BeginTimeUnix: beginTime.Unix(), EndTimeUnix: endTime.Unix(), -- 2.34.1