diff --git a/accounts/pkg/command/server.go b/accounts/pkg/command/server.go index 76c8b01ae..47c01f7fb 100644 --- a/accounts/pkg/command/server.go +++ b/accounts/pkg/command/server.go @@ -115,8 +115,13 @@ func Server(cfg *config.Config) *cli.Command { } var ( gr = run.Group{} - ctx, cancel = context.WithCancel(context.Background()) - mtrcs = metrics.New() + ctx, cancel = func() (context.Context, context.CancelFunc) { + if cfg.Context == nil { + return context.WithCancel(context.Background()) + } + return context.WithCancel(cfg.Context) + }() + mtrcs = metrics.New() ) defer cancel() diff --git a/glauth/pkg/command/server.go b/glauth/pkg/command/server.go index 81ed04467..9510955ea 100644 --- a/glauth/pkg/command/server.go +++ b/glauth/pkg/command/server.go @@ -269,24 +269,9 @@ func Server(cfg *config.Config) *cli.Command { return err } - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("transport", "debug"). - Msg("Shutting down server") - } + gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) + cancel() }) } diff --git a/idp/pkg/command/server.go b/idp/pkg/command/server.go index 723e3f034..464106159 100644 --- a/idp/pkg/command/server.go +++ b/idp/pkg/command/server.go @@ -195,32 +195,13 @@ func Server(cfg *config.Config) *cli.Command { ) if err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to initialize server") - + logger.Info().Err(err).Str("transport", "debug").Msg("Failed to initialize server") return err } - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("transport", "debug"). - Msg("Shutting down server") - } + gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) + cancel() }) } diff --git a/ocs/pkg/command/server.go b/ocs/pkg/command/server.go index 766995c11..356a423c6 100644 --- a/ocs/pkg/command/server.go +++ b/ocs/pkg/command/server.go @@ -180,32 +180,13 @@ func Server(cfg *config.Config) *cli.Command { ) if err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to initialize server") - + logger.Info().Err(err).Str("transport", "debug").Msg("Failed to initialize server") return err } - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("transport", "debug"). - Msg("Shutting down server") - } + gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) + cancel() }) } diff --git a/onlyoffice/pkg/command/server.go b/onlyoffice/pkg/command/server.go index 30c1e4033..47694769b 100644 --- a/onlyoffice/pkg/command/server.go +++ b/onlyoffice/pkg/command/server.go @@ -184,6 +184,7 @@ func Server(cfg *config.Config) *cli.Command { } gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) } diff --git a/proxy/pkg/command/server.go b/proxy/pkg/command/server.go index 80922ef3a..fe5d6821a 100644 --- a/proxy/pkg/command/server.go +++ b/proxy/pkg/command/server.go @@ -218,6 +218,7 @@ func Server(cfg *config.Config) *cli.Command { } gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) } diff --git a/settings/pkg/command/server.go b/settings/pkg/command/server.go index d0ea388db..2a4e869f0 100644 --- a/settings/pkg/command/server.go +++ b/settings/pkg/command/server.go @@ -193,19 +193,8 @@ func Server(cfg *config.Config) *cli.Command { } gr.Add(server.ListenAndServe, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - defer timeout() - defer cancel() - if err := server.Shutdown(ctx); err != nil { - logger.Error(). - Err(err). - Str("server", "debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("server", "debug"). - Msg("Shutting down server") - } + _ = server.Shutdown(ctx) + cancel() }) } diff --git a/storage/pkg/command/storagemetadata.go b/storage/pkg/command/storagemetadata.go index aa6182ef7..8013d0afe 100644 --- a/storage/pkg/command/storagemetadata.go +++ b/storage/pkg/command/storagemetadata.go @@ -5,7 +5,6 @@ import ( "flag" "os" "path" - "time" "github.com/owncloud/ocis/ocis-pkg/sync" @@ -74,7 +73,12 @@ func StorageMetadata(cfg *config.Config) *cli.Command { var ( gr = run.Group{} - ctx, cancel = context.WithCancel(context.Background()) + ctx, cancel = func() (context.Context, context.CancelFunc) { + if cfg.Reva.StorageMetadata.Context == nil { + return context.WithCancel(context.Background()) + } + return context.WithCancel(cfg.Reva.StorageMetadata.Context) + }() ) defer cancel() @@ -174,21 +178,8 @@ func StorageMetadata(cfg *config.Config) *cli.Command { gr.Add(func() error { return server.ListenAndServe() }, func(_ error) { - ctx, timeout := context.WithTimeout(ctx, 5*time.Second) - - defer timeout() - defer cancel() - - if err := server.Shutdown(ctx); err != nil { - logger.Info(). - Err(err). - Str("server", c.Command.Name+"-debug"). - Msg("Failed to shutdown server") - } else { - logger.Info(). - Str("server", c.Command.Name+"-debug"). - Msg("Shutting down server") - } + _ = server.Shutdown(ctx) + cancel() }) } diff --git a/store/pkg/command/server.go b/store/pkg/command/server.go index 065714e19..4e17246da 100644 --- a/store/pkg/command/server.go +++ b/store/pkg/command/server.go @@ -163,15 +163,12 @@ func Server(cfg *config.Config) *cli.Command { ) if err != nil { - logger.Error(). - Err(err). - Str("server", "debug"). - Msg("Failed to initialize server") - + logger.Error().Err(err).Str("server", "debug").Msg("Failed to initialize server") return err } gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) } diff --git a/thumbnails/pkg/command/server.go b/thumbnails/pkg/command/server.go index 235e74c1d..d1de5dfec 100644 --- a/thumbnails/pkg/command/server.go +++ b/thumbnails/pkg/command/server.go @@ -160,17 +160,12 @@ func Server(cfg *config.Config) *cli.Command { ) if err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to initialize server") - + logger.Info().Err(err).Str("transport", "debug").Msg("Failed to initialize server") return err } - gr.Add(func() error { - return server.ListenAndServe() - }, func(_ error) { + gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) diff --git a/web/pkg/command/server.go b/web/pkg/command/server.go index 4849a97fd..ba2c62053 100644 --- a/web/pkg/command/server.go +++ b/web/pkg/command/server.go @@ -213,6 +213,7 @@ func Server(cfg *config.Config) *cli.Command { } gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) } diff --git a/webdav/pkg/command/server.go b/webdav/pkg/command/server.go index 8237195cc..efbb31035 100644 --- a/webdav/pkg/command/server.go +++ b/webdav/pkg/command/server.go @@ -176,15 +176,12 @@ func Server(cfg *config.Config) *cli.Command { ) if err != nil { - logger.Info(). - Err(err). - Str("transport", "debug"). - Msg("Failed to initialize server") - + logger.Info().Err(err).Str("transport", "debug").Msg("Failed to initialize server") return err } gr.Add(server.ListenAndServe, func(_ error) { + _ = server.Shutdown(ctx) cancel() }) }