From 151624c47bb57d3de43799d88ad4a6a98065d7dc Mon Sep 17 00:00:00 2001 From: Adin Schmahmann Date: Wed, 8 Nov 2023 01:07:10 -0500 Subject: [PATCH] fixes to routing put command (#10205) * fix(commands): routing put command returns the IPNS ID rather than the host's ID * fix(commands): routing put command errors with the allow-offline hint if the error is an offline error * fix: test expects correct error message --------- Co-authored-by: Henrique Dias --- core/commands/routing.go | 7 ++++--- test/cli/dht_legacy_test.go | 2 +- test/cli/routing_dht_test.go | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/commands/routing.go b/core/commands/routing.go index 6d0ddb1c864..99aa4a78df7 100644 --- a/core/commands/routing.go +++ b/core/commands/routing.go @@ -14,6 +14,7 @@ import ( iface "github.com/ipfs/boxo/coreiface" "github.com/ipfs/boxo/coreiface/options" dag "github.com/ipfs/boxo/ipld/merkledag" + "github.com/ipfs/boxo/ipns" cid "github.com/ipfs/go-cid" cmds "github.com/ipfs/go-ipfs-cmds" ipld "github.com/ipfs/go-ipld-format" @@ -451,12 +452,12 @@ identified by QmFoo. options.Put.AllowOffline(allowOffline), } - err = api.Routing().Put(req.Context, req.Arguments[0], data, opts...) + ipnsName, err := ipns.NameFromString(req.Arguments[0]) if err != nil { return err } - id, err := api.Key().Self(req.Context) + err = api.Routing().Put(req.Context, req.Arguments[0], data, opts...) if err != nil { if err == iface.ErrOffline { err = errAllowOffline @@ -466,7 +467,7 @@ identified by QmFoo. return res.Emit(routing.QueryEvent{ Type: routing.Value, - ID: id.ID(), + ID: ipnsName.Peer(), }) }, Encoders: cmds.EncoderMap{ diff --git a/test/cli/dht_legacy_test.go b/test/cli/dht_legacy_test.go index 2b90d164cb2..cfcb4f0cd09 100644 --- a/test/cli/dht_legacy_test.go +++ b/test/cli/dht_legacy_test.go @@ -131,7 +131,7 @@ func TestLegacyDHT(t *testing.T) { node.WriteBytes("foo", []byte("foo")) res := node.RunIPFS("dht", "put", "/ipns/"+node.PeerID().String(), "foo") assert.Equal(t, 1, res.ExitCode()) - assert.Contains(t, res.Stderr.String(), "this action must be run in online mode") + assert.Contains(t, res.Stderr.String(), "can't put while offline: pass `--allow-offline` to override") }) }) } diff --git a/test/cli/routing_dht_test.go b/test/cli/routing_dht_test.go index 3a3adc51c51..fb0d391951e 100644 --- a/test/cli/routing_dht_test.go +++ b/test/cli/routing_dht_test.go @@ -111,7 +111,7 @@ func testRoutingDHT(t *testing.T, enablePubsub bool) { node.WriteBytes("foo", []byte("foo")) res := node.RunIPFS("routing", "put", "/ipns/"+node.PeerID().String(), "foo") assert.Equal(t, 1, res.ExitCode()) - assert.Contains(t, res.Stderr.String(), "this action must be run in online mode") + assert.Contains(t, res.Stderr.String(), "can't put while offline: pass `--allow-offline` to override") }) }) })