Esempio n. 1
0
		Context("when the actual lrp key does not match", func() {
			BeforeEach(func() {
				actualLRP.Domain = "a different domain"
			})

			It("returns a ErrActualLRPCannotBeRemoved", func() {
				err := etcdDB.RemoveEvacuatingActualLRP(logger, &actualLRP.ActualLRPKey, &actualLRP.ActualLRPInstanceKey)
				Expect(err).To(HaveOccurred())
				Expect(err).To(Equal(models.ErrActualLRPCannotBeRemoved))
			})
		})

		Context("when the actual lrp instance key does not match", func() {
			BeforeEach(func() {
				actualLRP.CellId = "a different cell"
			})

			It("returns a ErrActualLRPCannotBeRemoved", func() {
				err := etcdDB.RemoveEvacuatingActualLRP(logger, &actualLRP.ActualLRPKey, &actualLRP.ActualLRPInstanceKey)
				Expect(err).To(HaveOccurred())
				Expect(err).To(Equal(models.ErrActualLRPCannotBeRemoved))
			})
		})

		Context("when compare and delete fails", func() {
			BeforeEach(func() {
				resp, err := storeClient.Get(etcd.EvacuatingActualLRPSchemaPath(guid, index), false, false)
				fakeStoreClient.GetReturns(resp, err)
				fakeStoreClient.CompareAndDeleteReturns(nil, errors.New("compare and delete failed"))
			})
Esempio n. 2
0
							It("does not emit any events", func() {
								Consistently(actualHub.EmitCallCount).Should(Equal(0))
							})
						})
					})
				})
			})

			Context("when the instance is claimed", func() {
				BeforeEach(func() {
					actual.State = models.ActualLRPStateClaimed
				})

				Context("by another cell", func() {
					BeforeEach(func() {
						actual.CellId = "some-other-cell"
						group := &models.ActualLRPGroup{Evacuating: afterActual}
						fakeEvacuationDB.EvacuateActualLRPReturns(group, nil)
					})

					It("evacuates the LRP", func() {
						response := models.EvacuationResponse{}
						err := response.Unmarshal(responseRecorder.Body.Bytes())
						Expect(err).NotTo(HaveOccurred())
						Expect(response.KeepContainer).To(BeTrue())
						Expect(response.Error).To(BeNil())

						Expect(fakeEvacuationDB.EvacuateActualLRPCallCount()).To(Equal(1))
						_, actualLRPKey, actualLRPInstanceKey, actualLrpNetInfo, ttl := fakeEvacuationDB.EvacuateActualLRPArgsForCall(0)
						Expect(*actualLRPKey).To(Equal(actual.ActualLRPKey))
						Expect(*actualLRPInstanceKey).To(Equal(*requestBody.ActualLrpInstanceKey))