for _, storeType := range storeTypes { storeType := storeType for _, nodes := range nodeCounts { nodes := nodes for _, concurrency := range concurrencies { concurrency := concurrency Context(fmt.Sprintf("With %d %s nodes (%d concurrent requests at a time)", nodes, storeType, concurrency), func() { var storeAdapter storeadapter.StoreAdapter BeforeEach(func() { if storeType == "ETCD" { storeRunner = storerunner.NewETCDClusterRunner(5001, nodes) storeRunner.Start() storeAdapter = storeadapter.NewETCDStoreAdapter(storeRunner.NodeURLS(), workerpool.NewWorkerPool(concurrency)) err := storeAdapter.Connect() Ω(err).ShouldNot(HaveOccured()) } else if storeType == "Zookeeper" { storeRunner = storerunner.NewZookeeperClusterRunner(2181, nodes) storeRunner.Start() storeAdapter = storeadapter.NewZookeeperStoreAdapter(storeRunner.NodeURLS(), workerpool.NewWorkerPool(concurrency), &timeprovider.RealTimeProvider{}, time.Second) err := storeAdapter.Connect() Ω(err).ShouldNot(HaveOccured()) } }) AfterEach(func() { storeAdapter.Disconnect() storeRunner.Stop() storeRunner = nil
var _ = Describe("Desired State", func() { var ( store Store etcdAdapter storeadapter.StoreAdapter conf config.Config app1 app.App app2 app.App app3 app.App ) BeforeEach(func() { var err error conf, err = config.DefaultConfig() Ω(err).ShouldNot(HaveOccured()) etcdAdapter = storeadapter.NewETCDStoreAdapter(etcdRunner.NodeURLS(), conf.StoreMaxConcurrentRequests) err = etcdAdapter.Connect() Ω(err).ShouldNot(HaveOccured()) app1 = app.NewApp() app2 = app.NewApp() app3 = app.NewApp() store = NewStore(conf, etcdAdapter) }) AfterEach(func() { etcdAdapter.Disconnect() }) Describe("Saving desired state ", func() { BeforeEach(func() {
var _ = Describe("Analyzer", func() { var ( analyzer *Analyzer etcdStoreAdapter storeadapter.StoreAdapter conf config.Config a1 app.App a2 app.App ) BeforeEach(func() { var err error conf, err = config.DefaultConfig() Ω(err).ShouldNot(HaveOccured()) etcdStoreAdapter = storeadapter.NewETCDStoreAdapter(etcdRunner.NodeURLS(), conf.StoreMaxConcurrentRequests) err = etcdStoreAdapter.Connect() Ω(err).ShouldNot(HaveOccured()) a1 = app.NewApp() a2 = app.NewApp() analyzer = New(etcdStoreAdapter) }) insertDesiredIntoStore := func(desired models.DesiredAppState) { key := "/desired/" + desired.StoreKey() value := desired.ToJson() node := storeadapter.StoreNode{ Key: key, Value: value,