mirror of
https://github.com/ipfs/kubo.git
synced 2026-03-07 01:08:08 +08:00
go-ipfs-config: Merge pull request #128 from ipfs/feat/migration-config
Add config for downloading repo migrations
This commit is contained in:
commit
f7b64b3d95
@ -29,6 +29,7 @@ type Config struct {
|
||||
Pubsub PubsubConfig
|
||||
Peering Peering
|
||||
DNS DNS
|
||||
Migration Migration
|
||||
|
||||
Provider Provider
|
||||
Reprovider Reprovider
|
||||
|
||||
@ -92,6 +92,10 @@ func InitWithIdentity(identity Identity) (*Config, error) {
|
||||
DNS: DNS{
|
||||
Resolvers: map[string]string{},
|
||||
},
|
||||
Migration: Migration{
|
||||
DownloadSources: []string{},
|
||||
Keep: "",
|
||||
},
|
||||
}
|
||||
|
||||
return conf, nil
|
||||
|
||||
17
config/migration.go
Normal file
17
config/migration.go
Normal file
@ -0,0 +1,17 @@
|
||||
package config
|
||||
|
||||
const DefaultMigrationKeep = "cache"
|
||||
|
||||
var DefaultMigrationDownloadSources = []string{"HTTPS", "IPFS"}
|
||||
|
||||
// Migration configures how migrations are downloaded and if the downloads are
|
||||
// added to IPFS locally
|
||||
type Migration struct {
|
||||
// Sources in order of preference, where "IPFS" means use IPFS and "HTTPS"
|
||||
// means use default gateways. Any other values are interpreted as
|
||||
// hostnames for custom gateways. Empty list means "use default sources".
|
||||
DownloadSources []string
|
||||
// Whether or not to keep the migration after downloading it.
|
||||
// Options are "discard", "cache", "pin". Empty string for default.
|
||||
Keep string
|
||||
}
|
||||
34
config/migration_test.go
Normal file
34
config/migration_test.go
Normal file
@ -0,0 +1,34 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMigrationDecode(t *testing.T) {
|
||||
str := `
|
||||
{
|
||||
"DownloadSources": ["IPFS", "HTTP", "127.0.0.1"],
|
||||
"Keep": "cache"
|
||||
}
|
||||
`
|
||||
|
||||
var cfg Migration
|
||||
if err := json.Unmarshal([]byte(str), &cfg); err != nil {
|
||||
t.Errorf("failed while unmarshalling migration struct: %s", err)
|
||||
}
|
||||
|
||||
if len(cfg.DownloadSources) != 3 {
|
||||
t.Fatal("wrong number of DownloadSources")
|
||||
}
|
||||
expect := []string{"IPFS", "HTTP", "127.0.0.1"}
|
||||
for i := range expect {
|
||||
if cfg.DownloadSources[i] != expect[i] {
|
||||
t.Errorf("wrong DownloadSource at %d", i)
|
||||
}
|
||||
}
|
||||
|
||||
if cfg.Keep != "cache" {
|
||||
t.Error("wrong value for Keep")
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user