forked from JointCloud/JCC-CSScheduler
159 lines
4.1 KiB
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...)
|
|
}
|