Documentation ¶
Index ¶
- Constants
- Variables
- type Config
- func (c *Config) AddMember(member *Member)
- func (c *Config) GetMember(name string) *Member
- func (c *Config) GetMemberId(id int) *Member
- func (c *Config) HasMember(name string) bool
- func (c *Config) IncrVersion()
- func (c *Config) RemoveMember(removeMember *Member)
- func (c *Config) String() string
- func (c *Config) ToJSON() ([]byte, error)
- type ConfigManager
- func (c *ConfigManager) AddMember(member *Member)
- func (c *ConfigManager) Get() *Config
- func (c *ConfigManager) GetMember(name string) *Member
- func (c *ConfigManager) IncrVersion()
- func (c *ConfigManager) Initiate() error
- func (c *ConfigManager) IsInitiated() bool
- func (c *ConfigManager) Load() error
- func (c *ConfigManager) RemoveMember(member *Member)
- func (c *ConfigManager) Save() error
- func (c *ConfigManager) Set(config *Config)
- func (c *ConfigManager) Validate() error
- type Manager
- type Member
- type OkResponse
- type ReplSetGetConfig
- type ReplsetTags
- type Settings
- type WriteConcern
Constants ¶
const ConfigCommand = "replSetGetConfig"
Variables ¶
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 (*Config) AddMember ¶
Add a *Member struct to the Config, if it does not already exist. Takes in a *Member struct to be added.
func (*Config) GetMember ¶
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 ¶
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 ¶
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 ¶
Remove a *Member from the Config. Takes in a *Member struct to be removed.
type ConfigManager ¶
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
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 ¶
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/