Tests for identity separation
Added tests for identity.go and modifies others according ly License: MIT Signed-off-by: Kishan Mohanbhai Sagathiya <kishansagathiya@gmail.com>
This commit is contained in:
parent
909a536d59
commit
f05af75abc
|
@ -87,13 +87,6 @@ func TestLoadJSON(t *testing.T) {
|
||||||
return cfg, nil
|
return cfg, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
t.Run("bad id", func(t *testing.T) {
|
|
||||||
_, err := loadJSON2(t, func(j *configJSON) { j.ID = "abc" })
|
|
||||||
if err == nil {
|
|
||||||
t.Error("expected error decoding ID")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
t.Run("empty default peername", func(t *testing.T) {
|
t.Run("empty default peername", func(t *testing.T) {
|
||||||
cfg, err := loadJSON2(t, func(j *configJSON) { j.Peername = "" })
|
cfg, err := loadJSON2(t, func(j *configJSON) { j.Peername = "" })
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -104,13 +97,6 @@ func TestLoadJSON(t *testing.T) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("bad private key", func(t *testing.T) {
|
|
||||||
_, err := loadJSON2(t, func(j *configJSON) { j.PrivateKey = "abc" })
|
|
||||||
if err == nil {
|
|
||||||
t.Error("expected error parsing private key")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
t.Run("bad listen multiaddress", func(t *testing.T) {
|
t.Run("bad listen multiaddress", func(t *testing.T) {
|
||||||
_, err := loadJSON2(t, func(j *configJSON) { j.ListenMultiaddress = "abc" })
|
_, err := loadJSON2(t, func(j *configJSON) { j.ListenMultiaddress = "abc" })
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
@ -212,11 +198,6 @@ func TestApplyEnvVars(t *testing.T) {
|
||||||
|
|
||||||
func TestValidate(t *testing.T) {
|
func TestValidate(t *testing.T) {
|
||||||
cfg := &Config{}
|
cfg := &Config{}
|
||||||
cfg.Default()
|
|
||||||
cfg.ID = ""
|
|
||||||
if cfg.Validate() == nil {
|
|
||||||
t.Fatal("expected error validating")
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg.Default()
|
cfg.Default()
|
||||||
cfg.MonitorPingInterval = 0
|
cfg.MonitorPingInterval = 0
|
||||||
|
|
|
@ -3,6 +3,7 @@ package ipfscluster
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"mime/multipart"
|
"mime/multipart"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -13,6 +14,7 @@ import (
|
||||||
"github.com/ipfs/ipfs-cluster/adder/sharding"
|
"github.com/ipfs/ipfs-cluster/adder/sharding"
|
||||||
"github.com/ipfs/ipfs-cluster/allocator/ascendalloc"
|
"github.com/ipfs/ipfs-cluster/allocator/ascendalloc"
|
||||||
"github.com/ipfs/ipfs-cluster/api"
|
"github.com/ipfs/ipfs-cluster/api"
|
||||||
|
"github.com/ipfs/ipfs-cluster/config"
|
||||||
"github.com/ipfs/ipfs-cluster/consensus/raft"
|
"github.com/ipfs/ipfs-cluster/consensus/raft"
|
||||||
"github.com/ipfs/ipfs-cluster/datastore/inmem"
|
"github.com/ipfs/ipfs-cluster/datastore/inmem"
|
||||||
"github.com/ipfs/ipfs-cluster/informer/numpin"
|
"github.com/ipfs/ipfs-cluster/informer/numpin"
|
||||||
|
@ -139,9 +141,9 @@ type mockTracer struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func testingCluster(t *testing.T) (*Cluster, *mockAPI, *mockConnector, PinTracker) {
|
func testingCluster(t *testing.T) (*Cluster, *mockAPI, *mockConnector, PinTracker) {
|
||||||
clusterCfg, _, _, _, _, raftCfg, _, maptrackerCfg, statelesstrackerCfg, psmonCfg, _, _ := testingConfigs()
|
ident, clusterCfg, _, _, _, _, raftCfg, _, maptrackerCfg, statelesstrackerCfg, psmonCfg, _, _ := testingConfigs()
|
||||||
|
|
||||||
host, pubsub, dht, err := NewClusterHost(context.Background(), clusterCfg)
|
host, pubsub, dht, err := NewClusterHost(context.Background(), ident, clusterCfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@ -149,7 +151,7 @@ func testingCluster(t *testing.T) (*Cluster, *mockAPI, *mockConnector, PinTracke
|
||||||
api := &mockAPI{}
|
api := &mockAPI{}
|
||||||
proxy := &mockProxy{}
|
proxy := &mockProxy{}
|
||||||
ipfs := &mockConnector{}
|
ipfs := &mockConnector{}
|
||||||
tracker := makePinTracker(t, clusterCfg.ID, maptrackerCfg, statelesstrackerCfg, clusterCfg.Peername)
|
tracker := makePinTracker(t, ident.ID, maptrackerCfg, statelesstrackerCfg, clusterCfg.Peername)
|
||||||
tracer := &mockTracer{}
|
tracer := &mockTracer{}
|
||||||
|
|
||||||
store := inmem.New()
|
store := inmem.New()
|
||||||
|
@ -849,9 +851,15 @@ func TestClusterPeers(t *testing.T) {
|
||||||
t.Fatal("expected 1 peer")
|
t.Fatal("expected 1 peer")
|
||||||
}
|
}
|
||||||
|
|
||||||
clusterCfg := &Config{}
|
ident := &config.Identity{}
|
||||||
clusterCfg.LoadJSON(testingClusterCfg)
|
err := ident.LoadJSON(testingIdentity)
|
||||||
if peers[0].ID != clusterCfg.ID {
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if peers[0].ID != ident.ID {
|
||||||
|
fmt.Println(peers[0].ID)
|
||||||
|
fmt.Println(ident.ID)
|
||||||
t.Error("bad member")
|
t.Error("bad member")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,10 +118,10 @@ func (ident *Identity) LoadJSON(raw []byte) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return ident.applyConfigJSON(jID)
|
return ident.applyIdentityJSON(jID)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ident *Identity) applyConfigJSON(jID *identityJSON) error {
|
func (ident *Identity) applyIdentityJSON(jID *identityJSON) error {
|
||||||
pid, err := peer.IDB58Decode(jID.ID)
|
pid, err := peer.IDB58Decode(jID.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = fmt.Errorf("error decoding cluster ID: %s", err)
|
err = fmt.Errorf("error decoding cluster ID: %s", err)
|
||||||
|
@ -180,11 +180,14 @@ func (ident *Identity) ApplyEnvVars() error {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = envconfig.Process(ident.ConfigKey(), jID)
|
err = envconfig.Process(ident.ConfigKey(), jID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
return ident.applyIdentityJSON(jID)
|
||||||
return ident.applyConfigJSON(jID)
|
}
|
||||||
|
|
||||||
|
// Equals returns true if equal to provided identity.
|
||||||
|
func (ident *Identity) Equals(i *Identity) bool {
|
||||||
|
return ident.ID == i.ID && ident.PrivateKey.Equals(i.PrivateKey)
|
||||||
}
|
}
|
||||||
|
|
125
config/identity_test.go
Normal file
125
config/identity_test.go
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
package config
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
var identityTestJSON = []byte(`{
|
||||||
|
"id": "QmUfSFm12eYCaRdypg48m8RqkXfLW7A2ZeGZb2skeHHDGA",
|
||||||
|
"private_key": "CAASqAkwggSkAgEAAoIBAQDpT16IRF6bb9tHsCbQ7M+nb2aI8sz8xyt8PoAWM42ki+SNoESIxKb4UhFxixKvtEdGxNE6aUUVc8kFk6wTStJ/X3IGiMetwkXiFiUxabUF/8A6SyvnSVDm+wFuavugpVrZikjLcfrf2xOVgnG3deQQvd/qbAv14jTwMFl+T+8d/cXBo8Mn/leLZCQun/EJEnkXP5MjgNI8XcWUE4NnH3E0ESSm6Pkm8MhMDZ2fmzNgqEyJ0GVinNgSml3Pyha3PBSj5LRczLip/ie4QkKx5OHvX2L3sNv/JIUHse5HSbjZ1c/4oGCYMVTYCykWiczrxBUOlcr8RwnZLOm4n2bCt5ZhAgMBAAECggEAVkePwfzmr7zR7tTpxeGNeXHtDUAdJm3RWwUSASPXgb5qKyXVsm5nAPX4lXDE3E1i/nzSkzNS5PgIoxNVU10cMxZs6JW0okFx7oYaAwgAddN6lxQtjD7EuGaixN6zZ1k/G6vT98iS6i3uNCAlRZ9HVBmjsOF8GtYolZqLvfZ5izEVFlLVq/BCs7Y5OrDrbGmn3XupfitVWYExV0BrHpobDjsx2fYdTZkmPpSSvXNcm4Iq2AXVQzoqAfGo7+qsuLCZtVlyTfVKQjMvE2ffzN1dQunxixOvev/fz4WSjGnRpC6QLn6Oqps9+VxQKqKuXXqUJC+U45DuvA94Of9MvZfAAQKBgQD7xmXueXRBMr2+0WftybAV024ap0cXFrCAu+KWC1SUddCfkiV7e5w+kRJx6RH1cg4cyyCL8yhHZ99Z5V0Mxa/b/usuHMadXPyX5szVI7dOGgIC9q8IijN7B7GMFAXc8+qC7kivehJzjQghpRRAqvRzjDls4gmbNPhbH1jUiU124QKBgQDtOaW5/fOEtOq0yWbDLkLdjImct6oKMLhENL6yeIKjMYgifzHb2adk7rWG3qcMrdgaFtDVfqv8UmMEkzk7bSkovMVj3SkLzMz84ii1SkSfyaCXgt/UOzDkqAUYB0cXMppYA7jxHa2OY8oEHdBgmyJXdLdzJxCp851AoTlRUSePgQKBgQCQgKgUHOUaXnMEx88sbOuBO14gMg3dNIqM+Ejt8QbURmI8k3arzqA4UK8Tbb9+7b0nzXWanS5q/TT1tWyYXgW28DIuvxlHTA01aaP6WItmagrphIelERzG6f1+9ib/T4czKmvROvDIHROjq8lZ7ERs5Pg4g+sbh2VbdzxWj49EQQKBgFEna36ZVfmMOs7mJ3WWGeHY9ira2hzqVd9fe+1qNKbHhx7mDJR9fTqWPxuIh/Vac5dZPtAKqaOEO8OQ6f9edLou+ggT3LrgsS/B3tNGOPvA6mNqrk/Yf/15TWTO+I8DDLIXc+lokbsogC+wU1z5NWJd13RZZOX/JUi63vTmonYBAoGBAIpglLCH2sPXfmguO6p8QcQcv4RjAU1c0GP4P5PNN3Wzo0ItydVd2LHJb6MdmL6ypeiwNklzPFwTeRlKTPmVxJ+QPg1ct/3tAURN/D40GYw9ojDhqmdSl4HW4d6gHS2lYzSFeU5jkG49y5nirOOoEgHy95wghkh6BfpwHujYJGw4"
|
||||||
|
}`)
|
||||||
|
|
||||||
|
var (
|
||||||
|
ID = "QmUfSFm12eYCaRdypg48m8RqkXfLW7A2ZeGZb2skeHHDGA"
|
||||||
|
PrivateKey = "CAASqAkwggSkAgEAAoIBAQDpT16IRF6bb9tHsCbQ7M+nb2aI8sz8xyt8PoAWM42ki+SNoESIxKb4UhFxixKvtEdGxNE6aUUVc8kFk6wTStJ/X3IGiMetwkXiFiUxabUF/8A6SyvnSVDm+wFuavugpVrZikjLcfrf2xOVgnG3deQQvd/qbAv14jTwMFl+T+8d/cXBo8Mn/leLZCQun/EJEnkXP5MjgNI8XcWUE4NnH3E0ESSm6Pkm8MhMDZ2fmzNgqEyJ0GVinNgSml3Pyha3PBSj5LRczLip/ie4QkKx5OHvX2L3sNv/JIUHse5HSbjZ1c/4oGCYMVTYCykWiczrxBUOlcr8RwnZLOm4n2bCt5ZhAgMBAAECggEAVkePwfzmr7zR7tTpxeGNeXHtDUAdJm3RWwUSASPXgb5qKyXVsm5nAPX4lXDE3E1i/nzSkzNS5PgIoxNVU10cMxZs6JW0okFx7oYaAwgAddN6lxQtjD7EuGaixN6zZ1k/G6vT98iS6i3uNCAlRZ9HVBmjsOF8GtYolZqLvfZ5izEVFlLVq/BCs7Y5OrDrbGmn3XupfitVWYExV0BrHpobDjsx2fYdTZkmPpSSvXNcm4Iq2AXVQzoqAfGo7+qsuLCZtVlyTfVKQjMvE2ffzN1dQunxixOvev/fz4WSjGnRpC6QLn6Oqps9+VxQKqKuXXqUJC+U45DuvA94Of9MvZfAAQKBgQD7xmXueXRBMr2+0WftybAV024ap0cXFrCAu+KWC1SUddCfkiV7e5w+kRJx6RH1cg4cyyCL8yhHZ99Z5V0Mxa/b/usuHMadXPyX5szVI7dOGgIC9q8IijN7B7GMFAXc8+qC7kivehJzjQghpRRAqvRzjDls4gmbNPhbH1jUiU124QKBgQDtOaW5/fOEtOq0yWbDLkLdjImct6oKMLhENL6yeIKjMYgifzHb2adk7rWG3qcMrdgaFtDVfqv8UmMEkzk7bSkovMVj3SkLzMz84ii1SkSfyaCXgt/UOzDkqAUYB0cXMppYA7jxHa2OY8oEHdBgmyJXdLdzJxCp851AoTlRUSePgQKBgQCQgKgUHOUaXnMEx88sbOuBO14gMg3dNIqM+Ejt8QbURmI8k3arzqA4UK8Tbb9+7b0nzXWanS5q/TT1tWyYXgW28DIuvxlHTA01aaP6WItmagrphIelERzG6f1+9ib/T4czKmvROvDIHROjq8lZ7ERs5Pg4g+sbh2VbdzxWj49EQQKBgFEna36ZVfmMOs7mJ3WWGeHY9ira2hzqVd9fe+1qNKbHhx7mDJR9fTqWPxuIh/Vac5dZPtAKqaOEO8OQ6f9edLou+ggT3LrgsS/B3tNGOPvA6mNqrk/Yf/15TWTO+I8DDLIXc+lokbsogC+wU1z5NWJd13RZZOX/JUi63vTmonYBAoGBAIpglLCH2sPXfmguO6p8QcQcv4RjAU1c0GP4P5PNN3Wzo0ItydVd2LHJb6MdmL6ypeiwNklzPFwTeRlKTPmVxJ+QPg1ct/3tAURN/D40GYw9ojDhqmdSl4HW4d6gHS2lYzSFeU5jkG49y5nirOOoEgHy95wghkh6BfpwHujYJGw4"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestLoadJSON(t *testing.T) {
|
||||||
|
t.Run("basic", func(t *testing.T) {
|
||||||
|
ident := &Identity{}
|
||||||
|
err := ident.LoadJSON(identityTestJSON)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
loadJSON := func(t *testing.T, f func(j *identityJSON)) (*Identity, error) {
|
||||||
|
ident := &Identity{}
|
||||||
|
j := &identityJSON{}
|
||||||
|
json.Unmarshal(identityTestJSON, j)
|
||||||
|
f(j)
|
||||||
|
tst, err := json.Marshal(j)
|
||||||
|
if err != nil {
|
||||||
|
return ident, err
|
||||||
|
}
|
||||||
|
err = ident.LoadJSON(tst)
|
||||||
|
if err != nil {
|
||||||
|
return ident, err
|
||||||
|
}
|
||||||
|
return ident, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Run("bad id", func(t *testing.T) {
|
||||||
|
_, err := loadJSON(t, func(j *identityJSON) { j.ID = "abc" })
|
||||||
|
if err == nil {
|
||||||
|
t.Error("expected error decoding ID")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("bad private key", func(t *testing.T) {
|
||||||
|
_, err := loadJSON(t, func(j *identityJSON) { j.PrivateKey = "abc" })
|
||||||
|
if err == nil {
|
||||||
|
t.Error("expected error parsing private key")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestToJSON(t *testing.T) {
|
||||||
|
ident := &Identity{}
|
||||||
|
err := ident.LoadJSON(identityTestJSON)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
newjson, err := ident.ToJSON()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
ident2 := &Identity{}
|
||||||
|
err = ident2.LoadJSON(newjson)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ident.Equals(ident2) {
|
||||||
|
t.Error("did not load to the same identity")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestApplyEnvVars(t *testing.T) {
|
||||||
|
os.Setenv("CLUSTER_ID", ID)
|
||||||
|
os.Setenv("CLUSTER_PRIVATEKEY", PrivateKey)
|
||||||
|
|
||||||
|
ident, err := NewIdentity()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
err = ident.ApplyEnvVars()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
ident2 := &Identity{}
|
||||||
|
err = ident2.LoadJSON(identityTestJSON)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !ident.Equals(ident2) {
|
||||||
|
t.Error("failed to override identity with env var")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestValidate(t *testing.T) {
|
||||||
|
ident := &Identity{}
|
||||||
|
|
||||||
|
if ident.Validate() == nil {
|
||||||
|
t.Fatal("expected error validating")
|
||||||
|
}
|
||||||
|
|
||||||
|
ident, err := NewIdentity()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ident.Validate() != nil {
|
||||||
|
t.Error("expected to validate without error")
|
||||||
|
}
|
||||||
|
|
||||||
|
ident.ID = ""
|
||||||
|
if ident.Validate() == nil {
|
||||||
|
t.Fatal("expected error validating")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package ipfscluster
|
||||||
import (
|
import (
|
||||||
"github.com/ipfs/ipfs-cluster/api/ipfsproxy"
|
"github.com/ipfs/ipfs-cluster/api/ipfsproxy"
|
||||||
"github.com/ipfs/ipfs-cluster/api/rest"
|
"github.com/ipfs/ipfs-cluster/api/rest"
|
||||||
|
"github.com/ipfs/ipfs-cluster/config"
|
||||||
"github.com/ipfs/ipfs-cluster/consensus/crdt"
|
"github.com/ipfs/ipfs-cluster/consensus/crdt"
|
||||||
"github.com/ipfs/ipfs-cluster/consensus/raft"
|
"github.com/ipfs/ipfs-cluster/consensus/raft"
|
||||||
"github.com/ipfs/ipfs-cluster/datastore/badger"
|
"github.com/ipfs/ipfs-cluster/datastore/badger"
|
||||||
|
@ -16,9 +17,12 @@ import (
|
||||||
|
|
||||||
var testingClusterSecret, _ = DecodeClusterSecret("2588b80d5cb05374fa142aed6cbb047d1f4ef8ef15e37eba68c65b9d30df67ed")
|
var testingClusterSecret, _ = DecodeClusterSecret("2588b80d5cb05374fa142aed6cbb047d1f4ef8ef15e37eba68c65b9d30df67ed")
|
||||||
|
|
||||||
|
var testingIdentity = []byte(`{
|
||||||
|
"id": "QmUfSFm12eYCaRdypg48m8RqkXfLW7A2ZeGZb2skeHHDGA",
|
||||||
|
"private_key": "CAASqAkwggSkAgEAAoIBAQDpT16IRF6bb9tHsCbQ7M+nb2aI8sz8xyt8PoAWM42ki+SNoESIxKb4UhFxixKvtEdGxNE6aUUVc8kFk6wTStJ/X3IGiMetwkXiFiUxabUF/8A6SyvnSVDm+wFuavugpVrZikjLcfrf2xOVgnG3deQQvd/qbAv14jTwMFl+T+8d/cXBo8Mn/leLZCQun/EJEnkXP5MjgNI8XcWUE4NnH3E0ESSm6Pkm8MhMDZ2fmzNgqEyJ0GVinNgSml3Pyha3PBSj5LRczLip/ie4QkKx5OHvX2L3sNv/JIUHse5HSbjZ1c/4oGCYMVTYCykWiczrxBUOlcr8RwnZLOm4n2bCt5ZhAgMBAAECggEAVkePwfzmr7zR7tTpxeGNeXHtDUAdJm3RWwUSASPXgb5qKyXVsm5nAPX4lXDE3E1i/nzSkzNS5PgIoxNVU10cMxZs6JW0okFx7oYaAwgAddN6lxQtjD7EuGaixN6zZ1k/G6vT98iS6i3uNCAlRZ9HVBmjsOF8GtYolZqLvfZ5izEVFlLVq/BCs7Y5OrDrbGmn3XupfitVWYExV0BrHpobDjsx2fYdTZkmPpSSvXNcm4Iq2AXVQzoqAfGo7+qsuLCZtVlyTfVKQjMvE2ffzN1dQunxixOvev/fz4WSjGnRpC6QLn6Oqps9+VxQKqKuXXqUJC+U45DuvA94Of9MvZfAAQKBgQD7xmXueXRBMr2+0WftybAV024ap0cXFrCAu+KWC1SUddCfkiV7e5w+kRJx6RH1cg4cyyCL8yhHZ99Z5V0Mxa/b/usuHMadXPyX5szVI7dOGgIC9q8IijN7B7GMFAXc8+qC7kivehJzjQghpRRAqvRzjDls4gmbNPhbH1jUiU124QKBgQDtOaW5/fOEtOq0yWbDLkLdjImct6oKMLhENL6yeIKjMYgifzHb2adk7rWG3qcMrdgaFtDVfqv8UmMEkzk7bSkovMVj3SkLzMz84ii1SkSfyaCXgt/UOzDkqAUYB0cXMppYA7jxHa2OY8oEHdBgmyJXdLdzJxCp851AoTlRUSePgQKBgQCQgKgUHOUaXnMEx88sbOuBO14gMg3dNIqM+Ejt8QbURmI8k3arzqA4UK8Tbb9+7b0nzXWanS5q/TT1tWyYXgW28DIuvxlHTA01aaP6WItmagrphIelERzG6f1+9ib/T4czKmvROvDIHROjq8lZ7ERs5Pg4g+sbh2VbdzxWj49EQQKBgFEna36ZVfmMOs7mJ3WWGeHY9ira2hzqVd9fe+1qNKbHhx7mDJR9fTqWPxuIh/Vac5dZPtAKqaOEO8OQ6f9edLou+ggT3LrgsS/B3tNGOPvA6mNqrk/Yf/15TWTO+I8DDLIXc+lokbsogC+wU1z5NWJd13RZZOX/JUi63vTmonYBAoGBAIpglLCH2sPXfmguO6p8QcQcv4RjAU1c0GP4P5PNN3Wzo0ItydVd2LHJb6MdmL6ypeiwNklzPFwTeRlKTPmVxJ+QPg1ct/3tAURN/D40GYw9ojDhqmdSl4HW4d6gHS2lYzSFeU5jkG49y5nirOOoEgHy95wghkh6BfpwHujYJGw4"
|
||||||
|
}`)
|
||||||
|
|
||||||
var testingClusterCfg = []byte(`{
|
var testingClusterCfg = []byte(`{
|
||||||
"id": "QmUfSFm12eYCaRdypg48m8RqkXfLW7A2ZeGZb2skeHHDGA",
|
|
||||||
"private_key": "CAASqAkwggSkAgEAAoIBAQDpT16IRF6bb9tHsCbQ7M+nb2aI8sz8xyt8PoAWM42ki+SNoESIxKb4UhFxixKvtEdGxNE6aUUVc8kFk6wTStJ/X3IGiMetwkXiFiUxabUF/8A6SyvnSVDm+wFuavugpVrZikjLcfrf2xOVgnG3deQQvd/qbAv14jTwMFl+T+8d/cXBo8Mn/leLZCQun/EJEnkXP5MjgNI8XcWUE4NnH3E0ESSm6Pkm8MhMDZ2fmzNgqEyJ0GVinNgSml3Pyha3PBSj5LRczLip/ie4QkKx5OHvX2L3sNv/JIUHse5HSbjZ1c/4oGCYMVTYCykWiczrxBUOlcr8RwnZLOm4n2bCt5ZhAgMBAAECggEAVkePwfzmr7zR7tTpxeGNeXHtDUAdJm3RWwUSASPXgb5qKyXVsm5nAPX4lXDE3E1i/nzSkzNS5PgIoxNVU10cMxZs6JW0okFx7oYaAwgAddN6lxQtjD7EuGaixN6zZ1k/G6vT98iS6i3uNCAlRZ9HVBmjsOF8GtYolZqLvfZ5izEVFlLVq/BCs7Y5OrDrbGmn3XupfitVWYExV0BrHpobDjsx2fYdTZkmPpSSvXNcm4Iq2AXVQzoqAfGo7+qsuLCZtVlyTfVKQjMvE2ffzN1dQunxixOvev/fz4WSjGnRpC6QLn6Oqps9+VxQKqKuXXqUJC+U45DuvA94Of9MvZfAAQKBgQD7xmXueXRBMr2+0WftybAV024ap0cXFrCAu+KWC1SUddCfkiV7e5w+kRJx6RH1cg4cyyCL8yhHZ99Z5V0Mxa/b/usuHMadXPyX5szVI7dOGgIC9q8IijN7B7GMFAXc8+qC7kivehJzjQghpRRAqvRzjDls4gmbNPhbH1jUiU124QKBgQDtOaW5/fOEtOq0yWbDLkLdjImct6oKMLhENL6yeIKjMYgifzHb2adk7rWG3qcMrdgaFtDVfqv8UmMEkzk7bSkovMVj3SkLzMz84ii1SkSfyaCXgt/UOzDkqAUYB0cXMppYA7jxHa2OY8oEHdBgmyJXdLdzJxCp851AoTlRUSePgQKBgQCQgKgUHOUaXnMEx88sbOuBO14gMg3dNIqM+Ejt8QbURmI8k3arzqA4UK8Tbb9+7b0nzXWanS5q/TT1tWyYXgW28DIuvxlHTA01aaP6WItmagrphIelERzG6f1+9ib/T4czKmvROvDIHROjq8lZ7ERs5Pg4g+sbh2VbdzxWj49EQQKBgFEna36ZVfmMOs7mJ3WWGeHY9ira2hzqVd9fe+1qNKbHhx7mDJR9fTqWPxuIh/Vac5dZPtAKqaOEO8OQ6f9edLou+ggT3LrgsS/B3tNGOPvA6mNqrk/Yf/15TWTO+I8DDLIXc+lokbsogC+wU1z5NWJd13RZZOX/JUi63vTmonYBAoGBAIpglLCH2sPXfmguO6p8QcQcv4RjAU1c0GP4P5PNN3Wzo0ItydVd2LHJb6MdmL6ypeiwNklzPFwTeRlKTPmVxJ+QPg1ct/3tAURN/D40GYw9ojDhqmdSl4HW4d6gHS2lYzSFeU5jkG49y5nirOOoEgHy95wghkh6BfpwHujYJGw4",
|
|
||||||
"secret": "2588b80d5cb05374fa142aed6cbb047d1f4ef8ef15e37eba68c65b9d30df67ed",
|
"secret": "2588b80d5cb05374fa142aed6cbb047d1f4ef8ef15e37eba68c65b9d30df67ed",
|
||||||
"leave_on_shutdown": false,
|
"leave_on_shutdown": false,
|
||||||
"listen_multiaddress": "/ip4/127.0.0.1/tcp/10000",
|
"listen_multiaddress": "/ip4/127.0.0.1/tcp/10000",
|
||||||
|
@ -114,8 +118,9 @@ var testingTracerCfg = []byte(`{
|
||||||
"enable_tracing": false
|
"enable_tracing": false
|
||||||
}`)
|
}`)
|
||||||
|
|
||||||
func testingConfigs() (*Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.Config, *badger.Config, *raft.Config, *crdt.Config, *maptracker.Config, *stateless.Config, *pubsubmon.Config, *disk.Config, *observations.TracingConfig) {
|
func testingConfigs() (*config.Identity, *Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.Config, *badger.Config, *raft.Config, *crdt.Config, *maptracker.Config, *stateless.Config, *pubsubmon.Config, *disk.Config, *observations.TracingConfig) {
|
||||||
clusterCfg, apiCfg, proxyCfg, ipfsCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrkrCfg, pubsubmonCfg, diskInfCfg, tracingCfg := testingEmptyConfigs()
|
identity, clusterCfg, apiCfg, proxyCfg, ipfsCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrkrCfg, pubsubmonCfg, diskInfCfg, tracingCfg := testingEmptyConfigs()
|
||||||
|
identity.LoadJSON(testingIdentity)
|
||||||
clusterCfg.LoadJSON(testingClusterCfg)
|
clusterCfg.LoadJSON(testingClusterCfg)
|
||||||
apiCfg.LoadJSON(testingAPICfg)
|
apiCfg.LoadJSON(testingAPICfg)
|
||||||
proxyCfg.LoadJSON(testingProxyCfg)
|
proxyCfg.LoadJSON(testingProxyCfg)
|
||||||
|
@ -129,10 +134,11 @@ func testingConfigs() (*Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.Confi
|
||||||
diskInfCfg.LoadJSON(testingDiskInfCfg)
|
diskInfCfg.LoadJSON(testingDiskInfCfg)
|
||||||
tracingCfg.LoadJSON(testingTracerCfg)
|
tracingCfg.LoadJSON(testingTracerCfg)
|
||||||
|
|
||||||
return clusterCfg, apiCfg, proxyCfg, ipfsCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrkrCfg, pubsubmonCfg, diskInfCfg, tracingCfg
|
return identity, clusterCfg, apiCfg, proxyCfg, ipfsCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrkrCfg, pubsubmonCfg, diskInfCfg, tracingCfg
|
||||||
}
|
}
|
||||||
|
|
||||||
func testingEmptyConfigs() (*Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.Config, *badger.Config, *raft.Config, *crdt.Config, *maptracker.Config, *stateless.Config, *pubsubmon.Config, *disk.Config, *observations.TracingConfig) {
|
func testingEmptyConfigs() (*config.Identity, *Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.Config, *badger.Config, *raft.Config, *crdt.Config, *maptracker.Config, *stateless.Config, *pubsubmon.Config, *disk.Config, *observations.TracingConfig) {
|
||||||
|
identity := &config.Identity{}
|
||||||
clusterCfg := &Config{}
|
clusterCfg := &Config{}
|
||||||
apiCfg := &rest.Config{}
|
apiCfg := &rest.Config{}
|
||||||
proxyCfg := &ipfsproxy.Config{}
|
proxyCfg := &ipfsproxy.Config{}
|
||||||
|
@ -145,7 +151,7 @@ func testingEmptyConfigs() (*Config, *rest.Config, *ipfsproxy.Config, *ipfshttp.
|
||||||
pubsubmonCfg := &pubsubmon.Config{}
|
pubsubmonCfg := &pubsubmon.Config{}
|
||||||
diskInfCfg := &disk.Config{}
|
diskInfCfg := &disk.Config{}
|
||||||
tracingCfg := &observations.TracingConfig{}
|
tracingCfg := &observations.TracingConfig{}
|
||||||
return clusterCfg, apiCfg, proxyCfg, ipfshttpCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelessCfg, pubsubmonCfg, diskInfCfg, tracingCfg
|
return identity, clusterCfg, apiCfg, proxyCfg, ipfshttpCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelessCfg, pubsubmonCfg, diskInfCfg, tracingCfg
|
||||||
}
|
}
|
||||||
|
|
||||||
// func TestConfigDefault(t *testing.T) {
|
// func TestConfigDefault(t *testing.T) {
|
||||||
|
|
|
@ -148,10 +148,10 @@ func createComponents(t *testing.T, host host.Host, pubsub *pubsub.PubSub, dht *
|
||||||
|
|
||||||
peername := fmt.Sprintf("peer_%d", i)
|
peername := fmt.Sprintf("peer_%d", i)
|
||||||
|
|
||||||
clusterCfg, apiCfg, ipfsproxyCfg, ipfshttpCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrackerCfg, psmonCfg, diskInfCfg, tracingCfg := testingConfigs()
|
ident, clusterCfg, apiCfg, ipfsproxyCfg, ipfshttpCfg, badgerCfg, raftCfg, crdtCfg, maptrackerCfg, statelesstrackerCfg, psmonCfg, diskInfCfg, tracingCfg := testingConfigs()
|
||||||
|
|
||||||
clusterCfg.ID = host.ID()
|
ident.ID = host.ID()
|
||||||
clusterCfg.PrivateKey = host.Peerstore().PrivKey(host.ID())
|
ident.PrivateKey = host.Peerstore().PrivKey(host.ID())
|
||||||
clusterCfg.Peername = peername
|
clusterCfg.Peername = peername
|
||||||
clusterCfg.LeaveOnShutdown = false
|
clusterCfg.LeaveOnShutdown = false
|
||||||
clusterCfg.SetBaseDir(filepath.Join(testsFolder, host.ID().Pretty()))
|
clusterCfg.SetBaseDir(filepath.Join(testsFolder, host.ID().Pretty()))
|
||||||
|
@ -174,7 +174,7 @@ func createComponents(t *testing.T, host host.Host, pubsub *pubsub.PubSub, dht *
|
||||||
|
|
||||||
ipfs, err := ipfshttp.NewConnector(ipfshttpCfg)
|
ipfs, err := ipfshttp.NewConnector(ipfshttpCfg)
|
||||||
checkErr(t, err)
|
checkErr(t, err)
|
||||||
tracker := makePinTracker(t, clusterCfg.ID, maptrackerCfg, statelesstrackerCfg, clusterCfg.Peername)
|
tracker := makePinTracker(t, ident.ID, maptrackerCfg, statelesstrackerCfg, clusterCfg.Peername)
|
||||||
|
|
||||||
alloc := descendalloc.NewAllocator()
|
alloc := descendalloc.NewAllocator()
|
||||||
inf, err := disk.NewInformer(diskInfCfg)
|
inf, err := disk.NewInformer(diskInfCfg)
|
||||||
|
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/ipfs/ipfs-cluster/api"
|
"github.com/ipfs/ipfs-cluster/api"
|
||||||
|
"github.com/ipfs/ipfs-cluster/config"
|
||||||
"github.com/ipfs/ipfs-cluster/test"
|
"github.com/ipfs/ipfs-cluster/test"
|
||||||
|
|
||||||
cid "github.com/ipfs/go-cid"
|
cid "github.com/ipfs/go-cid"
|
||||||
|
@ -32,6 +33,11 @@ func peerManagerClusters(t *testing.T) ([]*Cluster, []*test.IpfsMock, host.Host)
|
||||||
}
|
}
|
||||||
wg.Wait()
|
wg.Wait()
|
||||||
|
|
||||||
|
// Creat an identity
|
||||||
|
ident, err := config.NewIdentity()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
// Create a config
|
// Create a config
|
||||||
cfg := &Config{}
|
cfg := &Config{}
|
||||||
cfg.Default()
|
cfg.Default()
|
||||||
|
@ -40,7 +46,7 @@ func peerManagerClusters(t *testing.T) ([]*Cluster, []*test.IpfsMock, host.Host)
|
||||||
cfg.Secret = testingClusterSecret
|
cfg.Secret = testingClusterSecret
|
||||||
|
|
||||||
// Create a bootstrapping libp2p host
|
// Create a bootstrapping libp2p host
|
||||||
h, _, dht, err := NewClusterHost(context.Background(), cfg)
|
h, _, dht, err := NewClusterHost(context.Background(), ident, cfg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user