diff options
author | Niall Sheridan <nsheridan@gmail.com> | 2016-08-27 01:32:30 +0100 |
---|---|---|
committer | Niall Sheridan <nsheridan@gmail.com> | 2016-08-27 01:32:30 +0100 |
commit | 921818bca208f0c70e85ec670074cb3905cbbc82 (patch) | |
tree | 4aa67ad2bb2083bd486db3f99680d6d08a2c36b3 /vendor/gopkg.in/mgo.v2/server.go | |
parent | 7f1c9358805302344a89c1fed4eab1342931b061 (diff) |
Update dependencies
Diffstat (limited to 'vendor/gopkg.in/mgo.v2/server.go')
-rw-r--r-- | vendor/gopkg.in/mgo.v2/server.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vendor/gopkg.in/mgo.v2/server.go b/vendor/gopkg.in/mgo.v2/server.go index f677359..3925986 100644 --- a/vendor/gopkg.in/mgo.v2/server.go +++ b/vendor/gopkg.in/mgo.v2/server.go @@ -402,6 +402,15 @@ func (servers *mongoServers) Empty() bool { return len(servers.slice) == 0 } +func (servers *mongoServers) HasMongos() bool { + for _, s := range servers.slice { + if s.Info().Mongos { + return true + } + } + return false +} + // BestFit returns the best guess of what would be the most interesting // server to perform operations on at this point in time. func (servers *mongoServers) BestFit(mode Mode, serverTags []bson.D) *mongoServer { @@ -421,6 +430,8 @@ func (servers *mongoServers) BestFit(mode Mode, serverTags []bson.D) *mongoServe switch { case serverTags != nil && !next.info.Mongos && !next.hasTags(serverTags): // Must have requested tags. + case mode == Secondary && next.info.Master && !next.info.Mongos: + // Must be a secondary or mongos. case next.info.Master != best.info.Master && mode != Nearest: // Prefer slaves, unless the mode is PrimaryPreferred. swap = (mode == PrimaryPreferred) != best.info.Master |