Skip to content

Commit

Permalink
config: apply review to lowpower profile
Browse files Browse the repository at this point in the history
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
  • Loading branch information
magik6k committed Mar 23, 2018
1 parent a708035 commit 1babd29
Show file tree
Hide file tree
Showing 10 changed files with 28 additions and 16 deletions.
3 changes: 1 addition & 2 deletions cmd/ipfs/daemon.go
Expand Up @@ -151,7 +151,6 @@ Headers.
Options: []cmdkit.Option{
cmdkit.BoolOption(initOptionKwd, "Initialize ipfs with default settings if not already initialized"),
cmdkit.StringOption(initProfileOptionKwd, "Configuration profiles to apply for --init. See ipfs init --help for more"),
cmdkit.StringOption(routingOptionKwd, "Overrides the routing option").WithDefault("dht"),
cmdkit.StringOption(routingOptionKwd, "Overrides the routing option").WithDefault("default"),
cmdkit.BoolOption(mountKwd, "Mounts IPFS to the filesystem"),
cmdkit.BoolOption(writableKwd, "Enable writing objects (with POST, PUT and DELETE)"),
Expand Down Expand Up @@ -313,7 +312,7 @@ func daemonFunc(req *cmds.Request, re cmds.ResponseEmitter, env cmds.Environment
return
}

routingOption = cfg.Discovery.Routing
routingOption = cfg.Routing.Type
if routingOption == "" {
routingOption = routingOptionDHTKwd
}
Expand Down
3 changes: 2 additions & 1 deletion cmd/ipfs/init.go
Expand Up @@ -39,7 +39,8 @@ Available profiles:
'test' - Reduces external interference of IPFS daemon, this
is useful when using the daemon in test environments.
'lowpower' - Reduces daemon overhead on the system. May affect node
functionality.
functionality - performance of content discovery and data fetching
may be degraded.
ipfs uses a repository in the local file system. By default, the repo is
located at ~/.ipfs. To change the repo location, set the $IPFS_PATH
Expand Down
1 change: 0 additions & 1 deletion docs/config.md
Expand Up @@ -203,7 +203,6 @@ Valid modes are:
- `dht` (default)
- `dhtclient`
- `none`
- `supernode` (deprecated)

## `Gateway`
Options for the HTTP gateway.
Expand Down
1 change: 1 addition & 0 deletions repo/config/config.go
Expand Up @@ -19,6 +19,7 @@ type Config struct {
Addresses Addresses // local node's addresses
Mounts Mounts // local node's mount points
Discovery Discovery // local node's discovery mechanisms
Routing Routing // local node's routing settings
Ipns Ipns // Ipns settings
Bootstrap []string // local nodes's bootstrap peer addresses
Gateway Gateway // local node's gateway server options
Expand Down
3 changes: 0 additions & 3 deletions repo/config/discovery.go
Expand Up @@ -2,9 +2,6 @@ package config

type Discovery struct {
MDNS MDNS

//Routing sets default daemon routing mode.
Routing string
}

type MDNS struct {
Expand Down
5 changes: 4 additions & 1 deletion repo/config/init.go
Expand Up @@ -43,7 +43,10 @@ func Init(out io.Writer, nBitsForKeypair int) (*Config, error) {
Enabled: true,
Interval: 10,
},
Routing: "dht",
},

Routing: Routing{
Type: "dht",
},

// setup the node mount points.
Expand Down
8 changes: 7 additions & 1 deletion repo/config/profile.go
@@ -1,5 +1,7 @@
package config

import "time"

// Transformer is a function which takes configuration and applies some filter to it
type Transformer func(c *Config) error

Expand Down Expand Up @@ -74,8 +76,12 @@ var Profiles = map[string]Transformer{
return nil
},
"lowpower": func(c *Config) error {
c.Discovery.Routing = "dhtclient"
c.Routing.Type = "dhtclient"
c.Reprovider.Interval = "0"

c.Swarm.ConnMgr.LowWater = 20
c.Swarm.ConnMgr.HighWater = 40
c.Swarm.ConnMgr.GracePeriod = time.Minute.String()
return nil
},
}
Expand Down
7 changes: 7 additions & 0 deletions repo/config/routing.go
@@ -0,0 +1,7 @@
package config

// Routing defines configuration options for libp2p routing
type Routing struct {
// Type sets default daemon routing mode.
Type string
}
10 changes: 5 additions & 5 deletions test/sharness/t0020-init.sh
Expand Up @@ -168,17 +168,17 @@ test_expect_success "clean up ipfs dir" '
'

test_expect_success "'ipfs init --profile=lowpower' succeeds" '
BITS="1024" &&
ipfs init --bits="$BITS" --profile=lowpower
BITS="1024" &&
ipfs init --bits="$BITS" --profile=lowpower
'

test_expect_success "'ipfs config Discovery.Routing' looks good" '
ipfs config Discovery.Routing > actual_config &&
test $(cat actual_config) = "dhtclient"
ipfs config Routing.Type > actual_config &&
test $(cat actual_config) = "dhtclient"
'

test_expect_success "clean up ipfs dir" '
rm -rf "$IPFS_PATH"
rm -rf "$IPFS_PATH"
'

test_init_ipfs
Expand Down
3 changes: 1 addition & 2 deletions test/sharness/t0021-config.sh
Expand Up @@ -45,8 +45,7 @@ CONFIG_SET_JSON_TEST='{
"MDNS": {
"Enabled": true,
"Interval": 10
},
"Routing": "dht"
}
}'

test_profile_apply_revert() {
Expand Down

0 comments on commit 1babd29

Please sign in to comment.