diff --git a/server.go b/server.go index 3e55b534d1babf5d0ea2198c75928e161cc774ff_c2VydmVyLmdv..4b0f6e65fca9f35fdc979b02c3be75e128934344_c2VydmVyLmdv 100644 --- a/server.go +++ b/server.go @@ -28,6 +28,7 @@ // API is a configured api type API interface { + Name() string Handler() http.Handler PreServerShutdown() ServerShutdown() @@ -48,7 +49,7 @@ } } -// NewServer creates a new api rednerd server but does not configure it +// NewServer creates a new api server but does not configure it func NewServer(api API) *Server { s := new(Server) @@ -58,10 +59,10 @@ return s } -// Server for the rednerd API +// Server for the API type Server struct { EnabledListeners []string `long:"scheme" description:"the listeners to enable, this can be repeated and defaults to the schemes in the swagger spec"` CleanupTimeout time.Duration `long:"cleanup-timeout" description:"grace period for which to wait before killing idle connections" default:"10s"` GracefulTimeout time.Duration `long:"graceful-timeout" description:"grace period for which to wait before shutting down the server" default:"15s"` MaxHeaderSize flagext.ByteSize `long:"max-header-size" description:"controls the maximum number of bytes the server will read parsing the request header's keys and values, including the request line. It does not limit the size of the request body." default:"1MiB"` @@ -62,10 +63,10 @@ type Server struct { EnabledListeners []string `long:"scheme" description:"the listeners to enable, this can be repeated and defaults to the schemes in the swagger spec"` CleanupTimeout time.Duration `long:"cleanup-timeout" description:"grace period for which to wait before killing idle connections" default:"10s"` GracefulTimeout time.Duration `long:"graceful-timeout" description:"grace period for which to wait before shutting down the server" default:"15s"` MaxHeaderSize flagext.ByteSize `long:"max-header-size" description:"controls the maximum number of bytes the server will read parsing the request header's keys and values, including the request line. It does not limit the size of the request body." default:"1MiB"` - SocketPath flags.Filename `long:"socket-path" description:"the unix socket to listen on" default:"/var/run/rednerd.sock"` + SocketPath flags.Filename `long:"socket-path" description:"the unix socket to listen on" default:"/var/run/server.sock"` domainSocketL net.Listener Host string `long:"host" description:"the IP to listen on" default:"localhost" env:"HOST"` @@ -176,9 +177,9 @@ servers = append(servers, domainSocket) wg.Add(1) - s.Logf("Serving rednerd at unix://%s", s.SocketPath) + s.Logf("Serving %s at unix://%s", s.api.Name(), s.SocketPath) go func(l net.Listener) { defer wg.Done() if err := domainSocket.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } @@ -180,9 +181,9 @@ go func(l net.Listener) { defer wg.Done() if err := domainSocket.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } - s.Logf("Stopped serving rednerd at unix://%s", s.SocketPath) + s.Logf("Stopped serving %s at unix://%s", s.api.Name(), s.SocketPath) }(s.domainSocketL) } @@ -206,9 +207,9 @@ servers = append(servers, httpServer) wg.Add(1) - s.Logf("Serving rednerd at http://%s", s.httpServerL.Addr()) + s.Logf("Serving %s at http://%s", s.api.Name(), s.httpServerL.Addr()) go func(l net.Listener) { defer wg.Done() if err := httpServer.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } @@ -210,9 +211,9 @@ go func(l net.Listener) { defer wg.Done() if err := httpServer.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } - s.Logf("Stopped serving rednerd at http://%s", l.Addr()) + s.Logf("Stopped serving %s at http://%s", s.api.Name(), l.Addr()) }(s.httpServerL) } @@ -302,9 +303,9 @@ servers = append(servers, httpsServer) wg.Add(1) - s.Logf("Serving rednerd at https://%s", s.httpsServerL.Addr()) + s.Logf("Serving %s at https://%s", s.api.Name(), s.httpsServerL.Addr()) go func(l net.Listener) { defer wg.Done() if err := httpsServer.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } @@ -306,9 +307,9 @@ go func(l net.Listener) { defer wg.Done() if err := httpsServer.Serve(l); err != nil && err != http.ErrServerClosed { s.Fatalf("%v", err) } - s.Logf("Stopped serving rednerd at https://%s", l.Addr()) + s.Logf("Stopped %s at https://%s", s.api.Name(), l.Addr()) }(tls.NewListener(s.httpsServerL, httpsServer.TLSConfig)) } diff --git a/templates/server/cmdServe.gotmpl b/templates/server/cmdServe.gotmpl index 3e55b534d1babf5d0ea2198c75928e161cc774ff_dGVtcGxhdGVzL3NlcnZlci9jbWRTZXJ2ZS5nb3RtcGw=..4b0f6e65fca9f35fdc979b02c3be75e128934344_dGVtcGxhdGVzL3NlcnZlci9jbWRTZXJ2ZS5nb3RtcGw= 100644 --- a/templates/server/cmdServe.gotmpl +++ b/templates/server/cmdServe.gotmpl @@ -108,6 +108,8 @@ Logger.Fatal().Msg(err.Error()) } + serve.FindOptionByLongName("socket-path").Default = []string{"/var/run/{{dasherize .Name}}.sock"} + serve.EnvNamespace = "SERVE" serve.FindOptionByLongName("scheme").EnvDefaultKey = "SCHEME" diff --git a/templates/server/configureapi.gotmpl b/templates/server/configureapi.gotmpl index 3e55b534d1babf5d0ea2198c75928e161cc774ff_dGVtcGxhdGVzL3NlcnZlci9jb25maWd1cmVhcGkuZ290bXBs..4b0f6e65fca9f35fdc979b02c3be75e128934344_dGVtcGxhdGVzL3NlcnZlci9jb25maWd1cmVhcGkuZ290bXBs 100644 --- a/templates/server/configureapi.gotmpl +++ b/templates/server/configureapi.gotmpl @@ -56,6 +56,10 @@ handler http.Handler } +func (capi *ConfiguredAPI) Name() string { + return "{{ .Name }}" +} + func (capi *ConfiguredAPI) Handler() http.Handler { return capi.handler } @@ -145,10 +149,6 @@ } {{- end }} - api.PreServerShutdown = func() { } - - api.ServerShutdown = func() { } - return &ConfiguredAPI{ api: api, handler: setupGlobalMiddleware(api.Serve(setupMiddlewares)),