diff --git a/internal/db/models/node_dao.go b/internal/db/models/node_dao.go index 3ffb0f89..60f0ab73 100644 --- a/internal/db/models/node_dao.go +++ b/internal/db/models/node_dao.go @@ -435,6 +435,16 @@ func (this *NodeDAO) ListEnabledNodesMatch(tx *dbs.Tx, valueField = "load1m" isAsc = false ifNullValue = -1 + case "connectionsAsc": + valueItem = "connections" + valueField = "total" + isAsc = true + ifNullValue = 1000 + case "connectionsDesc": + valueItem = "connections" + valueField = "total" + isAsc = false + ifNullValue = -1 default: query.Desc("level") } diff --git a/internal/rpc/services/service_node.go b/internal/rpc/services/service_node.go index cd593685..f1e53288 100644 --- a/internal/rpc/services/service_node.go +++ b/internal/rpc/services/service_node.go @@ -225,6 +225,10 @@ func (this *NodeService) ListEnabledNodesMatch(ctx context.Context, req *pb.List order = "loadAsc" } else if req.LoadDesc { order = "loadDesc" + } else if req.ConnectionsAsc { + order = "connectionsAsc" + } else if req.ConnectionsDesc { + order = "connectionsDesc" } nodes, err := models.SharedNodeDAO.ListEnabledNodesMatch(tx, req.NodeClusterId, configutils.ToBoolState(req.InstallState), configutils.ToBoolState(req.ActiveState), req.Keyword, req.NodeGroupId, req.NodeRegionId, req.Level, true, order, req.Offset, req.Size)