浏览代码

Merge branch 'modelarts' of git.pcl.ac.cn:yoyoyard/opendata into modelarts

master
Gitea 4 年前
父节点
当前提交
f360aa8a02
共有 8 个文件被更改,包括 67 次插入23 次删除
  1. +7
    -1
      models/cloudbrain.go
  2. +0
    -1
      modules/modelarts/modelarts.go
  3. +8
    -2
      modules/modelarts/resty.go
  4. +2
    -0
      modules/setting/setting.go
  5. +3
    -0
      routers/api/v1/api.go
  6. +40
    -0
      routers/api/v1/repo/modelarts.go
  7. +6
    -5
      routers/repo/cloudbrain.go
  8. +1
    -14
      templates/repo/modelarts/index.tmpl

+ 7
- 1
models/cloudbrain.go 查看文件

@@ -119,7 +119,12 @@ type GetJobResult struct {
type GetImagesResult struct {
Code string `json:"code"`
Msg string `json:"msg"`
Payload map[string]*ImageInfo `json:"payload"`
Payload GetImagesPayload `json:"payload"`
}

type GetImagesPayload struct {
Count int `json:"count"`
ImageInfo []*ImageInfo `json:"rows"`
}

type CloudbrainsOptions struct {
@@ -255,6 +260,7 @@ type ImageInfo struct {
Provider string `json:"provider"`
Createtime string `json:"createtime"`
Remark string `json:"remark"`
IsPublic int `json:"isPublic"`
PlaceView string
}



+ 0
- 1
modules/modelarts/modelarts.go 查看文件

@@ -55,7 +55,6 @@ func GenerateTask(ctx *context.Context, jobName, uuid string) error {
RepoID: ctx.Repo.Repository.ID,
JobID: jobResult.ID,
JobName: jobName,
SubTaskName: subTaskName,
JobType: string(models.JobTypeDebug),
Type: models.TypeCloudBrainTwo,
})


+ 8
- 2
modules/modelarts/resty.go 查看文件

@@ -2,6 +2,7 @@ package modelarts

import (
"code.gitea.io/gitea/modules/log"
"crypto/tls"
"fmt"
"net/http"

@@ -21,11 +22,12 @@ const (

urlGetToken = "/v3/auth/tokens"
urlNotebook = "/demanager/instances"
urlQuaryNotebook = "/demanager/instances"
urlQueryNotebook = "/demanager/instances"
)
func getRestyClient() *resty.Client {
if restyClient == nil {
restyClient = resty.New()
restyClient.SetTLSClientConfig(&tls.Config{InsecureSkipVerify: true})
}
return restyClient
}
@@ -67,10 +69,13 @@ func getToken() error {
},
}

log.Info("params:", params)

res, err := client.R().
SetHeader("Content-Type", "application/json").
SetBody(params).
Post(HOST + urlGetToken)
Post(setting.IamHost + urlGetToken)
log.Info("", res.Request.Body)
if err != nil {
return fmt.Errorf("resty getToken: %s", err)
}
@@ -80,6 +85,7 @@ func getToken() error {
}

TOKEN = res.Header().Get("X-Subject-Token")
log.Info(TOKEN)

return nil
}


+ 2
- 0
modules/setting/setting.go 查看文件

@@ -459,6 +459,7 @@ var (

//modelarts config
ModelArtsHost string
IamHost string
ProjectID string
ProjectName string
ModelArtsUsername string
@@ -1159,6 +1160,7 @@ func NewContext() {

sec = Cfg.Section("modelarts")
ModelArtsHost = sec.Key("ENDPOINT").MustString("112.95.163.80")
IamHost = sec.Key("IAMHOST").MustString("112.95.163.80")
ProjectID = sec.Key("PROJECT_ID").MustString("")
ProjectName = sec.Key("PROJECT_NAME").MustString("")
ModelArtsUsername = sec.Key("USERNAME").MustString("")


+ 3
- 0
routers/api/v1/api.go 查看文件

@@ -852,6 +852,9 @@ func RegisterRoutes(m *macaron.Macaron) {
m.Group("/cloudbrain", func() {
m.Get("/:jobid", repo.GetCloudbrainTask)
}, reqRepoReader(models.UnitTypeCloudBrain))
m.Group("/modelarts", func() {
m.Get("/:jobid", repo.GetModelArtsTask)
}, reqRepoReader(models.UnitTypeCloudBrain))
}, repoAssignment())
})



+ 40
- 0
routers/api/v1/repo/modelarts.go 查看文件

@@ -0,0 +1,40 @@
// Copyright 2016 The Gogs Authors. All rights reserved.
// Copyright 2018 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package repo

import (
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/context"
"code.gitea.io/gitea/modules/modelarts"
)

func GetModelArtsTask(ctx *context.APIContext) {
var (
err error
)

jobID := ctx.Params(":jobid")
repoID := ctx.Repo.Repository.ID
_, err = models.GetRepoCloudBrainByJobID(repoID, jobID)
if err != nil {
ctx.NotFound(err)
return
}
_, err = modelarts.GetJob(jobID)
if err != nil {
ctx.NotFound(err)
return
}

//ctx.JSON(http.StatusOK, map[string]interface{}{
// "JobID": result.Config.JobID,
// "JobStatus": result.JobStatus.State,
// "SubState": result.JobStatus.SubState,
// "CreatedTime": time.Unix(result.JobStatus.CreatedTime/1000, 0).Format("2006-01-02 15:04:05"),
// "CompletedTime": time.Unix(result.JobStatus.CompletedTime/1000, 0).Format("2006-01-02 15:04:05"),
//})

}

+ 6
- 5
routers/repo/cloudbrain.go 查看文件

@@ -88,17 +88,18 @@ func CloudBrainNew(ctx *context.Context) {
result, err := cloudbrain.GetImages()
if err != nil {
ctx.Data["error"] = err.Error()
log.Error("cloudbrain.GetImages failed:", err.Error())
}

for i, payload := range result.Payload {
if strings.HasPrefix(result.Payload[i].Place, "192.168") {
result.Payload[i].PlaceView = payload.Place[strings.Index(payload.Place, "/"):len(payload.Place)]
for i, payload := range result.Payload.ImageInfo {
if strings.HasPrefix(result.Payload.ImageInfo[i].Place, "192.168") {
result.Payload.ImageInfo[i].PlaceView = payload.Place[strings.Index(payload.Place, "/"):len(payload.Place)]
} else {
result.Payload[i].PlaceView = payload.Place
result.Payload.ImageInfo[i].PlaceView = payload.Place
}
}

ctx.Data["images"] = result.Payload
ctx.Data["images"] = result.Payload.ImageInfo

attachs, err := models.GetAllUserAttachments(ctx.User.ID)
if err != nil {


+ 1
- 14
templates/repo/modelarts/index.tmpl 查看文件

@@ -266,15 +266,6 @@
</span>
</div>

<!-- 评分 -->
<div class="one wide column">
<div class="ui text center clipboard">
<a class="title" onclick="stop(this)" href="{{if and (ne .Status "WAITING") (eq .JobType "BENCHMARK")}}{{$.Link}}/{{.JobID}}/benchmark{{else}}javascript:void(0);{{end}}" style="{{if and (ne .Status "WAITING") (eq .JobType "BENCHMARK")}}{{else}}color:#CCCCCC{{end}}">
<span class="fitted">评分</span>
</a>
</div>
</div>

<!-- 删除镜像 -->
<div class="one wide column">
<div class="ui text center clipboard">
@@ -304,10 +295,6 @@
</div>
</div>

<!-- 接收结果 -->
<iframe src="" frameborder="0" name="iframeContent" style="display: none;"></iframe>
<a class="imageBtn" style="{{if not .CanDebug}}color:#CCCCCC;cursor:pointer;pointer-events:none;{{end}}; font-size:16px; font-weight:bold" value="{{.CanDebug}}">提交镜像</a>

<!-- 镜像列表弹窗 -->
<div id="imageModal" class="modal" style="display: none;">
<div class="modal-content">
@@ -430,7 +417,7 @@
return
}

$.get(`/api/v1/repos/${repoPath}/cloudbrain/${jobID}`, (data) => {
$.get(`/api/v1/repos/${repoPath}/modelarts/${jobID}`, (data) => {
const jobID = data.JobID
const status = data.JobStatus
$('#' + jobID).text(status)


正在加载...
取消
保存