Browse Source

update

tags/v1.22.6.1^2
liuzx 3 years ago
parent
commit
39371d4485
1 changed files with 74 additions and 106 deletions
  1. +74
    -106
      routers/api/v1/repo/cloudbrain_dashboard.go

+ 74
- 106
routers/api/v1/repo/cloudbrain_dashboard.go View File

@@ -278,84 +278,69 @@ func GetAllCloudbrainsTrend(ctx *context.Context) {
}

func GetAllCloudbrainsTrendDetail(ctx *context.Context) {
// brainRecordBeginTime, err := getBrainRecordBeginTime()
// if err != nil {
// log.Error("Can not get brain record begin time", err)
// ctx.Error(http.StatusBadRequest, ctx.Tr("repo.brain_record_begintime_get_err"))
// return
// }
// queryType := ctx.QueryTrim("type")
now := time.Now()
var beginTime time.Time
var endTime time.Time
var endTimeTemp time.Time
// dateCloudbrainNum := make([]DateCloudbrainNum, 0)

recordBeginTime, err := getBrainRecordBeginTime()
if err != nil {
log.Error("Can not get record begin time", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("repo.record_begintime_get_err"))
return
}
beginTime, endTime, err := getTimePeroid(ctx, recordBeginTime)
beginTime = now.AddDate(0, 0, -30) //
// beginTime = brainRecordBeginTime
beginTime = time.Date(beginTime.Year(), beginTime.Month(), beginTime.Day(), 0, 0, 0, 0, now.Location())
endTime = now
endTimeTemp = endTime.AddDate(0, 0, -1)
dayCloudbrainInfo, err := getDayCloudbrainInfo(beginTime, endTimeTemp, endTime)
if err != nil {
log.Error("Parameter is wrong", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("repo.parameter_is_wrong"))
log.Error("Can not query getDayCloudbrainInfo.", err)
ctx.Error(http.StatusBadRequest, ctx.Tr("getDayCloudbrainInfo_get_error"))
return
}

cloudbrains, err := models.GetAllCloudBrain()
if err != nil {
log.Error("Getcloudbrains failed:%v", err)
return
page := ctx.QueryInt("page")
if page <= 0 {
page = 1
}
cloudOneJobTypeRes := make(map[string]int)
cloudTwoJobTypeRes := make(map[string]int)
intelligentNetJobTypeRes := make(map[string]int)
cloudBrainPeriodNum := make(map[int]int)
for _, cloudbrain := range cloudbrains {
if int64(cloudbrain.Cloudbrain.CreatedUnix) >= beginTime.Unix() && int64(cloudbrain.Cloudbrain.CreatedUnix) < endTime.Unix() {
if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainOne {
if _, ok := cloudOneJobTypeRes[cloudbrain.JobType]; !ok {
cloudOneJobTypeRes[cloudbrain.JobType] = 1
} else {
cloudOneJobTypeRes[cloudbrain.JobType] += 1
}
}
if cloudbrain.Cloudbrain.Type == models.TypeCloudBrainTwo {
if _, ok := cloudTwoJobTypeRes[cloudbrain.JobType]; !ok {
cloudTwoJobTypeRes[cloudbrain.JobType] = 1
} else {
cloudTwoJobTypeRes[cloudbrain.JobType] += 1
}
}
pagesize := ctx.QueryInt("pagesize")
if pagesize <= 0 {
pagesize = 5
}
// pager := context.NewPagination(len(dateCloudbrainNum), pagesize, page, 5)

if _, ok := cloudBrainPeriodNum[cloudbrain.Cloudbrain.Type]; !ok {
cloudBrainPeriodNum[cloudbrain.Cloudbrain.Type] = 1
} else {
cloudBrainPeriodNum[cloudbrain.Cloudbrain.Type] += 1
}
pageDateCloudbrainNum := getPageDateCloudbrainNum(dayCloudbrainInfo, page, pagesize)

}
//load attachment creator
// for _, attachment := range pageAttachments {
// uploader, _ := models.GetUserByID(attachment.UploaderID)
// attachment.Uploader = uploader
// }

cloudbrainsPeriodData := TimeCloudbrainsNum{
TimeCloudbrainNum: pageDateCloudbrainNum,
}

jobTypeList := []string{"DEBUG", "BENCHMARK", "INFERENCE", "TRAIN", "SNN4IMAGENET", "BRAINSCORE"}
for _, v := range jobTypeList {
if _, ok := cloudOneJobTypeRes[v]; !ok {
cloudOneJobTypeRes[v] = 0
}
if _, ok := cloudTwoJobTypeRes[v]; !ok {
cloudTwoJobTypeRes[v] = 0
}
if _, ok := intelligentNetJobTypeRes[v]; !ok {
intelligentNetJobTypeRes[v] = 0
}
ctx.JSON(http.StatusOK, cloudbrainsPeriodData)

}
func getPageDateCloudbrainNum(dateCloudbrainNums []DateCloudbrainNum, page int, pagesize int) []DateCloudbrainNum {
begin := (page - 1) * pagesize
end := (page) * pagesize

if begin > len(dateCloudbrainNums)-1 {
return nil
}
cloudBrainTypeList := []int{0, 1, 2}
for _, v := range cloudBrainTypeList {
if _, ok := cloudBrainPeriodNum[v]; !ok {
cloudBrainPeriodNum[v] = 0
}
if end > len(dateCloudbrainNums)-1 {
return dateCloudbrainNums[begin:]
} else {
return dateCloudbrainNums[begin:end]
}
// totalTasksCount := cloudBrainPeriodNum[0] + cloudBrainPeriodNum[1] + cloudBrainPeriodNum[2]

cloudOneJobTypeRes["EVALUATION"] = cloudOneJobTypeRes["BENCHMARK"] + cloudOneJobTypeRes["SNN4IMAGENET"] + cloudOneJobTypeRes["BRAINSCORE"]
cloudTwoJobTypeRes["EVALUATION"] = cloudTwoJobTypeRes["BENCHMARK"] + cloudTwoJobTypeRes["SNN4IMAGENET"] + cloudTwoJobTypeRes["BRAINSCORE"]
intelligentNetJobTypeRes["EVALUATION"] = intelligentNetJobTypeRes["BENCHMARK"] + intelligentNetJobTypeRes["SNN4IMAGENET"] + intelligentNetJobTypeRes["BRAINSCORE"]
ctx.JSON(http.StatusOK, map[string]interface{}{
"cloudOneJobTypeRes": cloudOneJobTypeRes,
"cloudTwoJobTypeRes": cloudTwoJobTypeRes,
"intelligentNetJobTypeRes": intelligentNetJobTypeRes,
"cloudBrainPeriodNum": cloudBrainPeriodNum,
})
}

func GetAllCloudbrainsPeriodDistribution(ctx *context.Context) {
@@ -722,47 +707,6 @@ func GetCloudbrainsRunHoursData(ctx *context.Context) {
}

func getCloudbrainCount(beginTime time.Time, endTime time.Time) (map[string]int, map[string]int, map[string]int, map[int]int, map[string]int, error) {
// debugOneCount, err := models.GetDebugOnePeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query debugOneCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// benchmarkOneCount, err := models.GetBenchmarkOnePeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query benchmarkCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// trainOneCount, err := models.GetTrainOnePeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query trainOneCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// debugTwoCount, err := models.GetDebugTwoPeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query debugTwoCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// trainTwoCount, err := models.GetTrainTwoPeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query DebugOneTotal count.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// inferenceTwoCount, err := models.GetInferenceTwoPeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query inferenceTwoCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// cloudbrainOneCount, err := models.GetCloudBrainOnePeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query cloudbrainOneCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// cloudbrainTwoCount, err := models.GetCloudBrainTwoPeriodCount(beginTime, endTime)
// if err != nil {
// log.Error("Can not query cloudbrainOneCount.", err)
// return 0, 0, 0, 0, 0, 0, 0, 0, 0, err
// }
// cloudbrainCount := cloudbrainOneCount + cloudbrainTwoCount

cloudbrains, err := models.GetAllCloudBrain()
if err != nil {
@@ -898,6 +842,30 @@ func getYearCloudbrainNum(beginTime time.Time, endTimeTemp time.Time, endTime ti
}
return yearCloudbrainNum, nil
}

func getDayCloudbrainInfo(beginTime time.Time, endTimeTemp time.Time, endTime time.Time) ([]DateCloudbrainNum, error) {
dayCloudbrainNum := make([]DateCloudbrainNum, 0)
for beginTime.Before(endTimeTemp) {
cloudOneJobTypeRes, cloudTwoJobTypeRes, intelligentNetJobTypeRes, cloudBrainPeriodNum, cloudBrainComputeResource, err := getCloudbrainCount(endTimeTemp, endTime)
if err != nil {
log.Error("Can not query getCloudbrainCount.", err)
return nil, err
}
dayCloudbrainNum = append(dayCloudbrainNum, DateCloudbrainNum{
Date: endTime.Format("2006/01/02"),
CloudOneJobTypeRes: cloudOneJobTypeRes,
CloudTwoJobTypeRes: cloudTwoJobTypeRes,
IntelligentNetJobTypeRes: intelligentNetJobTypeRes,
CloudBrainPeriodNum: cloudBrainPeriodNum,
CloudBrainComputeResource: cloudBrainComputeResource,
})
if beginTime.Before(endTimeTemp) {
endTime = endTimeTemp
endTimeTemp = endTimeTemp.AddDate(0, 0, -1)
}
}
return dayCloudbrainNum, nil
}
func getBrainRecordBeginTime() (time.Time, error) {
return time.ParseInLocation(DATE_FORMAT, setting.BrainRecordBeginTime, time.Local)
}


Loading…
Cancel
Save