config

package
v0.0.0-...-173aaa3 Latest Latest
Warning

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

Go to latest
Published: May 29, 2018 License: Apache-2.0 Imports: 5 Imported by: 6

Documentation

Index

Constants

View Source
const ConfigCommand = "replSetGetConfig"

Variables

View Source
var (
	ErrNoReplsetId        = errors.New("replset config has no _id field!")
	ErrNoReplsetMembers   = errors.New("replset config has no members!")
	ErrZeroReplsetVersion = errors.New("replset config has a version field that is not greater than zero!")
)

Functions

This section is empty.

Types

type Config

type Config struct {
	Name                               string    `bson:"_id" json:"_id"`
	Version                            int       `bson:"version" json:"version"`
	Members                            []*Member `bson:"members" json:"members"`
	Configsvr                          bool      `bson:"configsvr,omitempty" json:"configsvr,omitempty"`
	ProtocolVersion                    int       `bson:"protocolVersion,omitempty" json:"protocolVersion,omitempty"`
	Settings                           *Settings `bson:"settings,omitempty" json:"settings,omitempty"`
	WriteConcernMajorityJournalDefault bool      `bson:"writeConcernMajorityJournalDefault,omitempty" json:"writeConcernMajorityJournalDefault,omitempty"`
}

Config document from 'replSetGetConfig': https://docs.mongodb.com/manual/reference/command/replSetGetConfig/#dbcmd.replSetGetConfig

func NewConfig

func NewConfig(rsName string) *Config

Create a new *Config struct. Takes in string of the MongoDB Replica Set name.

func (*Config) AddMember

func (c *Config) AddMember(member *Member)

Add a *Member struct to the Config, if it does not already exist. Takes in a *Member struct to be added.

func (*Config) GetMember

func (c *Config) GetMember(name string) *Member

Get a *Member from the Config. Takes in a string of the Member 'Host' field and returns a *Member if there is a match.

func (*Config) GetMemberId

func (c *Config) GetMemberId(id int) *Member

Get a *Member from the Config by Id. Takes in an int of the Member 'Id' (_id) field and returns a *Member if there is a match.

func (*Config) HasMember

func (c *Config) HasMember(name string) bool

Checks the existance of a *Member. Takes in a string of the Member 'Host' field and returns a boolean.

func (*Config) IncrVersion

func (c *Config) IncrVersion()

Increment the 'Version' field of Config.

func (*Config) RemoveMember

func (c *Config) RemoveMember(removeMember *Member)

Remove a *Member from the Config. Takes in a *Member struct to be removed.

func (*Config) String

func (c *Config) String() string

Return the Config as a pretty-printed JSON string.

func (*Config) ToJSON

func (c *Config) ToJSON() ([]byte, error)

Return the Config as a pretty-printed JSON bytes.

type ConfigManager

type ConfigManager struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func New

func New(session *mgo.Session) *ConfigManager

Create a new *ConfigManager struct. Takes in a *mgo.Session and returns a *ConfigManager struct.

func (*ConfigManager) AddMember

func (c *ConfigManager) AddMember(member *Member)

Perform AddMember on a Config struct with locking

func (*ConfigManager) Get

func (c *ConfigManager) Get() *Config

Get the current config. Returns a *Config struct.

func (*ConfigManager) GetMember

func (c *ConfigManager) GetMember(name string) *Member

Perform GetMember on a Config struct with locking

func (*ConfigManager) IncrVersion

func (c *ConfigManager) IncrVersion()

Perform IncrVersion on a Config struct with locking

func (*ConfigManager) Initiate

func (c *ConfigManager) Initiate() error

Initiate the MongoDB Replica Set using the current Config, via the 'replSetInitiate' server command. Returns an error or nil.

func (*ConfigManager) IsInitiated

func (c *ConfigManager) IsInitiated() bool

Check if the MongoDB Replica Set is initiated. Returns a boolean.

func (*ConfigManager) Load

func (c *ConfigManager) Load() error

Load the current Config from the MongoDB session, overwriting the current Config if it exists. Uses the 'replSetGetConfig' server command. Returns an error or nil.

func (*ConfigManager) RemoveMember

func (c *ConfigManager) RemoveMember(member *Member)

Perform RemoveMember on a Config struct with locking

func (*ConfigManager) Save

func (c *ConfigManager) Save() error

Save the current MongoDB Replica Set Config to the server via 'replSetReconfig' server command. Returns an error or nil.

func (*ConfigManager) Set

func (c *ConfigManager) Set(config *Config)

Set the current config. Takes in a *Config struct.

func (*ConfigManager) Validate

func (c *ConfigManager) Validate() error

Validate the MongoDB Replica Set Config. Returns an error or nil.

type Manager

type Manager interface {
	AddMember(member *Member)
	Get() *Config
	GetMember(name string) *Member
	IncrVersion()
	Initiate() error
	IsInitiated() bool
	Load() error
	RemoveMember(member *Member)
	Save() error
	Set(config *Config)
	Validate() error
}

Manager is an interface describing a Config manager

type Member

type Member struct {
	Id           int          `bson:"_id" json:"_id"`
	Host         string       `bson:"host" json:"host"`
	ArbiterOnly  bool         `bson:"arbiterOnly" json:"arbiterOnly"`
	BuildIndexes bool         `bson:"buildIndexes" json:"buildIndexes"`
	Hidden       bool         `bson:"hidden" json:"hidden"`
	Priority     int          `bson:"priority" json:"priority"`
	Tags         *ReplsetTags `bson:"tags,omitempty" json:"tags,omitempty"`
	SlaveDelay   int64        `bson:"slaveDelay" json:"slaveDelay"`
	Votes        int          `bson:"votes" json:"votes"`
}

Member document from 'replSetGetConfig': https://docs.mongodb.com/manual/reference/command/replSetGetConfig/#dbcmd.replSetGetConfig

func NewMember

func NewMember(host string) *Member

Create a new *Member struct. Takes in a string of the hostname of the new Member.

type OkResponse

type OkResponse struct {
	Ok int `bson:"ok" json:"ok" json:"ok"`
}

Standard MongoDB response

type ReplSetGetConfig

type ReplSetGetConfig struct {
	Config *Config `bson:"config" json:"config"`
	Errmsg string  `bson:"errmsg,omitempty" json:"errmsg,omitempty"`
	Ok     int     `bson:"ok" json:"ok" json:"ok"`
}

Response document from 'replSetGetConfig': https://docs.mongodb.com/manual/reference/command/replSetGetConfig/#dbcmd.replSetGetConfig

type ReplsetTags

type ReplsetTags map[string]string

Replica Set tags: https://docs.mongodb.com/manual/tutorial/configure-replica-set-tag-sets/#add-tag-sets-to-a-replica-set

func (ReplsetTags) Add

func (rt ReplsetTags) Add(key, val string)

AddTag adds a key/value to the replica set tags

func (ReplsetTags) Get

func (rt ReplsetTags) Get(key string) string

GetTagValue returns a string reflecting the value of a replica set tag key

func (ReplsetTags) HasKey

func (rt ReplsetTags) HasKey(key string) bool

HasTag returns a boolean reflecting the existenct of a key in replica set tags

func (ReplsetTags) HasMatch

func (rt ReplsetTags) HasMatch(key, val string) bool

HasMatch returns a boolean reflecting the existence of an exact key/value pair in replica set tags

type Settings

type Settings struct {
	ChainingAllowed         bool                    `bson:"chainingAllowed,omitempty" json:"chainingAllowed,omitempty"`
	HeartbeatIntervalMillis int64                   `bson:"heartbeatIntervalMillis,omitempty" json:"heartbeatIntervalMillis,omitempty"`
	HeartbeatTimeoutSecs    int                     `bson:"heartbeatTimeoutSecs,omitempty" json:"heartbeatTimeoutSecs,omitempty"`
	ElectionTimeoutMillis   int64                   `bson:"electionTimeoutMillis,omitempty" json:"electionTimeoutMillis,omitempty"`
	CatchUpTimeoutMillis    int64                   `bson:"catchUpTimeoutMillis,omitempty" json:"catchUpTimeoutMillis,omitempty"`
	GetLastErrorModes       map[string]*ReplsetTags `bson:"getLastErrorModes,omitempty" json:"getLastErrorModes,omitempty"`
	GetLastErrorDefaults    *WriteConcern           `bson:"getLastErrorDefaults,omitempty" json:"getLastErrorDefaults,omitempty"`
	ReplicaSetId            bson.ObjectId           `bson:"replicaSetId,omitempty" json:"replicaSetId,omitempty"`
}

Settings document from 'replSetGetConfig': https://docs.mongodb.com/manual/reference/command/replSetGetConfig/#dbcmd.replSetGetConfig

type WriteConcern

type WriteConcern struct {
	WriteConcern interface{} `bson:"w" json:"w"`
	WriteTimeout int         `bson:"wtimeout" json:"wtimeout"`
	Journal      bool        `bson:"j,omitempty" json:"j,omitempty"`
}

Write Concern document: https://docs.mongodb.com/manual/reference/write-concern/

Directories

Path Synopsis
Code generated by mockery v1.0.0.
Code generated by mockery v1.0.0.

Jump to

Keyboard shortcuts

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