consulManifest, kv, err = helpers.DeployConsulWithInstanceCount(3, client, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return client.DeploymentVMs(consulManifest.Name) }, "1m", "10s").Should(ConsistOf([]bosh.VM{ {"running"}, {"running"}, {"running"}, })) }) AfterEach(func() { By("fixing the deployment", func() { yaml, err := consulManifest.ToYAML() Expect(err).NotTo(HaveOccurred()) err = client.ScanAndFix(yaml) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return client.DeploymentVMs(consulManifest.Name) }, "1m", "10s").Should(ConsistOf([]bosh.VM{ {"running"}, {"running"}, {"running"}, })) }) By("deleting the deployment", func() {
})) }) It("provides a functioning server after the scale down", func() { By("setting a persistent value to check the cluster is up", func() { err := kv.Set(testKey, testValue) Expect(err).NotTo(HaveOccurred()) }) By("scaling from 3 nodes to 1", func() { manifest.Jobs[0], manifest.Properties = destiny.SetJobInstanceCount(manifest.Jobs[0], manifest.Networks[0], manifest.Properties, 1) members := manifest.ConsulMembers() Expect(members).To(HaveLen(1)) yaml, err := manifest.ToYAML() Expect(err).NotTo(HaveOccurred()) err = client.Deploy(yaml) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return client.DeploymentVMs(manifest.Name) }, "1m", "10s").Should(ConsistOf([]bosh.VM{ {"running"}, })) }) By("setting a persistent value to check the cluster is up after the scale down", func() { err := kv.Set(testKey, testValue) Expect(err).NotTo(HaveOccurred())
} manifestConfig.Registry = destiny.ConfigRegistry{ Host: config.Registry.Host, Port: config.Registry.Port, Username: config.Registry.Username, Password: config.Registry.Password, } case "warden_cpi": manifestConfig.IAAS = destiny.Warden default: Fail("unknown infrastructure type") } turbulenceManifest = destiny.NewTurbulence(manifestConfig) yaml, err := turbulenceManifest.ToYAML() Expect(err).NotTo(HaveOccurred()) yaml, err = client.ResolveManifestVersions(yaml) Expect(err).NotTo(HaveOccurred()) turbulenceManifest, err = destiny.FromYAML(yaml) Expect(err).NotTo(HaveOccurred()) err = client.Deploy(yaml) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return client.DeploymentVMs(turbulenceManifest.Name) }, "1m", "10s").Should(ConsistOf([]bosh.VM{ {"running"},