configuration

package
v0.0.0-...-53b40aa Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2018 License: AGPL-3.0, AGPL-3.0-only Imports: 20 Imported by: 9

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	TopologyVarUUId = common.MakeVarUUId([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
	// RMId 0 cannot exist so everything else is safe
	VersionOne = common.MakeTxnId([]byte{0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
	VersionTwo = common.MakeTxnId([]byte{0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
)

Functions

func LocalAddresses

func LocalAddresses() ([]net.IP, error)

Types

type CapabilityJSON

type CapabilityJSON struct {
	Read  bool
	Write bool
}

func (*CapabilityJSON) Equal

func (a *CapabilityJSON) Equal(b *CapabilityJSON) bool

type Cond

type Cond interface {
	Equal(Cond) bool
	AddToSeg(seg *capn.Segment) msgs.Condition
	SatisfiedBy(config *Configuration, positions *common.Positions, logger log.Logger) (bool, error)
}

type CondSuppliers

type CondSuppliers struct {
	Cond      Cond
	Suppliers common.RMIds
}

func (*CondSuppliers) Equal

func (a *CondSuppliers) Equal(b *CondSuppliers) bool

func (*CondSuppliers) String

func (cs *CondSuppliers) String() string

type Conds

type Conds map[common.RMId]*CondSuppliers

func ConditionsFromCap

func ConditionsFromCap(condsCap *msgs.ConditionPair_List) Conds

func (Conds) AddToSeg

func (c Conds) AddToSeg(seg *capn.Segment) msgs.ConditionPair_List

func (Conds) DisjoinWith

func (cs Conds) DisjoinWith(rmId common.RMId, c Cond)

func (Conds) Equal

func (a Conds) Equal(b Conds) bool

func (Conds) String

func (c Conds) String() string

func (Conds) SuppliedBy

func (cs Conds) SuppliedBy(requester, supplier common.RMId, maxSuppliers int) bool

type Configuration

type Configuration struct {
	ClusterId         string
	ClusterUUId       uint64
	Version           uint32
	Hosts             []string
	F                 uint8
	MaxRMCount        uint16
	NoSync            bool
	RMs               common.RMIds
	RMsRemoved        map[common.RMId]types.EmptyStruct
	Fingerprints      map[Fingerprint]map[string]common.Capability
	Roots             []string
	NextConfiguration *NextConfiguration
}

func BlankConfiguration

func BlankConfiguration() *Configuration

func ConfigurationFromCap

func ConfigurationFromCap(config msgs.Configuration) *Configuration

func (*Configuration) AddToSegAutoRoot

func (config *Configuration) AddToSegAutoRoot(seg *capn.Segment) msgs.Configuration

func (*Configuration) Clone

func (config *Configuration) Clone() *Configuration

func (*Configuration) EnsureClusterUUId

func (config *Configuration) EnsureClusterUUId(uuid uint64) uint64

func (*Configuration) Equal

func (a *Configuration) Equal(b *Configuration) bool

func (*Configuration) EqualExternally

func (a *Configuration) EqualExternally(b *Configuration) bool

func (*Configuration) LocalRemoteHosts

func (config *Configuration) LocalRemoteHosts(listenPort uint16) (string, []string, error)

Also checks we are in there somewhere

func (*Configuration) Serialize

func (config *Configuration) Serialize() []byte

func (*Configuration) String

func (config *Configuration) String() string

func (*Configuration) ToConfigurationJSON

func (config *Configuration) ToConfigurationJSON() *ConfigurationJSON

func (*Configuration) ToJSONString

func (config *Configuration) ToJSONString() ([]byte, error)

func (*Configuration) VerifyPeerCerts

func (config *Configuration) VerifyPeerCerts(peerCerts []*x509.Certificate) (authenticated bool, hashsum [sha256.Size]byte, roots map[string]common.Capability)

type ConfigurationJSON

type ConfigurationJSON struct {
	ClusterId                     string
	Version                       uint32
	Hosts                         []string
	F                             uint8
	MaxRMCount                    uint16
	NoSync                        bool
	ClientCertificateFingerprints map[string]map[string]*CapabilityJSON
}

func LoadJSONFromPath

func LoadJSONFromPath(path string) (*ConfigurationJSON, error)

func (*ConfigurationJSON) Clone

func (config *ConfigurationJSON) Clone() *ConfigurationJSON

func (*ConfigurationJSON) Equal

func (*ConfigurationJSON) ToConfiguration

func (config *ConfigurationJSON) ToConfiguration() *Configuration

func (*ConfigurationJSON) Validate

func (config *ConfigurationJSON) Validate() error

type Conjunction

type Conjunction struct {
	Left  Cond
	Right Cond
}

func (*Conjunction) AddToSeg

func (c *Conjunction) AddToSeg(seg *capn.Segment) msgs.Condition

func (*Conjunction) Equal

func (a *Conjunction) Equal(b Cond) bool

func (*Conjunction) SatisfiedBy

func (c *Conjunction) SatisfiedBy(config *Configuration, positions *common.Positions, logger log.Logger) (bool, error)

func (*Conjunction) String

func (c *Conjunction) String() string

type Disjunction

type Disjunction struct {
	Left  Cond
	Right Cond
}

func (*Disjunction) AddToSeg

func (d *Disjunction) AddToSeg(seg *capn.Segment) msgs.Condition

func (*Disjunction) Equal

func (a *Disjunction) Equal(b Cond) bool

func (*Disjunction) SatisfiedBy

func (d *Disjunction) SatisfiedBy(config *Configuration, positions *common.Positions, logger log.Logger) (bool, error)

func (*Disjunction) String

func (d *Disjunction) String() string

type Fingerprint

type Fingerprint [sha256.Size]byte

type Generator

type Generator struct {
	RMId     common.RMId
	UseNext  bool
	Includes bool
}

func (*Generator) AddToSeg

func (g *Generator) AddToSeg(seg *capn.Segment) msgs.Condition

func (*Generator) Equal

func (a *Generator) Equal(b Cond) bool

func (*Generator) SatisfiedBy

func (g *Generator) SatisfiedBy(config *Configuration, positions *common.Positions, logger log.Logger) (bool, error)

func (*Generator) String

func (g *Generator) String() string

type NextConfiguration

type NextConfiguration struct {
	*Configuration
	AllHosts       []string
	NewRMIds       common.RMIds
	SurvivingRMIds common.RMIds
	LostRMIds      common.RMIds
	RootIndices    []uint32
	InstalledOnNew bool
	QuietRMIds     map[common.RMId]bool
	Pending        Conds
}

func (*NextConfiguration) Clone

func (next *NextConfiguration) Clone() *NextConfiguration

func (*NextConfiguration) Equal

func (*NextConfiguration) String

func (next *NextConfiguration) String() string

type Root

type Root struct {
	VarUUId   *common.VarUUId
	Positions *common.Positions
}

type Roots

type Roots []Root

func (Roots) String

func (r Roots) String() string

type Topology

type Topology struct {
	*Configuration
	FInc         uint8
	TwoFInc      uint16
	VerClock     types.VerClock
	RootVarUUIds Roots
}

func BlankTopology

func BlankTopology() *Topology

func NewTopology

func NewTopology(vc types.VerClock, rootsCap *msgs.VarIdPos_List, config *Configuration) *Topology

func TopologyFromCap

func TopologyFromCap(vc types.VerClock, roots *msgs.VarIdPos_List, data []byte) (*Topology, error)

func (*Topology) Clone

func (t *Topology) Clone() *Topology

func (*Topology) SetConfiguration

func (t *Topology) SetConfiguration(config *Configuration)

func (*Topology) String

func (t *Topology) String() string

Jump to

Keyboard shortcuts

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