JCC-CSScheduler/common/pkgs/mq/executor/pcm.go

159 lines
4.1 KiB
Go

package executor
import "gitlink.org.cn/cloudream/common/pkgs/mq"
type PCMService interface {
StartUploadImage(msg *StartUploadImage) (*StartUploadImageResp, *mq.CodeMessage)
GetImageList(msg *GetImageList) (*GetImageListResp, *mq.CodeMessage)
DeleteImage(msg *DeleteImage) (*DeleteImageResp, *mq.CodeMessage)
StartScheduleTask(msg *StartScheduleTask) (*StartScheduleTaskResp, *mq.CodeMessage)
DeleteTask(msg *DeleteTask) (*DeleteTaskResp, *mq.CodeMessage)
}
// 启动上传(并注册)镜像任务
var _ = Register(Service.StartUploadImage)
type StartUploadImage struct {
mq.MessageBodyBase
SlwNodeID int64 `json:"slwNodeID"`
ImagePath string `json:"imagePath"`
}
type StartUploadImageResp struct {
mq.MessageBodyBase
TaskID string `json:"taskID"`
}
func NewStartUploadImage(slwNodeID int64, imagePath string) *StartUploadImage {
return &StartUploadImage{
SlwNodeID: slwNodeID,
ImagePath: imagePath,
}
}
func NewStartUploadImageResp(taskID string) *StartUploadImageResp {
return &StartUploadImageResp{
TaskID: taskID,
}
}
func (c *Client) StartUploadImage(msg *StartUploadImage, opts ...mq.RequestOption) (*StartUploadImageResp, error) {
return mq.Request(Service.StartUploadImage, c.rabbitCli, msg, opts...)
}
// 查询镜像列表
var _ = Register(Service.GetImageList)
type GetImageList struct {
mq.MessageBodyBase
SlwNodeID int64 `json:"slwNodeID"`
}
type GetImageListResp struct {
mq.MessageBodyBase
ImageIDs []int64 `json:"imageIDs"`
}
func NewGetImageList(slwNodeID int64) *GetImageList {
return &GetImageList{
SlwNodeID: slwNodeID,
}
}
func NewGetImageListResp(imageIDs []int64) *GetImageListResp {
return &GetImageListResp{
ImageIDs: imageIDs,
}
}
func (c *Client) GetImageList(msg *GetImageList, opts ...mq.RequestOption) (*GetImageListResp, error) {
return mq.Request(Service.GetImageList, c.rabbitCli, msg, opts...)
}
// 删除镜像
var _ = Register(Service.DeleteImage)
type DeleteImage struct {
mq.MessageBodyBase
SlwNodeID int64 `json:"slwNodeID"`
PCMJobID int64 `json:"pcmJobID"`
}
type DeleteImageResp struct {
mq.MessageBodyBase
Result string `json:"result"`
}
func NewDeleteImage(slwNodeID int64, pcmJobID int64) *DeleteImage {
return &DeleteImage{
SlwNodeID: slwNodeID,
PCMJobID: pcmJobID,
}
}
func NewDeleteImageResp(result string) *DeleteImageResp {
return &DeleteImageResp{
Result: result,
}
}
func (c *Client) DeleteImage(msg *DeleteImage, opts ...mq.RequestOption) (*DeleteImageResp, error) {
return mq.Request(Service.DeleteImage, c.rabbitCli, msg, opts...)
}
// 启动提交任务
var _ = Register(Service.StartScheduleTask)
type StartScheduleTask struct {
mq.MessageBodyBase
SlwNodeID int64 `json:"slwNodeID"`
Envs []map[string]string `json:"envs"`
ImageID int64 `json:"imageID"`
CMDLine string `json:"cmdLine"`
}
type StartScheduleTaskResp struct {
mq.MessageBodyBase
TaskID string `json:"taskID"`
}
func NewStartScheduleTask(slwNodeID int64, envs []map[string]string, imageID int64, cmdLine string) *StartScheduleTask {
return &StartScheduleTask{
SlwNodeID: slwNodeID,
Envs: envs,
ImageID: imageID,
CMDLine: cmdLine,
}
}
func NewStartScheduleTaskResp(taskID string) *StartScheduleTaskResp {
return &StartScheduleTaskResp{
TaskID: taskID,
}
}
func (c *Client) StartScheduleTask(msg *StartScheduleTask, opts ...mq.RequestOption) (*StartScheduleTaskResp, error) {
return mq.Request(Service.StartScheduleTask, c.rabbitCli, msg, opts...)
}
// 删除任务
var _ = Register(Service.DeleteTask)
type DeleteTask struct {
mq.MessageBodyBase
SlwNodeID int64 `json:"slwNodeID"`
PCMJobID int64 `json:"pcmJobID"`
}
type DeleteTaskResp struct {
mq.MessageBodyBase
Result string `json:"result"`
}
func NewDeleteTask(slwNodeID int64, pcmJobID int64) *DeleteTask {
return &DeleteTask{
SlwNodeID: slwNodeID,
PCMJobID: pcmJobID,
}
}
func NewDeleteTaskResp(result string) *DeleteTaskResp {
return &DeleteTaskResp{
Result: result,
}
}
func (c *Client) DeleteTask(msg *DeleteTask, opts ...mq.RequestOption) (*DeleteTaskResp, error) {
return mq.Request(Service.DeleteTask, c.rabbitCli, msg, opts...)
}