diff --git a/api/desc/pcm.api b/api/desc/pcm.api index f4262a2a..66d52866 100644 --- a/api/desc/pcm.api +++ b/api/desc/pcm.api @@ -300,4 +300,16 @@ service pcm { @handler GetLinkImageListHandler get /storelink/getImageList (GetLinkImageListReq) returns (GetLinkImageListResp) + + @handler DeleteLinkImageHandler + delete /storelink/deleteImageList (DeleteLinkImageReq) returns (DeleteLinkImageResp) + + @handler SubmitLinkTaskHandler + post /storelink/submitLinkTask (SubmitLinkTaskReq) returns (SubmitLinkTaskResp) + + @handler GetLinkTaskHandler + get /storelink/getLinkTask (GetLinkTaskReq) returns (GetLinkTaskResp) + + @handler DeleteLinkTaskHandler + delete /storelink/deleteLinkTask (DeleteLinkTaskReq) returns (DeleteLinkTaskResp) } \ No newline at end of file diff --git a/api/desc/storelink/pcm-storelink.api b/api/desc/storelink/pcm-storelink.api index 73b4fb29..1adc932e 100644 --- a/api/desc/storelink/pcm-storelink.api +++ b/api/desc/storelink/pcm-storelink.api @@ -9,7 +9,8 @@ info( type ( UploadLinkImageReq { - + PartId int64 `json:"partId"` + FilePath string `json:"filePath"` } UploadLinkImageImageResp { @@ -23,4 +24,34 @@ type ( GetLinkImageListResp { ImageIds []int64 `json:"imageIds"` } + + DeleteLinkImageReq { + + } + + DeleteLinkImageResp { + + } + + SubmitLinkTaskReq { + + } + + SubmitLinkTaskResp { + + } + + GetLinkTaskReq { + + } + + GetLinkTaskResp { + + } + + DeleteLinkTaskReq { + + } + + DeleteLinkTaskResp {} ) \ No newline at end of file diff --git a/api/internal/pkg/storeLink/octopus.go b/api/internal/pkg/storeLink/octopus.go index e705f231..4edf85b0 100644 --- a/api/internal/pkg/storeLink/octopus.go +++ b/api/internal/pkg/storeLink/octopus.go @@ -20,7 +20,7 @@ func NewOctopusLink(ctx context.Context, svcCtx *svc.ServiceContext, platform st } func (o *OctopusLink) UploadImage() (interface{}, error) { - var uploadResp types.UploadLinkImageImageResp + var resp types.UploadLinkImageImageResp createReq := &octopus.CreateImageReq{ Platform: o.platform, @@ -36,22 +36,32 @@ func (o *OctopusLink) UploadImage() (interface{}, error) { ImageId: createResp.Payload.ImageId, Params: &octopus.UploadImageParam{}, } - octUpResp, err := o.svcCtx.OctopusRpc.UploadImage(o.ctx, uploadReq) + uploadResp, err := o.svcCtx.OctopusRpc.UploadImage(o.ctx, uploadReq) if err != nil { return nil, err } - octUpResp.String() - return uploadResp, nil + uploadResp.String() + return resp, nil } func (o *OctopusLink) DeleteImage() (interface{}, error) { - //TODO implement me - panic("implement me") + req := &octopus.DeleteImageReq{ + Platform: o.platform, + } + resp, err := o.svcCtx.OctopusRpc.DeleteImage(o.ctx, req) + if err != nil { + return nil, err + } + + deleteResp, err := ConvertType[octopus.DeleteImageResp](resp) + if err != nil { + return nil, err + } + + return deleteResp, nil } func (o *OctopusLink) QueryImageList() (interface{}, error) { - var imgListResp types.GetLinkImageListResp - req := &octopus.GetUserImageListReq{ Platform: o.platform, PageIndex: o.pageIndex, @@ -62,26 +72,62 @@ func (o *OctopusLink) QueryImageList() (interface{}, error) { return nil, err } - imgListResp.ImageIds = append(imgListResp.ImageIds, resp.Payload.Images[0].Image.CreatedAt) + imgListResp, err := ConvertType[octopus.GetUserImageListResp](resp) + if err != nil { + return nil, err + } + return imgListResp, nil } func (o *OctopusLink) SubmitTask() (interface{}, error) { - //req := &octopus.CreateTrainJobReq{} - //TODO implement me - panic("implement me") + req := &octopus.CreateTrainJobReq{ + Platform: o.platform, + Params: &octopus.CreateTrainJobParam{}, + } + resp, err := o.svcCtx.OctopusRpc.CreateTrainJob(o.ctx, req) + if err != nil { + return nil, err + } + + submitResp, err := ConvertType[octopus.CreateTrainJobResp](resp) + if err != nil { + return nil, err + } + + return submitResp, nil } func (o *OctopusLink) QueryTask() (interface{}, error) { - //TODO implement me - panic("implement me") + req := &octopus.GetTrainJobReq{ + Platform: o.platform, + } + resp, err := o.svcCtx.OctopusRpc.GetTrainJob(o.ctx, req) + if err != nil { + return nil, err + } + + taskResp, err := ConvertType[octopus.GetTrainJobResp](resp) + if err != nil { + return nil, err + } + + return taskResp, nil } func (o *OctopusLink) DeleteTask() (interface{}, error) { - //TODO implement me - panic("implement me") -} + req := &octopus.DeleteTrainJobReq{ + Platform: o.platform, + } + resp, err := o.svcCtx.OctopusRpc.DeleteTrainJob(o.ctx, req) + if err != nil { + return nil, err + } -func (o *OctopusLink) name() { + deleteResp, err := ConvertType[octopus.DeleteTrainJobResp](resp) + if err != nil { + return nil, err + } + return deleteResp, nil } diff --git a/api/internal/pkg/storeLink/storeLink.go b/api/internal/pkg/storeLink/storeLink.go index 40606dab..064532b8 100644 --- a/api/internal/pkg/storeLink/storeLink.go +++ b/api/internal/pkg/storeLink/storeLink.go @@ -2,7 +2,10 @@ package storeLink import ( "context" + "github.com/pkg/errors" "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-participant-octopus/octopus" ) type Linkage interface { @@ -22,3 +25,17 @@ func NewStoreLink(ctx context.Context, svcCtx *svc.ServiceContext, partId int64) linkStruct := NewOctopusLink(ctx, svcCtx, "hanwuji") return &StoreLink{ILinkage: linkStruct} } + +func ConvertType[T any](in *T) (interface{}, error) { + + switch (interface{})(in).(type) { + case *octopus.GetUserImageListResp: + var imgListResp types.GetLinkImageListResp + resp := (interface{})(in).(*octopus.GetUserImageListResp) + imgListResp.ImageIds = append(imgListResp.ImageIds, resp.Payload.Images[0].Image.CreatedAt) + imgListResp.ImageIds = append(imgListResp.ImageIds, resp.Payload.Images[0].Image.CreatedAt) + return imgListResp, nil + default: + return nil, errors.New("type convert fail") + } +}