125 lines
4.4 KiB
Go
125 lines
4.4 KiB
Go
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"
|
||
"gitlink.org.cn/cloudream/common/utils/reflect2"
|
||
"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
|
||
CDSStorageID cdssdk.StorageID `json:"cdsStorageID" db:"CDSStorageID"`
|
||
// 计算中心名称
|
||
Name string `json:"name" db:"Name"`
|
||
// 任务启动方式
|
||
Bootstrap schsdk.Bootstrap `json:"bootstrap" db:"Bootstrap"`
|
||
// 执行器ID
|
||
ExecutorID string `json:"executorID" db:"executorID"`
|
||
// 执行器URL
|
||
ExecutorURL string `json:"executorURL" db:"executorURL"`
|
||
}
|
||
|
||
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"`
|
||
}
|
||
|
||
type Models struct {
|
||
ModelID schsdk.ModelID `json:"modelID" db:"modelID"`
|
||
ModelName schsdk.ModelName `json:"modelName" db:"modelName"`
|
||
}
|
||
|
||
type ModelResource struct {
|
||
ModelID int64 `json:"modelID" db:"modelID"`
|
||
OjbStgID int64 `json:"OjbStgID" db:"OjbStgID"`
|
||
ModelPath string `json:"modelPath" db:"modelPath"`
|
||
StartShellPath string `json:"startShellPath" db:"startShellPath"`
|
||
ServerPort int64 `json:"serverPort" db:"serverPort"`
|
||
ServerUrlPath string `json:"serverUrlPath" db:"serverUrlPath"`
|
||
StopShellPath string `json:"stopShellPath" db:"stopShellPath"`
|
||
FinetuningShellPath string `json:"finetuningShellPath" db:"finetuningShellPath"`
|
||
}
|
||
|
||
type ObjectStorage struct {
|
||
ID int64 `json:"ID" db:"ID"`
|
||
Name string `json:"name" db:"name"`
|
||
Manufacturer string `json:"manufacturer" db:"manufacturer"`
|
||
Region string `json:"region" db:"region"`
|
||
AK string `json:"access_key_id" db:"access_key_id"`
|
||
SK string `json:"secret_access_key" db:"secret_access_key"`
|
||
Endpoint string `json:"endpoint" db:"endpoint"`
|
||
Bucket string `json:"bucket" db:"bucket"`
|
||
CDSStorageID cdssdk.StorageID `json:"CDSStorageID" db:"CDSStorageID"`
|
||
MountType string `json:"mountType" db:"mountType"`
|
||
}
|
||
|
||
func (i *CCResourceInfo) Scan(src interface{}) error {
|
||
data, ok := src.([]uint8)
|
||
if !ok {
|
||
return fmt.Errorf("unknow src type: %v", reflect2.TypeOfValue(data).String())
|
||
}
|
||
|
||
return serder.JSONToObject(data, i)
|
||
}
|
||
|
||
const (
|
||
HuaweiCloud = "HuaweiCloud"
|
||
AliCloud = "AliCloud"
|
||
SugonCloud = "SugonCloud"
|
||
)
|