Commit cc7789e8 authored by mdj33's avatar mdj33 Committed by vipwzw

add more query

parent ec3bd2ee
...@@ -468,7 +468,7 @@ func addNodeBodyCmdFlags(cmd *cobra.Command) { ...@@ -468,7 +468,7 @@ func addNodeBodyCmdFlags(cmd *cobra.Command) {
cmd.MarkFlagRequired("title") cmd.MarkFlagRequired("title")
cmd.Flags().StringP("addr", "a", "", "addr apply for super user") cmd.Flags().StringP("addr", "a", "", "addr apply for super user")
cmd.MarkFlagRequired("addr") cmd.Flags().StringP("id", "i", "", "id apply for super user")
} }
...@@ -476,10 +476,12 @@ func nodeInfo(cmd *cobra.Command, args []string) { ...@@ -476,10 +476,12 @@ func nodeInfo(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr") rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
title, _ := cmd.Flags().GetString("title") title, _ := cmd.Flags().GetString("title")
addr, _ := cmd.Flags().GetString("addr") addr, _ := cmd.Flags().GetString("addr")
id, _ := cmd.Flags().GetString("id")
params := pt.ReqParacrossNodeInfo{ params := pt.ReqParacrossNodeInfo{
Title: title, Title: title,
Addr: addr, Addr: addr,
Id: id,
} }
var res pt.ParaNodeIdStatus var res pt.ParaNodeIdStatus
ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeStatus", params, &res) ctx := jsonclient.NewRPCCtx(rpcLaddr, "paracross.GetNodeStatus", params, &res)
......
...@@ -110,9 +110,9 @@ func calcLocalNodeStatusPrefix(title string, status int32) []byte { ...@@ -110,9 +110,9 @@ func calcLocalNodeStatusPrefix(title string, status int32) []byte {
return []byte(fmt.Sprintf(localNodeTitleStatus+"%s-%02d-", title, status)) return []byte(fmt.Sprintf(localNodeTitleStatus+"%s-%02d-", title, status))
} }
//func calcLocalNodeTitlePrefix(title string) []byte { func calcLocalNodeTitlePrefix(title string) []byte {
// return []byte(fmt.Sprintf(localNodeTitleStatus+"%s-", title)) return []byte(fmt.Sprintf(localNodeTitleStatus+"%s-", title))
//} }
func calcLocalNodeTitleDone(title, addr string) []byte { func calcLocalNodeTitleDone(title, addr string) []byte {
return []byte(fmt.Sprintf(localNodeTitleDone+"%s-%s", title, addr)) return []byte(fmt.Sprintf(localNodeTitleDone+"%s-%s", title, addr))
...@@ -126,6 +126,6 @@ func calcLocalNodeGroupStatusPrefix(status int32) []byte { ...@@ -126,6 +126,6 @@ func calcLocalNodeGroupStatusPrefix(status int32) []byte {
return []byte(fmt.Sprintf(localNodeGroupStatusTitle+"%02d-", status)) return []byte(fmt.Sprintf(localNodeGroupStatusTitle+"%02d-", status))
} }
//func calcLocalNodeGroupAllPrefix() []byte { func calcLocalNodeGroupAllPrefix() []byte {
// return []byte(fmt.Sprintf(localNodeGroupStatusTitle)) return []byte(fmt.Sprintf(localNodeGroupStatusTitle))
//} }
...@@ -96,6 +96,19 @@ func (p *Paracross) Query_GetNodeAddrInfo(in *pt.ReqParacrossNodeInfo) (types.Me ...@@ -96,6 +96,19 @@ func (p *Paracross) Query_GetNodeAddrInfo(in *pt.ReqParacrossNodeInfo) (types.Me
return stat, nil return stat, nil
} }
//Query_GetNodeIdInfo get specific node addr info
func (p *Paracross) Query_GetNodeIdInfo(in *pt.ReqParacrossNodeInfo) (types.Message, error) {
if in == nil || in.Title == "" || in.Id == "" {
return nil, types.ErrInvalidParam
}
stat, err := getNodeID(p.GetStateDB(), in.Id)
if err != nil {
return nil, err
}
return stat, nil
}
//Query_ListNodeStatusInfo list node info by status //Query_ListNodeStatusInfo list node info by status
func (p *Paracross) Query_ListNodeStatusInfo(in *pt.ReqParacrossNodeInfo) (types.Message, error) { func (p *Paracross) Query_ListNodeStatusInfo(in *pt.ReqParacrossNodeInfo) (types.Message, error) {
if in == nil || in.Title == "" { if in == nil || in.Title == "" {
...@@ -264,12 +277,24 @@ func listNodeGroupStatus(db dbm.KVDB, prefix []byte) (types.Message, error) { ...@@ -264,12 +277,24 @@ func listNodeGroupStatus(db dbm.KVDB, prefix []byte) (types.Message, error) {
//按状态遍历 //按状态遍历
func listLocalNodeStatus(db dbm.KVDB, title string, status int32) (types.Message, error) { func listLocalNodeStatus(db dbm.KVDB, title string, status int32) (types.Message, error) {
prefix := calcLocalNodeStatusPrefix(title, status) var prefix []byte
if status == 0 {
prefix = calcLocalNodeTitlePrefix(title)
} else {
prefix = calcLocalNodeStatusPrefix(title, status)
}
return listNodeStatus(db, prefix) return listNodeStatus(db, prefix)
} }
func listLocalNodeGroupStatus(db dbm.KVDB, status int32) (types.Message, error) { func listLocalNodeGroupStatus(db dbm.KVDB, status int32) (types.Message, error) {
prefix := calcLocalNodeGroupStatusPrefix(status) var prefix []byte
if status == 0 {
prefix = calcLocalNodeGroupAllPrefix()
} else {
prefix = calcLocalNodeGroupStatusPrefix(status)
}
return listNodeGroupStatus(db, prefix) return listNodeGroupStatus(db, prefix)
} }
......
...@@ -190,7 +190,7 @@ func checkVoteDoneReceipt(suite *NodeManageTestSuite, receipt *types.Receipt, co ...@@ -190,7 +190,7 @@ func checkVoteDoneReceipt(suite *NodeManageTestSuite, receipt *types.Receipt, co
} }
func voteTest(suite *NodeManageTestSuite, id string, join bool) { func voteTest(suite *NodeManageTestSuite, id string, join bool) {
var count int = 1 var count int
config := &pt.ParaNodeAddrConfig{ config := &pt.ParaNodeAddrConfig{
Op: pt.ParaNodeVote, Op: pt.ParaNodeVote,
Id: id, Id: id,
...@@ -199,6 +199,7 @@ func voteTest(suite *NodeManageTestSuite, id string, join bool) { ...@@ -199,6 +199,7 @@ func voteTest(suite *NodeManageTestSuite, id string, join bool) {
tx, err := pt.CreateRawNodeConfigTx(config) tx, err := pt.CreateRawNodeConfigTx(config)
suite.Nil(err) suite.Nil(err)
count++
receipt := nodeCommit(suite, PrivKeyA, tx) receipt := nodeCommit(suite, PrivKeyA, tx)
checkVoteReceipt(suite, receipt, count) checkVoteReceipt(suite, receipt, count)
count++ count++
......
...@@ -129,8 +129,10 @@ message ReceiptParaNodeGroupConfig { ...@@ -129,8 +129,10 @@ message ReceiptParaNodeGroupConfig {
// node query // node query
message ReqParacrossNodeInfo { message ReqParacrossNodeInfo {
string title = 1; string title = 1;
string addr = 2; string id = 2;
int32 status = 3; string addr = 3;
int32 status = 4;
} }
message RespParacrossNodeAddrs { message RespParacrossNodeAddrs {
......
...@@ -193,8 +193,34 @@ func (c *channelClient) GetNodeStatus(ctx context.Context, req *pt.ReqParacrossN ...@@ -193,8 +193,34 @@ func (c *channelClient) GetNodeStatus(ctx context.Context, req *pt.ReqParacrossN
} }
// GetNodeStatus get super node status // GetNodeStatus get super node status
func (c *channelClient) GetNodeIDStatus(ctx context.Context, req *pt.ReqParacrossNodeInfo) (*pt.ParaNodeIdStatus, error) {
r := *req
data, err := c.Query(pt.GetExecName(), "GetNodeIdInfo", &r)
if err != nil {
return nil, err
}
if resp, ok := data.(*pt.ParaNodeIdStatus); ok {
return resp, nil
}
return nil, types.ErrDecode
}
// GetNodeStatus get super node status
func (c *Jrpc) GetNodeStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error { func (c *Jrpc) GetNodeStatus(req *pt.ReqParacrossNodeInfo, result *interface{}) error {
data, err := c.cli.GetNodeStatus(context.Background(), req) if req == nil || (req.Addr == "" && req.Id == "") {
return types.ErrInvalidParam
}
var data *pt.ParaNodeIdStatus
var err error
if req.Addr != "" {
data, err = c.cli.GetNodeStatus(context.Background(), req)
}
if req.Id != "" {
data, err = c.cli.GetNodeIDStatus(context.Background(), req)
}
*result = data *result = data
return err return err
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment