func jobIndexOfLeader(kv consulclient.HTTPKV, client bosh.Client, deploymentName string) (int, error) { resp, err := http.Get(fmt.Sprintf("%s/v1/status/leader", kv.Address())) if err != nil { return -1, err } var leader string if err := json.NewDecoder(resp.Body).Decode(&leader); err != nil { return -1, err } vms, err := client.DeploymentVMs(deploymentName) if err != nil { return -1, err } for _, vm := range vms { if len(vm.IPs) > 0 { if vm.IPs[0] == strings.Split(leader, ":")[0] { return vm.Index, nil } } } return -1, errors.New("could not determine leader") }
"time" "github.com/cloudfoundry-incubator/consul-release/src/acceptance-tests/testing/consulclient" "github.com/cloudfoundry-incubator/consul-release/src/acceptance-tests/testing/helpers" "github.com/pivotal-cf-experimental/bosh-test/bosh" "github.com/pivotal-cf-experimental/destiny/consul" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Scaling up Instances", func() { var ( manifest consul.ManifestV2 kv consulclient.HTTPKV testKey string testValue string spammer *helpers.Spammer ) AfterEach(func() { if !CurrentGinkgoTestDescription().Failed { err := boshClient.DeleteDeployment(manifest.Name) Expect(err).NotTo(HaveOccurred()) } }) Describe("scaling from 1 node to 3", func() { BeforeEach(func() { guid, err := helpers.NewGUID() Expect(err).NotTo(HaveOccurred())
"github.com/cloudfoundry-incubator/consul-release/src/acceptance-tests/testing/consulclient" "github.com/cloudfoundry-incubator/consul-release/src/acceptance-tests/testing/helpers" "github.com/pivotal-cf-experimental/bosh-test/bosh" "github.com/pivotal-cf-experimental/destiny/consul" "github.com/pivotal-cf-experimental/destiny/turbulence" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" turbulenceclient "github.com/pivotal-cf-experimental/bosh-test/turbulence" ) var _ = Describe("quorum loss", func() { var ( turbulenceClient turbulenceclient.Client turbulenceManifest turbulence.Manifest consulManifest consul.ManifestV2 kv consulclient.HTTPKV ) BeforeEach(func() { By("deploying turbulence", func() { var err error turbulenceManifest, err = helpers.DeployTurbulence(boshClient, config) Expect(err).NotTo(HaveOccurred()) Eventually(func() ([]bosh.VM, error) { return helpers.DeploymentVMs(boshClient, turbulenceManifest.Name) }, "1m", "10s").Should(ConsistOf(helpers.GetTurbulenceVMsFromManifest(turbulenceManifest))) turbulenceClient = helpers.NewTurbulenceClient(turbulenceManifest) })