func constructStopper(database db.DB) ifrit.Runner { return ifrit.RunFunc(func(signals <-chan os.Signal, ready chan<- struct{}) error { close(ready) select { case <-signals: database.CancelWatches() } return nil }) }
func seedRouterGroups(cfg config.Config, logger lager.Logger, database db.DB) { // seed router groups from config if len(cfg.RouterGroups) > 0 { routerGroups, _ := database.ReadRouterGroups() // if config not empty and db is empty, seed if len(routerGroups) == 0 { for _, rg := range cfg.RouterGroups { guid, err := uuid.NewV4() if err != nil { logger.Error("failed to generate a guid for router group", err) os.Exit(1) } rg.Guid = guid.String() logger.Info("seeding", lager.Data{"router-group": rg}) err = database.SaveRouterGroup(rg) if err != nil { logger.Error("failed to save router group from config", err) os.Exit(1) } } } } }
package db_test import ( "time" "github.com/cloudfoundry-incubator/routing-api/db" "github.com/cloudfoundry/storeadapter" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("DB", func() { Describe("etcd", func() { var ( etcd db.DB route db.Route ) BeforeEach(func() { etcd = db.NewETCD(etcdRunner.NodeURLS()) route = db.Route{ Route: "post_here", Port: 7000, IP: "1.2.3.4", TTL: 50, LogGuid: "my-guid", } etcd.Connect() }) AfterEach(func() {
) BeforeEach(func() { etcd, err = db.NewETCD(etcdRunner.NodeURLS(), 0) Expect(err).To(HaveOccurred()) }) It("should not return an etcd instance", func() { Expect(etcd).To(BeNil()) }) }) Describe("etcd", func() { var ( etcd db.DB err error ) BeforeEach(func() { etcd, err = db.NewETCD(etcdRunner.NodeURLS(), 10) Expect(err).NotTo(HaveOccurred()) etcd.Connect() }) AfterEach(func() { etcd.Disconnect() }) Describe("Http Routes", func() { var (
err error ) BeforeEach(func() { etcd, err = db.NewETCD([]string{}) }) It("should not return an etcd instance", func() { Expect(err).To(HaveOccurred()) Expect(etcd).To(BeNil()) }) }) Context("when connect fails", func() { var ( etcd db.DB err error ) BeforeEach(func() { etcd, err = db.NewETCD([]string{"im-not-really-running"}) Expect(err).NotTo(HaveOccurred()) }) It("returns an error", func() { Expect(etcd.Connect()).To(HaveOccurred()) }) }) Describe("etcd", func() { var ( etcd db.DB
BeforeEach(func() { etcd, err = db.NewETCD(etcdRunner.NodeURLS(), 0) Expect(err).To(HaveOccurred()) }) It("should not return an etcd instance", func() { Expect(etcd).To(BeNil()) }) }) Describe("etcd", func() { var ( etcd db.DB err error route db.Route tcpRouteMapping1 db.TcpRouteMapping ) BeforeEach(func() { etcd, err = db.NewETCD(etcdRunner.NodeURLS(), 10) Expect(err).NotTo(HaveOccurred()) etcd.Connect() route = db.Route{ Route: "post_here", Port: 7000, IP: "1.2.3.4", TTL: 50, LogGuid: "my-guid", }