JCC-CSScheduler/common/models/job/job.go

73 lines
1.9 KiB
Go

package jobmod
import (
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
)
type FileScheduleAction string
// 文件调度方案
const (
ActionNo FileScheduleAction = "No" // 不需要操作
ActionMove FileScheduleAction = "Move" // 需要在指定节点上建立缓存
ActionLoad FileScheduleAction = "Load" // 需要加载到Storage
ActionImportImage FileScheduleAction = "ImportImage" // 需要导入镜像
)
type FileScheduleScheme struct {
Action FileScheduleAction `json:"action"`
}
// 任务调度方案
type JobScheduleScheme struct {
TargetCCID schsdk.CCID `json:"targetCCID"`
Dataset FileScheduleScheme `json:"dataset"`
Code FileScheduleScheme `json:"code"`
Image FileScheduleScheme `json:"image"`
}
// 任务集的预调度方案
type JobSetPreScheduleScheme struct {
JobSchemes map[string]JobScheduleScheme `json:"jobSchemes"` // 任务的预调度方案。Key为LocalJobID
}
type JobFiles struct {
Dataset PackageJobFile `json:"dataset"`
Code PackageJobFile `json:"code"`
Image ImageJobFile `json:"image"`
}
type PackageJobFile struct {
PackageID cdssdk.PackageID `json:"packageID"`
FullPath string `json:"fullPath"` // Load之后的完整文件路径
}
type ImageJobFile struct {
PackageID *cdssdk.PackageID `json:"packageID"`
ImageID schsdk.ImageID `json:"imageID"`
}
type JobStatus struct {
JobID schsdk.JobID `json:"jobID"`
JobSetID schsdk.JobSetID `json:"jobSetID"`
Info schsdk.JobInfo `json:"info"`
Body JobBodyStatus `json:"body"`
State JobStateStatus `json:"state"`
}
type JobBodyStatus interface {
}
type NormalJobStatus struct {
TargetCCID schsdk.CCID `json:"targetCCID"`
Files JobFiles `json:"files"`
}
type DataReturnJobStatus struct {
DataReturnPackageID cdssdk.PackageID `json:"dataReturnPackageID"`
}
type JobStateStatus interface {
}