|
- package agent
-
- import (
- "gitlink.org.cn/cloudream/common/pkgs/mq"
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
-
- "gitlink.org.cn/cloudream/storage/common/pkgs/db/model"
- )
-
- type StorageService interface {
- StartStorageLoadPackage(msg *StartStorageLoadPackage) (*StartStorageLoadPackageResp, *mq.CodeMessage)
-
- WaitStorageLoadPackage(msg *WaitStorageLoadPackage) (*WaitStorageLoadPackageResp, *mq.CodeMessage)
-
- StorageCheck(msg *StorageCheck) (*StorageCheckResp, *mq.CodeMessage)
-
- StartStorageCreatePackage(msg *StartStorageCreatePackage) (*StartStorageCreatePackageResp, *mq.CodeMessage)
-
- WaitStorageCreatePackage(msg *WaitStorageCreatePackage) (*WaitStorageCreatePackageResp, *mq.CodeMessage)
- }
-
- // 启动调度Package的任务
- var _ = Register(Service.StartStorageLoadPackage)
-
- type StartStorageLoadPackage struct {
- mq.MessageBodyBase
- UserID int64 `json:"userID"`
- PackageID int64 `json:"packageID"`
- StorageID int64 `json:"storageID"`
- }
- type StartStorageLoadPackageResp struct {
- mq.MessageBodyBase
- TaskID string `json:"taskID"`
- }
-
- func NewStartStorageLoadPackage(userID int64, packageID int64, storageID int64) *StartStorageLoadPackage {
- return &StartStorageLoadPackage{
- UserID: userID,
- PackageID: packageID,
- StorageID: storageID,
- }
- }
- func NewStartStorageLoadPackageResp(taskID string) *StartStorageLoadPackageResp {
- return &StartStorageLoadPackageResp{
- TaskID: taskID,
- }
- }
- func (client *Client) StartStorageLoadPackage(msg *StartStorageLoadPackage, opts ...mq.RequestOption) (*StartStorageLoadPackageResp, error) {
- return mq.Request(Service.StartStorageLoadPackage, client.rabbitCli, msg, opts...)
- }
-
- // 等待调度Package的任务
- var _ = Register(Service.WaitStorageLoadPackage)
-
- type WaitStorageLoadPackage struct {
- mq.MessageBodyBase
- TaskID string `json:"taskID"`
- WaitTimeoutMs int64 `json:"waitTimeout"`
- }
- type WaitStorageLoadPackageResp struct {
- mq.MessageBodyBase
- IsComplete bool `json:"isComplete"`
- Error string `json:"error"`
- FullPath string `json:"fullPath"`
- }
-
- func NewWaitStorageLoadPackage(taskID string, waitTimeoutMs int64) *WaitStorageLoadPackage {
- return &WaitStorageLoadPackage{
- TaskID: taskID,
- WaitTimeoutMs: waitTimeoutMs,
- }
- }
- func NewWaitStorageLoadPackageResp(isComplete bool, err string, fullPath string) *WaitStorageLoadPackageResp {
- return &WaitStorageLoadPackageResp{
- IsComplete: isComplete,
- Error: err,
- FullPath: fullPath,
- }
- }
- func (client *Client) WaitStorageLoadPackage(msg *WaitStorageLoadPackage, opts ...mq.RequestOption) (*WaitStorageLoadPackageResp, error) {
- return mq.Request(Service.WaitStorageLoadPackage, client.rabbitCli, msg, opts...)
- }
-
- // 检查Storage
- var _ = Register(Service.StorageCheck)
-
- const (
- CHECK_STORAGE_RESP_OP_DELETE = "Delete"
- CHECK_STORAGE_RESP_OP_SET_NORMAL = "SetNormal"
- )
-
- type StorageCheck struct {
- mq.MessageBodyBase
- StorageID int64 `json:"storageID"`
- Directory string `json:"directory"`
- IsComplete bool `json:"isComplete"`
- Packages []model.StoragePackage `json:"packages"`
- }
- type StorageCheckResp struct {
- mq.MessageBodyBase
- DirectoryState string `json:"directoryState"`
- Entries []StorageCheckRespEntry `json:"entries"`
- }
- type StorageCheckRespEntry struct {
- PackageID int64 `json:"packageID"`
- UserID int64 `json:"userID"`
- Operation string `json:"operation"`
- }
-
- func NewStorageCheck(storageID int64, directory string, isComplete bool, packages []model.StoragePackage) *StorageCheck {
- return &StorageCheck{
- StorageID: storageID,
- Directory: directory,
- IsComplete: isComplete,
- Packages: packages,
- }
- }
- func NewStorageCheckResp(dirState string, entries []StorageCheckRespEntry) *StorageCheckResp {
- return &StorageCheckResp{
- DirectoryState: dirState,
- Entries: entries,
- }
- }
- func NewStorageCheckRespEntry(packageID int64, userID int64, op string) StorageCheckRespEntry {
- return StorageCheckRespEntry{
- PackageID: packageID,
- UserID: userID,
- Operation: op,
- }
- }
- func (client *Client) StorageCheck(msg *StorageCheck, opts ...mq.RequestOption) (*StorageCheckResp, error) {
- return mq.Request(Service.StorageCheck, client.rabbitCli, msg, opts...)
- }
-
- // 启动从Storage上传Package的任务
- var _ = Register(Service.StartStorageCreatePackage)
-
- type StartStorageCreatePackage struct {
- mq.MessageBodyBase
- UserID int64 `json:"userID"`
- BucketID int64 `json:"bucketID"`
- Name string `json:"name"`
- StorageID int64 `json:"storageID"`
- Path string `json:"path"`
- Redundancy cdssdk.TypedRedundancyInfo `json:"redundancy"`
- NodeAffinity *int64 `json:"nodeAffinity"`
- }
- type StartStorageCreatePackageResp struct {
- mq.MessageBodyBase
- TaskID string `json:"taskID"`
- }
-
- func NewStartStorageCreatePackage(userID int64, bucketID int64, name string, storageID int64, path string, redundancy cdssdk.TypedRedundancyInfo, nodeAffinity *int64) *StartStorageCreatePackage {
- return &StartStorageCreatePackage{
- UserID: userID,
- BucketID: bucketID,
- Name: name,
- StorageID: storageID,
- Path: path,
- Redundancy: redundancy,
- NodeAffinity: nodeAffinity,
- }
- }
- func NewStartStorageCreatePackageResp(taskID string) *StartStorageCreatePackageResp {
- return &StartStorageCreatePackageResp{
- TaskID: taskID,
- }
- }
- func (client *Client) StartStorageCreatePackage(msg *StartStorageCreatePackage, opts ...mq.RequestOption) (*StartStorageCreatePackageResp, error) {
- return mq.Request(Service.StartStorageCreatePackage, client.rabbitCli, msg, opts...)
- }
-
- // 等待从Storage上传Package的任务
- var _ = Register(Service.WaitStorageCreatePackage)
-
- type WaitStorageCreatePackage struct {
- mq.MessageBodyBase
- TaskID string `json:"taskID"`
- WaitTimeoutMs int64 `json:"waitTimeout"`
- }
- type WaitStorageCreatePackageResp struct {
- mq.MessageBodyBase
- IsComplete bool `json:"isComplete"`
- Error string `json:"error"`
- PackageID int64 `json:"packageID"`
- }
-
- func NewWaitStorageCreatePackage(taskID string, waitTimeoutMs int64) *WaitStorageCreatePackage {
- return &WaitStorageCreatePackage{
- TaskID: taskID,
- WaitTimeoutMs: waitTimeoutMs,
- }
- }
- func NewWaitStorageCreatePackageResp(isComplete bool, err string, packageID int64) *WaitStorageCreatePackageResp {
- return &WaitStorageCreatePackageResp{
- IsComplete: isComplete,
- Error: err,
- PackageID: packageID,
- }
- }
- func (client *Client) WaitStorageCreatePackage(msg *WaitStorageCreatePackage, opts ...mq.RequestOption) (*WaitStorageCreatePackageResp, error) {
- return mq.Request(Service.WaitStorageCreatePackage, client.rabbitCli, msg, opts...)
- }
|