forked from JointCloud/JCC-CSScheduler
76 lines
2.6 KiB
Go
76 lines
2.6 KiB
Go
package mq
|
|
|
|
import (
|
|
"gitlink.org.cn/cloudream/common/consts/errorcode"
|
|
"gitlink.org.cn/cloudream/common/pkgs/logger"
|
|
"gitlink.org.cn/cloudream/common/pkgs/mq"
|
|
uopsdk "gitlink.org.cn/cloudream/common/sdks/unifyops"
|
|
schglb "gitlink.org.cn/cloudream/scheduler/common/globals"
|
|
colmq "gitlink.org.cn/cloudream/scheduler/common/pkgs/mq/collector"
|
|
)
|
|
|
|
func (svc *Service) GetOneResourceData(msg *colmq.GetOneResourceData) (*colmq.GetOneResourceDataResp, *mq.CodeMessage) {
|
|
uniOpsCli, err := schglb.UnifyOpsPool.Acquire()
|
|
if err != nil {
|
|
logger.Warnf("new unifyOps client, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "new unifyOps client failed")
|
|
}
|
|
defer schglb.UnifyOpsPool.Release(uniOpsCli)
|
|
|
|
var resp uopsdk.ResourceData
|
|
switch msg.Type {
|
|
case uopsdk.ResourceTypeCPU:
|
|
resp, err = uniOpsCli.GetCPUData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
case uopsdk.ResourceTypeNPU:
|
|
resp, err = uniOpsCli.GetNPUData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
case uopsdk.ResourceTypeGPU:
|
|
resp, err = uniOpsCli.GetGPUData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
case uopsdk.ResourceTypeMLU:
|
|
resp, err = uniOpsCli.GetMLUData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
case uopsdk.ResourceTypeStorage:
|
|
resp, err = uniOpsCli.GetStorageData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
case uopsdk.ResourceTypeMemory:
|
|
resp, err = uniOpsCli.GetMemoryData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
default:
|
|
return nil, mq.Failed(errorcode.OperationFailed, "invalid resource type")
|
|
}
|
|
|
|
if err != nil {
|
|
logger.Warnf("get resource data failed, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "get resource data failed")
|
|
}
|
|
|
|
return mq.ReplyOK(colmq.NewGetOneResourceDataResp(resp))
|
|
}
|
|
|
|
func (svc *Service) GetAllResourceData(msg *colmq.GetAllResourceData) (*colmq.GetAllResourceDataResp, *mq.CodeMessage) {
|
|
uniOpsCli, err := schglb.UnifyOpsPool.Acquire()
|
|
if err != nil {
|
|
logger.Warnf("new unifyOps client, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "new unifyOps client failed")
|
|
}
|
|
defer schglb.UnifyOpsPool.Release(uniOpsCli)
|
|
|
|
resps, err := uniOpsCli.GetIndicatorData(uopsdk.GetOneResourceDataReq{
|
|
SlwNodeID: msg.UOPSlwNodeID,
|
|
})
|
|
if err != nil {
|
|
logger.Warnf("get all resource data failed, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "get all resource data failed")
|
|
}
|
|
|
|
return mq.ReplyOK(colmq.NewGetAllResourceDataResp(*resps))
|
|
}
|