@@ -366,10 +366,14 @@ sendjob: | |||
return &result, fmt.Errorf("json.Unmarshal failed(%s): %v", res.String(), err.Error()) | |||
} | |||
log.Error("createTrainJob failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) | |||
if res.StatusCode() == 400 { | |||
if temp.ErrorCode == "ModelArts.0404" { | |||
temp.ErrorCode = "0404" | |||
temp.ErrorMsg = "启动文件未找到!" | |||
} | |||
if temp.ErrorCode == "ModelArts.0104" { | |||
temp.ErrorCode = "0104" | |||
temp.ErrorMsg = "运行参数错误!" | |||
} | |||
return &result, fmt.Errorf("createTrainJob failed(%d):%s(%s)", res.StatusCode(), temp.ErrorCode, temp.ErrorMsg) | |||
} | |||
@@ -792,6 +792,7 @@ modelarts.train_job.new_debug= New Debug Task | |||
modelarts.train_job.new_train=New Train Task | |||
modelarts.train_job.config=Configuration information | |||
modelarts.train_job.new=New train Task | |||
modelarts.train_job.new_place=The description should not exceed 256 characters | |||
@@ -808,10 +809,10 @@ modelarts.train_job.fast_parameter_setting=fast_parameter_setting | |||
modelarts.train_job.fast_parameter_setting_config=fast_parameter_setting_config | |||
modelarts.train_job.fast_parameter_setting_config_link=fast_parameter_setting_config_link | |||
modelarts.train_job.frames=frames | |||
modelarts.train_job.algorithm_origin=算法来源 | |||
modelarts.train_job.algorithm_origin=Algorithm Origin | |||
modelarts.train_job.AI_driver=AI Engine | |||
modelarts.train_job.start_file=Start File | |||
modelarts.train_job.boot_file_helper=启动文件是您程序执行的入口文件,必须是以.py结尾的文件。 | |||
modelarts.train_job.boot_file_helper=The startup file is the entry file that your program executes, and it must be a file ending in .py | |||
modelarts.train_job.dataset=Dataset | |||
modelarts.train_job.run_parameter=Run Parameter | |||
modelarts.train_job.add_run_parameter=Add Run Parameter | |||
@@ -822,8 +823,8 @@ modelarts.train_job.resource_setting_info=resource_setting_info | |||
modelarts.train_job.resource_pool=resource_pool | |||
modelarts.train_job.resource_type=resource_type | |||
modelarts.train_job.standard=Standard | |||
modelarts.train_job.NAS_address=NAS地址 | |||
modelarts.train_job.NAS_mount_path=NAS挂载路径 | |||
modelarts.train_job.NAS_address=NAS Address | |||
modelarts.train_job.NAS_mount_path=NAS Mount Path | |||
modelarts.train_job.query_whether_save_parameter=query_whether_save_parameter | |||
modelarts.train_job.save_helper=save_helper | |||
modelarts.train_job.common_frame=common_frame | |||
@@ -793,16 +793,17 @@ modelarts.train_job.new_debug=新建调试任务 | |||
modelarts.train_job.new_train=新建训练任务 | |||
modelarts.train_job.config=配置信息 | |||
modelarts.train_job.new=新建训练任务 | |||
modelarts.train_job.new_place=描述字数不超过256个字符 | |||
modelarts.train_job.basic_info=基本信息 | |||
modelarts.train_job.job_status=作业状态 | |||
modelarts.train_job.job_name=作业名称 | |||
modelarts.train_job.version=作业版本 | |||
modelarts.train_job.job_status=任务状态 | |||
modelarts.train_job.job_name=任务名称 | |||
modelarts.train_job.version=任务版本 | |||
modelarts.train_job.start_time=开始时间 | |||
modelarts.train_job.dura_time=运行时长 | |||
modelarts.train_job.description=作业描述 | |||
modelarts.train_job.description=任务描述 | |||
modelarts.train_job.parameter_setting=参数设置 | |||
modelarts.train_job.parameter_setting_info=参数信息 | |||
modelarts.train_job.fast_parameter_setting=一键式参数配置 | |||
@@ -830,12 +831,12 @@ modelarts.train_job.query_whether_save_parameter=保存作业参数 | |||
modelarts.train_job.save_helper=保存当前作业的配置参数,后续您可以使用已保存的配置参数快速创建训练作业。 | |||
modelarts.train_job.common_frame=常用框架 | |||
modelarts.train_job.amount_of_compute_node=计算节点个数 | |||
modelarts.train_job.job_parameter_name=作业参数名称 | |||
modelarts.train_job.parameter_description=作业参数描述 | |||
modelarts.train_job.job_parameter_name=任务参数名称 | |||
modelarts.train_job.parameter_description=任务参数描述 | |||
modelarts.log=日志 | |||
modelarts.version_manage=版本管理 | |||
modelarts.back=返回 | |||
modelarts.train_job_para_admin=作业参数管理 | |||
modelarts.train_job_para_admin=任务参数管理 | |||
modelarts.train_job_para.edit=编辑 | |||
modelarts.train_job_para.connfirm=确定 | |||
@@ -321,6 +321,11 @@ func CloudBrainShow(ctx *context.Context) { | |||
func CloudBrainDebug(ctx *context.Context) { | |||
var jobID = ctx.Params(":jobid") | |||
if !ctx.IsSigned { | |||
log.Error("the user has not signed in") | |||
ctx.Error(http.StatusForbidden, "","the user has not signed in") | |||
return | |||
} | |||
task, err := models.GetCloudbrainByJobID(jobID) | |||
if err != nil { | |||
ctx.ServerError("GetCloudbrainByJobID failed", err) | |||
@@ -333,6 +338,11 @@ func CloudBrainDebug(ctx *context.Context) { | |||
func CloudBrainCommitImage(ctx *context.Context, form auth.CommitImageCloudBrainForm) { | |||
var jobID = ctx.Params(":jobid") | |||
if !ctx.IsSigned { | |||
log.Error("the user has not signed in") | |||
ctx.Error(http.StatusForbidden, "","the user has not signed in") | |||
return | |||
} | |||
task, err := models.GetCloudbrainByJobID(jobID) | |||
if err != nil { | |||
ctx.JSON(200, map[string]string{ | |||
@@ -254,8 +254,8 @@ | |||
<a class="item" href="{{.RepoLink}}/modelarts/notebook" data-value="22">Ascend NPU</a> | |||
</div> | |||
</div> | |||
<a class="ui green button" href="{{.RepoLink}}/cloudbrain/create">{{$.i18n.Tr "repo.modelarts.train_job.new_debug"}}</a> | |||
{{if .Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a class="ui green button" href="{{.RepoLink}}/cloudbrain/create">{{$.i18n.Tr "repo.modelarts.train_job.new_debug"}}</a>{{end}} | |||
</div> | |||
</div> | |||
@@ -357,15 +357,27 @@ | |||
{{end}} | |||
<!-- 调试 --> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-debug-{{.JobID}}" class="ui basic {{if not .CanDebug}}disabled {{else}}blue {{end}}button" href="{{$.Link}}/{{.JobID}}/debug" target="_blank"> | |||
{{$.i18n.Tr "repo.debug"}} | |||
</a> | |||
{{else}} | |||
<a class="ui basic disabled button" href="{{$.Link}}/{{.JobID}}/debug" target="_blank"> | |||
{{$.i18n.Tr "repo.debug"}} | |||
</a> | |||
{{end}} | |||
<form id="stopForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/stop" method="post" style="margin-left:-1px;"> | |||
{{$.CsrfTokenHtml}} | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="stop-model-debug-{{.JobID}}" class="ui basic {{if or (eq .Status "STOPPED") (eq .Status "FAILED")}}disabled {{else}}blue {{end}}button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{else}} | |||
<a class="ui basic disabled button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
<div class="ui compact buttons" style="margin-right:10px;"> | |||
@@ -376,16 +388,25 @@ | |||
<!-- 接收结果 --> | |||
<iframe src="" frameborder="0" name="iframeContent" style="display: none;"></iframe> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-image-{{.JobID}}" class="imageBtn ui basic {{if not .CanDebug}}disabled {{else}}blue {{end}}button" value="{{.CanDebug}}">{{$.i18n.Tr "repo.submit_image"}}</a> | |||
{{else}} | |||
<a class="imageBtn ui basic disabled button" value="{{.CanDebug}}">{{$.i18n.Tr "repo.submit_image"}}</a> | |||
{{end}} | |||
</div> | |||
<!-- 删除任务 --> | |||
<form class="ui compact buttons" id="delForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/del" method="post"> | |||
{{$.CsrfTokenHtml}} | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-delete-{{.JobID}}" class="ui compact {{if not .CanDel}}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{else}} | |||
<a class="ui compact disabled button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
@@ -224,8 +224,8 @@ | |||
<a class="item" href="{{.RepoLink}}/modelarts/notebook" data-value="22">Ascend NPU</a> | |||
</div> | |||
</div> | |||
<a class="ui green button" href="{{.RepoLink}}/modelarts/notebook/create">{{$.i18n.Tr "repo.modelarts.train_job.new_debug"}}</a> | |||
{{if .Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a class="ui green button" href="{{.RepoLink}}/modelarts/notebook/create">{{$.i18n.Tr "repo.modelarts.train_job.new_debug"}}</a>{{end}} | |||
</div> | |||
</div> | |||
@@ -310,15 +310,29 @@ | |||
<div class="ui compact buttons"> | |||
<!-- <a class="ui basic blue button" href="{{$.Link}}/{{.JobID}}"> | |||
查看 | |||
</a> --> | |||
</a> --> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-debug-{{.JobID}}" style="margin-right: 2rem;" class="ui basic {{if not .CanDebug}}disabled {{else}}blue {{end}}button" href="{{$.Link}}/{{.JobID}}/debug" target="_blank"> | |||
{{$.i18n.Tr "repo.debug"}} | |||
</a> | |||
{{else}} | |||
<a style="margin-right: 2rem;" class="ui basic disabled button" href="{{$.Link}}/{{.JobID}}/debug" target="_blank"> | |||
{{$.i18n.Tr "repo.debug"}} | |||
</a> | |||
{{end}} | |||
<form id="stopForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/stop" method="post" style="margin-left:-1px;"> | |||
{{$.CsrfTokenHtml}} | |||
<a id="stop-model-debug-{{.JobID}}" style="margin-right: 2rem;" class="ui basic {{if or (eq .Status "STOPPED") (eq .Status "FAILED")}}disabled {{else}}blue {{end}}button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="stop-model-debug-{{.JobID}}" style="margin-right: 2rem;" class="ui basic {{if eq .Status "STOPPED" "FAILED" "START_FAILED" "STOPPING" "CREATING" "WAITING" "STARTING"}}disabled {{else}}blue {{end}}button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{else}} | |||
<a style="margin-right: 2rem;" class="ui basic disabled button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
@@ -337,9 +351,15 @@ | |||
<!-- 删除任务 --> | |||
<form class="ui compact buttons" id="delForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/del" method="post"> | |||
{{$.CsrfTokenHtml}} | |||
<a id="model-delete-{{.JobID}}" class="ui compact {{if eq .Status "RUNNING"}}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-delete-{{.JobID}}" class="ui compact {{if eq .Status "RUNNING" "CREATING" "WAITING" "STARTING" "STOPPING" }}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{else}} | |||
<a class="ui compact disabled button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
@@ -457,17 +477,23 @@ | |||
} | |||
if(status!=="STOPPED" || status!=="FAILED"){ | |||
$('#stop-model-debug-'+jobID).removeClass('disabled') | |||
$('#stop-model-debug-'+jobID).addClass('blue') | |||
$('#model-delete-'+jobID).removeClass('red') | |||
$('#model-delete-'+jobID).addClass('disabled') | |||
// $('#stop-model-debug-'+jobID).removeClass('disabled') | |||
// $('#stop-model-debug-'+jobID).addClass('blue') | |||
// $('#model-delete-'+jobID).removeClass('red') | |||
// $('#model-delete-'+jobID).addClass('disabled') | |||
} | |||
if(status=="STOPPED" || status=="FAILED"){ | |||
if(status=="STOPPED" || status=="FAILED" ){ | |||
$('#stop-model-debug-'+jobID).removeClass('blue') | |||
$('#stop-model-debug-'+jobID).addClass('disabled') | |||
$('#model-delete-'+jobID).removeClass('disabled') | |||
$('#model-delete-'+jobID).addClass('red') | |||
} | |||
if(status=="START_FAILED"){ | |||
$('#stop-model-debug-'+jobID).removeClass('blue') | |||
$('#stop-model-debug-'+jobID).addClass('disabled') | |||
$('#model-delete-'+jobID).removeClass('disabled') | |||
$('#model-delete-'+jobID).addClass('red') | |||
} | |||
}).fail(function(err) { | |||
console.log(err); | |||
}); | |||
@@ -247,8 +247,8 @@ | |||
<a class="item" href="{{.RepoLink}}/modelarts/notebook" data-value="22">Ascend NPU</a> | |||
</div> | |||
</div> | |||
<a class="ui green button" href="{{.RepoLink}}/modelarts/train-job/create">{{$.i18n.Tr "repo.modelarts.train_job.new_train"}}</a> | |||
{{if .Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a class="ui green button" href="{{.RepoLink}}/modelarts/train-job/create">{{$.i18n.Tr "repo.modelarts.train_job.new_train"}}</a>{{end}} | |||
</div> | |||
</div> | |||
@@ -291,7 +291,7 @@ | |||
<span>{{$.i18n.Tr "repo.cloudbrain_creator"}}</span> | |||
</div> | |||
<div class="five wide column text center"> | |||
<span>{{$.i18n.Tr "repo.cloudbrain_operate"}}</span> | |||
<span style="margin-left: 6rem;">{{$.i18n.Tr "repo.cloudbrain_operate"}}</span> | |||
</div> | |||
</div> | |||
@@ -354,9 +354,15 @@ | |||
</a> --> | |||
<form id="stopForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/stop" method="post" style="margin-left:-1px;"> | |||
{{$.CsrfTokenHtml}} | |||
<a id="stop-model-debug-{{.JobID}}" class="ui basic {{if or (eq .Status "KILLED") (eq .Status "FAILED")}}disabled {{else}}blue {{end}}button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="stop-model-debug-{{.JobID}}" class="ui basic {{if or (eq .Status "KILLED") (eq .Status "FAILED") (eq .Status "START_FAILED")}}disabled {{else}}blue {{end}}button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{else}} | |||
<a class="ui basic disabled button" onclick="document.getElementById('stopForm-{{.JobID}}').submit();"> | |||
{{$.i18n.Tr "repo.stop"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
<div class="ui compact buttons" style="margin-right:10px;"> | |||
@@ -373,9 +379,15 @@ | |||
<!-- 删除任务 --> | |||
<form class="ui compact buttons" id="delForm-{{.JobID}}" action="{{$.Link}}/{{.JobID}}/del" method="post"> | |||
{{$.CsrfTokenHtml}} | |||
<a id="model-delete-{{.JobID}}" class="ui compact {{if eq .Status "RUNNING" }}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{if $.Permission.CanWrite $.UnitTypeCloudBrain}} | |||
<a id="model-delete-{{.JobID}}" class="ui compact {{if or (eq .Status "RUNNING") (eq .Status "INIT") (eq .Status "CREATING") (eq .Status "WAITING") }}disabled {{else}}red {{end}}button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{else}} | |||
<a class="ui compact disabled button" onclick="assertDelete(this)" style="border-radius: .28571429rem;"> | |||
{{$.i18n.Tr "repo.delete"}} | |||
</a> | |||
{{end}} | |||
</form> | |||
</div> | |||
@@ -529,6 +541,10 @@ | |||
$('#model-delete-'+jobID).removeClass('disabled') | |||
$('#model-delete-'+jobID).addClass('red') | |||
} | |||
if(status=="START_FAILED"){ | |||
$('#stop-model-debug-'+jobID).removeClass('blue') | |||
$('#stop-model-debug-'+jobID).addClass('disabled') | |||
} | |||
}).fail(function(err) { | |||
console.log(err); | |||
}); | |||
@@ -165,7 +165,7 @@ | |||
--> | |||
<div class="unite min_title inline field"> | |||
<label for="description">{{.i18n.Tr "repo.modelarts.train_job.description"}} </label> | |||
<textarea style="width: 80%;" id="description" name="description" rows="2"></textarea> | |||
<textarea style="width: 80%;" id="description" name="description" rows="3" maxlength="256" placeholder={{.i18n.Tr "repo.modelarts.train_job.new_place"}} onchange="this.value=this.value.substring(0, 256)" onkeydown="this.value=this.value.substring(0, 256)" onkeyup="this.value=this.value.substring(0, 256)"></textarea> | |||
</div> | |||
<!-- <h4 class="ui dividing header">{{.i18n.Tr "repo.modelarts.train_job.parameter_setting"}}</h4> | |||
<div class="inline field"> | |||
@@ -26,7 +26,7 @@ | |||
<div class="ui container"> | |||
<div class="ui top attached tabular menu"> | |||
<a class="item active" data-tab="configs">{{$.i18n.Tr "repo.modelarts.train_job.config"}}</a> | |||
<a class="item logs" data-tab="logs">{{$.i18n.Tr "repo.modelarts.train_job.config"}}</a> | |||
<a class="item logs" data-tab="logs">{{$.i18n.Tr "repo.modelarts.log"}}</a> | |||
<!-- <a class="item" data-tab="resources">资源占用情况</a> --> | |||
</div> | |||
<div class="ui bottom attached tab segment active" data-tab="configs"> | |||