mirror of
https://github.com/ipfs/kubo.git
synced 2025-08-06 11:31:54 +08:00
go test passes, sharness fails
pass API path to cmds, fix options in add. License: MIT Signed-off-by: keks <keks@cryptoscope.com>
This commit is contained in:
@ -18,16 +18,16 @@ import (
|
||||
corehttp "github.com/ipfs/go-ipfs/core/corehttp"
|
||||
corerepo "github.com/ipfs/go-ipfs/core/corerepo"
|
||||
nodeMount "github.com/ipfs/go-ipfs/fuse/node"
|
||||
config "github.com/ipfs/go-ipfs/repo/config"
|
||||
//config "github.com/ipfs/go-ipfs/repo/config"
|
||||
fsrepo "github.com/ipfs/go-ipfs/repo/fsrepo"
|
||||
migrate "github.com/ipfs/go-ipfs/repo/fsrepo/migrations"
|
||||
|
||||
"gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
|
||||
mprome "gx/ipfs/QmSk46nSD78YiuNojYMS8NW6hSCjH95JajqqzzoychZgef/go-metrics-prometheus"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
|
||||
"gx/ipfs/QmX3QZ5jHEPidwUrymXV1iSCSUhdGxj15sm2gP4jKMef7B/client_golang/prometheus"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
iconn "gx/ipfs/Qmf82zCaYV8bkztRRoGwwSHVkaYtP2UKBnhpjJz1uFGJjQ/go-libp2p-interface-conn"
|
||||
)
|
||||
|
||||
@ -434,8 +434,8 @@ func serveHTTPApi(req *cmds.Request, cctx *oldcmds.Context) (error, <-chan error
|
||||
var opts = []corehttp.ServeOption{
|
||||
corehttp.MetricsCollectionOption("api"),
|
||||
corehttp.CommandsOption(*cctx),
|
||||
corehttp.CheckVersionOption(),
|
||||
corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
|
||||
//corehttp.CheckVersionOption(),
|
||||
//corehttp.ServerNameOption("go-ipfs/" + config.CurrentVersionNumber),
|
||||
corehttp.WebUIOption,
|
||||
gatewayOpt,
|
||||
corehttp.VersionOption(),
|
||||
|
@ -6,7 +6,7 @@ import (
|
||||
commands "github.com/ipfs/go-ipfs/core/commands"
|
||||
|
||||
lgc "github.com/ipfs/go-ipfs/commands/legacy"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
// This is the CLI root, used for executing commands accessible to CLI clients.
|
||||
|
@ -21,6 +21,7 @@ import (
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
core "github.com/ipfs/go-ipfs/core"
|
||||
coreCmds "github.com/ipfs/go-ipfs/core/commands"
|
||||
corehttp "github.com/ipfs/go-ipfs/core/corehttp"
|
||||
"github.com/ipfs/go-ipfs/plugin/loader"
|
||||
repo "github.com/ipfs/go-ipfs/repo"
|
||||
config "github.com/ipfs/go-ipfs/repo/config"
|
||||
@ -30,12 +31,12 @@ import (
|
||||
manet "gx/ipfs/QmSGL5Uoa6gKHgBBwQG8u1CWKUC8ZnwaZiLgFVTFBR2bxr/go-multiaddr-net"
|
||||
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
|
||||
loggables "gx/ipfs/QmSvcDkiRwB8LuMhUtnvhum2C851Mproo75ZDD19jx43tD/go-libp2p-loggables"
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/cli"
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
ma "gx/ipfs/QmW8s4zTsUoX1Q6CeYxVKPyqSKbF7H1YDUyTostBtZ8DaG/go-multiaddr"
|
||||
osh "gx/ipfs/QmXuBJ7DR6k3rmUEKtvVMhwjmXDuJgXXPUt4LQXKBMsU93/go-os-helper"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/cli"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
|
||||
)
|
||||
|
||||
// log is the command logger
|
||||
@ -269,11 +270,11 @@ func (i *cmdInvocation) Parse(ctx context.Context, args []string) error {
|
||||
|
||||
// if no encoding was specified by user, default to plaintext encoding
|
||||
// (if command doesn't support plaintext, use JSON instead)
|
||||
if enc := i.req.Options[cmds.EncShort]; enc == "" {
|
||||
if enc := i.req.Options[cmds.EncLong]; enc == "" {
|
||||
if i.req.Command.Encoders != nil && i.req.Command.Encoders[cmds.Text] != nil {
|
||||
i.req.SetOption(cmds.EncShort, cmds.Text)
|
||||
i.req.SetOption(cmds.EncLong, cmds.Text)
|
||||
} else {
|
||||
i.req.SetOption(cmds.EncShort, cmds.JSON)
|
||||
i.req.SetOption(cmds.EncLong, cmds.JSON)
|
||||
}
|
||||
}
|
||||
|
||||
@ -313,7 +314,7 @@ func callCommand(ctx context.Context, req *cmds.Request, root *cmds.Command, cct
|
||||
return err
|
||||
}
|
||||
|
||||
encTypeStr, _ := req.Options[cmds.EncShort].(string)
|
||||
encTypeStr, _ := req.Options[cmds.EncLong].(string)
|
||||
encType := cmds.EncodingType(encTypeStr)
|
||||
|
||||
var (
|
||||
@ -658,7 +659,7 @@ func apiClientForAddr(addr ma.Multiaddr) (http.Client, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return http.NewClient(host), nil
|
||||
return http.NewClient(host, http.ClientWithAPIPrefix(corehttp.APIPath)), nil
|
||||
}
|
||||
|
||||
func isConnRefused(err error) bool {
|
||||
|
@ -17,8 +17,8 @@ import (
|
||||
"github.com/ipfs/go-ipfs/path"
|
||||
|
||||
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
var log = logging.Logger("command")
|
||||
|
@ -3,8 +3,8 @@ package commands
|
||||
import (
|
||||
"testing"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
func noop(req Request, res Response) {
|
||||
@ -59,7 +59,7 @@ func TestOptionValidation(t *testing.T) {
|
||||
}
|
||||
|
||||
req, _ = NewRequest(nil, nil, nil, nil, nil, opts)
|
||||
req.SetOption(cmds.EncShort, "json")
|
||||
req.SetOption(cmds.EncLong, "json")
|
||||
res = cmd.Call(req)
|
||||
if res.Error() != nil {
|
||||
t.Error("Should have passed")
|
||||
|
@ -3,7 +3,7 @@ package legacy
|
||||
import (
|
||||
"io"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"io"
|
||||
"runtime/debug"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
)
|
||||
|
@ -7,8 +7,8 @@ import (
|
||||
"testing"
|
||||
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
type WriteNopCloser struct {
|
||||
|
@ -7,9 +7,9 @@ import (
|
||||
"os"
|
||||
"reflect"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
)
|
||||
|
@ -7,8 +7,8 @@ import (
|
||||
"reflect"
|
||||
"sync"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
|
||||
oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
)
|
||||
@ -47,6 +47,8 @@ func (rw *responseWrapper) Output() interface{} {
|
||||
case io.Reader:
|
||||
// if it's a reader, set it
|
||||
rw.out = v
|
||||
case cmds.Single:
|
||||
rw.out = v.Value
|
||||
default:
|
||||
// if it is something else, create a channel and copy values from next in there
|
||||
ch := make(chan interface{})
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
// ErrorType signfies a category of errors
|
||||
@ -149,7 +149,7 @@ func (r *response) Marshal() (io.Reader, error) {
|
||||
return bytes.NewReader([]byte{}), nil
|
||||
}
|
||||
|
||||
enc, found, err := r.req.Option(cmds.EncShort).String()
|
||||
enc, found, err := r.req.Option(cmds.EncLong).String()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
type TestOutput struct {
|
||||
@ -29,7 +29,7 @@ func TestMarshalling(t *testing.T) {
|
||||
t.Error("Should have failed (no encoding type specified in request)")
|
||||
}
|
||||
|
||||
req.SetOption(cmds.EncShort, JSON)
|
||||
req.SetOption(cmds.EncLong, JSON)
|
||||
|
||||
reader, err := res.Marshal()
|
||||
if err != nil {
|
||||
|
@ -18,10 +18,10 @@ import (
|
||||
mfs "github.com/ipfs/go-ipfs/mfs"
|
||||
ft "github.com/ipfs/go-ipfs/unixfs"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit/files"
|
||||
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
|
||||
)
|
||||
|
||||
@ -162,7 +162,6 @@ You can now check what blocks have been created by:
|
||||
return nil
|
||||
},
|
||||
Run: func(req *cmds.Request, res cmds.ResponseEmitter, env interface{}) {
|
||||
fmt.Printf("%#v\n", req)
|
||||
n, err := GetNode(env)
|
||||
if err != nil {
|
||||
res.SetError(err, cmdkit.ErrNormal)
|
||||
@ -202,6 +201,15 @@ You can now check what blocks have been created by:
|
||||
return
|
||||
}
|
||||
|
||||
if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
|
||||
cidVer = 1
|
||||
}
|
||||
|
||||
if cidVer > 0 && !rbset {
|
||||
rawblks = true
|
||||
}
|
||||
|
||||
// if rawblocks is not explicitly set but nocopy is, set rawblocks
|
||||
if nocopy && !rbset {
|
||||
rawblks = true
|
||||
}
|
||||
@ -211,10 +219,6 @@ You can now check what blocks have been created by:
|
||||
return
|
||||
}
|
||||
|
||||
if hfset && hashFunStr != "sha2-256" && cidVer == 0 {
|
||||
cidVer = 1
|
||||
}
|
||||
|
||||
prefix, err := dag.PrefixForCidVersion(cidVer)
|
||||
if err != nil {
|
||||
res.SetError(err, cmdkit.ErrNormal)
|
||||
|
@ -12,9 +12,9 @@ import (
|
||||
decision "github.com/ipfs/go-ipfs/exchange/bitswap/decision"
|
||||
|
||||
"gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
|
||||
)
|
||||
|
||||
|
@ -11,9 +11,9 @@ import (
|
||||
util "github.com/ipfs/go-ipfs/blocks/blockstore/util"
|
||||
e "github.com/ipfs/go-ipfs/core/commands/e"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
mh "gx/ipfs/QmYeKnKpubCMRiq3PGZcTREErthbb5Q9cXsCoSkD9bjEBd/go-multihash"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
|
||||
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
|
||||
)
|
||||
|
@ -9,8 +9,8 @@ import (
|
||||
core "github.com/ipfs/go-ipfs/core"
|
||||
coreunix "github.com/ipfs/go-ipfs/core/coreunix"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
const progressBarMinSize = 1024 * 1024 * 8 // show progress bar for outputs > 8MiB
|
||||
|
@ -14,8 +14,8 @@ import (
|
||||
// oldcmds "github.com/ipfs/go-ipfs/commands"
|
||||
e "github.com/ipfs/go-ipfs/core/commands/e"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
type commandEncoder struct {
|
||||
|
188
core/commands/commands_test.go
Normal file
188
core/commands/commands_test.go
Normal file
@ -0,0 +1,188 @@
|
||||
package commands
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
func collectPaths(prefix string, cmd *cmds.Command, out map[string]struct{}) {
|
||||
for name, sub := range cmd.Subcommands {
|
||||
path := prefix + "/" + name
|
||||
out[path] = struct{}{}
|
||||
collectPaths(path, sub, out)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCommands(t *testing.T) {
|
||||
list := []string{
|
||||
"/add",
|
||||
"/bitswap",
|
||||
"/bitswap/ledger",
|
||||
"/bitswap/reprovide",
|
||||
"/bitswap/stat",
|
||||
"/bitswap/unwant",
|
||||
"/bitswap/wantlist",
|
||||
"/block",
|
||||
"/block/get",
|
||||
"/block/put",
|
||||
"/block/rm",
|
||||
"/block/stat",
|
||||
"/bootstrap",
|
||||
"/bootstrap/add",
|
||||
"/bootstrap/add/default",
|
||||
"/bootstrap/list",
|
||||
"/bootstrap/rm",
|
||||
"/bootstrap/rm/all",
|
||||
"/cat",
|
||||
"/commands",
|
||||
"/config",
|
||||
"/config/edit",
|
||||
"/config/replace",
|
||||
"/config/show",
|
||||
"/dag",
|
||||
"/dag/get",
|
||||
"/dag/put",
|
||||
"/dag/resolve",
|
||||
"/dht",
|
||||
"/dht/findpeer",
|
||||
"/dht/findprovs",
|
||||
"/dht/get",
|
||||
"/dht/provide",
|
||||
"/dht/put",
|
||||
"/dht/query",
|
||||
"/diag",
|
||||
"/diag/cmds",
|
||||
"/diag/cmds/clear",
|
||||
"/diag/cmds/set-time",
|
||||
"/diag/sys",
|
||||
"/dns",
|
||||
"/file",
|
||||
"/file/ls",
|
||||
"/files",
|
||||
"/files/chcid",
|
||||
"/files/cp",
|
||||
"/files/flush",
|
||||
"/files/ls",
|
||||
"/files/mkdir",
|
||||
"/files/mv",
|
||||
"/files/read",
|
||||
"/files/rm",
|
||||
"/files/stat",
|
||||
"/filestore",
|
||||
"/filestore/dups",
|
||||
"/filestore/ls",
|
||||
"/filestore/verify",
|
||||
"/files/write",
|
||||
"/get",
|
||||
"/id",
|
||||
"/key",
|
||||
"/key/gen",
|
||||
"/key/list",
|
||||
"/key/rename",
|
||||
"/key/rm",
|
||||
"/log",
|
||||
"/log/level",
|
||||
"/log/ls",
|
||||
"/log/tail",
|
||||
"/ls",
|
||||
"/mount",
|
||||
"/name",
|
||||
"/name/publish",
|
||||
"/name/pubsub",
|
||||
"/name/pubsub/state",
|
||||
"/name/pubsub/subs",
|
||||
"/name/pubsub/cancel",
|
||||
"/name/resolve",
|
||||
"/object",
|
||||
"/object/data",
|
||||
"/object/diff",
|
||||
"/object/get",
|
||||
"/object/links",
|
||||
"/object/new",
|
||||
"/object/patch",
|
||||
"/object/patch/add-link",
|
||||
"/object/patch/append-data",
|
||||
"/object/patch/rm-link",
|
||||
"/object/patch/set-data",
|
||||
"/object/put",
|
||||
"/object/stat",
|
||||
"/p2p",
|
||||
"/p2p/listener",
|
||||
"/p2p/listener/close",
|
||||
"/p2p/listener/ls",
|
||||
"/p2p/listener/open",
|
||||
"/p2p/stream",
|
||||
"/p2p/stream/close",
|
||||
"/p2p/stream/dial",
|
||||
"/p2p/stream/ls",
|
||||
"/pin",
|
||||
"/pin/add",
|
||||
"/ping",
|
||||
"/pin/ls",
|
||||
"/pin/rm",
|
||||
"/pin/update",
|
||||
"/pin/verify",
|
||||
"/pubsub",
|
||||
"/pubsub/ls",
|
||||
"/pubsub/peers",
|
||||
"/pubsub/pub",
|
||||
"/pubsub/sub",
|
||||
"/refs",
|
||||
"/refs/local",
|
||||
"/repo",
|
||||
"/repo/fsck",
|
||||
"/repo/gc",
|
||||
"/repo/stat",
|
||||
"/repo/verify",
|
||||
"/repo/version",
|
||||
"/resolve",
|
||||
"/shutdown",
|
||||
"/stats",
|
||||
"/stats/bitswap",
|
||||
"/stats/bw",
|
||||
"/stats/repo",
|
||||
"/swarm",
|
||||
"/swarm/addrs",
|
||||
"/swarm/addrs/listen",
|
||||
"/swarm/addrs/local",
|
||||
"/swarm/connect",
|
||||
"/swarm/disconnect",
|
||||
"/swarm/filters",
|
||||
"/swarm/filters/add",
|
||||
"/swarm/filters/rm",
|
||||
"/swarm/peers",
|
||||
"/tar",
|
||||
"/tar/add",
|
||||
"/tar/cat",
|
||||
"/update",
|
||||
"/version",
|
||||
}
|
||||
|
||||
cmdSet := make(map[string]struct{})
|
||||
collectPaths("", Root, cmdSet)
|
||||
|
||||
for _, path := range list {
|
||||
if _, ok := cmdSet[path]; !ok {
|
||||
t.Errorf("%q not in result", path)
|
||||
} else {
|
||||
delete(cmdSet, path)
|
||||
}
|
||||
}
|
||||
|
||||
for path := range cmdSet {
|
||||
t.Errorf("%q in result but shouldn't be", path)
|
||||
}
|
||||
|
||||
for _, path := range list {
|
||||
path = path[1:] // remove leading slash
|
||||
split := strings.Split(path, "/")
|
||||
sub, err := Root.Get(split)
|
||||
if err != nil {
|
||||
t.Errorf("error getting subcommand %q: %v", path, err)
|
||||
} else if sub == nil {
|
||||
t.Errorf("subcommand %q is nil even though there was no error", path)
|
||||
}
|
||||
}
|
||||
}
|
@ -12,8 +12,8 @@ import (
|
||||
"github.com/ipfs/go-ipfs/filestore"
|
||||
|
||||
lgc "github.com/ipfs/go-ipfs/commands/legacy"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
|
||||
)
|
||||
|
||||
|
@ -16,8 +16,8 @@ import (
|
||||
tar "github.com/ipfs/go-ipfs/thirdparty/tar"
|
||||
uarchive "github.com/ipfs/go-ipfs/unixfs/archive"
|
||||
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
"gx/ipfs/QmeWjRodbcZFKe5tMN7poEx3izym6osrLSnTLf9UjJZBbs/pb"
|
||||
)
|
||||
|
||||
|
@ -4,8 +4,8 @@ import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
func TestGetOutputPath(t *testing.T) {
|
||||
|
@ -4,7 +4,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
func checkHelptextRecursive(t *testing.T, name []string, c *cmds.Command) {
|
||||
|
@ -12,9 +12,9 @@ import (
|
||||
core "github.com/ipfs/go-ipfs/core"
|
||||
|
||||
floodsub "gx/ipfs/QmP1T1SGU6276R2MHKP2owbck37Fnzd6ZkpyNJvnG2LoTG/go-libp2p-floodsub"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
pstore "gx/ipfs/QmYijbtjCxFEjSXaudaQAUz3LN5VKLssm8WCUsRoqzXmQR/go-libp2p-peerstore"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
blocks "gx/ipfs/QmYsEQydGrsxNZfAiskvQ76N2xE9hDQtSAkRSynwMiUK3c/go-block-format"
|
||||
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
|
||||
)
|
||||
|
@ -18,8 +18,8 @@ import (
|
||||
lockfile "github.com/ipfs/go-ipfs/repo/fsrepo/lock"
|
||||
|
||||
lgc "github.com/ipfs/go-ipfs/commands/legacy"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
cid "gx/ipfs/QmeSrf6pzut73u6zLQkRFQ3ygt3k6XFT2kjdYP8Tnkwwyg/go-cid"
|
||||
)
|
||||
|
||||
|
@ -13,8 +13,8 @@ import (
|
||||
|
||||
lgc "github.com/ipfs/go-ipfs/commands/legacy"
|
||||
logging "gx/ipfs/QmSpJByNKFX1sCsHBEp3R73FL4NF6FnQTEGyNAXHm2GS52/go-log"
|
||||
"gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
"gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
"gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
)
|
||||
|
||||
var log = logging.Logger("core/commands")
|
||||
|
@ -8,9 +8,9 @@ import (
|
||||
"time"
|
||||
|
||||
humanize "gx/ipfs/QmPSBJL4momYnE7DcUyk2DVhD6rH488ZmHBGLbxNdhU44K/go-humanize"
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdkit "gx/ipfs/QmVD1W3MC8Hk1WZgFQPWWmBECJ3X72BgUYf9eCQ4PGzPps/go-ipfs-cmdkit"
|
||||
peer "gx/ipfs/QmWNY7dV54ZDYmTA1ykVdwNCqC11mpU4zSUp6XDpLTH9eG/go-libp2p-peer"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
protocol "gx/ipfs/QmZNkThpqfVXs9GNbexPrfBbXSLNYeKrE7jwFM2oqHbyqN/go-libp2p-protocol"
|
||||
metrics "gx/ipfs/QmaL2WYJGbWKqHoLujoi9GQ5jj4JVFrBqHUBWmEYzJPVWT/go-libp2p-metrics"
|
||||
)
|
||||
|
@ -15,15 +15,14 @@ import (
|
||||
path "github.com/ipfs/go-ipfs/path"
|
||||
config "github.com/ipfs/go-ipfs/repo/config"
|
||||
|
||||
cmds "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds"
|
||||
cmdsHttp "gx/ipfs/QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K/go-ipfs-cmds/http"
|
||||
cmds "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds"
|
||||
cmdsHttp "gx/ipfs/QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps/go-ipfs-cmds/http"
|
||||
)
|
||||
|
||||
var (
|
||||
errApiVersionMismatch = errors.New("api version mismatch")
|
||||
)
|
||||
|
||||
const apiPath = "/api/v0"
|
||||
const originEnvKey = "API_ORIGIN"
|
||||
const originEnvKeyDeprecate = `You are using the ` + originEnvKey + `ENV Variable.
|
||||
This functionality is deprecated, and will be removed in future versions.
|
||||
@ -116,6 +115,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
|
||||
|
||||
cfg := cmdsHttp.NewServerConfig()
|
||||
cfg.SetAllowedMethods("GET", "POST", "PUT")
|
||||
cfg.APIPath = APIPath
|
||||
rcfg, err := n.Repo.Config()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -127,7 +127,7 @@ func commandsOption(cctx oldcmds.Context, command *cmds.Command) ServeOption {
|
||||
patchCORSVars(cfg, l.Addr())
|
||||
|
||||
cmdHandler := cmdsHttp.NewHandler(&cctx, command, cfg)
|
||||
mux.Handle(APIPath, cmdHandler)
|
||||
mux.Handle(APIPath+"/", cmdHandler)
|
||||
return mux, nil
|
||||
}
|
||||
}
|
||||
@ -146,21 +146,22 @@ func CheckVersionOption() ServeOption {
|
||||
|
||||
return ServeOption(func(n *core.IpfsNode, l net.Listener, next *http.ServeMux) (*http.ServeMux, error) {
|
||||
mux := http.NewServeMux()
|
||||
mux.HandleFunc(APIPath+"/", func(w http.ResponseWriter, r *http.Request) {
|
||||
pth := path.SplitList(r.URL.Path[len(APIPath):])
|
||||
// backwards compatibility to previous version check
|
||||
if pth[1] != "version" {
|
||||
clientVersion := r.UserAgent()
|
||||
// skips check if client is not go-ipfs
|
||||
if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
|
||||
http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
|
||||
return
|
||||
mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
if strings.HasPrefix(r.URL.Path, APIPath) {
|
||||
pth := path.SplitList(r.URL.Path[len(APIPath):])
|
||||
// backwards compatibility to previous version check
|
||||
if pth[1] != "version" {
|
||||
clientVersion := r.UserAgent()
|
||||
// skips check if client is not go-ipfs
|
||||
if clientVersion != "" && strings.Contains(clientVersion, "/go-ipfs/") && daemonVersion != clientVersion {
|
||||
http.Error(w, fmt.Sprintf("%s (%s != %s)", errApiVersionMismatch, daemonVersion, clientVersion), http.StatusBadRequest)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
next.ServeHTTP(w, r)
|
||||
})
|
||||
mux.HandleFunc("/", next.ServeHTTP)
|
||||
|
||||
return mux, nil
|
||||
})
|
||||
|
@ -414,7 +414,7 @@
|
||||
"version": "2.1.2"
|
||||
},
|
||||
{
|
||||
"hash": "QmTwKPLyeRKuDawuy6CAn1kRj1FVoqBEM8sviAUWN7NW9K",
|
||||
"hash": "QmYopJAcV7R9SbxiPBCvqhnt8EusQpWPHewoZakCMt8hps",
|
||||
"name": "go-ipfs-cmds",
|
||||
"version": "0.5.0-dev"
|
||||
},
|
||||
|
@ -554,7 +554,7 @@ test_add_cat_expensive "--cid-version=1" "zdj7WcatQrtuE4WMkS4XsfsMixuQN2po4irkYh
|
||||
# encoded with the blake2b-256 hash funtion
|
||||
test_add_cat_expensive '--hash=blake2b-256' "zDMZof1kwndounDzQCANUHjiE3zt1mPEgx7RE3JTHoZrRRa79xcv"
|
||||
|
||||
test_add_named_pipe " Post http://$API_ADDR/api/v0/add?encoding=json&progress=true&r=true&stream-channels=true:"
|
||||
test_add_named_pipe " Post http://$API_ADDR/api/v0/add?chunker=size-262144&cid-version=0&encoding=json&hash=sha2-256&pin=true&progress=true&recursive=true&stream-channels=true:"
|
||||
|
||||
test_add_pwd_is_symlink
|
||||
|
||||
|
Reference in New Issue
Block a user