JCC-CSScheduler/common/pkgs/mq/collector/storage.go

72 lines
2.2 KiB
Go

package collector
import (
"gitlink.org.cn/cloudream/common/pkgs/mq"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
)
type StorageService interface {
PackageGetCachedStgNodes(msg *PackageGetCachedStgNodes) (*PackageGetCachedStgNodesResp, *mq.CodeMessage)
PackageGetLoadedStgs(msg *PackageGetLoadedStgs) (*PackageGetLoadedStgsResp, *mq.CodeMessage)
}
// 获取package的缓存分布情况
var _ = Register(Service.PackageGetCachedStgNodes)
type PackageGetCachedStgNodes struct {
mq.MessageBodyBase
UserID cdssdk.UserID `json:"userID"`
PackageID cdssdk.PackageID `json:"packageID"`
}
type PackageGetCachedStgNodesResp struct {
mq.MessageBodyBase
cdssdk.PackageCachingInfo
}
func NewPackageGetCachedStgNodes(userID cdssdk.UserID, packageID cdssdk.PackageID) *PackageGetCachedStgNodes {
return &PackageGetCachedStgNodes{
UserID: userID,
PackageID: packageID,
}
}
func NewPackageGetCachedStgNodesResp(nodeInfos []cdssdk.StoragePackageCachingInfo, packageSize int64) *PackageGetCachedStgNodesResp {
return &PackageGetCachedStgNodesResp{
PackageCachingInfo: cdssdk.PackageCachingInfo{
StorageInfos: nodeInfos,
PackageSize: packageSize,
},
}
}
func (c *Client) PackageGetCachedStgNodes(msg *PackageGetCachedStgNodes, opts ...mq.RequestOption) (*PackageGetCachedStgNodesResp, error) {
return mq.Request(Service.PackageGetCachedStgNodes, c.rabbitCli, msg, opts...)
}
// 获取package的存储分布情况
var _ = Register(Service.PackageGetLoadedStgs)
type PackageGetLoadedStgs struct {
mq.MessageBodyBase
UserID cdssdk.UserID `json:"userID"`
PackageID cdssdk.PackageID `json:"packageID"`
}
type PackageGetLoadedStgsResp struct {
mq.MessageBodyBase
StgIDs []cdssdk.StorageID `json:"stgNodeIDs"`
}
func NewPackageGetLoadedStgs(userID cdssdk.UserID, packageID cdssdk.PackageID) *PackageGetLoadedStgs {
return &PackageGetLoadedStgs{
UserID: userID,
PackageID: packageID,
}
}
func NewPackageGetLoadedStgsResp(stgIDs []cdssdk.StorageID) *PackageGetLoadedStgsResp {
return &PackageGetLoadedStgsResp{
StgIDs: stgIDs,
}
}
func (c *Client) PackageGetLoadedStgs(msg *PackageGetLoadedStgs, opts ...mq.RequestOption) (*PackageGetLoadedStgsResp, error) {
return mq.Request(Service.PackageGetLoadedStgs, c.rabbitCli, msg, opts...)
}