forked from JointCloud/JCC-CSScheduler
41 lines
1013 B
Go
41 lines
1013 B
Go
package task
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/pkgs/types"
|
|
myreflect "gitlink.org.cn/cloudream/common/utils/reflect"
|
|
)
|
|
|
|
type TaskStatus interface {
|
|
Noop()
|
|
}
|
|
|
|
type TaskStatusBase struct{}
|
|
|
|
func (b *TaskStatusBase) Noop() {}
|
|
|
|
// 增加了新类型后需要在这里也同步添加
|
|
var TaskStatusTypeUnion = types.NewTypeUnion[TaskStatus](
|
|
myreflect.TypeOf[ScheduleSchemeTaskStatus](),
|
|
)
|
|
|
|
type ScheduleSchemeTaskStatus struct {
|
|
TaskStatusBase
|
|
Status string `json:"status"`
|
|
Error string `json:"error"`
|
|
IsAdjustment bool `json:"isAdjustment"`
|
|
AdjustedScheme AdjustedScheme `json:"adjustedScheme"`
|
|
}
|
|
|
|
type AdjustedScheme struct {
|
|
NodeID int64 `json:"nodeID"`
|
|
}
|
|
|
|
func NewScheduleSchemeTaskStatus(status string, err string, isAdjustment bool, adjustedScheme AdjustedScheme) *ScheduleSchemeTaskStatus {
|
|
return &ScheduleSchemeTaskStatus{
|
|
Status: status,
|
|
Error: err,
|
|
IsAdjustment: isAdjustment,
|
|
AdjustedScheme: adjustedScheme,
|
|
}
|
|
}
|