|
|
|
@@ -56,7 +56,7 @@ |
|
|
|
margin:10px 5px ; |
|
|
|
} |
|
|
|
.tab_2_content { |
|
|
|
min-height: 560px; |
|
|
|
min-height: 380px; |
|
|
|
margin-left: 10px; |
|
|
|
} |
|
|
|
.ac-grid { |
|
|
|
@@ -167,6 +167,8 @@ td, th { |
|
|
|
padding-top: 0.5rem ; |
|
|
|
} |
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
<div id="mask"> |
|
|
|
<div id="loadingPage"> |
|
|
|
<div class="rect1"></div> |
|
|
|
@@ -198,7 +200,7 @@ td, th { |
|
|
|
<div class="{{if eq $k 0}}active{{end}} title padding0"> |
|
|
|
<div class="according-panel-heading"> |
|
|
|
<div class="accordion-panel-title"> |
|
|
|
<i class="dropdown icon"></i> |
|
|
|
<!--<i class="dropdown icon"></i> --> |
|
|
|
<span class="accordion-panel-title-content"> |
|
|
|
<span> |
|
|
|
<div class="ac-display-inblock title_text acc-margin-bottom"> |
|
|
|
@@ -226,6 +228,7 @@ td, th { |
|
|
|
<div class="content-pad"> |
|
|
|
<div class="ui pointing secondary menu" style="border-bottom: 1px solid rgba(34,36,38,.15);"> |
|
|
|
<a class="active item" data-tab="first{{$k}}">{{$.i18n.Tr "repo.modelarts.train_job.config"}}</a> |
|
|
|
<a class="item" data-tab="second{{$k}}" onclick="javascript:parseLog()">{{$.i18n.Tr "repo.cloudbrain.runinfo"}}</a> |
|
|
|
</div> |
|
|
|
<div class="ui tab active" data-tab="first{{$k}}"> |
|
|
|
<div style="padding-top: 10px;"> |
|
|
|
@@ -255,80 +258,38 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.start_time"}} |
|
|
|
</td> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.cloudbrain_creator"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w"> |
|
|
|
<span style="font-size: 12px;" class=""> |
|
|
|
{{if not (eq .StartTime 0)}} |
|
|
|
{{TimeSinceUnix1 .StartTime}} |
|
|
|
{{else}} |
|
|
|
{{TimeSinceUnix1 .CreatedUnix}} |
|
|
|
{{end}} |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-mirror"> |
|
|
|
{{.User.Name}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-duration"> |
|
|
|
{{$.duration}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.computing_resources"}} |
|
|
|
</td> |
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-computeresource"> |
|
|
|
{{.ComputeResource}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.mirror"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-mirror"> |
|
|
|
{{.Image}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.task_type"}} |
|
|
|
</td> |
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-computeresource"> |
|
|
|
{{.JobType}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.dataset_storage_path"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="dataset_storage_path"> |
|
|
|
{{$.dataset_path}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.code_storage_path"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="code_storage_path"> |
|
|
|
{{$.code_path}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
<div class="ac-grid-col"> |
|
|
|
<table class="ti-form"> |
|
|
|
<tbody class="ti-text-form"> |
|
|
|
|
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.gpu_type"}} |
|
|
|
</td> |
|
|
|
@@ -338,25 +299,30 @@ td, th { |
|
|
|
{{$.resource_type}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
ExitCode |
|
|
|
{{$.i18n.Tr "repo.cloudbrain.time.starttime"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w"> |
|
|
|
{{$.result.JobStatus.AppExitCode}} |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-startTime"> |
|
|
|
{{if not (eq .StartTime 0)}} |
|
|
|
{{TimeSinceUnix1 .StartTime}} |
|
|
|
{{else}} |
|
|
|
-- |
|
|
|
{{end}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.cloudbrain.endtime"}} |
|
|
|
{{$.i18n.Tr "repo.cloudbrain.time.endtime"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-BenchmarkTypeName"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-EndTime"> |
|
|
|
{{if not (eq .EndTime 0)}} |
|
|
|
{{TimeSinceUnix1 .EndTime}} |
|
|
|
{{else}} |
|
|
|
@@ -365,6 +331,24 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
<div class="ac-grid-col"> |
|
|
|
<table class="ti-form"> |
|
|
|
<tbody class="ti-text-form"> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.mirror"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-mirror"> |
|
|
|
{{.Image}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.dataset"}} |
|
|
|
@@ -376,9 +360,7 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.standard"}} |
|
|
|
@@ -390,15 +372,14 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.cloudbrain_creator"}} |
|
|
|
{{$.i18n.Tr "cloudbrain.dataset_storage_path"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-mirror"> |
|
|
|
{{.User.Name}} |
|
|
|
<div class="text-span text-span-w" id="dataset_storage_path"> |
|
|
|
{{$.dataset_path}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
@@ -413,26 +394,53 @@ td, th { |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "cloudbrain.code_storage_path"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="code_storage_path"> |
|
|
|
{{$.code_path}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
<tr class="ti-no-ng-animate"> |
|
|
|
<td class="ti-no-ng-animate ti-text-form-label text-width80"> |
|
|
|
{{$.i18n.Tr "repo.modelarts.train_job.dura_time"}} |
|
|
|
</td> |
|
|
|
|
|
|
|
<td class="ti-text-form-content"> |
|
|
|
<div class="text-span text-span-w" id="{{.VersionName}}-duration"> |
|
|
|
{{$.duration}} |
|
|
|
</div> |
|
|
|
</td> |
|
|
|
</tr> |
|
|
|
|
|
|
|
</tbody> |
|
|
|
</table> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="ac-grid ac-grid-col2"> |
|
|
|
<div class="ac-grid-col"> |
|
|
|
<span class="ti-text-form-label">{{$.i18n.Tr "repo.cloudbrain.exitinfo"}}</span> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="ui tab" data-tab="second{{$k}}"> |
|
|
|
<div> |
|
|
|
<div class="ui message message{{.VersionName}}" style="display: none;"> |
|
|
|
<div id="header"></div> |
|
|
|
</div> |
|
|
|
<div class="ui attached log" id="log{{.VersionName}}" style="height: 390px !important; overflow: auto;"> |
|
|
|
<input type="hidden" id="json_value" value="{{$.result.JobStatus.AppExitDiagnostics}}"> |
|
|
|
<span id="info_display" class="info_text"> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="ac-grid-col"> |
|
|
|
<span class="info_text"> |
|
|
|
{{$.result.JobStatus.AppExitDiagnostics}} |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@@ -466,7 +474,6 @@ td, th { |
|
|
|
|
|
|
|
<script> |
|
|
|
$('.menu .item').tab() |
|
|
|
|
|
|
|
$(document).ready(function(){ |
|
|
|
$('.ui.accordion').accordion({selector:{trigger:'.icon'}}); |
|
|
|
}); |
|
|
|
@@ -474,28 +481,31 @@ td, th { |
|
|
|
$('.secondary.menu .item').tab(); |
|
|
|
}); |
|
|
|
|
|
|
|
let userName |
|
|
|
let repoPath |
|
|
|
let jobName |
|
|
|
$(document).ready(function(){ |
|
|
|
let url = window.location.href; |
|
|
|
let urlArr = url.split('/') |
|
|
|
userName = urlArr.slice(-5)[0] |
|
|
|
repoPath = urlArr.slice(-4)[0] |
|
|
|
jobName = urlArr.slice(-1)[0] |
|
|
|
}) |
|
|
|
|
|
|
|
function loadLog(version_name){ |
|
|
|
document.getElementById("mask").style.display = "block" |
|
|
|
$.get(`/api/v1/repos/${userName}/${repoPath}/cloudbrain/${jobName}/log?version_name=${version_name}&lines=50&order=asc`, (data) => { |
|
|
|
$('input[name=end_line]').val(data.EndLine) |
|
|
|
$('input[name=start_line]').val(data.StartLine) |
|
|
|
$(`#log_file${version_name}`).text(data.Content) |
|
|
|
document.getElementById("mask").style.display = "none" |
|
|
|
}).fail(function(err) { |
|
|
|
console.log(err); |
|
|
|
document.getElementById("mask").style.display = "none" |
|
|
|
}); |
|
|
|
function parseLog(){ |
|
|
|
let jsonValue = document.getElementById("json_value").value; |
|
|
|
let jsonObj = JSON.parse(jsonValue); |
|
|
|
let podRoleName = jsonObj["podRoleName"]; |
|
|
|
let html = ""; |
|
|
|
if (podRoleName != null){ |
|
|
|
let task0 = podRoleName["task1-0"]; |
|
|
|
let podEvents = jsonObj["podEvents"]; |
|
|
|
let podEventArray = podEvents[task0]; |
|
|
|
if(podEventArray != null){ |
|
|
|
for(var i=0; i < podEventArray.length;i++){ |
|
|
|
html +="<p><b>[" +podEventArray[i]["reason"] + "]</b></p>"; |
|
|
|
html +="<p>" +podEventArray[i]["message"] + "</p>"; |
|
|
|
html +="<p>" +podEventArray[i]["action"] + "</p>"; |
|
|
|
} |
|
|
|
} |
|
|
|
let extras= jsonObj["extras"]; |
|
|
|
if(extras != null){ |
|
|
|
for(var i=0; i < extras.length;i++){ |
|
|
|
html +="<p><b>[" +extras[i]["reason"] + "]</b></p>"; |
|
|
|
html +="<p>" +extras[i]["message"] + "</p>"; |
|
|
|
html +="<p>" +extras[i]["action"] + "</p>"; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
</script> |
|
|
|
document.getElementById("info_display").innerHTML=html; |
|
|
|
} |
|
|
|
</script> |