49 lines
1.5 KiB
Go
49 lines
1.5 KiB
Go
package manager
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq"
|
|
schmod "gitlink.org.cn/cloudream/scheduler/common/models"
|
|
advtsk "gitlink.org.cn/cloudream/scheduler/common/pkgs/mq/advisor/task"
|
|
exectsk "gitlink.org.cn/cloudream/scheduler/common/pkgs/mq/executor/task"
|
|
)
|
|
|
|
type AdvisorService interface {
|
|
ReportAdvisorTaskStatus(msg *ReportAdvisorTaskStatus) (*ReportAdvisorTaskStatusResp, *mq.CodeMessage)
|
|
}
|
|
|
|
// 接收advisor上报的存活状态及任务执行情况
|
|
var _ = Register(Service.ReportAdvisorTaskStatus)
|
|
|
|
type ReportAdvisorTaskStatus struct {
|
|
mq.MessageBodyBase
|
|
AdvisorID schmod.AdvisorID `json:"advisorID"`
|
|
TaskStatus []AdvisorTaskStatus `json:"taskStatus"`
|
|
}
|
|
|
|
type ReportAdvisorTaskStatusResp struct {
|
|
mq.MessageBodyBase
|
|
}
|
|
type AdvisorTaskStatus struct {
|
|
TaskID string
|
|
Status advtsk.AdvTaskStatus
|
|
}
|
|
|
|
func NewReportAdvisorTaskStatus(advisorID schmod.AdvisorID, taskStatus []AdvisorTaskStatus) *ReportAdvisorTaskStatus {
|
|
return &ReportAdvisorTaskStatus{
|
|
AdvisorID: advisorID,
|
|
TaskStatus: taskStatus,
|
|
}
|
|
}
|
|
func NewReportAdvisorTaskStatusResp() *ReportAdvisorTaskStatusResp {
|
|
return &ReportAdvisorTaskStatusResp{}
|
|
}
|
|
func NewAdvisorTaskStatus(taskID string, status exectsk.ExeTaskStatus) AdvisorTaskStatus {
|
|
return AdvisorTaskStatus{
|
|
TaskID: taskID,
|
|
Status: status,
|
|
}
|
|
}
|
|
func (c *Client) ReportAdvisorTaskStatus(msg *ReportAdvisorTaskStatus, opts ...mq.RequestOption) (*ReportAdvisorTaskStatusResp, error) {
|
|
return mq.Request(Service.ReportAdvisorTaskStatus, c.roundTripper, msg, opts...)
|
|
}
|