diff --git a/pkg/server/server.go b/pkg/server/server.go index 598c49f3..dea03f26 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -39,9 +39,6 @@ type Server struct { // NewServer initializes new service. // Configuration is pulled from viper configuration. func NewServer(name, port string, handler http.Handler, conf config.ServerConfig) (Server, error) { - if port == "0" { - return Server{}, fmt.Errorf(`"%s" not enabled`, name) - } if handler == nil { return Server{}, fmt.Errorf(`"%s" handler is not initialized`, name) diff --git a/pkg/server/server_group.go b/pkg/server/server_group.go index 7889cc5f..198629f1 100644 --- a/pkg/server/server_group.go +++ b/pkg/server/server_group.go @@ -19,10 +19,12 @@ package server import ( "context" - "github.com/optimizely/agent/config" + "fmt" "net/http" "sync" + "github.com/optimizely/agent/config" + "github.com/rs/zerolog/log" "golang.org/x/sync/errgroup" ) @@ -53,9 +55,17 @@ func NewGroup(ctx context.Context, conf config.ServerConfig) *Group { // to initiate a graceful shutdown. This method blocks on adding the // go routines to maintain startup order of each listener. func (g *Group) GoListenAndServe(name, port string, handler http.Handler) { + + if port == "0" { + log.Info().Msg(fmt.Sprintf(`"%s" not enabled`, name)) + return + } + server, err := NewServer(name, port, handler, g.conf) + if err != nil { - log.Info().Err(err).Msg("Not starting server") + log.Error().Err(err).Msg("Failed starting server") + g.stop() return }