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, }) } }
_, err := os.Stat(logDir) Ω(err).NotTo(HaveOccurred()) }) }) Context("when the repository already exists", func() { var instance *redis.Instance BeforeEach(func() { instance = newTestInstance(instanceID, repo) }) 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())