示例#1
0
文件: main.go 项目: yingkitw/gorouter
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
	})
}
示例#2
0
文件: main.go 项目: yingkitw/gorouter
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)
				}
			}
		}
	}
}
示例#3
0
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() {
示例#4
0
		)

		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 (
示例#5
0
			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
示例#6
0
		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",
			}