func ensureRunning(instance *redis.Instance, repo *redis.LocalRepository, processController *redis.OSProcessController, logger lager.Logger) { configPath := repo.InstanceConfigPath(instance.ID) instanceDataDir := repo.InstanceDataDir(instance.ID) pidfilePath := repo.InstancePidFilePath(instance.ID) logfilePath := repo.InstanceLogFilePath(instance.ID) err := processController.EnsureRunning(instance, configPath, instanceDataDir, pidfilePath, logfilePath) if err != nil { logger.Fatal("Error starting instance", err, lager.Data{ "instance": instance.ID, }) } }
}) It("overwrites the config file", func() { originalConfigContents := []byte("my custom config") err := ioutil.WriteFile(repo.InstanceConfigPath(instance.ID), originalConfigContents, 0755) Ω(err).NotTo(HaveOccurred()) writeInstance(instance, repo) configContents, err := ioutil.ReadFile(repo.InstanceConfigPath(instance.ID)) Ω(err).NotTo(HaveOccurred()) Ω(configContents).ShouldNot(Equal(originalConfigContents)) }) It("does not clear the data directory", func() { dataFilePath := filepath.Join(repo.InstanceDataDir(instance.ID), "appendonly.aof") originalDataFileContents := []byte("DATA FILE") err := ioutil.WriteFile(dataFilePath, originalDataFileContents, 0755) Ω(err).NotTo(HaveOccurred()) writeInstance(instance, repo) dataFileContents, err := ioutil.ReadFile(dataFilePath) Ω(err).NotTo(HaveOccurred()) Ω(dataFileContents).Should(Equal(originalDataFileContents)) }) It("does not clear the log directory", func() { logFilePath := filepath.Join(repo.InstanceLogDir(instance.ID), "redis-server.log")