Esempio n. 1
0
func New(
	cellID string,
	bbs bbs.Client,
	executorClient executor.Client,
	evacuationReporter evacuation_context.EvacuationReporter,
	evacuationTTLInSeconds uint64,
) Generator {
	containerDelegate := internal.NewContainerDelegate(executorClient)
	lrpProcessor := internal.NewLRPProcessor(bbs, containerDelegate, cellID, evacuationReporter, evacuationTTLInSeconds)
	taskProcessor := internal.NewTaskProcessor(bbs, containerDelegate, cellID)

	return &generator{
		cellID:            cellID,
		bbs:               bbs,
		executorClient:    executorClient,
		lrpProcessor:      lrpProcessor,
		taskProcessor:     taskProcessor,
		containerDelegate: containerDelegate,
	}
}
Esempio n. 2
0
var processor internal.TaskProcessor

var _ = Describe("Task <-> Container table", func() {
	var containerDelegate *fake_internal.FakeContainerDelegate

	const (
		taskGuid      = "my-guid"
		localCellID   = "a"
		otherCellID   = "w"
		sessionPrefix = "task-table-test"
	)

	BeforeEach(func() {
		etcdRunner.ResetAllBut(etcddb.VersionKey)
		containerDelegate = new(fake_internal.FakeContainerDelegate)
		processor = internal.NewTaskProcessor(bbsClient, containerDelegate, localCellID)

		containerDelegate.DeleteContainerReturns(true)
		containerDelegate.StopContainerReturns(true)
		containerDelegate.RunContainerReturns(true)
	})

	itDeletesTheContainer := func(logger *lagertest.TestLogger) {
		It("deletes the container", func() {
			Expect(containerDelegate.DeleteContainerCallCount()).To(Equal(1))
			_, containerGuid := containerDelegate.DeleteContainerArgsForCall(0)
			Expect(containerGuid).To(Equal(taskGuid))
		})
	}

	itCompletesTheTaskWithFailure := func(reason string) func(*lagertest.TestLogger) {