Browse Source

调整一些结构体目录结构

pull/53/head
JeshuaRen 4 months ago
parent
commit
d1aa4bd1c9
6 changed files with 99 additions and 123 deletions
  1. +40
    -80
      sdks/pcmscheduler/uploader_models.go
  2. +1
    -1
      sdks/sso/client.go
  3. +1
    -1
      sdks/sso/config.go
  4. +51
    -0
      sdks/sso/sso.go
  5. +6
    -0
      sdks/storage/models.go
  6. +0
    -41
      sdks/uploader/uploader.go

sdks/uploader/models.go → sdks/pcmscheduler/uploader_models.go View File

@@ -1,15 +1,12 @@
package uploadersdk
package sch


import ( import (
"gitlink.org.cn/cloudream/common/pkgs/types"
sch "gitlink.org.cn/cloudream/common/sdks/pcmscheduler"
schsdk "gitlink.org.cn/cloudream/common/sdks/scheduler"
"gitlink.org.cn/cloudream/common/sdks/scheduler"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage" cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
"gitlink.org.cn/cloudream/common/utils/serder"
"time" "time"
) )


type ClusterID string
//type ClusterID string


type BlockChain struct { type BlockChain struct {
ObjectID cdssdk.ObjectID `gorm:"column:object_id" json:"objectID"` ObjectID cdssdk.ObjectID `gorm:"column:object_id" json:"objectID"`
@@ -25,7 +22,7 @@ func (BlockChain) TableName() string {
} }


type Binding struct { type Binding struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"` UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
Name string `gorm:"column:name" json:"Name"` Name string `gorm:"column:name" json:"Name"`
DataType string `gorm:"column:data_type" json:"dataType"` DataType string `gorm:"column:data_type" json:"dataType"`
@@ -35,7 +32,7 @@ type Binding struct {
} }


type BindingDAO struct { type BindingDAO struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"` UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
Name string `gorm:"column:name" json:"Name"` Name string `gorm:"column:name" json:"Name"`
DataType string `gorm:"column:data_type" json:"dataType"` DataType string `gorm:"column:data_type" json:"dataType"`
@@ -46,7 +43,7 @@ type BindingDAO struct {
} }


type BindingAccessData struct { type BindingAccessData struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"` UserID cdssdk.UserID `gorm:"column:user_id" json:"userID"`
UserName string `gorm:"column:username" json:"userName"` UserName string `gorm:"column:username" json:"userName"`
SSOId string `gorm:"column:sso_id" json:"ssoID"` SSOId string `gorm:"column:sso_id" json:"ssoID"`
@@ -60,16 +57,16 @@ type BindingAccessData struct {
} }


type BindingDetail struct { type BindingDetail struct {
ID DataID `json:"ID"`
UserID cdssdk.UserID `json:"ownerID"`
UserName string `json:"userName"`
SSOId string `json:"ssoID"`
Name string `json:"Name"`
Info sch.DataBinding `json:"info"`
Package Package `json:"package"`
Status string `json:"status"`
AccessLevel string `json:"accessLevel"`
CreateTime time.Time `json:"createTime"`
ID schsdk.DataID `json:"ID"`
UserID cdssdk.UserID `json:"ownerID"`
UserName string `json:"userName"`
SSOId string `json:"ssoID"`
Name string `json:"Name"`
Info DataBinding `json:"info"`
Package Package `json:"package"`
Status string `json:"status"`
AccessLevel string `json:"accessLevel"`
CreateTime time.Time `json:"createTime"`
} }


func (Binding) TableName() string { func (Binding) TableName() string {
@@ -77,11 +74,11 @@ func (Binding) TableName() string {
} }


type BindingCluster struct { type BindingCluster struct {
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
ClusterID ClusterID `gorm:"column:cluster_id" json:"clusterID"`
Status string `gorm:"column:status" json:"status"`
Param string `gorm:"column:param" json:"Param"`
JsonData string `gorm:"column:json_data" json:"jsonData"`
BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
Status string `gorm:"column:status" json:"status"`
Param string `gorm:"column:param" json:"Param"`
JsonData string `gorm:"column:json_data" json:"jsonData"`
} }


func (BindingCluster) TableName() string { func (BindingCluster) TableName() string {
@@ -98,7 +95,7 @@ func (Folder) TableName() string {
return "folders" return "folders"
} }


type DataID int64
// type DataID int64
type FolderID int64 type FolderID int64


type Cluster struct { type Cluster struct {
@@ -112,19 +109,19 @@ func (Cluster) TableName() string {
} }


type Package struct { 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"`
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"`
UploadPriority sch.UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"`
BindingInfo sch.DataBinding `gorm:"column:binding_info" json:"bindingInfo"`
PackageType string `gorm:"column:package_type" json:"packageType"`
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"`
BindingID schsdk.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"`
UploadPriority UploadPriority `gorm:"column:upload_priority" json:"uploadPriority"`
BindingInfo DataBinding `gorm:"column:binding_info" json:"bindingInfo"`
PackageType string `gorm:"column:package_type" json:"packageType"`
} }


type PackageDAO struct { type PackageDAO struct {
@@ -133,7 +130,7 @@ type PackageDAO struct {
PackageName string `gorm:"column:package_name" json:"packageName"` PackageName string `gorm:"column:package_name" json:"packageName"`
BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"` BucketID cdssdk.BucketID `gorm:"column:bucket_id" json:"bucketID"`
DataType string `gorm:"column:data_type" json:"dataType"` DataType string `gorm:"column:data_type" json:"dataType"`
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:create_time" json:"createTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"`
UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据 UploadedCluster []Cluster `gorm:"foreignKey:package_id;references:package_id" json:"clusters"` // 关联 Cluster 数据
Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"` Versions []PackageCloneDAO `gorm:"foreignKey:parent_package_id;references:package_id" json:"versions"`
@@ -143,7 +140,7 @@ type PackageDAO struct {
} }


type PackageCloneDAO struct { type PackageCloneDAO struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"` ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"` ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
Name string `gorm:"column:name" json:"name"` Name string `gorm:"column:name" json:"name"`
@@ -152,7 +149,7 @@ type PackageCloneDAO struct {
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
//ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"` //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
ImageID schsdk.ImageID `gorm:"column:image_id" json:"imageID"` ImageID schsdk.ImageID `gorm:"column:image_id" json:"imageID"`
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:created_at" json:"createTime"` CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
} }


@@ -174,7 +171,7 @@ type PackageCloneParam struct {
} }


type PackageCloneVO struct { type PackageCloneVO struct {
ID DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ID schsdk.DataID `gorm:"column:id;primaryKey;autoIncrement" json:"ID"`
ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"` ParentPackageID cdssdk.PackageID `gorm:"column:parent_package_id" json:"parentPackageID"`
ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"` ClonePackageID cdssdk.PackageID `gorm:"column:clone_package_id" json:"clonePackageID"`
Name string `gorm:"column:name" json:"name"` Name string `gorm:"column:name" json:"name"`
@@ -183,7 +180,7 @@ type PackageCloneVO struct {
ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"` ClusterID schsdk.ClusterID `gorm:"column:cluster_id" json:"clusterID"`
//ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"` //ParentImageID schsdk.ImageID `gorm:"column:parent_image_id" json:"parentImageID"`
ImageID string `gorm:"column:image_id" json:"imageID"` ImageID string `gorm:"column:image_id" json:"imageID"`
BindingID DataID `gorm:"column:binding_id" json:"bindingID"`
BindingID schsdk.DataID `gorm:"column:binding_id" json:"bindingID"`
CreateTime time.Time `gorm:"column:created_at" json:"createTime"` CreateTime time.Time `gorm:"column:created_at" json:"createTime"`
ClusterMapping ClusterMapping `gorm:"foreignKey:cluster_id;references:cluster_id" json:"cluster"` ClusterMapping ClusterMapping `gorm:"foreignKey:cluster_id;references:cluster_id" json:"cluster"`
} }
@@ -199,40 +196,3 @@ type ClusterMapping struct {
func (ClusterMapping) TableName() string { func (ClusterMapping) TableName() string {
return "cluster_mapping" return "cluster_mapping"
} }

type ScheduleTarget interface {
Noop()
}

var DataScheduleTargetTypeUnion = types.NewTypeUnion[ScheduleTarget](
(*JCSScheduleTarget)(nil),
(*UrlScheduleTarget)(nil),
)

var _ = serder.UseTypeUnionInternallyTagged(&DataScheduleTargetTypeUnion, "type")

type ScheduleTargetBase struct{}

func (d *ScheduleTargetBase) Noop() {}

type JCSScheduleTarget struct {
ScheduleTargetBase
UserID cdssdk.UserID `json:"userID"`
ScheduleStorages []ScheduleStorage `json:"scheduleStorages"`
}

type UrlScheduleTarget struct {
ScheduleTargetBase
ScheduleUrls []ScheduleUrl `json:"scheduleUrls"`
}

type ScheduleUrl struct {
ClusterID ClusterID `json:"clusterID"`
//RepositoryName string `json:"repositoryName"`
JsonData string `json:"jsonData"`
}

type ScheduleStorage struct {
StorageID cdssdk.StorageID `json:"storageID"`
RootPath string `json:"rootPath"`
}

sdks/uploader/client.go → sdks/sso/client.go View File

@@ -1,4 +1,4 @@
package uploadersdk
package sso


import ( import (
"fmt" "fmt"

sdks/uploader/config.go → sdks/sso/config.go View File

@@ -1,4 +1,4 @@
package uploadersdk
package sso


type Config struct { type Config struct {
URL string `json:"url"` URL string `json:"url"`

+ 51
- 0
sdks/sso/sso.go View File

@@ -0,0 +1,51 @@
package sso

import (
"fmt"
"gitlink.org.cn/cloudream/common/consts/errorcode"
"gitlink.org.cn/cloudream/common/utils/http2"
"gitlink.org.cn/cloudream/common/utils/serder"
"net/url"
"strings"
)

type SSOInfoResp struct {
NickName string `json:"nickName"`
Roles []string `json:"roles"`
ID string `json:"id"`
Username string `json:"username"`
}

func (c *Client) GetSSOInfo(token string) (*SSOInfoResp, error) {
targetUrl, err := url.JoinPath(c.baseURL, "/admin/info")
if err != nil {
return nil, err
}

resp, err := http2.GetJSON(targetUrl, http2.RequestParam{
Header: map[string]string{
"Authorization": token,
"Host": "ai4m.jointcloud.net",
"Connection": "keep-alive",
},
})
if err != nil {
return nil, err
}

contType := resp.Header.Get("Content-Type")
if strings.Contains(contType, http2.ContentTypeJSON) {
var codeResp response[SSOInfoResp]
if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
return nil, fmt.Errorf("parsing response: %w", err)
}

if codeResp.Code == errorcode.OK {
return &codeResp.Data, nil
}

return nil, codeResp.ToError()
}

return nil, fmt.Errorf("unknow response content type: %s", contType)
}

+ 6
- 0
sdks/storage/models.go View File

@@ -396,3 +396,9 @@ type UserStats struct {
FileCount int64 `json:"fileCount" gorm:"column:FileCount"` FileCount int64 `json:"fileCount" gorm:"column:FileCount"`
TotalSize int64 `json:"totalSize" gorm:"column:TotalSize"` TotalSize int64 `json:"totalSize" gorm:"column:TotalSize"`
} }

type UserInfo struct {
Name string `json:"name"`
UserID UserID `json:"userID"`
SsoID string `json:"ssoID"`
}

+ 0
- 41
sdks/uploader/uploader.go View File

@@ -1,41 +0,0 @@
package uploadersdk

import (
"gitlink.org.cn/cloudream/common/sdks/storage/cdsapi"
"mime/multipart"
)

type ObjectUploadReq struct {
Info cdsapi.ObjectUploadInfo `form:"info" binding:"required"`
Files []*multipart.FileHeader `form:"files"`
}

//func (c *Client) Upload(req ObjectUploadReq) (*cdsapi.ObjectUploadResp, error) {
// targetUrl, err := url.JoinPath(c.baseURL, "/object/upload")
// if err != nil {
// return nil, err
// }
//
// resp, err := http2.PostJSON(targetUrl, http2.RequestParam{
// Body: req,
// })
// if err != nil {
// return nil, err
// }
//
// contType := resp.Header.Get("Content-Type")
// if strings.Contains(contType, http2.ContentTypeJSON) {
// var codeResp response[cdsapi.ObjectUploadResp]
// if err := serder.JSONToObjectStream(resp.Body, &codeResp); err != nil {
// return nil, fmt.Errorf("parsing response: %w", err)
// }
//
// if codeResp.Code == errorcode.OK {
// return &codeResp.Data, nil
// }
//
// return nil, codeResp.ToError()
// }
//
// return nil, fmt.Errorf("unknow response content type: %s", contType)
//}

Loading…
Cancel
Save