func (s *oplogSuite) startMongo(c *gc.C) (*jujutesting.MgoInstance, *mgo.Session) { var inst jujutesting.MgoInstance err := inst.Start(nil) c.Assert(err, jc.ErrorIsNil) s.AddCleanup(func(*gc.C) { inst.Destroy() }) return &inst, s.dialMongo(c, &inst) }
func (s *mongoSuite) testStateWorkerDialSetsWriteMajority(c *gc.C, configureReplset bool) { inst := gitjujutesting.MgoInstance{ Params: []string{"--replSet", "juju"}, } err := inst.Start(coretesting.Certs) c.Assert(err, jc.ErrorIsNil) defer inst.Destroy() var expectedWMode string dialOpts := stateWorkerDialOpts dialOpts.Timeout = coretesting.LongWait if configureReplset { info := inst.DialInfo() info.Timeout = dialOpts.Timeout args := peergrouper.InitiateMongoParams{ DialInfo: info, MemberHostPort: inst.Addr(), } err = peergrouper.InitiateMongoServer(args) c.Assert(err, jc.ErrorIsNil) expectedWMode = "majority" } else { dialOpts.Direct = true } mongoInfo := mongo.Info{ Addrs: []string{inst.Addr()}, CACert: coretesting.CACert, } session, err := mongo.DialWithInfo(mongoInfo, dialOpts) c.Assert(err, jc.ErrorIsNil) defer session.Close() safe := session.Safe() c.Assert(safe, gc.NotNil) c.Assert(safe.WMode, gc.Equals, expectedWMode) c.Assert(safe.J, jc.IsTrue) // always enabled }