maintainProcess ifrit.Process heartbeaterErrors chan error observedSignals chan os.Signal clock *fakeclock.FakeClock pingErrors chan error ) BeforeEach(func() { pingErrors = make(chan error, 1) fakeClient = &fake_client.FakeClient{ PingStub: func() error { return <-pingErrors }, } resources := executor.ExecutorResources{MemoryMB: 128, DiskMB: 1024, Containers: 6} fakeClient.TotalResourcesReturns(resources, nil) logger = lagertest.NewTestLogger("test") clock = fakeclock.NewFakeClock(time.Now()) heartbeaterErrors = make(chan error) observedSignals = make(chan os.Signal, 2) fakeHeartbeater = &maintain_fakes.FakeRunner{ RunStub: func(sigChan <-chan os.Signal, ready chan<- struct{}) error { defer GinkgoRecover() logger.Info("fake-heartbeat-started") close(ready) for { select { case sig := <-sigChan: logger.Info("fake-heartbeat-received-signal")
reporter ifrit.Process logger *lagertest.TestLogger ) BeforeEach(func() { logger = lagertest.NewTestLogger("test") reportInterval = 100 * time.Millisecond executorClient = new(fakes.FakeClient) sender = fake.NewFakeMetricSender() dropsonde_metrics.Initialize(sender, nil) executorClient.TotalResourcesReturns(executor.ExecutorResources{ MemoryMB: 1024, DiskMB: 2048, Containers: 4096, }, nil) executorClient.RemainingResourcesReturns(executor.ExecutorResources{ MemoryMB: 128, DiskMB: 256, Containers: 512, }, nil) executorClient.ListContainersReturns([]executor.Container{ {Guid: "container-1"}, {Guid: "container-2"}, {Guid: "container-3"}, }, nil) })
{ Guid: "da-task", Resource: executor.NewResource(40, 30, "rootfs"), Tags: executor.Tags{ rep.LifecycleTag: rep.TaskLifecycle, rep.DomainTag: "domain", }, }, { Guid: "other-task", Resource: executor.NewResource(40, 30, "rootfs"), Tags: nil, }, } client.TotalResourcesReturns(totalResources, nil) client.RemainingResourcesReturns(availableResources, nil) client.ListContainersReturns(containers, nil) }) It("queries the client and returns state", func() { state, err := cellRep.State() Expect(err).NotTo(HaveOccurred()) Expect(state.Evacuating).To(BeTrue()) Expect(state.RootFSProviders).To(Equal(rep.RootFSProviders{ models.PreloadedRootFSScheme: rep.NewFixedSetRootFSProvider("linux"), "docker": rep.ArbitraryRootFSProvider{}, })) Expect(state.AvailableResources).To(Equal(rep.Resources{