|
- package coordinator
-
- import (
- "gitlink.org.cn/cloudream/common/pkgs/mq"
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- stgmod "gitlink.org.cn/cloudream/storage/common/models"
- "gitlink.org.cn/cloudream/storage/common/pkgs/db2/model"
- )
-
- type StorageService interface {
- GetStorage(msg *GetStorage) (*GetStorageResp, *mq.CodeMessage)
-
- GetStorageDetails(msg *GetStorageDetails) (*GetStorageDetailsResp, *mq.CodeMessage)
-
- GetUserStorageDetails(msg *GetUserStorageDetails) (*GetUserStorageDetailsResp, *mq.CodeMessage)
-
- GetStorageByName(msg *GetStorageByName) (*GetStorageByNameResp, *mq.CodeMessage)
-
- StoragePackageLoaded(msg *StoragePackageLoaded) (*StoragePackageLoadedResp, *mq.CodeMessage)
- }
-
- // 获取Storage信息
- var _ = Register(Service.GetStorage)
-
- type GetStorage struct {
- mq.MessageBodyBase
- UserID cdssdk.UserID `json:"userID"`
- StorageID cdssdk.StorageID `json:"storageID"`
- }
- type GetStorageResp struct {
- mq.MessageBodyBase
- Storage model.Storage `json:"storage"`
- }
-
- func ReqGetStorage(userID cdssdk.UserID, storageID cdssdk.StorageID) *GetStorage {
- return &GetStorage{
- UserID: userID,
- StorageID: storageID,
- }
- }
- func RespGetStorage(stg model.Storage) *GetStorageResp {
- return &GetStorageResp{
- Storage: stg,
- }
- }
- func (client *Client) GetStorage(msg *GetStorage) (*GetStorageResp, error) {
- return mq.Request(Service.GetStorage, client.rabbitCli, msg)
- }
-
- // 获取Storage的详细信息
- var _ = Register(Service.GetStorageDetails)
-
- type GetStorageDetails struct {
- mq.MessageBodyBase
- StorageIDs []cdssdk.StorageID `json:"storageIDs"`
- }
- type GetStorageDetailsResp struct {
- mq.MessageBodyBase
- Storages []*stgmod.StorageDetail `json:"storages"`
- }
-
- func ReqGetStorageDetails(storageIDs []cdssdk.StorageID) *GetStorageDetails {
- return &GetStorageDetails{
- StorageIDs: storageIDs,
- }
- }
- func RespGetStorageDetails(stgs []*stgmod.StorageDetail) *GetStorageDetailsResp {
- return &GetStorageDetailsResp{
- Storages: stgs,
- }
- }
-
- func (r *GetStorageDetailsResp) ToMap() map[cdssdk.StorageID]stgmod.StorageDetail {
- m := make(map[cdssdk.StorageID]stgmod.StorageDetail)
- for _, stg := range r.Storages {
- if stg == nil {
- continue
- }
-
- m[stg.Storage.StorageID] = *stg
- }
- return m
- }
-
- func (client *Client) GetStorageDetails(msg *GetStorageDetails) (*GetStorageDetailsResp, error) {
- return mq.Request(Service.GetStorageDetails, client.rabbitCli, msg)
- }
-
- var _ = Register(Service.GetStorageByName)
-
- type GetStorageByName struct {
- mq.MessageBodyBase
- UserID cdssdk.UserID `json:"userID"`
- Name string `json:"name"`
- }
- type GetStorageByNameResp struct {
- mq.MessageBodyBase
- Storage model.Storage `json:"storage"`
- }
-
- func ReqGetStorageByName(userID cdssdk.UserID, name string) *GetStorageByName {
- return &GetStorageByName{
- UserID: userID,
- Name: name,
- }
- }
- func RespGetStorageByNameResp(storage model.Storage) *GetStorageByNameResp {
- return &GetStorageByNameResp{
- Storage: storage,
- }
- }
- func (client *Client) GetStorageByName(msg *GetStorageByName) (*GetStorageByNameResp, error) {
- return mq.Request(Service.GetStorageByName, client.rabbitCli, msg)
- }
-
- // 获取用户的Storage信息
- var _ = Register(Service.GetUserStorageDetails)
-
- type GetUserStorageDetails struct {
- mq.MessageBodyBase
- UserID cdssdk.UserID `json:"userID"`
- }
- type GetUserStorageDetailsResp struct {
- mq.MessageBodyBase
- Storages []stgmod.StorageDetail `json:"storages"`
- }
-
- func ReqGetUserStorageDetails(userID cdssdk.UserID) *GetUserStorageDetails {
- return &GetUserStorageDetails{
- UserID: userID,
- }
- }
- func RespGetUserStorageDetails(stgs []stgmod.StorageDetail) *GetUserStorageDetailsResp {
- return &GetUserStorageDetailsResp{
- Storages: stgs,
- }
- }
- func (client *Client) GetUserStorageDetails(msg *GetUserStorageDetails) (*GetUserStorageDetailsResp, error) {
- return mq.Request(Service.GetUserStorageDetails, client.rabbitCli, msg)
- }
-
- // 提交调度记录
- var _ = Register(Service.StoragePackageLoaded)
-
- type StoragePackageLoaded struct {
- mq.MessageBodyBase
- UserID cdssdk.UserID `json:"userID"`
- StorageID cdssdk.StorageID `json:"storageID"`
- PackageID cdssdk.PackageID `json:"packageID"`
- PinnedBlocks []stgmod.ObjectBlock `json:"pinnedBlocks"`
- }
- type StoragePackageLoadedResp struct {
- mq.MessageBodyBase
- }
-
- func NewStoragePackageLoaded(userID cdssdk.UserID, stgID cdssdk.StorageID, packageID cdssdk.PackageID, pinnedBlocks []stgmod.ObjectBlock) *StoragePackageLoaded {
- return &StoragePackageLoaded{
- UserID: userID,
- PackageID: packageID,
- StorageID: stgID,
- PinnedBlocks: pinnedBlocks,
- }
- }
- func NewStoragePackageLoadedResp() *StoragePackageLoadedResp {
- return &StoragePackageLoadedResp{}
- }
- func (client *Client) StoragePackageLoaded(msg *StoragePackageLoaded) (*StoragePackageLoadedResp, error) {
- return mq.Request(Service.StoragePackageLoaded, client.rabbitCli, msg)
- }
|