func initializeEtcdStoreClient(logger lager.Logger, etcdOptions *etcddb.ETCDOptions) etcddb.StoreClient { var etcdClient *etcdclient.Client var tr *http.Transport if etcdOptions.IsSSL { if etcdOptions.CertFile == "" || etcdOptions.KeyFile == "" { logger.Fatal("failed-to-construct-etcd-tls-client", errors.New("Require both cert and key path")) } var err error etcdClient, err = etcdclient.NewTLSClient(etcdOptions.ClusterUrls, etcdOptions.CertFile, etcdOptions.KeyFile, etcdOptions.CAFile) if err != nil { logger.Fatal("failed-to-construct-etcd-tls-client", err) } tlsCert, err := tls.LoadX509KeyPair(etcdOptions.CertFile, etcdOptions.KeyFile) if err != nil { logger.Fatal("failed-to-construct-etcd-tls-client", err) } tlsConfig := &tls.Config{ Certificates: []tls.Certificate{tlsCert}, InsecureSkipVerify: true, ClientSessionCache: tls.NewLRUClientSessionCache(etcdOptions.ClientSessionCacheSize), } tr = &http.Transport{ TLSClientConfig: tlsConfig, Dial: etcdClient.DefaultDial, MaxIdleConnsPerHost: etcdOptions.MaxIdleConnsPerHost, } etcdClient.SetTransport(tr) etcdClient.AddRootCA(etcdOptions.CAFile) } else { etcdClient = etcdclient.NewClient(etcdOptions.ClusterUrls) } etcdClient.SetConsistency(etcdclient.STRONG_CONSISTENCY) return etcddb.NewStoreClient(etcdClient) }
etcdRunner.Stop() consulRunner.Stop() }) var _ = BeforeEach(func() { logger = lagertest.NewTestLogger("test") fakeAuctioneerClient = new(auctioneerfakes.FakeClient) etcdRunner.Reset() consulRunner.Reset() consulSession = consulRunner.NewSession("a-session") etcdClient := etcdRunner.Client() etcdClient.SetConsistency(etcdclient.STRONG_CONSISTENCY) storeClient = etcd.NewStoreClient(etcdClient) fakeStoreClient = &fakes.FakeStoreClient{} consulHelper = test_helpers.NewConsulHelper(consulSession) serviceClient = bbs.NewServiceClient(consulSession, clock) fakeTaskCompletionClient = new(faketaskworkpool.FakeTaskCompletionClient) fakeRepClientFactory = new(repfakes.FakeClientFactory) fakeRepClient = new(repfakes.FakeClient) fakeRepClientFactory.CreateClientReturns(fakeRepClient) etcdHelper = etcd_helpers.NewETCDHelper(format.ENCRYPTED_PROTO, cryptor, storeClient) etcdDB = etcd.NewETCD(format.ENCRYPTED_PROTO, 100, 100, cryptor, storeClient, fakeAuctioneerClient, serviceClient, clock, fakeRepClientFactory, fakeTaskCompletionClient) etcdDBWithFakeStore = etcd.NewETCD(format.ENCRYPTED_PROTO, 100, 100, cryptor, fakeStoreClient, fakeAuctioneerClient, serviceClient, clock, fakeRepClientFactory, fakeTaskCompletionClient) }) func registerCell(cell models.CellPresence) { var err error jsonBytes, err := json.Marshal(cell)
BeforeEach(func() { sender = fake.NewFakeMetricSender() metrics.Initialize(sender, nil) runErrChan = make(chan error, 1) ready = make(chan struct{}) signals = make(chan os.Signal) migrationsDone = make(chan struct{}) dbVersion = &models.Version{} logger = lagertest.NewTestLogger("test") fakeDB = &fakes.FakeDB{} fakeDB.VersionReturns(dbVersion, nil) storeClient = etcd.NewStoreClient(nil) cryptor = &fakeencryption.FakeCryptor{} fakeMigration = &migrationfakes.FakeMigration{} migrations = []migration.Migration{fakeMigration} }) JustBeforeEach(func() { manager = migration.NewManager(logger, fakeDB, cryptor, storeClient, migrations, migrationsDone, clock.NewClock()) migrationProcess = ifrit.Background(manager) }) AfterEach(func() { ginkgomon.Kill(migrationProcess) })