|
- <style>
- .el-pagination.is-background .el-pager li:not(.disabled).active {
- background-color: #5bb973 !important;
- color: #FFF !important;
- }
- /* .el-pagination.is-background .el-pager li.active {
- color: #fff;
- cursor: default;
- } */
- .el-pagination.is-background .el-pager li:hover {
- color: #5bb973 !important;
- }
- /* .el-pagination.is-background .el-pager li:not(.disabled):hover {
- color: #5bb973;
- }
- .el-pagination.is-background .el-pager li:not(.disabled).active:hover {
- background-color: #5bb973;
- color: #FFF;
- } */
- </style>
- {{template "base/head" .}}
- <!-- 弹窗 -->
- <div id="mask">
- <div id="loadingPage">
- <div class="rect1"></div>
- <div class="rect2"></div>
- <div class="rect3"></div>
- <div class="rect4"></div>
- <div class="rect5"></div>
- </div>
- </div>
- <!-- 提示框 -->
- <div class="alert"></div>
- <div class="admin user">
- {{template "admin/navbar" .}}
- <div class="ui container" style="width: 80%;">
- {{template "base/alert" .}}
-
- <div class="ui grid" >
- <div class="row" style="border: 1px solid #d4d4d5;margin-top: 15px;padding-top: 0;">
- <div class="ui attached segment">
- <form class="ui form ignore-dirty" style="max-width: 90%">
- <div class="ui fluid action input">
- <input name="q" value="{{.Keyword}}" placeholder="{{.i18n.Tr "explore.search"}}..." autofocus>
- <button class="ui blue button">{{.i18n.Tr "explore.search"}}</button>
- </div>
- </form>
- </div>
- <div class="ui six wide column" style="margin: 1rem 0;" id="adminCloud">
- <div class="ui selection dropdown" style="min-width: 10em;min-height:2.6em;border-radius: .28571429rem;margin-right: 1em;padding: .67em 3.2em .7em 1em;">
- <div class="default text" style="color: rgba(0,0,0,.87);">全部任务类型</div>
- <i class="dropdown icon"></i>
- <div class="menu">
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType=&listType={{$.ListType}}&jobStatus={{$.JobStatus}}" data-value="全部任务类型">全部任务类型</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType=DEBUG&listType={{$.ListType}}&jobStatus={{$.JobStatus}}" data-value="DEBUG">DEBUG</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType=TRAIN&listType={{$.ListType}}&jobStatus={{$.JobStatus}}" data-value="TRAIN">TRAIN</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType=INFERENCE&listType={{$.ListType}}&jobStatus={{$.JobStatus}}" data-value="INFERENCE">INFERENCE</a>
- </div>
- </div>
- <div class="ui selection dropdown" style="min-width: 10em;min-height:2.6em;border-radius: .28571429rem;margin-right: 1em;padding: .67em 3.2em .7em 1em;">
- <div class="default text" style="color: rgba(0,0,0,.87);">全部计算资源</div>
- <i class="dropdown icon"></i>
- <div class="menu">
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType=&jobStatus={{$.JobStatus}}" data-value="全部计算资源">全部计算资源</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType=CPU/GPU&jobStatus={{$.JobStatus}}" data-value="CPU/GPU">CPU/GPU</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType=NPU&jobStatus={{$.JobStatus}}" data-value="NPU">NPU</a>
- </div>
- </div>
- <div class="ui selection dropdown" style="min-width: 10em;min-height:2.6em;border-radius: .28571429rem;margin-right: 1em;padding: .67em 3.2em .7em 1em;">
- <div class="default text" style="color: rgba(0,0,0,.87);">全部状态</div>
- <i class="dropdown icon"></i>
- <div class="menu">
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=" data-value="all">全部状态</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=STARTING" data-value="CPU/GPU">STARTING</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=RESTARTING" data-value="NPU">RESTARTING </a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=START_FAILED" data-value="all">START_FAILED</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=STOPPING" data-value="CPU/GPU">STOPPING</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=STOPPED}" data-value="NPU">STOPPED</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=WAITING" data-value="all">WAITING</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=COMPLETED" data-value="CPU/GPU">COMPLETED</a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=FAILED" data-value="NPU">FAILED </a>
- <a class="item" href="{{$.Link}}?q={{$.Keyword}}&jobType={{$.JobType}}&listType={{$.ListType}}&jobStatus=OTHER" data-value="NPU">OTHER</a>
-
- </div>
- </div>
- </div>
- <div class="ui ten wide column right aligned" style="margin: 1rem 0;">
- <!-- <a href="/admin/cloudbrains/download"><i class="ri-download-line" style="display: inline-block;"></i>下载此报告</a> -->
- <a class="ui compact blue basic icon button" style="box-shadow: none !important; padding: 0.8em;" href="/admin/cloudbrains/download"><i class="ri-download-line middle aligned icon"></i>下载此报告</a>
- </div>
-
- <div class="ui sixteen wide column">
- <!-- 任务展示 -->
- <div class="dataset list">
-
- <!-- 表头 -->
- <div class="ui grid stackable" style="background: #f0f0f0;;">
- <div class="row">
- <div class="two wide column padding0">
- <span style="margin:0 6px">{{$.i18n.Tr "repo.cloudbrain_task"}}</span>
- </div>
- <div class="one wide column text center padding0">
- <span style="margin:0 6px">任务类型</span>
- </div>
- <div class="two wide column text center padding0" style="width: 10% !important;">
- <span>{{$.i18n.Tr "repo.modelarts.status"}}</span>
- </div>
- <div class="two wide column text center padding0" style="width: 10% !important;">
- <span>{{$.i18n.Tr "repo.modelarts.createtime"}}</span>
- </div>
- <div class="one wide column text center padding0">
- <span>{{$.i18n.Tr "repo.cloudbrain_status_runtime"}}</span>
- </div>
- <div class="one wide column text center padding0">
- <span>{{$.i18n.Tr "repo.modelarts.computing_resources"}}</span>
- </div>
- <div class="one wide column text center padding0">
- <span>{{$.i18n.Tr "repo.cloudbrain_creator"}}</span>
- </div>
- <div class="two wide column text center padding0">
- <span>项目</span>
- </div>
- <div class="two wide column text center padding0">
- <span>云脑侧名称</span>
- </div>
- <div class="two wide column text center padding0" style="width: 17.5%!important;">
- <span>{{$.i18n.Tr "repo.cloudbrain_operate"}}</span>
- </div>
- </div>
- </div>
-
- {{range .Tasks}}
- <div class="ui grid stackable item">
- <div class="row">
-
- <!-- 任务名 -->
- <div class="two wide column padding0">
- {{if eq .JobType "DEBUG"}}
- <a class="title" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/cloudbrain/{{.JobID}}" title="{{.JobName}}" style="font-size: 14px;">
- <span class="fitted" style="width: 90%;vertical-align: middle;">{{.JobName}}</span>
- </a>
- {{else if eq .JobType "INFERENCE"}}
- <a class="title" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/inference-job/{{.JobID}}" title="{{.JobName}}" style="font-size: 14px;">
- <span class="fitted" style="width: 90%;vertical-align: middle;">{{.JobName}}</span>
- </a>
- {{else if eq .JobType "TRAIN"}}
- <a class="title" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/train-job/{{.JobID}}" title="{{.JobName}}" style="font-size: 14px;">
- <span class="fitted" style="width: 90%;vertical-align: middle;">{{.JobName}}</span>
- </a>
- {{else if eq .JobType "BENCHMARK"}}
- <a class="title" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/cloudbrain/benchmark/{{.JobID}}" title="{{.JobName}}" style="font-size: 14px;">
- <span class="fitted" style="width: 90%;vertical-align: middle;">{{.JobName}}</span>
- </a>
- {{end}}
- </div>
- <!-- 任务类型 -->
-
- <div class="one wide column text center padding0">
- <span style="font-size: 12px;">{{.JobType}} </span>
- </div>
- <!-- 任务状态 -->
- <div class="two wide column text center padding0" style="padding-left: 2.2rem !important; width: 10% !important;">
- <span class="job-status" id="{{.JobID}}" data-repopath='{{.Repo.OwnerName}}/{{.Repo.Alias}}{{if eq .JobType "DEBUG"}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else}}/modelarts/notebook{{end}}{{else if eq .JobType "INFERENCE"}}/modelarts/inference-job{{else if eq .JobType "TRAIN"}}/modelarts/train-job{{else if eq .JobType "BENCHMARK"}}/cloudbrain{{end}}' data-jobid="{{.JobID}}" data-version="{{.VersionName}}">
- <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>
- </div>
- <!-- 任务创建时间 -->
- <div class="two wide column text center padding0" style="width: 10% !important;">
- <span style="font-size: 12px;" class="">{{TimeSinceUnix1 .Cloudbrain.CreatedUnix}}</span>
- </div>
- <!-- 任务运行时间 -->
- <div class="one wide column text center padding0">
- <span style="font-size: 12px;" id="duration-{{.JobID}}">{{if .TrainJobDuration}}{{.TrainJobDuration}}{{else}}--{{end}}</span>
- </div>
- <!-- 计算资源 -->
- <div class="one wide column text center padding0">
- <span style="font-size: 12px;">{{if .ComputeResource}}{{.ComputeResource}}{{else}}--{{end}}</span>
- </div>
- <!-- 创建者 -->
- <div class="one wide column text center padding0">
- {{if .User.Name}}
- <a href="{{AppSubUrl}}/{{.User.Name}}" title="{{.User.Name}}"><img class="ui avatar image" src="{{.User.RelAvatarLink}}"></a>
- {{else}}
- <a title="Ghost"><img class="ui avatar image" src="{{AppSubUrl}}/user/avatar/Ghost/-1"></a>
- {{end}}
- </div>
- <!-- 项目 -->
- <div class="two wide column text center padding0">
- <a href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}" title="{{.Repo.OwnerName}}/{{.Repo.Alias}}">{{.Repo.OwnerName}}/{{.Repo.Alias}}</a>
- </div>
- <!-- 云脑侧名称 -->
- <div class="two wide column text center padding0" style="overflow: hidden;text-overflow:ellipsis;">
-
- <span class="fitted">{{.JobName}}</span>
- </div>
-
- <div class="two wide column text center padding0" style="width: 17.5%!important;">
- {{if eq .JobType "DEBUG"}}
- <div class="ui compact buttons">
- <form id="debugAgainForm-{{.JobID}}">
- {{$.CsrfTokenHtml}}
- {{if eq .Status "RUNNING" "WAITING" "CREATING" "STARTING"}}
- <a style="margin: 0 1rem;" id="ai-debug-{{.JobID}}" class='ui basic {{if eq .Status "CREATING" "STOPPING" "WAITING" "STARTING"}}disabled {{else}}blue {{end}}button' onclick='debugAgain("{{.JobID}}","{{if eq .ComputeResource "CPU/GPU"}}{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/cloudbrain{{else}}{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/notebook{{end}}/{{.JobID}}/")'>
- {{$.i18n.Tr "repo.debug"}}
- </a>
- {{else}}
- <a id="ai-debug-{{.JobID}}" class='ui basic {{if eq .Status "CREATING" "STOPPING" "WAITING" "STARTING"}} disabled {{else}}blue {{end}}button' onclick='debugAgain("{{.JobID}}","{{if eq .ComputeResource "CPU/GPU"}}{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/cloudbrain{{else}}{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/notebook{{end}}/{{.JobID}}/")'>
- {{$.i18n.Tr "repo.debug_again"}}
- </a>
- {{end}}
- </form>
- </div>
- {{end}}
- <!-- 停止任务 -->
- <div class="ui compact buttons">
- {{if eq .JobType "DEBUG" "BENCHMARK"}}
- <form id="stopForm-{{.JobID}}" style="margin-left:-1px;">
- {{$.CsrfTokenHtml}}
- <a style="padding: 0.5rem 1rem;" id="ai-stop-{{.JobID}}" class='ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED" "SUCCEEDED" "STOPPED" "STOPPING"}}disabled {{else}} blue {{end}}button' onclick='stopDebug("{{.JobID}}","{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}{{if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else if eq .JobType "BENCHMARK" }}/cloudbrain/benchmark{{else if eq .ComputeResource "NPU" }}/modelarts/notebook{{end}}/{{.JobID}}/stop")'>
- {{$.i18n.Tr "repo.stop"}}
- </a>
- </form>
- {{else}}
- <a style="padding: 0.5rem 1rem;" id="ai-stop-{{.JobID}}" class="ui basic {{if eq .Status "KILLED" "FAILED" "START_FAILED" "KILLING" "COMPLETED"}}disabled {{else}} blue {{end}}button" onclick='stopVersion({{.VersionName}},{{.JobID}},{{.Repo.OwnerName}},{{.Repo.Alias}})'>
- {{$.i18n.Tr "repo.stop"}}
- </a>
- {{end}}
- </div>
- <!-- 下载 -->
- <!-- {{if eq .JobType "INFERENCE"}}
- <div class="ui compact buttons">
- <a style="padding: 0.5rem 1rem;margin-left:0.2rem" id="model-download-{{.JobID}}" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/inference-job/{{.JobID}}/downloadall?version_name={{.VersionName}}" class="ui basic blue button" style="border-radius: .28571429rem;">
- {{$.i18n.Tr "repo.model_download"}}
- </a>
- </div>
- {{else if eq .JobType "DEBUG"}}
- <div class="ui compact buttons">
- <a style="padding: 0.5rem 1rem;margin-left:0.2rem" id="model-download-{{.JobID}}" href="{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}/modelarts/inference-job/{{.JobID}}/downloadall?version_name={{.VersionName}}" class="ui basic blue button" style="border-radius: .28571429rem;">
- {{$.i18n.Tr "repo.download"}}
- </a>
- </div>
- {{end}} -->
- <!-- 删除任务 -->
- <form class="ui compact buttons" id="delForm-{{.JobID}}" action='{{AppSubUrl}}/{{.Repo.OwnerName}}/{{.Repo.Alias}}{{if eq .JobType "BENCHMARK"}}/cloudbrain/benchmark{{else if eq .ComputeResource "NPU"}}/modelarts/notebook{{else if eq .ComputeResource "CPU/GPU"}}/cloudbrain{{else if eq .JobType "TRAIN"}}modelarts/train-job{{end}}/{{.JobID}}/del' method="post">
- {{$.CsrfTokenHtml}}
- <a style="padding: 0.5rem 1rem;margin-left:0.2rem" id="ai-delete-{{.JobID}}" class="ui basic blue button" onclick="assertDelete(this,{{.VersionName}},{{.JobID}},{{.Repo.OwnerName}},{{.Repo.Alias}})" style="border-radius: .28571429rem;">
- {{$.i18n.Tr "repo.delete"}}
- </a>
- </form>
- </div>
- </div>
- </div>
- {{end}}
- <div id="app" style="margin-top: 2rem;">
- <div class="center">
- <el-pagination
- background
- @current-change="handleCurrentChange"
- :current-page="page"
- :page-sizes="[10]"
- :page-size="10"
- layout="total, sizes, prev, pager, next, jumper"
- :total="{{.Page.Paginater.Total}}">
- </el-pagination>
- </div>
- </div>
- </div>
-
- </div>
- </div>
- </div>
- </div>
-
- <!-- 确认模态框 -->
- <div id="deletemodel">
- <div class="ui basic modal">
- <div class="ui icon header">
- <i class="trash icon"></i> 删除任务
- </div>
-
- <div class="content">
- <p>你确认删除该任务么?此任务一旦删除不可恢复。</p>
- </div>
- <div class="actions">
- <div class="ui red basic inverted cancel button">
- <i class="remove icon"></i> 取消操作
- </div>
- <div class="ui green basic inverted ok button">
- <i class="checkmark icon"></i> 确定操作
- </div>
- </div>
- </div>
- </div>
- </div>
-
- {{template "base/footer" .}}
-
- <script>
- // 删除时用户确认
- console.log({{.Tasks}})
- function deleteVersion(version_name,jobID,repoOwner,repoName){
- const url = '/api/v1/repos/'+repoOwner+'/'+repoName+'/modelarts/inference-job/'+jobID+'/del_version'
- $.post(url,{version_name:version_name},(data)=>{
- if(data.StatusOK===0){
- location.reload()
- }
- }).fail(function(err) {
- console.log(err);
- });
- }
- function assertDelete(obj,version_name,jobID,repoOwner,repoName) {
- if (obj.style.color == "rgb(204, 204, 204)") {
- return
- } else {
- const delId = obj.parentNode.id
- flag = 1;
- $('.ui.basic.modal')
- .modal({
- onDeny: function() {
- flag = false
- },
- onApprove: function() {
- if(!version_name){
- document.getElementById(delId).submit()
- }
- else{
- deleteVersion(version_name,jobID,repoOwner,repoName)
- }
- flag = true
- },
- onHidden: function() {
- if (flag == false) {
- $('.alert').html('您已取消操作').removeClass('alert-success').addClass('alert-danger').show().delay(1500).fadeOut();
- }
- }
- })
- .modal('show')
- }
- }
- function getParams(){
- const params = new URLSearchParams(window.location.search)
- let jobType = !params.get('jobType')? '全部任务类型' : params.get('jobType')
- let listType = !params.get('listType')? '全部计算资源' : params.get('listType')
- let jobStatus = !params.get('jobStatus')? '全部状态' : params.get('jobStatus')
- const dropdownValueArray = [jobType,listType,jobStatus]
- $('#adminCloud .default.text ').each(function(index,e){
- $(e).text(dropdownValueArray[index])
- })
- }
- getParams()
- function debugAgain(JobID,debugUrl){
- if($('#' + JobID+ '-text').text()==="RUNNING"){
- window.open(debugUrl+'debug')
- }else{
- $.ajax({
- type:"POST",
- url:debugUrl+'restart',
- data:$('#debugAgainForm-'+JobID).serialize(),
- success:function(res){
- if(res.result_code==="0"){
- if(res.job_id!==JobID){
- location.reload()
- }else{
- $('#' + JobID+'-icon').removeClass().addClass(res.status)
- $('#' + JobID+ '-text').text(res.status)
- $('#ai-debug-'+JobID).removeClass('blue').addClass('disabled')
- $('#ai-delete-'+JobID).removeClass('blue').addClass('disabled')
- $('#ai-debug-'+JobID).text("调试").css("margin","0 1rem")
- }
- }else{
- $('.alert').html(res.error_msg).removeClass('alert-success').addClass('alert-danger').show().delay(2000).fadeOut();
- }
- },
- error :function(res){
- console.log(res)
-
- }
- })
- }
-
- }
- function stopDebug(JobID,stopUrl){
- $.ajax({
- type:"POST",
- url:stopUrl,
- data:$('#stopForm-'+JobID).serialize(),
- success:function(res){
- if(res.result_code==="0"){
- $('#' + JobID+'-icon').removeClass().addClass(res.status)
- $('#' + JobID+ '-text').text(res.status)
- if(res.status==="STOPPED"){
- $('#ai-debug-'+JobID).removeClass('disabled').addClass('blue').text("再次调试").css("margin","0")
- $('#ai-image-'+JobID).removeClass('blue').addClass('disabled')
- $('#ai-model-debug-'+JobID).removeClass('blue').addClass('disabled')
- $('#ai-delete-'+JobID).removeClass('disabled').addClass('blue')
- $('#ai-stop-'+JobID).removeClass('blue').addClass('disabled')
- }
- else{
- $('#ai-debug-'+JobID).removeClass('blue').addClass('disabled')
- $('#ai-stop-'+JobID).removeClass('blue').addClass('disabled')
- }
-
- }else{
- $('.alert').html(res.error_msg).removeClass('alert-success').addClass('alert-danger').show().delay(2000).fadeOut();
- }
- },
- error :function(res){
- console.log(res)
-
- }
- })
-
- }
-
- function stopVersion(version_name,jobID,repoOwner,repoName){
- const url = `/api/v1/repos/${repoOwner}/${repoName}/modelarts/inference-job/${jobID}/stop_version`
- $.post(url,{version_name:version_name},(data)=>{
- if(data.StatusOK===0){
- $('#ai-stop-'+jobID).removeClass('blue')
- $('#ai-stop-'+jobID).addClass('disabled')
- refreshStatus(version_name,jobID,repoOwner,repoName)
- }
- }).fail(function(err) {
- console.log(err);
- });
- }
- function refreshStatus(version_name,jobID,repoOwner,repoName){
-
- const url = `/api/v1/repos/${repoOwner}/${repoName}/modelarts/inference-job/${jobID}/?version_name${version_name}`
- $.get(url,(data)=>{
- $(`#${jobID}-icon`).attr("class",data.JobStatus)
- // detail status and duration
- $(`#${jobID}-text`).text(data.JobStatus)
- }).fail(function(err) {
- console.log(err);
- });
- }
- var timeid = window.setInterval(loadJobStatus, 15000);
- $(document).ready(loadJobStatus);
- function loadJobStatus() {
- $(".job-status").each((index, job) => {
- const jobID = job.dataset.jobid;
- const repoPath = job.dataset.repopath;
- const computeResource = job.dataset.resource
- const versionname = job.dataset.version
- const finalState = ['STOPPED','CREATE_FAILED','UNAVAILABLE','DELETED','RESIZE_FAILED','SUCCEEDED','IMAGE_FAILED','SUBMIT_FAILED','DELETE_FAILED','KILLED','COMPLETED','FAILED','CANCELED','LOST','START_FAILED','SUBMIT_MODEL_FAILED','DEPLOY_SERVICE_FAILED','CHECK_FAILED']
- if (finalState.includes(job.textContent.trim())) {
- return
- }
- // const diffResource = computeResource == "NPU" ? 'modelarts/notebook' : 'cloudbrain'
- $.get(`/api/v1/repos/${repoPath}/${jobID}?version_name=${versionname}`, (data) => {
- const jobID = data.JobID
- const status = data.JobStatus
- if (status != job.textContent.trim()) {
- $('#' + jobID+'-icon').removeClass().addClass(status)
- $('#' + jobID+ '-text').text(status)
- }
- if(status==="RUNNING"){
- $('#ai-debug-'+jobID).removeClass('disabled').addClass('blue').text('调试').css("margin","0 1rem")
- $('#model-image-'+jobID).removeClass('disabled').addClass('blue')
- }
- if(status!=="RUNNING"){
- // $('#model-debug-'+jobID).removeClass('blue')
- // $('#model-debug-'+jobID).addClass('disabled')
- $('#model-image-'+jobID).removeClass('blue').addClass('disabled')
- }
- if(["CREATING","STOPPING","WAITING","STARTING"].includes(status)){
- $('#ai-debug-'+jobID).removeClass('blue').addClass('disabled')
- }
- if(['STOPPED','FAILED','START_FAILED','CREATE_FAILED','SUCCEEDED'].includes(status)){
- $('#ai-debug-'+jobID).removeClass('disabled').addClass('blue').text('再次调试').css("margin","0")
- }
- if(["RUNNING","WAITING"].includes(status)){
- $('#ai-stop-'+jobID).removeClass('disabled').addClass('blue')
- }
- if(["CREATING","STOPPING","STARTING","STOPPED","FAILED","START_FAILED","SUCCEEDED"].includes(status)){
- $('#ai-stop-'+jobID).removeClass('blue').addClass('disabled')
- }
- if(status==="STOPPED" || status==="FAILED"|| status==="START_FAILED" || status==="KILLED" || status==="COMPLETED"){
- $('#ai-delete-'+jobID).removeClass('disabled').addClass('blue')
- }else{
- $('#ai-delete-'+jobID).removeClass('blue').addClass('disabled')
- }
- }).fail(function(err) {
- console.log(err);
- });
- });
- };
- </script>
|