added schedule apis

Former-commit-id: eed1ae30dd41e40fc141401024811f7756d09f2c
This commit is contained in:
tzwang 2024-02-05 13:01:45 +08:00
parent 7ff38eb22f
commit ceaad28539
13 changed files with 455 additions and 127 deletions

View File

@ -11,6 +11,7 @@ import (
core "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/core"
hpc "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/hpc"
image "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/image"
schedule "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/schedule"
storage "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/storage"
storelink "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/storelink"
vm "gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/handler/vm"
@ -749,4 +750,35 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
},
rest.WithPrefix("/pcm/v1"),
)
server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/schedule/ai/getResourceTypes",
Handler: schedule.ScheduleGetAiResourceTypesHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/schedule/ai/getTaskTypes",
Handler: schedule.ScheduleGetAiTaskTypesHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/schedule/ai/getDatasets",
Handler: schedule.ScheduleGetDatasetsHandler(serverCtx),
},
{
Method: http.MethodGet,
Path: "/schedule/ai/getStrategies",
Handler: schedule.ScheduleGetStrategyHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/schedule/submit",
Handler: schedule.ScheduleSubmitHandler(serverCtx),
},
},
rest.WithPrefix("/pcm/v1"),
)
}

View File

@ -0,0 +1,21 @@
package schedule
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/schedule"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
)
func ScheduleGetAiResourceTypesHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := schedule.NewScheduleGetAiResourceTypesLogic(r.Context(), svcCtx)
resp, err := l.ScheduleGetAiResourceTypes()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,21 @@
package schedule
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/schedule"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
)
func ScheduleGetAiTaskTypesHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := schedule.NewScheduleGetAiTaskTypesLogic(r.Context(), svcCtx)
resp, err := l.ScheduleGetAiTaskTypes()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,21 @@
package schedule
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/schedule"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
)
func ScheduleGetDatasetsHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := schedule.NewScheduleGetDatasetsLogic(r.Context(), svcCtx)
resp, err := l.ScheduleGetDatasets()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,21 @@
package schedule
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/schedule"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
)
func ScheduleGetStrategyHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
l := schedule.NewScheduleGetStrategyLogic(r.Context(), svcCtx)
resp, err := l.ScheduleGetStrategy()
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,28 @@
package schedule
import (
"net/http"
"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/logic/schedule"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
)
func ScheduleSubmitHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.ScheduleResp
if err := httpx.Parse(r, &req); err != nil {
httpx.ErrorCtx(r.Context(), w, err)
return
}
l := schedule.NewScheduleSubmitLogic(r.Context(), svcCtx)
resp, err := l.ScheduleSubmit(&req)
if err != nil {
httpx.ErrorCtx(r.Context(), w, err)
} else {
httpx.OkJsonCtx(r.Context(), w, resp)
}
}
}

View File

@ -0,0 +1,30 @@
package schedule
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type ScheduleGetAiResourceTypesLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleGetAiResourceTypesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleGetAiResourceTypesLogic {
return &ScheduleGetAiResourceTypesLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleGetAiResourceTypesLogic) ScheduleGetAiResourceTypes() (resp *types.AiResourceTypesResp, err error) {
// todo: add your logic here and delete this line
return
}

View File

@ -0,0 +1,30 @@
package schedule
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type ScheduleGetAiTaskTypesLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleGetAiTaskTypesLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleGetAiTaskTypesLogic {
return &ScheduleGetAiTaskTypesLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleGetAiTaskTypesLogic) ScheduleGetAiTaskTypes() (resp *types.AiTaskTypesResp, err error) {
// todo: add your logic here and delete this line
return
}

View File

@ -0,0 +1,30 @@
package schedule
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type ScheduleGetDatasetsLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleGetDatasetsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleGetDatasetsLogic {
return &ScheduleGetDatasetsLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleGetDatasetsLogic) ScheduleGetDatasets() (resp *types.AiDatasetsResp, err error) {
// todo: add your logic here and delete this line
return
}

View File

@ -0,0 +1,30 @@
package schedule
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type ScheduleGetStrategyLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleGetStrategyLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleGetStrategyLogic {
return &ScheduleGetStrategyLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleGetStrategyLogic) ScheduleGetStrategy() (resp *types.AiStrategyResp, err error) {
// todo: add your logic here and delete this line
return
}

View File

@ -0,0 +1,30 @@
package schedule
import (
"context"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/svc"
"gitlink.org.cn/jcce-pcm/pcm-coordinator/api/internal/types"
"github.com/zeromicro/go-zero/core/logx"
)
type ScheduleSubmitLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewScheduleSubmitLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ScheduleSubmitLogic {
return &ScheduleSubmitLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *ScheduleSubmitLogic) ScheduleSubmit(req *types.ScheduleResp) (resp *types.ScheduleResp, err error) {
// todo: add your logic here and delete this line
return
}

View File

@ -3736,3 +3736,37 @@ type ParticipantSl struct {
ParticipantName string `json:"name"`
ParticipantType string `json:"type"`
}
type ScheduleReq struct {
AiOption *AiOption `json:"aiOption,optional"`
}
type ScheduleResp struct {
Success bool `json:"success"`
TaskId string `json:"taskId"`
ClusterId string `json:"clusterId"`
ErrorMsg string `json:"errorMsg"`
}
type AiOption struct {
ResourceType string `json:"resourceType"`
TaskType string `json:"taskType"`
Datasets string `json:"datasets"`
Strategy string `json:"strategy"`
}
type AiResourceTypesResp struct {
ResourceTypes []string `json:"resourceTypes"`
}
type AiTaskTypesResp struct {
TaskTypes []string `json:"taskTypes"`
}
type AiDatasetsResp struct {
Datasets []string `json:"datasets"`
}
type AiStrategyResp struct {
Strategies []string `json:"strategies"`
}