go-bongo / bongo

Go ODM for MongoDB
MIT License
487 stars 40 forks source link

Add support for setting mgo.DialInfo #11

Closed iamsaso closed 7 years ago

iamsaso commented 7 years ago

This enables tapping into mgo.DialInfo and setting up SSL when needed

Code that I use to enable SSL

config := &bongo.Config{
    ConnectionString: viper.GetString("mongodb.uri"),
    Database:         viper.GetString("mongodb.database"),
}

if viper.GetBool("mongodb.ssl") {
    if config.DialInfo, err = mgo.ParseURL(config.ConnectionString); err != nil {
        panic(fmt.Sprintf("cannot parse given URI %s due to error: %s", config.ConnectionString, err.Error()))
    }

    tlsConfig := &tls.Config{}
    config.DialInfo.DialServer = func(addr *mgo.ServerAddr) (net.Conn, error) {
        conn, err := tls.Dial("tcp", addr.String(), tlsConfig)
        return conn, err
    }

    config.DialInfo.Timeout = time.Second * 3
}

connection, err = bongo.Connect(config)
if err != nil {
    log.Fatal(err)
}
coveralls commented 7 years ago

Coverage Status

Coverage decreased (-0.05%) to 83.182% when pulling d40f50cba39d019cd802e50262c154e03a161250 on sasso:master into 0d02692f0d3293855e435a60698f479aae332425 on maxwellhealth:master.

coveralls commented 7 years ago

Coverage Status

Coverage increased (+1.01%) to 84.242% when pulling 53f6a1995204a3ed0ebcf4fc428e1061cf05056d on sasso:master into 0d02692f0d3293855e435a60698f479aae332425 on maxwellhealth:master.

securingsincity commented 7 years ago

@sasso this looks great thanks!