-
- if cluster.Collections.DefaultReplication > 0 {
- kc.Want_replicas = cluster.Collections.DefaultReplication
- }
-
- var listen arvados.URL
- for listen = range cluster.Services.Keepproxy.InternalURLs {
- break
- }
-
- var lErr error
- listener, lErr = net.Listen("tcp", listen.Host)
- if lErr != nil {
- return fmt.Errorf("listen(%s): %v", listen.Host, lErr)
- }
-
- if _, err := daemon.SdNotify(false, "READY=1"); err != nil {
- log.Printf("Error notifying init daemon: %v", err)
- }
- log.Println("listening at", listener.Addr())
-
- // Shut down the server gracefully (by closing the listener)
- // if SIGTERM is received.
- term := make(chan os.Signal, 1)
- go func(sig <-chan os.Signal) {
- s := <-sig
- log.Println("caught signal:", s)
- listener.Close()
- }(term)
- signal.Notify(term, syscall.SIGTERM)
- signal.Notify(term, syscall.SIGINT)
-
- // Start serving requests.
- router, err = MakeRESTRouter(kc, time.Duration(keepclient.DefaultProxyRequestTimeout), cluster, logger)