mirror of
https://github.com/ipfs/kubo.git
synced 2025-07-01 19:24:14 +08:00
cmd/pubsub: fix peers command topic filtering
License: MIT Signed-off-by: Jeromy <why@ipfs.io>
This commit is contained in:
@ -274,9 +274,11 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
|
||||
|
||||
var PubsubPeersCmd = &cmds.Command{
|
||||
Helptext: cmds.HelpText{
|
||||
Tagline: "List all peers we are currently pubsubbing with.",
|
||||
Tagline: "List peers we are currently pubsubbing with.",
|
||||
ShortDescription: `
|
||||
ipfs pubsub peers lists out the pubsub peers you are currently connected to.
|
||||
ipfs pubsub peers with no arguments lists out the pubsub peers you are
|
||||
currently connected to. If given a topic, it will list connected
|
||||
peers who are subscribed to the named topic.
|
||||
|
||||
This is an experimental feature. It is not intended in its current state
|
||||
to be used in a production environment.
|
||||
@ -284,6 +286,9 @@ to be used in a production environment.
|
||||
To use, the daemon must be run with '--enable-pubsub-experiment'.
|
||||
`,
|
||||
},
|
||||
Arguments: []cmds.Argument{
|
||||
cmds.StringArg("topic", false, false, "topic to list connected peers of"),
|
||||
},
|
||||
Run: func(req cmds.Request, res cmds.Response) {
|
||||
n, err := req.InvocContext().GetNode()
|
||||
if err != nil {
|
||||
@ -302,8 +307,13 @@ To use, the daemon must be run with '--enable-pubsub-experiment'.
|
||||
return
|
||||
}
|
||||
|
||||
var topic string
|
||||
if len(req.Arguments()) == 1 {
|
||||
topic = req.Arguments()[0]
|
||||
}
|
||||
|
||||
var out []string
|
||||
for _, p := range n.Floodsub.ListPeers("") {
|
||||
for _, p := range n.Floodsub.ListPeers(topic) {
|
||||
out = append(out, p.Pretty())
|
||||
}
|
||||
res.SetOutput(&stringList{out})
|
||||
|
@ -32,16 +32,27 @@ test_expect_success 'pubsub' '
|
||||
echo > wait
|
||||
fi
|
||||
) &
|
||||
'
|
||||
|
||||
# wait until ipfs pubsub sub is ready to do work
|
||||
sleep 1 &&
|
||||
test_expect_success "wait until ipfs pubsub sub is ready to do work" '
|
||||
sleep 1
|
||||
'
|
||||
|
||||
# publish something
|
||||
ipfsi 1 pubsub pub testTopic "testOK" &> pubErr &&
|
||||
test_expect_success "can see peer subscribed to testTopic" '
|
||||
ipfsi 1 pubsub peers testTopic > peers_out
|
||||
'
|
||||
|
||||
# wait until `echo > wait` executed
|
||||
test_expect_success "output looks good" '
|
||||
echo $PEERID_0 > peers_exp &&
|
||||
test_cmp peers_exp peers_out
|
||||
'
|
||||
|
||||
test_expect_success "publish something" '
|
||||
ipfsi 1 pubsub pub testTopic "testOK" &> pubErr
|
||||
'
|
||||
|
||||
test_expect_success "wait until echo > wait executed" '
|
||||
cat wait &&
|
||||
|
||||
test_cmp pubErr empty &&
|
||||
test_cmp expected actual
|
||||
'
|
||||
|
Reference in New Issue
Block a user