in cmd/collector/sanitize.go [280:336]
func checkConnection() error {
// check mongo_urls
for _, mongo := range conf.Options.MongoUrls {
_, err := utils.NewMongoCommunityConn(mongo, conf.Options.MongoConnectMode, true,
utils.ReadWriteConcernDefault, utils.ReadWriteConcernDefault, conf.Options.MongoSslRootCaFile)
if err != nil {
return fmt.Errorf("connect source mongodb[%v] failed[%v]", utils.BlockMongoUrlPassword(mongo, "***"), err)
}
}
// check mongo_cs_url
if conf.Options.MongoCsUrl != "" {
_, err := utils.NewMongoCommunityConn(conf.Options.MongoCsUrl, utils.VarMongoConnectModeSecondaryPreferred,
true, utils.ReadWriteConcernDefault, utils.ReadWriteConcernDefault, conf.Options.MongoSslRootCaFile)
if err != nil {
return fmt.Errorf("connect config-server[%v] failed[%v]", utils.BlockMongoUrlPassword(conf.Options.MongoCsUrl, "***"), err)
}
}
// check tunnel address
// no need to check target connection when debug flag set.
if conf.Options.Tunnel == utils.VarTunnelDirect &&
!conf.Options.FullSyncExecutorDebug &&
!conf.Options.IncrSyncExecutorDebug {
for i, mongo := range conf.Options.TunnelAddress {
targetConn, err := utils.NewMongoCommunityConn(mongo, conf.Options.MongoConnectMode, true,
utils.ReadWriteConcernDefault, utils.ReadWriteConcernDefault, conf.Options.TunnelMongoSslRootCaFile)
if err != nil {
return fmt.Errorf("connect target tunnel mongodb[%v] failed[%v]", utils.BlockMongoUrlPassword(mongo, "***"), err)
}
// set target version
if i == 0 {
conf.Options.TargetDBVersion, _ = utils.GetDBVersion(targetConn)
}
}
}
// set source version
source, err := getSourceDbUrl()
if err != nil {
return err
}
sourceConn, _ := utils.NewMongoCommunityConn(source, utils.VarMongoConnectModeSecondaryPreferred, true,
utils.ReadWriteConcernDefault, utils.ReadWriteConcernDefault, conf.Options.MongoSslRootCaFile)
// ignore error
conf.Options.SourceDBVersion, _ = utils.GetDBVersion(sourceConn)
if ok, err := utils.GetAndCompareVersion(sourceConn, "2.6.0",
conf.Options.SourceDBVersion); err != nil {
return err
} else if !ok {
return fmt.Errorf("source MongoDB version[%v] should >= 3.0", conf.Options.SourceDBVersion)
}
return nil
}