{"rep", cellBRepRunner}, })) test_helper.CreateZipArchive( filepath.Join(fileServerStaticDir, "lrp.zip"), fixtures.GoServerApp(), ) }) AfterEach(func() { helpers.StopProcesses(runtime, cellA, cellB) }) It("handles evacuation", func() { By("desiring an LRP") lrp := helpers.DefaultLRPCreateRequest(processGuid, "log-guid", 1) lrp.Setup = &models.DownloadAction{ From: fmt.Sprintf("http://%s/v1/static/%s", componentMaker.Addresses.FileServer, "lrp.zip"), To: "/tmp", User: "******", } lrp.Action = &models.RunAction{ User: "******", Path: "/tmp/go-server", Env: []models.EnvironmentVariable{{"PORT", "8080"}}, } err := receptorClient.CreateDesiredLRP(lrp) Expect(err).NotTo(HaveOccurred()) By("running an actual LRP instance")
auctioneer = ginkgomon.Invoke(componentMaker.Auctioneer()) }) Context("when an rep, and converger are running", func() { BeforeEach(func() { rep = ginkgomon.Invoke(componentMaker.Rep()) converger = ginkgomon.Invoke(componentMaker.Converger( "-convergeRepeatInterval", "1s", )) }) Context("and an LRP is desired", func() { var initialInstanceGuids []string BeforeEach(func() { err := receptorClient.CreateDesiredLRP(helpers.DefaultLRPCreateRequest(processGuid, appId, 2)) Expect(err).NotTo(HaveOccurred()) Eventually(runningLRPsPoller).Should(HaveLen(2)) Eventually(helloWorldInstancePoller).Should(Equal([]string{"0", "1"})) initialActuals := runningLRPsPoller() initialInstanceGuids = []string{initialActuals[0].InstanceGuid, initialActuals[1].InstanceGuid} }) Context("and the LRP goes away because its rep dies", func() { BeforeEach(func() { rep.Signal(syscall.SIGKILL) Eventually(runningLRPsPoller).Should(BeEmpty()) Eventually(helloWorldInstancePoller).Should(BeEmpty()) })