bbsClient.DesiredLRPByProcessGuidReturns(desiredLRP, nil) expectedSessionName = sessionPrefix + "process-reserved-container" container.State = executor.StateReserved }) It("claims the actualLRP in the bbs", func() { Expect(bbsClient.ClaimActualLRPCallCount()).To(Equal(1)) processGuid, index, instanceKey := bbsClient.ClaimActualLRPArgsForCall(0) Expect(processGuid).To(Equal(expectedLrpKey.ProcessGuid)) Expect(int32(index)).To(Equal(expectedLrpKey.Index)) Expect(*instanceKey).To(Equal(expectedInstanceKey)) }) Context("when claiming fails because ErrActualLRPCannotBeClaimed", func() { BeforeEach(func() { bbsClient.ClaimActualLRPReturns(models.ErrActualLRPCannotBeClaimed) }) It("deletes the container", func() { Expect(containerDelegate.DeleteContainerCallCount()).To(Equal(1)) delegateLogger, containerGuid := containerDelegate.DeleteContainerArgsForCall(0) Expect(containerGuid).To(Equal(container.Guid)) Expect(delegateLogger.SessionName()).To(Equal(expectedSessionName)) }) It("does not try to run the container", func() { Expect(containerDelegate.RunContainerCallCount()).To(Equal(0)) }) }) Context("when claiming fails for an unknown reason", func() {
expectedSessionName = sessionPrefix + "process-reserved-container" container.State = executor.StateReserved }) It("claims the actualLRP in the bbs", func() { Expect(bbsClient.ClaimActualLRPCallCount()).To(Equal(1)) processGuid, index, instanceKey := bbsClient.ClaimActualLRPArgsForCall(0) Expect(processGuid).To(Equal(expectedLrpKey.ProcessGuid)) Expect(int32(index)).To(Equal(expectedLrpKey.Index)) Expect(*instanceKey).To(Equal(expectedInstanceKey)) }) Context("when claiming fails because ErrActualLRPCannotBeClaimed", func() { BeforeEach(func() { bbsClient.ClaimActualLRPReturns(models.NewError( models.Error_ActualLRPCannotBeClaimed, "something-broke?", )) }) It("deletes the container", func() { Expect(containerDelegate.DeleteContainerCallCount()).To(Equal(1)) delegateLogger, containerGuid := containerDelegate.DeleteContainerArgsForCall(0) Expect(containerGuid).To(Equal(container.Guid)) Expect(delegateLogger.SessionName()).To(Equal(expectedSessionName)) }) It("does not try to run the container", func() { Expect(containerDelegate.RunContainerCallCount()).To(Equal(0)) }) })