|
|
@@ -48,6 +48,8 @@ var ( |
|
|
|
|
|
|
|
const BENCHMARK_TYPE_CODE = "repo.cloudbrain.benchmark.types" |
|
|
|
|
|
|
|
var benchmarkTypesMap = make(map[string]*models.BenchmarkTypes, 0) |
|
|
|
|
|
|
|
var jobNamePattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-_]{1,34}[a-z0-9-]$`) |
|
|
|
|
|
|
|
// MustEnableDataset check if repository enable internal cb |
|
|
@@ -133,12 +135,7 @@ func cloudBrainNewDataPrepare(ctx *context.Context) error { |
|
|
|
} |
|
|
|
ctx.Data["benchmark_categories"] = categories.Category |
|
|
|
|
|
|
|
if benchmarkTypes == nil { |
|
|
|
if err := json.Unmarshal([]byte(i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE)), &benchmarkTypes); err != nil { |
|
|
|
log.Error("json.Unmarshal BenchmarkTypes(%s) failed:%v", i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE), err, ctx.Data["MsgID"]) |
|
|
|
} |
|
|
|
} |
|
|
|
ctx.Data["benchmark_types"] = benchmarkTypes.BenchmarkType |
|
|
|
ctx.Data["benchmark_types"] = GetBenchmarkTypes(ctx).BenchmarkType |
|
|
|
|
|
|
|
if gpuInfos == nil { |
|
|
|
json.Unmarshal([]byte(setting.GpuTypes), &gpuInfos) |
|
|
@@ -342,13 +339,6 @@ func CloudBrainRestart(ctx *context.Context) { |
|
|
|
} |
|
|
|
|
|
|
|
func CloudBrainBenchMarkShow(ctx *context.Context) { |
|
|
|
if benchmarkTypes == nil { |
|
|
|
if err := json.Unmarshal([]byte(i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE)), &benchmarkTypes); err != nil { |
|
|
|
log.Error("json.Unmarshal BenchmarkTypes(%s) failed:%v", i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE), err, ctx.Data["MsgID"]) |
|
|
|
ctx.ServerError(err.Error(), err) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
cloudBrainShow(ctx, tplCloudBrainBenchmarkShow) |
|
|
|
} |
|
|
|
|
|
|
@@ -415,7 +405,7 @@ func cloudBrainShow(ctx *context.Context, tpName base.TplName) { |
|
|
|
duration = int64(task.UpdatedUnix) - int64(task.CreatedUnix) |
|
|
|
} |
|
|
|
if task.BenchmarkTypeID > 0 { |
|
|
|
for _, benchmarkType := range benchmarkTypes.BenchmarkType { |
|
|
|
for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { |
|
|
|
if task.BenchmarkTypeID == benchmarkType.Id { |
|
|
|
ctx.Data["BenchmarkTypeName"] = benchmarkType.First |
|
|
|
for _, benchmarkChildType := range benchmarkType.Second { |
|
|
@@ -1062,13 +1052,6 @@ func CloudBrainBenchmarkIndex(ctx *context.Context) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if benchmarkTypes == nil { |
|
|
|
if err := json.Unmarshal([]byte(i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE)), &benchmarkTypes); err != nil { |
|
|
|
ctx.ServerError("Get BenchmarkTypes faild:", err) |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
for i, task := range ciTasks { |
|
|
|
ciTasks[i].CanDel = cloudbrain.CanDeleteJob(ctx, &task.Cloudbrain) |
|
|
|
ciTasks[i].Cloudbrain.ComputeResource = task.ComputeResource |
|
|
@@ -1081,7 +1064,7 @@ func CloudBrainBenchmarkIndex(ctx *context.Context) { |
|
|
|
ciTasks[i].TrainJobDuration = util.AddZero(duration/3600000) + ":" + util.AddZero(duration%3600000/60000) + ":" + util.AddZero(duration%60000/1000) |
|
|
|
ciTasks[i].BenchmarkTypeName = "" |
|
|
|
if task.BenchmarkTypeID > 0 { |
|
|
|
for _, benchmarkType := range benchmarkTypes.BenchmarkType { |
|
|
|
for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { |
|
|
|
if task.BenchmarkTypeID == benchmarkType.Id { |
|
|
|
ciTasks[i].BenchmarkTypeRankLink = benchmarkType.RankLink |
|
|
|
ciTasks[i].BenchmarkTypeName = benchmarkType.First |
|
|
@@ -1105,15 +1088,8 @@ func GetChildTypes(ctx *context.Context) { |
|
|
|
benchmarkTypeID := ctx.QueryInt("benchmark_type_id") |
|
|
|
re := make(map[string]interface{}) |
|
|
|
for { |
|
|
|
if benchmarkTypes == nil { |
|
|
|
if err := json.Unmarshal([]byte(i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE)), &benchmarkTypes); err != nil { |
|
|
|
log.Error("json.Unmarshal BenchmarkTypes(%s) failed:%v", i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE), err, ctx.Data["MsgID"]) |
|
|
|
re["errMsg"] = "system error" |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
var isExist bool |
|
|
|
for _, benchmarkType := range benchmarkTypes.BenchmarkType { |
|
|
|
for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { |
|
|
|
if benchmarkTypeID == benchmarkType.Id { |
|
|
|
isExist = true |
|
|
|
re["child_types"] = benchmarkType.Second |
|
|
@@ -1146,15 +1122,9 @@ func CloudBrainBenchmarkNew(ctx *context.Context) { |
|
|
|
|
|
|
|
func getBenchmarkAttachment(benchmarkTypeID, benchmarkChildTypeID int, ctx *context.Context) (*models.BenchmarkDataset, error) { |
|
|
|
var childInfo *models.BenchmarkDataset |
|
|
|
if benchmarkTypes == nil { |
|
|
|
if err := json.Unmarshal([]byte(i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE)), &benchmarkTypes); err != nil { |
|
|
|
log.Error("json.Unmarshal BenchmarkTypes(%s) failed:%v", i18n.Tr(ctx.Locale.Language(), BENCHMARK_TYPE_CODE), err) |
|
|
|
return childInfo, err |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var isExist bool |
|
|
|
for _, benchmarkType := range benchmarkTypes.BenchmarkType { |
|
|
|
for _, benchmarkType := range GetBenchmarkTypes(ctx).BenchmarkType { |
|
|
|
if benchmarkType.Id == benchmarkTypeID { |
|
|
|
for _, childType := range benchmarkType.Second { |
|
|
|
if childType.Id == benchmarkChildTypeID { |
|
|
@@ -1398,3 +1368,17 @@ func BenchmarkDel(ctx *context.Context) { |
|
|
|
ctx.Redirect(setting.AppSubURL + ctx.Repo.RepoLink + "/cloudbrain/benchmark") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func GetBenchmarkTypes(ctx *context.Context) *models.BenchmarkTypes { |
|
|
|
var lang = ctx.Locale.Language() |
|
|
|
if benchmarkTypesMap[lang] == nil { |
|
|
|
var val = i18n.Tr(lang, BENCHMARK_TYPE_CODE) |
|
|
|
var tempType *models.BenchmarkTypes |
|
|
|
if err := json.Unmarshal([]byte(val), &tempType); err != nil { |
|
|
|
log.Error("json.Unmarshal BenchmarkTypes(%s) failed:%v", val, err, ctx.Data["MsgID"]) |
|
|
|
return &models.BenchmarkTypes{} |
|
|
|
} |
|
|
|
benchmarkTypesMap[lang] = tempType |
|
|
|
} |
|
|
|
return benchmarkTypesMap[lang] |
|
|
|
} |