JCC-CSScheduler/common/models/models.go

86 lines
2.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package schmod
import (
"fmt"
"time"
pcmsdk "gitlink.org.cn/cloudream/common/sdks/pcm"
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
uopsdk "gitlink.org.cn/cloudream/common/sdks/unifyops"
myreflect "gitlink.org.cn/cloudream/common/utils/reflect"
"gitlink.org.cn/cloudream/common/utils/serder"
)
type ExecutorID string
type AdvisorID string
type ComputingCenter struct {
// 计算中心名称
CCID schsdk.CCID `json:"CCID" db:"CCID"`
// 计算中心在运控系统的ID
UOPSlwNodeID uopsdk.SlwNodeID `json:"uopSlwNodeID" db:"UOPSlwNodeID"`
// 计算中心在PCM系统的ID
PCMParticipantID pcmsdk.ParticipantID `json:"pcmParticipantID" db:"PCMParticipantID"`
// 计算中心在存储系统的ID
CDSNodeID cdssdk.NodeID `json:"cdsNodeID" db:"CDSNodeID"`
// 此算力中心的存储服务对应在存储系统中的ID
CDSStorageID cdssdk.StorageID `json:"cdsStorageID" db:"CDSStorageID"`
// 计算中心名称
Name string `json:"name" db:"Name"`
}
type Image struct {
// 调度系统内的镜像ID
ImageID schsdk.ImageID `json:"imageID" db:"ImageID"`
// 镜像文件对应的存储系统PackageID可以为空为空则代表此镜像不可被自动导入到算力中心比如是预制镜像
CDSPackageID *cdssdk.PackageID `json:"cdsPackageID" db:"CDSPackageID"`
// 镜像名称,在调度系统上设置的
Name string `json:"name" db:"Name"`
// 镜像创建时间
CreateTime time.Time `json:"createTime" db:"CreateTime"`
}
type PCMImage struct {
// 调度系统内的镜像ID
ImageID schsdk.ImageID `json:"imageID" db:"ImageID"`
// 导入到的计算中心的ID
CCID schsdk.CCID `json:"ccID" db:"CCID"`
// 通过PCM系统导入到各计算中心后得到的ID
PCMImageID pcmsdk.ImageID `json:"pcmImageID" db:"PCMImageID"`
// 镜像名称通过PCM导入后获得
Name string `json:"name" db:"Name"`
// 镜像导入时间
UploadTime time.Time `json:"uploadTime" db:"UploadTime"`
}
type CCResource struct {
// 计算中心ID
CCID schsdk.CCID `json:"ccID" db:"CCID"`
// PCM系统返回的资源规格ID
PCMResourceID pcmsdk.ResourceID `json:"pcmResourceID" db:"PCMResourceID"`
// PCM系统返回的资源规格名称
PCMResourceName string `json:"pcmResourceName" db:"PCMResourceName"`
// 此种规格具体包含的资源信息
Resource CCResourceInfo `json:"resource" db:"Resource"`
}
type CCResourceInfo struct {
CPU float64 `json:"cpu"`
GPU float64 `json:"gpu"`
NPU float64 `json:"npu"`
MLU float64 `json:"mlu"`
Storage int64 `json:"storage"`
Memory int64 `json:"memory"`
}
func (i *CCResourceInfo) Scan(src interface{}) error {
data, ok := src.([]uint8)
if !ok {
return fmt.Errorf("unknow src type: %v", myreflect.TypeOfValue(data).String())
}
return serder.JSONToObject(data, i)
}