@cryptotaxi247 / kubo / commits / 9497e26fb

Implement pluggable Datastore types, with nothing implemented yet

License: MIT Signed-off-by: Tommi Virtanen <tv@eagain.net>

Tommi Virtanen committed May 20, 2015 at 10:17 UTC 9497e26fbd6745f0f889e36d5825bd0f998569dd
2 files changed +11 -6
repo/config/config.go
+1 -2
@@ -18,6 +18,7 @@ var log = logging.Logger("config")
18 // Config is used to load IPFS config files.
19 type Config struct {
20 Identity Identity // local node's peer identity
21 + Datastore Datastore // local node's storage
22 Addresses Addresses // local node's addresses
23 Mounts Mounts // local node's mount points
24 Version Version // local node's version management
@@ -29,8 +30,6 @@ type Config struct {
30 SupernodeRouting SupernodeClientConfig // local node's routing servers (if SupernodeRouting enabled)
31 API API // local node's API settings
32 Swarm SwarmConfig
32 -
33 - Datastore Datastore
33 }
34
35 const (
repo/fsrepo/fsrepo.go
+10 -4
@@ -324,11 +324,17 @@ func (r *FSRepo) openConfig() error {
324
325 // openDatastore returns an error if the config file is not present.
326 func (r *FSRepo) openDatastore() error {
327 - d, err := openDefaultDatastore(r)
328 - if err != nil {
329 - return err
327 + switch r.config.Datastore.Type {
328 + case "default", "leveldb", "":
329 + d, err := openDefaultDatastore(r)
330 + if err != nil {
331 + return err
332 + }
333 + r.ds = d
334 + default:
335 + return fmt.Errorf("unknown datastore type: %s", r.config.Datastore.Type)
336 }
331 - r.ds = d
337 +
338 return nil
339 }
340