configuration

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 25, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

README

Insolar – Configuration

GoDoc

Package provides configuration params for all Insolar components and helper for config resources management.

Configuration

Configuration struct is a root registry for all components config. It provides constructor method NewConfiguration() which creates new instance of configuration object filled with default values.

Each root level Insolar component has a constructor with config as argument. Each components should have its own config struct with the same name in this package. Each config struct should have constructor which returns instance with default params.

Holder

Package also provides Holder to easily manage config resources. It based on Viper config solution for Golang and helps to Marshal\Unmarshal config structs, manage files, ENV and command line variables.

Holder provides functionality to merge configuration from different sources.

Merge priority
  1. command line flags
  2. ENV variables
  3. yaml file
  4. Default config
Manage configuration from cli

Insolar cli tool helps user to manage configuration.

insolar config --help

Documentation

Overview

Package configuration holds configuration for all components in Insolar host binary It allows also helps to manage config resources using Holder

Usage:

package main

import (
	"github.com/insolar/insolar/configuration"
	"fmt"
)

func main() {
	holder := configuration.NewHolder()
	fmt.Printf("Default configuration:\n %+v\n", holder.Configuration)
	holder.SaveAs("insolar.yml")
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ToString

func ToString(in interface{}) string

ToString converts any configuration struct to yaml string

Types

type APIRunner added in v0.2.0

type APIRunner struct {
	Port     uint
	Location string
}

APIRunner holds configuration for api

func NewAPIRunner added in v0.2.0

func NewAPIRunner() APIRunner

NewAPIRunner creates new api config

func (*APIRunner) String added in v0.2.0

func (ar *APIRunner) String() string

type BuiltIn

type BuiltIn struct{}

type Configuration

type Configuration struct {
	Host        HostNetwork
	Node        NodeNetwork
	Service     ServiceNetwork
	Ledger      Ledger
	Log         Log
	Metrics     Metrics
	LogicRunner LogicRunner
	APIRunner   APIRunner
	Pulsar      Pulsar
}

Configuration contains configuration params for all Insolar components

func NewConfiguration

func NewConfiguration() Configuration

NewConfiguration creates new default configuration

type ConnectionType added in v0.3.0

type ConnectionType string
const (
	TCP ConnectionType = "tcp"
)

func (ConnectionType) String added in v0.3.0

func (ct ConnectionType) String() string

type GoPlugin added in v0.0.6

type GoPlugin struct {
	RunnerListen   string // ip:port of ginsider connectivity socket
	RunnerPath     string // path to gincider executable
	RunnerCodePath string // path where ginsider caches code
	MainListen     string // ip:port of main system connectivity socket
}

type Holder

type Holder struct {
	Configuration Configuration
	// contains filtered or unexported fields
}

Holder provides methods to manage configuration

func NewHolder

func NewHolder() *Holder

NewHolder creates new Holder with default configuration

func (*Holder) Init added in v0.3.0

func (c *Holder) Init(required bool) (*Holder, error)

Init init all configuration data from config file and environment.

Does not fail on not found config file if the 'required' flag set to false.

func (*Holder) Load

func (c *Holder) Load() error

Load method reads configuration from default file path

func (*Holder) LoadEnv added in v0.0.6

func (c *Holder) LoadEnv() error

LoadEnv overrides configuration with env variables

func (*Holder) LoadFromFile

func (c *Holder) LoadFromFile(path string) error

LoadFromFile method reads configuration from particular file path

func (*Holder) MustInit added in v0.3.0

func (c *Holder) MustInit(required bool) *Holder

MustInit wrapper around Init function which panics on error.

func (*Holder) Save

func (c *Holder) Save() error

Save method writes configuration to default file path

func (*Holder) SaveAs

func (c *Holder) SaveAs(path string) error

SaveAs method writes configuration to particular file path

type HostNetwork

type HostNetwork struct {
	Transport         Transport
	BootstrapHosts    []string
	IsRelay           bool // set if node must be relay explicit
	InfinityBootstrap bool // set true for infinity tries to bootstrap
	Timeout           int  // bootstrap reconnect timeout
}

HostNetwork holds configuration for HostNetwork

func NewHostNetwork

func NewHostNetwork() HostNetwork

NewHostNetwork creates new default HostNetwork configuration

type JetCoordinator added in v0.2.0

type JetCoordinator struct {
	RoleCandidates map[int][]string
	RoleCounts     map[int]int
}

JetCoordinator holds configuration for JetCoordinator.

type Ledger

type Ledger struct {
	// Storage defines storage configuration.
	Storage Storage
	// JetCoordinator defines jet coordinator configuration.
	JetCoordinator JetCoordinator
}

Ledger holds configuration for ledger.

func NewLedger added in v0.0.6

func NewLedger() Ledger

NewLedger creates new default Ledger configuration.

type Log

type Log struct {
	Level   string
	Adapter string
}

Log holds configuration for logging

func NewLog

func NewLog() Log

NewLog creates new default configuration for logging

type LogicRunner

type LogicRunner struct {
	BuiltIn  *BuiltIn
	GoPlugin *GoPlugin
}

func NewLogicRunner

func NewLogicRunner() LogicRunner

type Metrics added in v0.2.0

type Metrics struct {
	ListenAddress string
}

Metrics holds configuration for metrics publishing.

func NewMetrics added in v0.2.0

func NewMetrics() Metrics

NewMetrics creates new default configuration for metrics publishing.

type Node

type Node struct {
	ID string
}

Node holds configuration for one Node

type NodeNetwork

type NodeNetwork struct {
	Node *Node
}

NodeNetwork holds configuration for NodeNetwork

func NewNodeNetwork

func NewNodeNetwork() NodeNetwork

NewNodeNetwork creates new default NodeNetwork configuration

type Pulsar added in v0.0.6

type Pulsar struct {
	ConnectionType ConnectionType
	ListenAddress  string
	PrivateKey     string

	ListOfNeighbours []*PulsarNodeAddress
}

Pulsar holds configuration for pulsar node.

func NewPulsar added in v0.0.6

func NewPulsar() Pulsar

NewPulsar creates new default configuration for pulsar node.

type PulsarNodeAddress added in v0.3.0

type PulsarNodeAddress struct {
	Address        string
	ConnectionType ConnectionType
	PublicKey      string
}

type Service

type Service struct {
}

Service is configuration struct for servicenetwork.Service.

type ServiceNetwork

type ServiceNetwork struct {
	Service Service
}

ServiceNetwork is configuration for ServiceNetwork.

func NewServiceNetwork

func NewServiceNetwork() ServiceNetwork

NewServiceNetwork creates a new ServiceNetwork configuration.

type Storage added in v0.2.0

type Storage struct {
	// DataDirectory is a directory where database's files live.
	DataDirectory string
	// TxRetriesOnConflict defines how many retries on transaction conflicts
	// storage update methods should do.
	TxRetriesOnConflict int
}

type Transport

type Transport struct {
	// protocol type UTP or KCP
	Protocol string
	// Address to listen
	Address string
	// if true transport will use network traversal technique(like STUN) to get PublicAddress
	BehindNAT bool
}

Transport holds transport protocol configuration for HostNetwork

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL