It("returns an error", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-unmount-error")) Expect(fakeStage.PerformCalls[2].Name).To(Equal("Unmounting disk 'fake-disk'")) Expect(fakeStage.PerformCalls[2].Error).To(HaveOccurred()) Expect(fakeStage.PerformCalls[2].Error.Error()).To(Equal("Unmounting disk 'fake-disk' from VM 'fake-vm-cid': fake-unmount-error")) }) }) }) Context("when agent fails to respond", func() { BeforeEach(func() { fakeVM.WaitUntilReadyErr = bosherr.Error("fake-wait-error") }) It("logs failed event", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage) Expect(err).ToNot(HaveOccurred()) Expect(fakeStage.PerformCalls[0].Name).To(Equal("Waiting for the agent on VM 'fake-vm-cid'")) Expect(fakeStage.PerformCalls[0].Error).To(HaveOccurred()) Expect(fakeStage.PerformCalls[0].Error.Error()).To(Equal("Agent unreachable: fake-wait-error")) }) }) Context("when deleting VM fails", func() { var ( deleteError = bosherr.Error("fake-delete-error")
It("logs start and stop events to the eventLogger", func() { _, err := deployer.Deploy(cloud, deploymentManifest, cloudStemcell, registryConfig, fakeVMManager, mockBlobstore, fakeStage) Expect(err).NotTo(HaveOccurred()) Expect(fakeStage.PerformCalls[1]).To(Equal(&fakebiui.PerformCall{ Name: "Waiting for the agent on VM 'fake-vm-cid' to be ready", })) }) Context("when waiting for the agent fails", func() { var ( waitError = bosherr.Error("fake-wait-error") ) BeforeEach(func() { fakeVM.WaitUntilReadyErr = waitError }) It("logs start and stop events to the eventLogger", func() { _, err := deployer.Deploy(cloud, deploymentManifest, cloudStemcell, registryConfig, fakeVMManager, mockBlobstore, fakeStage) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-wait-error")) Expect(fakeStage.PerformCalls[1]).To(Equal(&fakebiui.PerformCall{ Name: "Waiting for the agent on VM 'fake-vm-cid' to be ready", Error: waitError, })) }) }) It("updates the vm", func() {