Browse Source

新增克隆和查询package接口

pull/52/head
JeshuaRen 9 months ago
parent
commit
0dc4b23746
1 changed files with 86 additions and 59 deletions
  1. +86
    -59
      sdks/uploader/models.go

+ 86
- 59
sdks/uploader/models.go View File

@@ -90,72 +90,99 @@ func (Cluster) TableName() string {
}

type Package struct {
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
PackageName string `gorm:"column:package_name" json:"packageName"`
BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
DataType string `gorm:"column:data_type" json:"dataType"`
JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
Objects []cdssdk.Object `gorm:"column:objects" json:"objects"`
UploadedCluster []Cluster `gorm:"column:uploadedCluster" json:"uploadedCluster"`
Versions []PackageVersion `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
PackageName string `gorm:"column:package_name" json:"packageName"`
BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
DataType string `gorm:"column:data_type" json:"dataType"`
JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
Objects []cdssdk.Object `gorm:"column:objects" json:"objects"`
UploadedCluster []Cluster `gorm:"column:uploadedCluster" json:"uploadedCluster"`
Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
//BlockChain []BlockChain `gorm:"foreignKey:package_id;references:package_id" json:"blockChains"` // 关联 BlockChain 数据
UploadPriority sch.UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"`
}

type PackageDAO struct {
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
PackageName string `gorm:"column:package_name" json:"packageName"`
BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
DataType string `gorm:"column:data_type" json:"dataType"`
JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据
Versions []PackageVersion `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
UploadPriority string `gorm:"column:upload_priority" json:"uploadPriority"`
}

type PackageVersion struct {
ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
PackageName string `gorm:"column:package_name" json:"packageName"`
Version int64 `gorm:"column:package_version" json:"version"`
}

func (PackageVersion) TableName() string {
return "packageVersion" // 确保和数据库中的表名一致
}

//type PackageScheduleType interface {
// Noop()
//}
//
//var PackageScheduleTypeUnion = types.NewTypeUnion[PackageScheduleType](
// (*PackagePreferencesSchedule)(nil),
// (*PackageSpecifyClusterSchedule)(nil),
//)
//
//var _ = serder.UseTypeUnionInternallyTagged(&PackageScheduleTypeUnion, "type")
//
//type PackageScheduleBase struct{}
//
//func (d *PackageScheduleBase) Noop() {}
//
//type PackagePreferencesSchedule struct {
// serder.Metadata `union:"region"`
// PackageScheduleBase
// Type string `json:"type"`
// a sch.Preferences
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
PackageID cdssdk.PackageID `gorm:"column:package_id" json:"packageID"`
PackageName string `gorm:"column:package_name" json:"packageName"`
BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
DataType string `gorm:"column:data_type" json:"dataType"`
JsonData string `gorm:"column:json_data" json:"jsonData"` // JSON 数据字段
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据
Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
UploadPriority string `gorm:"column:upload_priority" json:"uploadPriority"`
}

type PackageCloneDAO struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
Name string `gorm:"column:name" json:"name"`
Description string `gorm:"column:description" json:"description"`
BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"`
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
ImageID string `gorm:"column:image_id" json:"imageID"`
CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
}

func (PackageCloneDAO) TableName() string {
return "packageClone" // 确保和数据库中的表名一致
}

type PackageCloneParam struct {
PackageID cdssdk.PackageID `json:"packageID" binding:"required"`
PackageName string `json:"packageName" binding:"required"`
BucketID cdssdk.BucketID `json:"bucketID" binding:"required"`
Name string `json:"name"`
Description string `json:"description"`
BootstrapObjectID cdssdk.ObjectID `json:"bootstrapObjectID"`
ClusterID schsdk.ClusterID `json:"clusterID"`
ParentImageID schsdk.ImageID `json:"parentImageID"`
ImageID string `json:"imageID"`
}

type PackageCloneVO struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
Name string `gorm:"column:name" json:"name"`
Description string `gorm:"column:description" json:"description"`
BootstrapObjectID cdssdk.ObjectID `gorm:"column:bootstrap_object_id" json:"bootstrapObjectID"`
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
ImageID string `gorm:"column:image_id" json:"imageID"`
CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
ClusterMapping ClusterMapping `gorm:"foreignKey:cluster_id;references:cluster_id" json:"cluster"`
}

type ClusterMapping struct {
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
ClusterName string `gorm:"column:cluster_name" json:"clusterName"`
StorageID cdssdk.StorageID `gorm:"column:storage_id" json:"storageID"`
StorageType string `gorm:"column:storage_type" json:"storageType"`
StoragePath string `gorm:"column:storage_path" json:"storagePath"`
}

func (ClusterMapping) TableName() string {
return "ClusterMapping"
}

//type PackageCloneClusterDAO struct {
// ID DataID `gorm:"column:id" json:"ID"`
// ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
// ClusterName string `gorm:"column:cluster_name" json:"clusterName"`
//}
//
//type PackageSpecifyClusterSchedule struct {
// serder.Metadata `union:"region"`
// PackageScheduleBase
// Type string `json:"type"`
//type PackageCloneCluster struct {
// ClusterID schsdk.ClusterID `json:"clusterID"`
// ClusterName string `json:"clusterName"`
//}

type ScheduleTarget interface {


Loading…
Cancel
Save