forked from TrueCloudLab/frostfs-node
[#1255] node/config: Add persistent storage
Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
This commit is contained in:
parent
016eaa25f3
commit
9cda3121ab
5 changed files with 37 additions and 5 deletions
|
@ -12,6 +12,12 @@ import (
|
|||
utilConfig "github.com/nspcc-dev/neofs-node/pkg/util/config"
|
||||
)
|
||||
|
||||
// PersistentSessionsConfig is a wrapper over "persistent_sessions" config section
|
||||
// which provides access to persistent session tokens storage configuration of node.
|
||||
type PersistentSessionsConfig struct {
|
||||
cfg *config.Config
|
||||
}
|
||||
|
||||
// PersistentStateConfig is a wrapper over "persistent_state" config section
|
||||
// which provides access to persistent state storage configuration of node.
|
||||
type PersistentStateConfig struct {
|
||||
|
@ -25,9 +31,10 @@ type NotificationConfig struct {
|
|||
}
|
||||
|
||||
const (
|
||||
subsection = "node"
|
||||
persistentStateSubsection = "persistent_state"
|
||||
notificationSubsection = "notification"
|
||||
subsection = "node"
|
||||
persistentSessionsSubsection = "persistent_sessions"
|
||||
persistentStateSubsection = "persistent_state"
|
||||
notificationSubsection = "notification"
|
||||
|
||||
attributePrefix = "attribute"
|
||||
|
||||
|
@ -137,6 +144,21 @@ func Relay(c *config.Config) bool {
|
|||
return config.BoolSafe(c.Sub(subsection), "relay")
|
||||
}
|
||||
|
||||
// PersistentSessions returns structure that provides access to "persistent_sessions"
|
||||
// subsection of "node" section.
|
||||
func PersistentSessions(c *config.Config) PersistentSessionsConfig {
|
||||
return PersistentSessionsConfig{
|
||||
c.Sub(subsection).Sub(persistentSessionsSubsection),
|
||||
}
|
||||
}
|
||||
|
||||
// Path returns value of "path" config parameter.
|
||||
//
|
||||
// Returns PersistentStatePathDefault if value is not a non-empty string.
|
||||
func (p PersistentSessionsConfig) Path() string {
|
||||
return config.String(p.cfg, "path")
|
||||
}
|
||||
|
||||
// PersistentState returns structure that provides access to "persistent_state"
|
||||
// subsection of "node" section.
|
||||
func PersistentState(c *config.Config) PersistentStateConfig {
|
||||
|
|
|
@ -31,6 +31,7 @@ func TestNodeSection(t *testing.T) {
|
|||
|
||||
attribute := Attributes(empty)
|
||||
relay := Relay(empty)
|
||||
persisessionsPath := PersistentSessions(empty).Path()
|
||||
persistatePath := PersistentState(empty).Path()
|
||||
notificationDefaultEnabled := Notification(empty).Enabled()
|
||||
notificationDefaultEndpoint := Notification(empty).Endpoint()
|
||||
|
@ -42,6 +43,7 @@ func TestNodeSection(t *testing.T) {
|
|||
|
||||
require.Empty(t, attribute)
|
||||
require.Equal(t, false, relay)
|
||||
require.Equal(t, "", persisessionsPath)
|
||||
require.Equal(t, PersistentStatePathDefault, persistatePath)
|
||||
require.Equal(t, false, notificationDefaultEnabled)
|
||||
require.Equal(t, "", notificationDefaultEndpoint)
|
||||
|
@ -74,6 +76,7 @@ func TestNodeSection(t *testing.T) {
|
|||
attributes := Attributes(c)
|
||||
relay := Relay(c)
|
||||
wKey := Wallet(c)
|
||||
persisessionsPath := PersistentSessions(c).Path()
|
||||
persistatePath := PersistentState(c).Path()
|
||||
notificationEnabled := Notification(c).Enabled()
|
||||
notificationEndpoint := Notification(c).Endpoint()
|
||||
|
@ -134,6 +137,7 @@ func TestNodeSection(t *testing.T) {
|
|||
config.StringSafe(c.Sub("node").Sub("wallet"), "address"),
|
||||
address.Uint160ToString(wKey.GetScriptHash()))
|
||||
|
||||
require.Equal(t, "/sessions", persisessionsPath)
|
||||
require.Equal(t, "/state", persistatePath)
|
||||
require.Equal(t, true, notificationEnabled)
|
||||
require.Equal(t, "tls://localhost:4222", notificationEndpoint)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue