func (s *MongoSuite) TestDefaultMongodPath(c *gc.C) { s.PatchValue(&mongo.JujuMongodPath, "/not/going/to/exist/mongod") s.PatchEnvPathPrepend(filepath.Dir(s.mongodPath)) obtained, err := mongo.Path() c.Check(err, gc.IsNil) c.Check(obtained, gc.Equals, s.mongodPath) }
func (s *MongoSuite) TestDefaultMongodPath(c *gc.C) { s.PatchValue(&mongo.JujuMongod24Path, "/not/going/to/exist/mongod") s.PatchEnvPathPrepend(filepath.Dir(s.mongodPath)) c.Logf("mongo version is %q", s.mongodVersion) obtained, err := mongo.Path(s.mongodVersion) c.Check(err, jc.ErrorIsNil) c.Check(obtained, gc.Matches, s.mongodPath) }
func (s *MongoSuite) TestJujuMongodPath(c *gc.C) { obtained, err := mongo.Path(s.mongodVersion) c.Check(err, jc.ErrorIsNil) c.Check(obtained, gc.Matches, s.mongodPath) }
func (s *MongoSuite) TestJujuMongodPath(c *gc.C) { obtained, err := mongo.Path() c.Check(err, gc.IsNil) c.Check(obtained, gc.Equals, s.mongodPath) }
} targets := set.NewStrings(dbNames...).Difference(ignoredDatabases) return targets, nil } const dumpName = "mongodump" // DBDumper is any type that dumps something to a dump dir. type DBDumper interface { // Dump something to dumpDir. Dump(dumpDir string) error } var getMongodumpPath = func() (string, error) { mongod, err := mongo.Path() if err != nil { return "", errors.Annotate(err, "failed to get mongod path") } mongoDumpPath := filepath.Join(filepath.Dir(mongod), dumpName) if _, err := os.Stat(mongoDumpPath); err == nil { // It already exists so no need to continue. return mongoDumpPath, nil } path, err := exec.LookPath(dumpName) if err != nil { return "", errors.Trace(err) } return path, nil
dumpName = "mongodump" restoreName = "mongorestore" ) // DBDumper is any type that dumps something to a dump dir. type DBDumper interface { // Dump something to dumpDir. Dump(dumpDir string) error } var getMongodumpPath = func() (string, error) { return getMongoToolPath(dumpName, os.Stat, exec.LookPath) } var getMongodPath = func() (string, error) { return mongo.Path(mongo.InstalledVersion()) } func getMongoToolPath(toolName string, stat func(name string) (os.FileInfo, error), lookPath func(file string) (string, error)) (string, error) { mongod, err := getMongodPath() if err != nil { return "", errors.Annotate(err, "failed to get mongod path") } mongoTool := filepath.Join(filepath.Dir(mongod), toolName) if _, err := stat(mongoTool); err == nil { // It already exists so no need to continue. return mongoTool, nil } path, err := lookPath(toolName)
targets := set.NewStrings(dbNames...).Difference(ignoredDatabases) return targets, nil } const dumpName = "mongodump" // DBDumper is any type that dumps something to a dump dir. type DBDumper interface { // Dump something to dumpDir. Dump(dumpDir string) error } var getMongodumpPath = func() (string, error) { // TODO(perrito666) Add automagic determination of version here mongod, err := mongo.Path(mongo.Mongo24) if err != nil { return "", errors.Annotate(err, "failed to get mongod path") } mongoDumpPath := filepath.Join(filepath.Dir(mongod), dumpName) if _, err := os.Stat(mongoDumpPath); err == nil { // It already exists so no need to continue. return mongoDumpPath, nil } path, err := exec.LookPath(dumpName) if err != nil { return "", errors.Trace(err) } return path, nil