consulManifest, _, err = helpers.DeployConsulWithTurbulence("recursor-timeout", 1, boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, consulManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetVMsFromManifest(consulManifest))) tcClient = testconsumerclient.New(fmt.Sprintf("http://%s:6769", consulManifest.InstanceGroups[1].Networks[0].StaticIPs[0])) }) }) AfterEach(func() { By("deleting consul deployment", func() { if !CurrentGinkgoTestDescription().Failed { Eventually(func() string { incidentResp, err := turbulenceClient.Incident(delayIncidentID) Expect(err).NotTo(HaveOccurred()) return incidentResp.ExecutionCompletedAt }, TIMEOUT.String(), "10s").ShouldNot(BeEmpty()) // Turbulence API might say that the incident is finished, but it might not be - sanity check Eventually(func() (int64, error) { var err error dnsStartTime := time.Now() _, err = tcClient.DNS("my-fake-server.fake.local") if err != nil { return 0, err } dnsElapsedTime := time.Since(dnsStartTime) return dnsElapsedTime.Nanoseconds(), nil