func main() { defaultListNetwork := "unix" defaultListAddr := "/tmp/garden.sock" if os.Getenv("PORT") != "" { defaultListNetwork = "tcp" defaultListAddr = "0.0.0.0:" + os.Getenv("PORT") } var listenNetwork = flag.String( "listenNetwork", defaultListNetwork, "how to listen on the address (unix, tcp, etc.)", ) var listenAddr = flag.String( "listenAddr", defaultListAddr, "address to listen on", ) cf_lager.AddFlags(flag.CommandLine) flag.Parse() logger, _ := cf_lager.New("garden-windows") initializeDropsonde(logger) url, err := url.Parse(*containerizerURL) if err != nil { logger.Fatal("Could not parse containerizer url", err, lager.Data{ "containerizerURL": containerizerURL, }) } client := dotnet.NewClient(logger, url) netBackend, err := backend.NewDotNetBackend(client, logger, *containerGraceTime) if err != nil { logger.Fatal("Server Failed to Start", err) os.Exit(1) } gardenServer := server.New(*listenNetwork, *listenAddr, *containerGraceTime, netBackend, logger) err = gardenServer.Start() if err != nil { logger.Fatal("Server Failed to Start", err) os.Exit(1) } logger.Info("started", lager.Data{ "network": *listenNetwork, "addr": *listenAddr, }) signals := make(chan os.Signal, 1) go func() { <-signals gardenServer.Stop() os.Exit(0) }() signal.Notify(signals, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP) select {} }
) var _ = Describe("backend", func() { var server *ghttp.Server var dotNetBackend garden.Backend var serverUri *url.URL var logger *lagertest.TestLogger var client *dotnet.Client BeforeEach(func() { server = ghttp.NewServer() logger = lagertest.NewTestLogger("backend") serverUri, _ = url.Parse(server.URL()) client = dotnet.NewClient(logger, serverUri) graceTime := time.Minute dotNetBackend, _ = backend.NewDotNetBackend(client, logger, graceTime) }) AfterEach(func() { //shut down the server between tests if server.HTTPTestServer != nil { server.Close() } }) Describe("Client", func() { Context("when there is an timeout making the http connection", func() { BeforeEach(func() { client.SetHttpTimeout(100 * time.Millisecond) server.AppendHandlers(