Browse Source

Merge branch 'V20220830' into fix-2392

tags/v1.22.8.2^2
zhoupzh 3 years ago
parent
commit
19a6ff20e4
11 changed files with 57 additions and 10 deletions
  1. +6
    -0
      models/cloudbrain.go
  2. +0
    -1
      models/repo.go
  3. +1
    -1
      options/locale/locale_en-US.ini
  4. +2
    -1
      routers/api/v1/repo/cloudbrain.go
  5. +41
    -2
      routers/repo/cloudbrain.go
  6. +1
    -1
      routers/repo/grampus.go
  7. +2
    -1
      routers/repo/setting.go
  8. +1
    -1
      templates/repo/cloudbrain/trainjob/show.tmpl
  9. +1
    -1
      templates/repo/modelarts/notebook/show.tmpl
  10. +1
    -0
      templates/repo/modelarts/trainjob/version_new.tmpl
  11. +1
    -1
      web_src/js/features/cloudbrainShow.js

+ 6
- 0
models/cloudbrain.go View File

@@ -1768,6 +1768,12 @@ func GetCloudbrainsNeededStopByRepoID(repoID int64) ([]*Cloudbrain, error) {
return cloudBrains, err
}

func GetCloudbrainsNeededDeleteByRepoID(repoID int64) ([]*Cloudbrain, error) {
cloudBrains := make([]*Cloudbrain, 0)
err := x.Where("repo_id=?", repoID).Find(&cloudBrains)
return cloudBrains, err
}

func GetCloudbrainsByDisplayJobName(repoID int64, jobType string, displayJobName string) ([]*Cloudbrain, error) {
cloudBrains := make([]*Cloudbrain, 0)
err := x.Cols("job_id", "job_name", "repo_id", "user_id", "job_type", "display_job_name").Where("repo_id=? AND job_type =? AND lower(display_job_name) = lower(?)", repoID, jobType, displayJobName).Find(&cloudBrains)


+ 0
- 1
models/repo.go View File

@@ -1788,7 +1788,6 @@ func DeleteRepository(doer *User, uid, repoID int64) error {

// Delete dataset attachment record and remove related files
deleteDatasetAttachmentByRepoId(sess, repoID)

if err = deleteBeans(sess,
&Access{RepoID: repo.ID},
&Action{RepoID: repo.ID},


+ 1
- 1
options/locale/locale_en-US.ini View File

@@ -260,7 +260,7 @@ page_dev_yunlao_desc3=China computing power network (C²NET) phase I can realize
page_dev_yunlao_desc4=Developers can freely select the corresponding computing resources according to the use needs, and can test the adaptability, performance, stability, etc. of the model in different hardware environments.
page_dev_yunlao_desc5=If your model requires more computing resources, you can also apply for it separately.
page_dev_yunlao_apply=Apply Separately
c2net_title=C²NET
c2net_title=China Computing Network
c2net_desc=The artificial intelligence computing power network promotion alliance has access to 11 intelligent computing centers, with a total scale of 1924p.
c2net_center=Center
search=Search


+ 2
- 1
routers/api/v1/repo/cloudbrain.go View File

@@ -378,6 +378,7 @@ func CloudbrainDownloadLogFile(ctx *context.Context) {
ctx.ServerError(err.Error(), err)
return
}

prefix := "/" + setting.CBCodePathPrefix + job.JobName + "/model"
files, err := storage.GetOneLevelAllObjectUnderDirMinio(setting.Attachment.Minio.Bucket, prefix, "")
if err != nil {
@@ -398,7 +399,7 @@ func CloudbrainDownloadLogFile(ctx *context.Context) {
ctx.ServerError("Get minio get SignedUrl failed", err)
return
}
http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusMovedPermanently)
http.Redirect(ctx.Resp, ctx.Req.Request, url, http.StatusTemporaryRedirect)
}
}



+ 41
- 2
routers/repo/cloudbrain.go View File

@@ -1245,6 +1245,15 @@ func StopJobsByRepoID(repoID int64) {
StopJobs(cloudBrains)
}

func DeleteJobsByRepoID(repoID int64) {
cloudBrains, err := models.GetCloudbrainsNeededDeleteByRepoID(repoID)
if err != nil {
log.Warn("Failed to get cloudBrain info", err)
return
}
DeleteJobs(cloudBrains)
}

/**

*/
@@ -1280,6 +1289,36 @@ func StopJobs(cloudBrains []*models.Cloudbrain) {
}
}

func DeleteJobs(cloudBrains []*models.Cloudbrain) {
for _, taskInfo := range cloudBrains {
err := models.DeleteJob(taskInfo)
if err != nil {
log.Warn("Failed to DeleteJob:", err)
return
}
if taskInfo.Type == models.TypeCloudBrainOne {
cloudbrain.DelCloudBrainJob(taskInfo.JobName)
DeleteCloudbrainJobStorage(taskInfo.JobName, models.TypeCloudBrainOne)
}
if taskInfo.Type == models.TypeCloudBrainTwo {
if taskInfo.JobType == string(models.JobTypeTrain) || taskInfo.JobType == string(models.JobTypeInference) {

modelarts.DelTrainJob(taskInfo.JobID)
DeleteJobStorage(taskInfo.JobName)
}
if taskInfo.JobType == string(models.JobTypeDebug) {
modelarts.DelNotebook2(taskInfo.JobID)
}
}
if taskInfo.Type == models.TypeC2Net {
if taskInfo.JobType == string(models.JobTypeTrain) {
cloudbrain.DelCloudBrainJob(taskInfo.JobName)
DeleteCloudbrainJobStorage(taskInfo.JobName, models.TypeCloudBrainOne)
}
}
}
}

func retry(attempts int, sleep time.Duration, f func() error) (err error) {
for i := 0; i < attempts; i++ {
if i > 0 {
@@ -1347,7 +1386,7 @@ func deleteCloudbrainJob(ctx *context.Context) error {
return err
}

deleteJobStorage(task.JobName, models.TypeCloudBrainOne)
DeleteCloudbrainJobStorage(task.JobName, models.TypeCloudBrainOne)

return nil
}
@@ -1734,7 +1773,7 @@ func mkPathAndReadMeFile(path string, text string) error {
return nil
}

func deleteJobStorage(jobName string, cloudbrainType int) error {
func DeleteCloudbrainJobStorage(jobName string, cloudbrainType int) error {
//delete local
localJobPath := setting.JobPath + jobName
err := os.RemoveAll(localJobPath)


+ 1
- 1
routers/repo/grampus.go View File

@@ -637,7 +637,7 @@ func deleteGrampusJob(ctx *context.Context) error {
if task.ComputeResource == models.NPUResource {
storageType = models.TypeCloudBrainTwo
}
deleteJobStorage(task.JobName, storageType)
DeleteCloudbrainJobStorage(task.JobName, storageType)

return nil
}


+ 2
- 1
routers/repo/setting.go View File

@@ -504,7 +504,8 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
return
}
log.Trace("Repository deleted: %s/%s", ctx.Repo.Owner.Name, repo.Name)
go StopJobsByRepoID(repo.ID)
// go StopJobsByRepoID(repo.ID)
go DeleteJobsByRepoID(repo.ID)

ctx.Flash.Success(ctx.Tr("repo.settings.deletion_success"))
ctx.Redirect(ctx.Repo.Owner.DashboardLink())


+ 1
- 1
templates/repo/cloudbrain/trainjob/show.tmpl View File

@@ -499,7 +499,7 @@
<div>
<a id="{{.VersionName}}-log-down"
class='{{if $.canDownload}}ti-download-file{{else}}disabled{{end}}'
href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/train-job/{{.JobID}}/download_log_file">
href="/api/v1/repos/{{$.RepoRelPath}}/cloudbrain/{{.ID}}/download_log_file">
<i class="ri-download-cloud-2-line"></i>
<span style="margin-left: 0.3rem;">{{$.i18n.Tr "repo.modelarts.download_log"}}</span>
</a>


+ 1
- 1
templates/repo/modelarts/notebook/show.tmpl View File

@@ -441,7 +441,7 @@
<tr>
<td style="word-wrap: break-word;word-break: break-all;"><a href="{{.RepositoryLink}}" target="_blank">{{.DatasetName}}</a></td>
<td style="word-wrap: break-word;word-break: break-all;">{{.DatasetDownloadLink}}</td>
<td class="center aligned"><a class="ui poping up clipboard" id="clipboard-btn" data-original="{{$.i18n.Tr "repo.copy_link"}}" data-success="{{$.i18n.Tr "repo.copy_link_success"}}" data-error="{{$.i18n.Tr "repo.copy_link_error"}}" data-content="{{$.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-text="{{.DatasetDownloadLink}}">复制链接</a></td>
<td class="center aligned"><a class="ui poping up clipboard" id="clipboard-btn1" data-original="{{$.i18n.Tr "repo.copy_link"}}" data-success="{{$.i18n.Tr "repo.copy_link_success"}}" data-error="{{$.i18n.Tr "repo.copy_link_error"}}" data-content="{{$.i18n.Tr "repo.copy_link"}}" data-variation="inverted tiny" data-clipboard-text="{{.DatasetDownloadLink}}">复制链接</a></td>
</tr>
{{end}}
</tbody>


+ 1
- 0
templates/repo/modelarts/trainjob/version_new.tmpl View File

@@ -160,6 +160,7 @@
<div id="select-multi-dataset">

</div>
<span class="tooltips" style="margin-left: 11.5rem;margin-bottom: 1rem;"></span>
<div class="inline unite min_title field">
<label style="font-weight: normal;">{{.i18n.Tr "repo.modelarts.train_job.run_parameter"}}</label>
<span id="add_run_para" style="margin-left: 0.5rem;cursor:pointer;color: rgba(3, 102, 214, 100);font-size: 14px;line-height: 26px;font-family: SourceHanSansSC-medium;"><i class="plus square outline icon"></i>{{.i18n.Tr "repo.modelarts.train_job.add_run_parameter"}}</span>


+ 1
- 1
web_src/js/features/cloudbrainShow.js View File

@@ -419,7 +419,7 @@ export default async function initCloudrainSow() {
html += "</a>";
html += "</span>";
html += "</td>";
html += "<td class='message seven wide'>";
html += "<td class='message1 seven wide'>";
if (data.Dirs[i].IsDir) {
html += "<span class='truncate has-emoji'></span>";
} else {


Loading…
Cancel
Save