161 lines
4.2 KiB
Go
161 lines
4.2 KiB
Go
package collector
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/models"
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq"
|
|
myreflect "gitlink.org.cn/cloudream/common/utils/reflect"
|
|
)
|
|
|
|
// 获取package的缓存分布情况
|
|
var _ = Register(Service.PackageGetCachedNodes)
|
|
|
|
type PackageGetCachedNodes struct {
|
|
UserID int64 `json:"userID"`
|
|
PackageID int64 `json:"packageID"`
|
|
}
|
|
|
|
func NewPackageGetCachedNodes(userID int64, packageID int64) PackageGetCachedNodes {
|
|
return PackageGetCachedNodes{
|
|
UserID: userID,
|
|
PackageID: packageID,
|
|
}
|
|
}
|
|
|
|
type PackageGetCachedNodesResp struct {
|
|
models.PackageCachingInfo
|
|
}
|
|
|
|
func NewPackageGetCachedNodesResp(nodeInfos []models.NodePackageCachingInfo, packageSize int64, redunancyType string) PackageGetCachedNodesResp {
|
|
return PackageGetCachedNodesResp{
|
|
PackageCachingInfo: models.PackageCachingInfo{
|
|
NodeInfos: nodeInfos,
|
|
PackageSize: packageSize,
|
|
RedunancyType: redunancyType,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (c *Client) PackageGetCachedNodes(msg PackageGetCachedNodes, opts ...mq.RequestOption) (*PackageGetCachedNodesResp, error) {
|
|
return mq.Request[PackageGetCachedNodesResp](c.rabbitCli, msg, opts...)
|
|
}
|
|
|
|
// 获取package的存储分布情况
|
|
var _ = Register(Service.PackageGetLoadedNodes)
|
|
|
|
type PackageGetLoadedNodes struct {
|
|
UserID int64 `json:"userID"`
|
|
PackageID int64 `json:"packageID"`
|
|
}
|
|
|
|
func NewPackageGetLoadedNodes(userID int64, packageID int64) PackageGetLoadedNodes {
|
|
return PackageGetLoadedNodes{
|
|
UserID: userID,
|
|
PackageID: packageID,
|
|
}
|
|
}
|
|
|
|
type PackageGetLoadedNodesResp struct {
|
|
NodeIDs []int64 `json:"nodeIDs"`
|
|
}
|
|
|
|
func NewPackageGetLoadedNodesResp(nodeIDs []int64) PackageGetLoadedNodesResp {
|
|
return PackageGetLoadedNodesResp{
|
|
NodeIDs: nodeIDs,
|
|
}
|
|
}
|
|
|
|
func (c *Client) PackageGetLoadedNodes(msg PackageGetLoadedNodes, opts ...mq.RequestOption) (*PackageGetLoadedNodesResp, error) {
|
|
return mq.Request[PackageGetLoadedNodesResp](c.rabbitCli, msg, opts...)
|
|
}
|
|
|
|
// 获取节点信息
|
|
var _ = Register(Service.GetSlwNodeInfo)
|
|
|
|
type GetSlwNodeInfo struct {
|
|
}
|
|
|
|
func NewGetSlwNodeInfo() GetSlwNodeInfoResp {
|
|
return GetSlwNodeInfoResp{}
|
|
}
|
|
|
|
type GetSlwNodeInfoResp struct {
|
|
Nodes []models.SlwNode `json:"nodes"`
|
|
}
|
|
|
|
func NewGetSlwNodeInfoResp(nodes []models.SlwNode) GetSlwNodeInfoResp {
|
|
return GetSlwNodeInfoResp{
|
|
Nodes: nodes,
|
|
}
|
|
}
|
|
|
|
func (c *Client) GetSlwNodeInfo(msg GetSlwNodeInfo, opts ...mq.RequestOption) (*[]GetSlwNodeInfoResp, error) {
|
|
return mq.Request[[]GetSlwNodeInfoResp](c.rabbitCli, msg, opts...)
|
|
}
|
|
|
|
// 根据nodeID和类型名称获取节点中某一类型的信息
|
|
var _ = Register(Service.GetOneResourceData)
|
|
|
|
type GetOneResourceData struct {
|
|
NodeId int64 `json:"nodeId"`
|
|
ResourceType string `json:"type"`
|
|
}
|
|
|
|
func NewGetOneResourceData(nodeId int64, resourceType string) GetOneResourceData {
|
|
return GetOneResourceData{
|
|
NodeId: nodeId,
|
|
ResourceType: resourceType,
|
|
}
|
|
}
|
|
|
|
type GetOneResourceDataResp struct {
|
|
Data models.ResourceData `json:"data"`
|
|
}
|
|
|
|
func NewGetOneResourceDataResp(data models.ResourceData) GetOneResourceDataResp {
|
|
return GetOneResourceDataResp{
|
|
Data: data,
|
|
}
|
|
}
|
|
|
|
func (c *Client) GetOneResourceData(msg GetOneResourceData, opts ...mq.RequestOption) (*GetOneResourceDataResp, error) {
|
|
return mq.Request[GetOneResourceDataResp](c.rabbitCli, msg, opts...)
|
|
}
|
|
|
|
// 根据nodeID获取节点全部资源信息
|
|
var _ = Register(Service.GetAllResourceData)
|
|
|
|
type GetAllResourceData struct {
|
|
NodeId int64 `json:"nodeId"`
|
|
}
|
|
|
|
func NewGetAllResourceData(nodeId int64) GetAllResourceData {
|
|
return GetAllResourceData{
|
|
NodeId: nodeId,
|
|
}
|
|
}
|
|
|
|
type GetAllResourceDataResp struct {
|
|
Datas []models.ResourceData `json:"datas"`
|
|
}
|
|
|
|
func NewGetAllResourceDataResp(datas []models.ResourceData) GetAllResourceDataResp {
|
|
return GetAllResourceDataResp{
|
|
Datas: datas,
|
|
}
|
|
}
|
|
|
|
func (c *Client) GetAllResourceData(msg GetAllResourceData, opts ...mq.RequestOption) (*GetAllResourceDataResp, error) {
|
|
return mq.Request[GetAllResourceDataResp](c.rabbitCli, msg, opts...)
|
|
}
|
|
|
|
func init() {
|
|
mq.RegisterTypeSet[models.ResourceData](
|
|
myreflect.TypeOf[models.CPUResourceData](),
|
|
myreflect.TypeOf[models.NPUResourceData](),
|
|
myreflect.TypeOf[models.GPUResourceData](),
|
|
myreflect.TypeOf[models.MLUResourceData](),
|
|
myreflect.TypeOf[models.StorageResourceData](),
|
|
myreflect.TypeOf[models.MemoryResourceData](),
|
|
)
|
|
}
|