cfg

package
v0.7.4 Latest Latest
Warning

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

Go to latest
Published: Dec 22, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const NodeNamePrefix = "marmot-node"

Variables

View Source
var Cleanup = flag.Bool("cleanup", false, "Only cleanup marmot triggers and changelogs")
View Source
var Config = &Configuration{
	SeqMapPath:      "/tmp/seq-map.cbor",
	DBPath:          "/tmp/marmot.db",
	NodeID:          1,
	Publish:         true,
	Replicate:       true,
	ScanMaxChanges:  512,
	CleanupInterval: 5000,
	SleepTimeout:    0,
	PollingInterval: 0,

	Snapshot: SnapshotConfiguration{
		Enable:    true,
		StoreType: Nats,
		Nats: ObjectStoreConfiguration{
			Replicas: 1,
		},
		S3: S3Configuration{},
	},

	ReplicationLog: ReplicationLogConfiguration{
		Shards:     1,
		MaxEntries: 1024,
		Replicas:   1,
		Compress:   true,
	},

	NATS: NATSConfiguration{
		URLs:          []string{nats.DefaultURL},
		SubjectPrefix: "marmot-change-log",
		StreamPrefix:  "marmot-changes",
	},

	Logging: LoggingConfiguration{
		Verbose: false,
		Format:  "console",
	},
}
View Source
var ConfigPath = flag.String("config", "marmot.toml", "Path to configuration file")
View Source
var SaveSnapshot = flag.Bool("save-snapshot", false, "Only take snapshot and upload")

Functions

func Load added in v0.7.0

func Load(path string) error

Types

type Configuration added in v0.7.0

type Configuration struct {
	SeqMapPath      string `toml:"seq_map_path"`
	DBPath          string `toml:"db_path"`
	NodeID          uint64 `toml:"node_id"`
	Publish         bool   `toml:"publish"`
	Replicate       bool   `toml:"replicate"`
	ScanMaxChanges  uint32 `toml:"scan_max_changes"`
	CleanupInterval uint32 `toml:"cleanup_interval"`
	SleepTimeout    uint32 `toml:"sleep_timeout"`
	PollingInterval uint32 `toml:"polling_interval"`

	Snapshot       SnapshotConfiguration       `toml:"snapshot"`
	ReplicationLog ReplicationLogConfiguration `toml:"replication_log"`
	NATS           NATSConfiguration           `toml:"nats"`
	Logging        LoggingConfiguration        `toml:"logging"`
}

func (*Configuration) NodeName added in v0.7.1

func (c *Configuration) NodeName() string

func (*Configuration) SnapshotStorageType added in v0.7.1

func (c *Configuration) SnapshotStorageType() SnapshotStoreType

type LoggingConfiguration added in v0.7.0

type LoggingConfiguration struct {
	Verbose bool   `toml:"verbose"`
	Format  string `toml:"format"`
}

type NATSConfiguration added in v0.7.0

type NATSConfiguration struct {
	URLs          []string `toml:"urls"`
	SubjectPrefix string   `toml:"subject_prefix"`
	StreamPrefix  string   `toml:"stream_prefix"`
}

type ObjectStoreConfiguration added in v0.7.1

type ObjectStoreConfiguration struct {
	Replicas   int    `toml:"replicas"`
	BucketName string `toml:"bucket"`
}

type ReplicationLogConfiguration added in v0.7.0

type ReplicationLogConfiguration struct {
	Shards     uint64 `toml:"shards"`
	MaxEntries int64  `toml:"max_entries"`
	Replicas   int    `toml:"replicas"`
	Compress   bool   `toml:"compress"`
}

type S3Configuration added in v0.7.1

type S3Configuration struct {
	DirPath      string `toml:"path"`
	Endpoint     string `toml:"endpoint"`
	AccessKey    string `toml:"access_key"`
	SecretKey    string `toml:"secret"`
	SessionToken string `toml:"session_token"`
	Bucket       string `toml:"bucket"`
	UseSSL       bool   `toml:"use_ssl"`
}

type SnapshotConfiguration added in v0.7.0

type SnapshotConfiguration struct {
	Enable    bool                     `toml:"enabled"`
	StoreType SnapshotStoreType        `toml:"store"`
	Nats      ObjectStoreConfiguration `toml:"nats"`
	S3        S3Configuration          `toml:"s3"`
}

type SnapshotStoreType added in v0.7.1

type SnapshotStoreType string
const (
	Nats SnapshotStoreType = "nats"
	S3                     = "s3"
)

Jump to

Keyboard shortcuts

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