Browse Source

Merge remote-tracking branch 'gitlink/master'

pull/464/head
jagger 7 months ago
parent
commit
cbaa61c977
7 changed files with 143 additions and 1 deletions
  1. +12
    -0
      desc/inference/inference.api
  2. +3
    -0
      desc/pcm.api
  3. +26
    -0
      internal/handler/inference/getdeployinstancehandler.go
  4. +5
    -0
      internal/handler/routes.go
  5. +44
    -0
      internal/logic/inference/getdeployinstancelogic.go
  6. +42
    -1
      internal/scheduler/service/utils/status/deployInstance.go
  7. +11
    -0
      internal/types/types.go

+ 12
- 0
desc/inference/inference.api View File

@@ -127,6 +127,18 @@ type (
}

/******************Deploy instance*************************/
GetDeployInstanceReq{
AdapterId string `form:"adapterId"`
ClusterId string `form:"clusterId"`
Id string `form:"id"`
InstanceId string `form:"instanceId"`
}

GetDeployInstanceResp {
Instance interface{} `json:"instance"`
}


DeployInstanceListReq{
PageInfo
}


+ 3
- 0
desc/pcm.api View File

@@ -960,6 +960,9 @@ service pcm {
group: inference
)
service pcm {
@handler GetDeployInstanceHandler
get /inference/getDeployInstance (GetDeployInstanceReq) returns (GetDeployInstanceResp)

@handler CreateInferenceTaskHandler
post /inference/createTask (CreateInferenceTaskReq) returns (CreateInferenceTaskResp)



+ 26
- 0
internal/handler/inference/getdeployinstancehandler.go View File

@@ -0,0 +1,26 @@
package inference

import (
"gitlink.org.cn/JointCloud/pcm-coordinator/pkg/repository/result"
"net/http"

"github.com/zeromicro/go-zero/rest/httpx"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/logic/inference"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"
)

func GetDeployInstanceHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
var req types.GetDeployInstanceReq
if err := httpx.Parse(r, &req); err != nil {
result.ParamErrorResult(r, w, err)
return
}

l := inference.NewGetDeployInstanceLogic(r.Context(), svcCtx)
resp, err := l.GetDeployInstance(&req)
result.HttpResult(r, w, resp, err)

}
}

+ 5
- 0
internal/handler/routes.go View File

@@ -1208,6 +1208,11 @@ func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {

server.AddRoutes(
[]rest.Route{
{
Method: http.MethodGet,
Path: "/inference/getDeployInstance",
Handler: inference.GetDeployInstanceHandler(serverCtx),
},
{
Method: http.MethodPost,
Path: "/inference/createTask",


+ 44
- 0
internal/logic/inference/getdeployinstancelogic.go View File

@@ -0,0 +1,44 @@
package inference

import (
"context"
"strconv"

"gitlink.org.cn/JointCloud/pcm-coordinator/internal/svc"
"gitlink.org.cn/JointCloud/pcm-coordinator/internal/types"

"github.com/zeromicro/go-zero/core/logx"
)

type GetDeployInstanceLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}

func NewGetDeployInstanceLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetDeployInstanceLogic {
return &GetDeployInstanceLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}

func (l *GetDeployInstanceLogic) GetDeployInstance(req *types.GetDeployInstanceReq) (resp *types.GetDeployInstanceResp, err error) {
resp = &types.GetDeployInstanceResp{}

id, err := strconv.ParseInt(req.Id, 10, 64)
ins, err := l.svcCtx.Scheduler.AiStorages.GetInferDeployInstanceById(id)
if err != nil {
return nil, err
}

in, err := l.svcCtx.Scheduler.AiService.InferenceAdapterMap[strconv.FormatInt(ins.AdapterId, 10)][strconv.FormatInt(ins.ClusterId, 10)].GetInferDeployInstance(l.ctx, ins.InstanceId)
if err != nil {
return nil, err
}

resp.Instance = in

return
}

+ 42
- 1
internal/scheduler/service/utils/status/deployInstance.go View File

@@ -17,7 +17,7 @@ func UpdateDeployInstanceStatusBatch(svc *svc.ServiceContext, insList []*models.

if needfilter {
for i := len(list) - 1; i >= 0; i-- {
if list[i].Status == constants.Running || list[i].Status == constants.Stopped {
if list[i].Status == constants.Running || list[i].Status == constants.Stopped || list[i].Status == constants.Failed {
list = append(list[:i], list[i+1:]...)
}
}
@@ -156,6 +156,47 @@ func UpdateDeployInstanceStatus(svc *svc.ServiceContext, instance *models.AiInfe
default:
instance.Status = ins.Status
}
case storeLink.TYPE_OPENI:
switch ins.Status {
case "RUNNING":
if instance.Status == constants.Running {
if ch != nil {
<-ch
return
}
return
}
instance.Status = constants.Running
case "STOPPED":
if instance.Status == constants.Stopped {
if ch != nil {
<-ch
return
}
return
}
instance.Status = constants.Stopped
case "CREATED_FAILED":
if instance.Status == constants.Failed {
if ch != nil {
<-ch
return
}
return
}
instance.Status = constants.Failed
case "FAILED":
if instance.Status == constants.Failed {
if ch != nil {
<-ch
return
}
return
}
instance.Status = constants.Failed
default:
instance.Status = ins.Status
}
}

err = svc.Scheduler.AiStorages.UpdateInferDeployInstance(instance, updatetime)


+ 11
- 0
internal/types/types.go View File

@@ -6250,6 +6250,17 @@ type TextToImageInferenceResp struct {
Result []byte `json:"result"`
}

type GetDeployInstanceReq struct {
AdapterId string `form:"adapterId"`
ClusterId string `form:"clusterId"`
Id string `form:"id"`
InstanceId string `form:"instanceId"`
}

type GetDeployInstanceResp struct {
Instance interface{} `json:"instance"`
}

type DeployInstanceListReq struct {
PageInfo
}


Loading…
Cancel
Save