获取应用分发详情修改

Signed-off-by: devad <cossjie@foxmail.com>

Former-commit-id: a8959f0e079699fcb40110448315345504ce51a1
This commit is contained in:
devad 2023-11-28 18:35:06 +08:00
parent 1e3518a14e
commit 444e487e87
7 changed files with 80 additions and 5 deletions

View File

@ -614,4 +614,8 @@ type (
MemoryRate float64 `json:"memoryRate"`
MemoryLimit float64 `json:"memoryLimit"`
}
)
AppTaskResp {
data interface{} `json:"data"`
}
)

View File

@ -531,11 +531,15 @@ service pcm {
@handler AppListHandler
get /apps/list (AppListReq) returns (AppListResp)
@doc "应用详情"
@doc "获取应用分发详情"
@handler AppDetailHandler
get /apps/detail/:appName (AppDetailReq) returns (AppDetailResp)
get /apps/distribute/:appName (AppDetailReq) returns (AppDetailResp)
@doc "应用pods列表"
@handler AppPodsHandler
get /apps/pods/:appName (AppDetailReq) returns (AppDetailResp)
@doc "获取应用详情"
@handler GetAppByAppName
get /apps/getAppByAppName/:appName (AppDetailReq) returns (AppTaskResp)
}

View File

@ -0,0 +1,24 @@
package apps
import (
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/apps"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/pkg/repository/result"
"net/http"
)
func GetAppByAppNameHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.AppDetailReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}
l := apps.NewGetAppByAppNameLogic(r.Context(), svcCtx)
resp, err := l.GetAppByAppName(&req)
result.HttpResult(r, w, resp, err)
}
}

View File

@ -641,7 +641,7 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
},
{
Method: http.MethodGet,
Path: "/apps/detail/:appName",
Path: "/apps/distribute/:appName",
Handler: apps.AppDetailHandler(serverCtx),
},
{
@ -649,6 +649,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
Path: "/apps/pods/:appName",
Handler: apps.AppPodsHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/apps/getAppByAppName/:appName",
Handler: apps.GetAppByAppNameHandler(serverCtx),
},
},
rest.WithPrefix("/pcm/v1"),
)

View File

@ -2,6 +2,7 @@ package apps
import (
"context"
"gorm.io/datatypes"
"gorm.io/gorm"
"time"
@ -36,7 +37,7 @@ type Task struct {
StartTime string `db:"start_time"` // 开始时间
EndTime string `db:"end_time"` // 结束运行时间
RunningTime int64 `db:"running_time"` // 已运行时间(单位秒)
YamlString string `db:"yaml_string"`
YamlString datatypes.JSON `db:"yaml_string"`
Result string `db:"result"` // 作业结果
DeletedAt gorm.DeletedAt `gorm:"index"`
NsID string `db:"ns_id"`

View File

@ -0,0 +1,33 @@
package apps
import (
"context"
"github.com/zeromicro/go-zero/core/logx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
)
type GetAppByAppNameLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewGetAppByAppNameLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetAppByAppNameLogic {
return &GetAppByAppNameLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *GetAppByAppNameLogic) GetAppByAppName(req *types.AppDetailReq) (resp interface{}, err error) {
var task Task
db := l.svcCtx.DbEngin.Raw("select * from task where ns_id = ? and name = ?", req.NsID, req.Name).Scan(&task)
if db.Error != nil {
logx.Errorf("db error: %v", db.Error)
return
}
resp = task.YamlString
return
}

View File

@ -578,6 +578,10 @@ type AppDetailResp struct {
MemoryLimit float64 `json:"memoryLimit"`
}
type AppTaskResp struct {
Data interface{} `json:"data"`
}
type Job struct {
SlurmVersion string `json:"slurmVersion"`
Name string `json:"name"`