@@ -15,6 +15,7 @@ type TaskDetail struct { | |||
JobName string `json:"JobName"` | |||
DisplayJobName string `json:"DisplayJobName"` | |||
Status string `json:"Status"` | |||
DetailedStatus string `json:"DetailedStatus"` | |||
JobType string `json:"JobType"` | |||
CreatedUnix timeutil.TimeStamp `json:"CreatedUnix"` | |||
WaitTime string `json:"WaitTime"` | |||
@@ -2507,6 +2507,8 @@ imagetopic.format_prompt = Topics can be up to 35 characters long. | |||
use_repo_agreement=I promise that the content of this warehouse does not violate any national laws and regulations. During the use of the warehouse, I will abide by the OpenI community management regulations and platform usage rules, and will not conduct malicious attacks, mining, or any other illegal or disruptive platform order. Information release and related behaviors. For more information please refer to | |||
openi_use_agreement=OpenI Openi Community Platform Use Agreement. | |||
reuse_last_result = Reuse last result | |||
migratingData=Data migration in progress | |||
centerPending=Queuing in sub centers | |||
[org] | |||
org_name_holder = Organization Name | |||
org_full_name_holder = Organization Full Name | |||
@@ -2525,6 +2525,9 @@ imagetopic.format_prompt=标签长度不得超过35个字符 | |||
use_repo_agreement=我承诺此仓内容不违反任何国家法律法规,仓库使用过程中遵守OpenI启智社区管理规定和平台使用规则,不进行恶意攻击、挖矿等任何违法或扰乱平台秩序的信息发布和相关行为。更多信息请参考 | |||
openi_use_agreement=OpenI启智社区平台使用协议 | |||
reuse_last_result = 复用上次结果 | |||
migratingData=数据迁移中 | |||
centerPending=分中心排队中 | |||
[org] | |||
org_name_holder=组织名称 | |||
org_full_name_holder=组织全名 | |||
@@ -492,13 +492,14 @@ func GetCloudbrainTask(ctx *context.APIContext) { | |||
if job.IsNewAITask() { | |||
jobAfter, _ := task.UpdateCloudbrain(job) | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"SubState": "", | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"DetailedStatus": jobAfter.DetailedStatus, | |||
"SubState": "", | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
}) | |||
return | |||
} | |||
@@ -507,13 +508,14 @@ func GetCloudbrainTask(ctx *context.APIContext) { | |||
routerRepo.GetAiSafetyTaskByJob(job) | |||
job, err = models.GetCloudbrainByID(ID) | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"ID": ID, | |||
"JobName": job.JobName, | |||
"JobStatus": job.Status, | |||
"SubState": "", | |||
"CreatedTime": job.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": job.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": job.TrainJobDuration, | |||
"ID": ID, | |||
"JobName": job.JobName, | |||
"JobStatus": job.Status, | |||
"DetailedStatus": job.DetailedStatus, | |||
"SubState": "", | |||
"CreatedTime": job.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": job.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": job.TrainJobDuration, | |||
}) | |||
} else { | |||
jobAfter, err := cloudbrainTask.SyncCloudBrainOneStatus(job) | |||
@@ -525,13 +527,14 @@ func GetCloudbrainTask(ctx *context.APIContext) { | |||
} | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"SubState": "", | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"DetailedStatus": jobAfter.DetailedStatus, | |||
"SubState": "", | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
}) | |||
} | |||
} | |||
@@ -937,6 +937,7 @@ func GetCloudbrainsDetailData(ctx *context.Context) { | |||
taskDetail.JobName = ciTasks[i].JobName | |||
taskDetail.DisplayJobName = ciTasks[i].DisplayJobName | |||
taskDetail.Status = ciTasks[i].Status | |||
taskDetail.DetailedStatus = ciTasks[i].DetailedStatus | |||
taskDetail.JobType = ciTasks[i].JobType | |||
taskDetail.CreatedUnix = ciTasks[i].Cloudbrain.CreatedUnix | |||
taskDetail.RunTime = ciTasks[i].Cloudbrain.TrainJobDuration | |||
@@ -66,11 +66,12 @@ func GetModelArtsNotebook2(ctx *context.APIContext) { | |||
} | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"ID": ID, | |||
"JobName": job.JobName, | |||
"JobStatus": job.Status, | |||
"JobDuration": job.TrainJobDuration, | |||
"StartTime": job.StartTime, | |||
"ID": ID, | |||
"JobName": job.JobName, | |||
"JobStatus": job.Status, | |||
"JobDuration": job.TrainJobDuration, | |||
"StartTime": job.StartTime, | |||
"DetailedStatus": job.DetailedStatus, | |||
}) | |||
} | |||
@@ -143,11 +144,12 @@ func GetModelArtsTrainJobVersion(ctx *context.APIContext) { | |||
} | |||
aiCenterName = cloudbrainService.GetAiCenterShow(job.AiCenter, ctx.Context) | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"JobID": jobID, | |||
"JobStatus": job.Status, | |||
"JobDuration": job.TrainJobDuration, | |||
"AiCenter": aiCenterName, | |||
"StartTime": job.StartTime, | |||
"JobID": jobID, | |||
"JobStatus": job.Status, | |||
"DetailedStatus": job.DetailedStatus, | |||
"JobDuration": job.TrainJobDuration, | |||
"AiCenter": aiCenterName, | |||
"StartTime": job.StartTime, | |||
}) | |||
return | |||
} | |||
@@ -208,11 +210,12 @@ func GetModelArtsTrainJobVersion(ctx *context.APIContext) { | |||
} | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"JobID": jobID, | |||
"JobStatus": job.Status, | |||
"JobDuration": job.TrainJobDuration, | |||
"AiCenter": aiCenterName, | |||
"StartTime": job.StartTime, | |||
"JobID": jobID, | |||
"JobStatus": job.Status, | |||
"JobDuration": job.TrainJobDuration, | |||
"AiCenter": aiCenterName, | |||
"StartTime": job.StartTime, | |||
"DetailedStatus": job.DetailedStatus, | |||
}) | |||
} | |||
@@ -1356,13 +1356,14 @@ func GetGrampusNotebook(ctx *context.APIContext) { | |||
} | |||
ctx.JSON(http.StatusOK, map[string]interface{}{ | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"AiCenter": aiCenterName, | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
"ID": ID, | |||
"JobName": jobAfter.JobName, | |||
"JobStatus": jobAfter.Status, | |||
"DetailedStatus": jobAfter.DetailedStatus, | |||
"AiCenter": aiCenterName, | |||
"CreatedTime": jobAfter.CreatedUnix.Format("2006-01-02 15:04:05"), | |||
"CompletedTime": jobAfter.UpdatedUnix.Format("2006-01-02 15:04:05"), | |||
"JobDuration": jobAfter.TrainJobDuration, | |||
}) | |||
} | |||
@@ -46,7 +46,7 @@ | |||
<div class="one wide column text center nowrap" style="width:6% !important;"> | |||
<span>{{$.i18n.Tr "repo.modelarts.cluster"}}</span> | |||
</div> | |||
<div class="two wide column text center nowrap" style="width: 6% !important;"> | |||
<div class="two wide column text center nowrap" style="width: 8% !important;"> | |||
<span>{{$.i18n.Tr "repo.modelarts.status"}}</span> | |||
</div> | |||
<div class="one wide column text center nowrap" style="width:6% !important;"> | |||
@@ -62,11 +62,11 @@ | |||
<span>{{$.i18n.Tr "repo.modelarts.computing_resources"}}</span> | |||
</div> | |||
<!-- 智算中心 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span>{{$.i18n.Tr "repo.modelarts.ai_center"}}</span> | |||
</div> | |||
<!-- XPU类型 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span>{{$.i18n.Tr "repo.modelarts.card_type"}}</span> | |||
</div> | |||
<div class="one wide column text center nowrap" style="width:4% !important;"> | |||
@@ -153,14 +153,16 @@ | |||
</div> | |||
<!-- 任务状态 --> | |||
<div class="two wide column text center nowrap" | |||
style="width: 6% !important;"> | |||
style="width: 8% !important;"> | |||
<span class="job-status" id="{{$JobID}}" | |||
data-repopath='{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .JobType "DEBUG" "ONLINEINFERENCE" "HPC"}}{{if eq .Cloudbrain.Type 2}}/grampus/notebook{{else}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts/notebook{{end}}{{end}}{{else if eq .JobType "INFERENCE"}}/modelarts/inference-job{{else if eq .JobType "TRAIN"}}/modelarts/train-job{{else if eq .JobType "BENCHMARK" "MODELSAFETY"}}/cloudbrain{{end}}' | |||
data-jobid="{{$JobID}}" data-version="{{.VersionName}}" | |||
data-cloudbrainid="{{.Cloudbrain.ID}}"> | |||
<span><i id="{{$JobID}}-icon" style="vertical-align: middle;" | |||
class="{{.Status}}"></i><span id="{{$JobID}}-text" | |||
style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span></span> | |||
data-cloudbrainid="{{.Cloudbrain.ID}}" data-datamigrate='{{$.i18n.Tr "repo.migratingData"}}' data-centerpend='{{$.i18n.Tr "repo.centerPending"}}'> | |||
<span> | |||
<i id="{{$JobID}}-icon" style="vertical-align: middle;" class="{{.Status}}"></i> | |||
<span id="{{$JobID}}-text" style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span> | |||
<i id="{{$JobID}}-icon-detail" class="{{.DetailedStatus}}" style="vertical-align: middle;" title='{{$.i18n.Tr (printf "repo.%s" .DetailedStatus)}}'></i> | |||
</span> | |||
</span> | |||
</div> | |||
<!-- 任务类型 --> | |||
@@ -184,11 +186,11 @@ | |||
style="font-size: 12px;" title="{{.ComputeResource}}">{{if .ComputeResource}}{{.ComputeResource}}{{else}}--{{end}}</span> | |||
</div> | |||
<!-- 智算中心 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span style="font-size: 12px;" id="cluster-{{$JobID}}" class="aicenter_{{.DisplayJobName}}_{{$JobID}}" title="{{if .AiCenter}}{{.AiCenter}}{{else}}--{{end}}">{{if .AiCenter}}{{.AiCenter}}{{else}}--{{end}}</span> | |||
</div> | |||
<!-- XPU类型 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span style="font-size: 12px;" title="" class="card_type_{{.DisplayJobName}}_{{$JobID}}"></span> | |||
</div> | |||
<script> | |||
@@ -329,7 +331,7 @@ | |||
<!-- 修改任务 --> | |||
{{if and (eq .JobType "TRAIN") (not .FineTune)}} | |||
<div class="ui compact buttons __btn_edit__"> | |||
<a style="padding: 0.5rem 1rem;" class="ui basic blue button" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .Cloudbrain.Type 1}}/modelarts/train-job{{else if eq .Cloudbrain.Type 0}}/cloudbrain/train-job{{else if eq .Cloudbrain.Type 2}}/grampus/train-job/{{ToLower .ComputeResource}}{{end}}/create?modify=true&id={{$JobID}}"> | |||
<a style="padding: 0.5rem 1rem;" class="ui basic blue button" href='{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .Cloudbrain.Type 1}}/modelarts/train-job{{else if eq .Cloudbrain.Type 0}}/cloudbrain/train-job{{else if eq .Cloudbrain.Type 2}}/grampus/train-job/{{if eq .ComputeResource "CPU/GPU"}}gpu{{else}}{{ToLower .ComputeResource}}{{end}}{{end}}/create?modify=true&id={{$JobID}}'> | |||
{{$.i18n.Tr "repo.modelarts.modify"}} | |||
</a> | |||
</div> | |||
@@ -406,12 +408,16 @@ | |||
</div> | |||
<!-- 任务状态 --> | |||
<div class="two wide column text center nowrap" | |||
style="width: 6% !important;"> | |||
<span class="job-status" id="{{$JobID}}" data-jobid="{{$JobID}}" | |||
data-version="{{.VersionName}}" data-cloudbrainid="{{.Cloudbrain.ID}}"> | |||
<span><i id="{{$JobID}}-icon" style="vertical-align: middle;" | |||
class="{{.Status}}"></i><span id="{{$JobID}}-text" | |||
style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span></span> | |||
style="width: 8% !important;"> | |||
<span class="job-status" id="{{$JobID}}" | |||
data-repopath='{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .JobType "DEBUG" "ONLINEINFERENCE" "HPC"}}{{if eq .Cloudbrain.Type 2}}/grampus/notebook{{else}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts/notebook{{end}}{{end}}{{else if eq .JobType "INFERENCE"}}/modelarts/inference-job{{else if eq .JobType "TRAIN"}}/modelarts/train-job{{else if eq .JobType "BENCHMARK" "MODELSAFETY"}}/cloudbrain{{end}}' | |||
data-jobid="{{$JobID}}" data-version="{{.VersionName}}" | |||
data-cloudbrainid="{{.Cloudbrain.ID}}" data-datamigrate='{{$.i18n.Tr "repo.migratingData"}}' data-centerpend='{{$.i18n.Tr "repo.centerPending"}}'> | |||
<span> | |||
<i id="{{$JobID}}-icon" style="vertical-align: middle;" class="{{.Status}}"></i> | |||
<span id="{{$JobID}}-text" style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span> | |||
<i id="{{$JobID}}-icon-detail" class="{{.DetailedStatus}}" style="vertical-align: middle;" title='{{$.i18n.Tr (printf "repo.%s" .DetailedStatus)}}'></i> | |||
</span> | |||
</span> | |||
</div> | |||
<!-- 任务类型 --> | |||
@@ -435,12 +441,12 @@ | |||
style="font-size: 12px;" title="{{.ComputeResource}}">{{if .ComputeResource}}{{.ComputeResource}}{{else}}--{{end}}</span> | |||
</div> | |||
<!-- 智算中心 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span | |||
style="font-size: 12px;">{{if .AiCenter}}{{.AiCenter}}{{else}}--{{end}}</span> | |||
</div> | |||
<!-- XPU类型 --> | |||
<div class="one wide column text center nowrap" style="width:8% !important;"> | |||
<div class="one wide column text center nowrap" style="width:7% !important;"> | |||
<span style="font-size: 12px;" title="{{.CardType}}"> | |||
{{if .CardType}}{{.CardType}}{{else}}--{{end}} | |||
</span> | |||
@@ -2,7 +2,6 @@ | |||
<link rel="stylesheet" href="{{StaticUrlPrefix}}/css/vp-cloudbrain-create.css?v={{MD5 AppVer}}" /> | |||
<div class="repository"> | |||
{{template "repo/header" .}} | |||
<i class="SUCCEEDED"></i> | |||
<div id="__vue-root"></div> | |||
</div> | |||
<script src="{{StaticUrlPrefix}}/js/vp-cloudbrain-create.js?v={{MD5 AppVer}}"></script> | |||
@@ -141,10 +141,12 @@ | |||
data-repopath='{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .JobType "DEBUG" "ONLINEINFERENCE" "HPC"}}{{if eq .Cloudbrain.Type 2}}/grampus/notebook{{else}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts/notebook{{end}}{{end}}{{else if eq .JobType "INFERENCE"}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts{{end}}/inference-job{{else if eq .JobType "TRAIN"}}{{if eq .ComputeResource "NPU"}}/modelarts/train-job{{else}}/cloudbrain/train-job{{end}}{{else if eq .JobType "BENCHMARK" "MODELSAFETY"}}/cloudbrain{{end}}' | |||
data-jobid="{{$JobID}}" data-version="{{.VersionName}}" | |||
data-cloudbrainid="{{.Cloudbrain.ID}}" | |||
data-bootfile="{{.BootFile}}"> | |||
<span><i id="{{$JobID}}-icon" style="vertical-align: middle;" | |||
class="{{.Status}}"></i><span id="{{$JobID}}-text" | |||
style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span></span> | |||
data-bootfile="{{.BootFile}}" data-datamigrate='{{$.i18n.Tr "repo.migratingData"}}' data-centerpend='{{$.i18n.Tr "repo.centerPending"}}'> | |||
<span> | |||
<i id="{{$JobID}}-icon" style="vertical-align: middle;" class="{{.Status}}"></i> | |||
<span id="{{$JobID}}-text" style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span> | |||
<i id="{{$JobID}}-icon-detail" class="{{.DetailedStatus}}" style="vertical-align: middle;" title='{{$.i18n.Tr (printf "repo.%s" .DetailedStatus)}}'></i> | |||
</span> | |||
</span> | |||
</div> | |||
<!-- 任务类型 --> | |||
@@ -299,7 +301,7 @@ | |||
<!-- 修改任务 --> | |||
{{if and (eq .JobType "TRAIN") (not .FineTune)}} | |||
<div class="ui compact buttons __btn_edit__"> | |||
<a style="padding: 0.5rem 1rem;" class="ui basic blue button" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .Cloudbrain.Type 1}}/modelarts/train-job{{else if eq .Cloudbrain.Type 0}}/cloudbrain/train-job{{else if eq .Cloudbrain.Type 2}}/grampus/train-job/{{ToLower .ComputeResource}}{{end}}/create?modify=true&id={{$JobID}}"> | |||
<a style="padding: 0.5rem 1rem;" class="ui basic blue button" href='{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .Cloudbrain.Type 1}}/modelarts/train-job{{else if eq .Cloudbrain.Type 0}}/cloudbrain/train-job{{else if eq .Cloudbrain.Type 2}}/grampus/train-job/{{if eq .ComputeResource "CPU/GPU"}}gpu{{else}}{{ToLower .ComputeResource}}{{end}}{{end}}/create?modify=true&id={{$JobID}}'> | |||
{{$.i18n.Tr "repo.modelarts.modify"}} | |||
</a> | |||
</div> | |||
@@ -377,11 +379,15 @@ | |||
<!-- 任务状态 --> | |||
<div class="two wide column text center nowrap" | |||
style="padding-left: 2.2rem !important; width: 8% !important;"> | |||
<span class="job-status" id="{{$JobID}}" data-jobid="{{$JobID}}" | |||
data-version="{{.VersionName}}" data-cloudbrainid="{{.Cloudbrain.ID}}"> | |||
<span><i id="{{$JobID}}-icon" style="vertical-align: middle;" | |||
class="{{.Status}}"></i><span id="{{$JobID}}-text" | |||
style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span></span> | |||
<span class="job-status" id="{{$JobID}}" | |||
data-repopath='{{.Repo.OwnerName}}/{{.Repo.Name}}{{if eq .JobType "DEBUG" "ONLINEINFERENCE" "HPC"}}{{if eq .Cloudbrain.Type 2}}/grampus/notebook{{else}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts/notebook{{end}}{{end}}{{else if eq .JobType "INFERENCE"}}/modelarts/inference-job{{else if eq .JobType "TRAIN"}}/modelarts/train-job{{else if eq .JobType "BENCHMARK" "MODELSAFETY"}}/cloudbrain{{end}}' | |||
data-jobid="{{$JobID}}" data-version="{{.VersionName}}" | |||
data-cloudbrainid="{{.Cloudbrain.ID}}" data-datamigrate='{{$.i18n.Tr "repo.migratingData"}}' data-centerpend='{{$.i18n.Tr "repo.centerPending"}}'> | |||
<span> | |||
<i id="{{$JobID}}-icon" style="vertical-align: middle;" class="{{.Status}}"></i> | |||
<span id="{{$JobID}}-text" style="margin-left: 0.4em;font-size: 12px;">{{.Status}}</span> | |||
<i id="{{$JobID}}-icon-detail" class="{{.DetailedStatus}}" style="vertical-align: middle;" title='{{$.i18n.Tr (printf "repo.%s" .DetailedStatus)}}'></i> | |||
</span> | |||
</span> | |||
</div> | |||
<!-- 任务类型 --> | |||
@@ -13,16 +13,23 @@ export default async function initCloudrain() { | |||
let debug_button = $(".cloudbrain_debug").data("debug"); | |||
let debug_again_button = $(".cloudbrain_debug").data("debug-again"); | |||
let timeid = window.setInterval(loadJobStatus, 15000); | |||
let timeidShow = window.setInterval(loadShowJobStatus, 15000); | |||
let timeid | |||
let timeidShow | |||
if (document.getElementsByClassName('job-status').length!==0) { | |||
timeid = window.setInterval(loadJobStatus, 15000); | |||
timeidShow = window.setInterval(loadShowJobStatus, 15000); | |||
} | |||
$(document).ready(loadJobStatus); | |||
$(document).ready(loadShowJobStatus); | |||
function loadJobStatus() { | |||
let flagStopInterval = 1 | |||
$(".job-status").each((index, job) => { | |||
const ID = job.dataset.jobid; | |||
const cloudbrainID = job.dataset.cloudbrainid; | |||
if (!ID) return; | |||
const repoPath = job.dataset.repopath; | |||
const dataMigrate = job.dataset.datamigrate | |||
const centerPend = job.dataset.centerpend | |||
// const computeResource = job.dataset.resource | |||
const versionname = job.dataset.version; | |||
const bootfile = job.dataset.bootfile; | |||
@@ -49,6 +56,10 @@ export default async function initCloudrain() { | |||
"CHECK_FAILED", | |||
]; | |||
if (finalState.includes(status_text)) { | |||
flagStopInterval++ | |||
if (flagStopInterval === $(".job-status").length) { | |||
clearInterval(timeid) | |||
} | |||
return; | |||
} | |||
// const diffResource = computeResource == "NPU" ? 'modelarts/notebook' : 'cloudbrain' | |||
@@ -59,9 +70,20 @@ export default async function initCloudrain() { | |||
const status = data.JobStatus; | |||
const duration = data.JobDuration; | |||
const aiCenter = data.AiCenter || '--' | |||
const detailStatus = data.DetailedStatus | |||
$("#duration-" + ID).text(duration); | |||
data.AiCenter != undefined && $("#cluster-" + ID).text(aiCenter); | |||
data.AiCenter != undefined && $("#" + versionname + "-ai_center").text(data.AiCenter); | |||
if (detailStatus === 'dataMigrating' || detailStatus === 'centerPending') { | |||
if (document.getElementById(`${ID}-icon-detail`)) { | |||
document.getElementById(`${ID}-icon-detail`).remove() | |||
} | |||
$("#" + ID + "-text").parent().append(`<i id="${ID}-icon-detail" class="${detailStatus}" style="vertical-align: middle;" title="${detailStatus === 'dataMigrating'? dataMigrate:centerPend}"></i>`) | |||
} else { | |||
if (document.getElementById(`${ID}-icon-detail`)) { | |||
document.getElementById(`${ID}-icon-detail`).remove() | |||
} | |||
} | |||
if (status != status_text) { | |||
$("#" + ID + "-icon") | |||
.removeClass() | |||
@@ -209,6 +231,7 @@ export default async function initCloudrain() { | |||
"CREATED_FAILED", | |||
].includes(status) | |||
) { | |||
clearInterval(timeidShow) | |||
return; | |||
} | |||
let stopArray = [ | |||
@@ -319,7 +319,7 @@ i.INFO { | |||
.i-bg-orange { | |||
background-position: -495px -51px; | |||
} | |||
.data-migrating{ | |||
.dataMigrating{ | |||
display: inline-block; | |||
width: 18px; | |||
height: 18px; | |||
@@ -327,7 +327,7 @@ i.INFO { | |||
background: url("/img/icons.svg"); | |||
background-position: -56px -52px; | |||
} | |||
.center-pending{ | |||
.centerPending{ | |||
display: inline-block; | |||
width: 18px; | |||
height: 18px; | |||
@@ -22,7 +22,11 @@ | |||
<div class="title-l"> | |||
<span class="task-create-time">{{ item.task.createTimeStr }}</span> | |||
<span class="task-status"> | |||
<span>{{ $t('status') }}:</span><i :class="item.task.status"></i><span>{{ item.task.status }}</span> | |||
<span>{{ $t('status') }}:</span> | |||
<i :class="item.task.status"></i> | |||
<span>{{ item.task.status }}</span> | |||
<i v-if="item.task.detailed_status==='dataMigrating'" :class="item.task.detailed_status" :title="$t('cloudbrainObj.migratingData')"></i> | |||
<i v-if="item.task.detailed_status==='centerPending'" :class="item.task.detailed_status" :title="$t('cloudbrainObj.centerPending')"></i> | |||
</span> | |||
<span class="task-duration"> | |||
<span>{{ $t('cloudbrainObj.runDuration') }}:</span><span>{{ item.task.formatted_duration }}</span> | |||
@@ -43,8 +43,8 @@ | |||
<div class="status-wrap"> | |||
<i :class="scope.row.task.status"></i> | |||
<span>{{ scope.row.task.status }}</span> | |||
<i v-if="scope.row.task.detailed_status==='dataMigrating'" class="data-migrating" :title="$t('cloudbrainObj.migratingData')"></i> | |||
<i v-if="scope.row.task.detailed_status==='centerPending'" class="center-pending" :title="$t('cloudbrainObj.centerPending')"></i> | |||
<i v-if="scope.row.task.detailed_status==='dataMigrating'" :class="scope.row.task.detailed_status" :title="$t('cloudbrainObj.migratingData')"></i> | |||
<i v-if="scope.row.task.detailed_status==='centerPending'" :class="scope.row.task.detailed_status" :title="$t('cloudbrainObj.centerPending')"></i> | |||
</div> | |||
</template> | |||
</el-table-column> | |||
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》