func New(appGuid string, requiredResources int) Instance { return Instance{ AppGuid: appGuid, InstanceGuid: util.NewGuid("INS"), RequiredResources: requiredResources, Tentative: false, } }
"github.com/onsi/auction/util" "github.com/onsi/auction/visualization" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Ω var _ = Describe("Auction", func() { var initialDistributions map[int][]instance.Instance var numApps int generateUniqueInstances := func(numInstances int) []instance.Instance { instances := []instance.Instance{} for i := 0; i < numInstances; i++ { instances = append(instances, instance.New(util.NewGuid("APP"), 1)) } return instances } randomColor := func() string { return []string{"plurple", "red", "cyan", "yellow", "gray"}[util.R.Intn(5)] } generateInstancesWithRandomColors := func(numInstances int) []instance.Instance { instances := []instance.Instance{} for i := 0; i < numInstances; i++ { instances = append(instances, instance.New(randomColor(), 1)) } return instances }
func buildClient(numReps int, repResources int) (types.TestRepPoolClient, []string) { repNodeBinary, err := gexec.Build("github.com/onsi/auction/repnode") Ω(err).ShouldNot(HaveOccurred()) if communicationMode == InProcess { lossyrep.LatencyMin = 2 * time.Millisecond lossyrep.LatencyMax = 12 * time.Millisecond lossyrep.Timeout = 50 * time.Millisecond lossyrep.Flakiness = 0.95 guids := []string{} repMap := map[string]*representative.Representative{} for i := 0; i < numReps; i++ { guid := util.NewGuid("REP") guids = append(guids, guid) repMap[guid] = representative.New(guid, repResources) } client := lossyrep.New(repMap, map[string]bool{}) return client, guids } else if communicationMode == NATS { guids := []string{} for i := 0; i < numReps; i++ { guid := util.NewGuid("REP") serverCmd := exec.Command( repNodeBinary, "-guid", guid, "-natsAddr", fmt.Sprintf("127.0.0.1:%d", natsPort), "-resources", fmt.Sprintf("%d", repResources), ) sess, err := gexec.Start(serverCmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) Eventually(sess).Should(gbytes.Say("listening")) sessionsToTerminate = append(sessionsToTerminate, sess) guids = append(guids, guid) } client := repnatsclient.New(natsRunner.MessageBus, timeout) return client, guids } else if communicationMode == HTTP { startPort := 18000 + (numReps * GinkgoParallelNode()) guids := []string{} repMap := map[string]string{} for i := 0; i < numReps; i++ { guid := util.NewGuid("REP") port := startPort + i serverCmd := exec.Command( repNodeBinary, "-guid", guid, "-httpAddr", fmt.Sprintf("0.0.0.0:%d", port), "-resources", fmt.Sprintf("%d", repResources), ) repMap[guid] = fmt.Sprintf("http://127.0.0.1:%d", port) sess, err := gexec.Start(serverCmd, GinkgoWriter, GinkgoWriter) Ω(err).ShouldNot(HaveOccurred()) Eventually(sess).Should(gbytes.Say("serving")) sessionsToTerminate = append(sessionsToTerminate, sess) guids = append(guids, guid) } client := rephttpclient.New(repMap, timeout) return client, guids } panic("wat!") }