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 Jan 23, 2018
1 parent 43f1b0d commit 1c090bb
Show file tree
Hide file tree
Showing 10 changed files with 29 additions and 16 deletions.
4 changes: 2 additions & 2 deletions cmd/ipfs/daemon.go
Original file line number Diff line number Diff line change
Expand Up @@ -308,11 +308,11 @@ func daemonFunc(req cmds.Request, re cmds.ResponseEmitter) {
if routingOption == routingOptionDefaultKwd {
cfg, err := repo.Config()
if err != nil {
res.SetError(err, cmds.ErrNormal)
re.SetError(err, cmdkit.ErrNormal)
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
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
Original file line number Diff line number Diff line change
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 1c090bb

Please sign in to comment.