53 lines
1.9 KiB
Go
53 lines
1.9 KiB
Go
package mq
|
|
|
|
import (
|
|
"github.com/samber/lo"
|
|
"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) GetSlwNodeInfo(msg *colmq.GetSlwNodeInfo) (*colmq.GetSlwNodeInfoResp, *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)
|
|
|
|
resp, err := uniOpsCli.GetAllSlwNodeInfo()
|
|
if err != nil {
|
|
logger.Warnf("get slwNode info failed, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "get slwNode info failed")
|
|
}
|
|
|
|
node, ok := lo.Find(resp, func(item uopsdk.SlwNode) bool { return item.ID == msg.UOPSlwNodeID })
|
|
if !ok {
|
|
logger.WithField("SlwNodeID", msg.UOPSlwNodeID).
|
|
Warnf("slw node not found")
|
|
return nil, mq.Failed(errorcode.OperationFailed, "slw node not found")
|
|
}
|
|
|
|
return mq.ReplyOK(colmq.NewGetSlwNodeInfoResp(node))
|
|
}
|
|
|
|
func (svc *Service) GetAllSlwNodeInfo(msg *colmq.GetAllSlwNodeInfo) (*colmq.GetAllSlwNodeInfoResp, *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)
|
|
|
|
resp, err := uniOpsCli.GetAllSlwNodeInfo()
|
|
if err != nil {
|
|
logger.Warnf("get slwNode info failed, err: %s", err.Error())
|
|
return nil, mq.Failed(errorcode.OperationFailed, "get slwNode info failed")
|
|
}
|
|
|
|
return mq.ReplyOK(colmq.NewGetAllSlwNodeInfoResp(resp))
|
|
}
|