func main() { cf_debug_server.AddFlags(flag.CommandLine) cf_lager.AddFlags(flag.CommandLine) flag.Parse() cf_http.Initialize(*communicationTimeout) logger, reconfigurableSink := cf_lager.New("auctioneer") initializeDropsonde(logger) if err := validateBBSAddress(); err != nil { logger.Fatal("invalid-bbs-address", err) } consulClient, err := consuladapter.NewClientFromUrl(*consulCluster) if err != nil { logger.Fatal("new-client-failed", err) } port, err := strconv.Atoi(strings.Split(*listenAddr, ":")[1]) if err != nil { logger.Fatal("invalid-port", err) } clock := clock.NewClock() auctioneerServiceClient := auctioneer.NewServiceClient(consulClient, clock) auctionRunner := initializeAuctionRunner(logger, *cellStateTimeout, initializeBBSClient(logger), *startingContainerWeight) auctionServer := initializeAuctionServer(logger, auctionRunner) lockMaintainer := initializeLockMaintainer(logger, auctioneerServiceClient, port) registrationRunner := initializeRegistrationRunner(logger, consulClient, clock, port) members := grouper.Members{ {"lock-maintainer", lockMaintainer}, {"auction-runner", auctionRunner}, {"auction-server", auctionServer}, {"registration-runner", registrationRunner}, } if dbgAddr := cf_debug_server.DebugAddress(flag.CommandLine); dbgAddr != "" { members = append(grouper.Members{ {"debug-server", cf_debug_server.Runner(dbgAddr, reconfigurableSink)}, }, members...) } group := grouper.NewOrdered(os.Interrupt, members) monitor := ifrit.Invoke(sigmon.New(group)) logger.Info("started") err = <-monitor.Wait() if err != nil { logger.Error("exited-with-failure", err) os.Exit(1) } logger.Info("exited") }
func main() { cf_debug_server.AddFlags(flag.CommandLine) cf_lager.AddFlags(flag.CommandLine) flag.Parse() cf_http.Initialize(*communicationTimeout) logger, reconfigurableSink := cf_lager.New("auctioneer") initializeDropsonde(logger) if err := validateBBSAddress(); err != nil { logger.Fatal("invalid-bbs-address", err) } client, err := consuladapter.NewClient(*consulCluster) if err != nil { logger.Fatal("new-client-failed", err) } sessionMgr := consuladapter.NewSessionManager(client) consulSession, err := consuladapter.NewSession("auctioneer", *lockTTL, client, sessionMgr) if err != nil { logger.Fatal("consul-session-failed", err) } clock := clock.NewClock() bbsServiceClient := bbs.NewServiceClient(consulSession, clock) auctioneerServiceClient := auctioneer.NewServiceClient(consulSession, clock) auctionRunner := initializeAuctionRunner(logger, *cellStateTimeout, initializeBBSClient(logger), bbsServiceClient) auctionServer := initializeAuctionServer(logger, auctionRunner) lockMaintainer := initializeLockMaintainer(logger, auctioneerServiceClient) members := grouper.Members{ {"lock-maintainer", lockMaintainer}, {"auction-runner", auctionRunner}, {"auction-server", auctionServer}, } if dbgAddr := cf_debug_server.DebugAddress(flag.CommandLine); dbgAddr != "" { members = append(grouper.Members{ {"debug-server", cf_debug_server.Runner(dbgAddr, reconfigurableSink)}, }, members...) } group := grouper.NewOrdered(os.Interrupt, members) monitor := ifrit.Invoke(sigmon.New(group)) logger.Info("started") err = <-monitor.Wait() if err != nil { logger.Error("exited-with-failure", err) os.Exit(1) } logger.Info("exited") }
"github.com/cloudfoundry-incubator/auctioneer" "github.com/pivotal-golang/clock/fakeclock" ) var _ = Describe("ServiceClient", func() { var serviceClient auctioneer.ServiceClient var clock *fakeclock.FakeClock var logger *lagertest.TestLogger BeforeEach(func() { clock = fakeclock.NewFakeClock(time.Now()) logger = lagertest.NewTestLogger("test") consulClient := consulRunner.NewClient() serviceClient = auctioneer.NewServiceClient(consulClient, clock) }) Describe("AuctioneerAddress", func() { Context("when able to get an auctioneer presence", func() { var heartbeater ifrit.Process var presence auctioneer.Presence BeforeEach(func() { presence = auctioneer.NewPresence("auctioneer-id", "auctioneer.example.com") auctioneerLock, err := serviceClient.NewAuctioneerLockRunner(logger, presence, 100*time.Millisecond, 10*time.Second) Expect(err).NotTo(HaveOccurred()) heartbeater = ginkgomon.Invoke(auctioneerLock) })
"github.com/cloudfoundry-incubator/auctioneer" "github.com/pivotal-golang/clock/fakeclock" ) var _ = Describe("ServiceClient", func() { var serviceClient auctioneer.ServiceClient var clock *fakeclock.FakeClock var logger *lagertest.TestLogger BeforeEach(func() { clock = fakeclock.NewFakeClock(time.Now()) logger = lagertest.NewTestLogger("test") consulSession := consulRunner.NewSession("test-session") serviceClient = auctioneer.NewServiceClient(consulSession, clock) }) Describe("AuctioneerAddress", func() { Context("when able to get an auctioneer presence", func() { var heartbeater ifrit.Process var presence auctioneer.Presence BeforeEach(func() { presence = auctioneer.NewPresence("auctioneer-id", "auctioneer.example.com") auctioneerLock, err := serviceClient.NewAuctioneerLockRunner(logger, presence, 100*time.Millisecond) Expect(err).NotTo(HaveOccurred()) heartbeater = ginkgomon.Invoke(auctioneerLock) })