func (s *MongoSuite) TestEnsureServer(c *gc.C) { dataDir := c.MkDir() dbDir := filepath.Join(dataDir, "db") namespace := "namespace" mockShellCommand(c, &s.CleanupSuite, "apt-get") err := mongo.EnsureServer(makeEnsureServerParams(dataDir, namespace)) c.Assert(err, gc.IsNil) testJournalDirs(dbDir, c) assertInstalled := func() { c.Assert(s.installed, gc.HasLen, 1) conf := s.installed[0] c.Assert(conf.Name, gc.Equals, "juju-db-namespace") c.Assert(conf.InitDir, gc.Equals, "/etc/init") c.Assert(conf.Desc, gc.Equals, "juju state database") c.Assert(conf.Cmd, gc.Matches, regexp.QuoteMeta(s.mongodPath)+".*") // TODO(nate) set Out so that mongod output goes somewhere useful? c.Assert(conf.Out, gc.Equals, "") } assertInstalled() contents, err := ioutil.ReadFile(s.mongodConfigPath) c.Assert(err, gc.IsNil) c.Assert(contents, jc.DeepEquals, []byte("ENABLE_MONGODB=no")) contents, err = ioutil.ReadFile(mongo.SSLKeyPath(dataDir)) c.Assert(err, gc.IsNil) c.Assert(string(contents), gc.Equals, testInfo.Cert+"\n"+testInfo.PrivateKey) contents, err = ioutil.ReadFile(mongo.SharedSecretPath(dataDir)) c.Assert(err, gc.IsNil) c.Assert(string(contents), gc.Equals, testInfo.SharedSecret) s.installed = nil // now check we can call it multiple times without error err = mongo.EnsureServer(makeEnsureServerParams(dataDir, namespace)) c.Assert(err, gc.IsNil) assertInstalled() // make sure that we log the version of mongodb as we get ready to // start it tlog := c.GetTestLog() any := `(.|\n)*` start := "^" + any tail := any + "$" c.Assert(tlog, gc.Matches, start+`using mongod: .*/mongod --version: "db version v2\.4\.9`+tail) }
func (s *MongoSuite) TestEnsureServer(c *gc.C) { dataDir := s.testEnsureServerNumaCtl(c, false) contents, err := ioutil.ReadFile(s.mongodConfigPath) c.Assert(err, jc.ErrorIsNil) c.Assert(contents, jc.DeepEquals, []byte("ENABLE_MONGODB=no")) contents, err = ioutil.ReadFile(mongo.SSLKeyPath(dataDir)) c.Assert(err, jc.ErrorIsNil) c.Assert(string(contents), gc.Equals, testInfo.Cert+"\n"+testInfo.PrivateKey) contents, err = ioutil.ReadFile(mongo.SharedSecretPath(dataDir)) c.Assert(err, jc.ErrorIsNil) c.Assert(string(contents), gc.Equals, testInfo.SharedSecret) // make sure that we log the version of mongodb as we get ready to // start it tlog := c.GetTestLog() any := `(.|\n)*` start := "^" + any tail := any + "$" c.Assert(tlog, gc.Matches, start+`using mongod: .*/mongod --version: "db version v2\.4\.9`+tail) }
func (s *MongoSuite) assertSharedSecretFile(c *gc.C, dataDir string) { contents, err := ioutil.ReadFile(mongo.SharedSecretPath(dataDir)) c.Assert(err, jc.ErrorIsNil) c.Assert(string(contents), gc.Equals, testInfo.SharedSecret) }