Skip to content

Commit ea4c0fb

Browse files
authored
Make NewServerService generic again. (#2248)
Signed-off-by: Peter Štibraný <[email protected]>
1 parent 5fc2fc6 commit ea4c0fb

File tree

3 files changed

+22
-28
lines changed

3 files changed

+22
-28
lines changed

pkg/cortex/modules.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,9 @@ func (t *Cortex) initServer(cfg *Config) (services.Service, error) {
113113
return svs
114114
}
115115

116-
s := NewServerService(cfg, t.server, servicesToWaitFor)
117-
serv.HTTP.HandleFunc("/", s.indexHandler)
118-
serv.HTTP.HandleFunc("/config", s.configHandler)
116+
s := NewServerService(t.server, servicesToWaitFor)
117+
serv.HTTP.HandleFunc("/", indexHandler)
118+
serv.HTTP.HandleFunc("/config", configHandler(cfg))
119119

120120
return s, nil
121121
}

pkg/cortex/server_service.go

Lines changed: 16 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,11 @@ import (
1212
"github.com/cortexproject/cortex/pkg/util/services"
1313
)
1414

15-
type ServerService struct {
16-
services.Service
17-
18-
cfg *Config
19-
}
20-
2115
// NewServerService constructs service from Server component.
2216
// servicesToWaitFor is called when server is stopping, and should return all
2317
// services that need to terminate before server actually stops.
24-
func NewServerService(cfg *Config, serv *server.Server, servicesToWaitFor func() []services.Service) *ServerService {
18+
// N.B.: this function is NOT Cortex specific, please let's keep it that way.
19+
func NewServerService(serv *server.Server, servicesToWaitFor func() []services.Service) services.Service {
2520
serverDone := make(chan error, 1)
2621

2722
runFn := func(ctx context.Context) error {
@@ -56,10 +51,7 @@ func NewServerService(cfg *Config, serv *server.Server, servicesToWaitFor func()
5651
return nil
5752
}
5853

59-
return &ServerService{
60-
cfg: cfg,
61-
Service: services.NewBasicService(nil, runFn, stoppingFn),
62-
}
54+
return services.NewBasicService(nil, runFn, stoppingFn)
6355
}
6456

6557
const indexPageContent = `
@@ -87,23 +79,25 @@ const indexPageContent = `
8779
</body>
8880
</html>`
8981

90-
func (s *ServerService) indexHandler(w http.ResponseWriter, r *http.Request) {
82+
func indexHandler(w http.ResponseWriter, _ *http.Request) {
9183
if _, err := w.Write([]byte(indexPageContent)); err != nil {
9284
http.Error(w, err.Error(), http.StatusInternalServerError)
9385
return
9486
}
9587
}
9688

97-
func (s *ServerService) configHandler(w http.ResponseWriter, r *http.Request) {
98-
out, err := yaml.Marshal(s.cfg)
99-
if err != nil {
100-
http.Error(w, err.Error(), http.StatusInternalServerError)
101-
return
102-
}
89+
func configHandler(cfg *Config) http.HandlerFunc {
90+
return func(w http.ResponseWriter, r *http.Request) {
91+
out, err := yaml.Marshal(cfg)
92+
if err != nil {
93+
http.Error(w, err.Error(), http.StatusInternalServerError)
94+
return
95+
}
10396

104-
w.Header().Set("Content-Type", "text/yaml")
105-
w.WriteHeader(http.StatusOK)
106-
if _, err := w.Write(out); err != nil {
107-
level.Error(util.Logger).Log("msg", "error writing response", "err", err)
97+
w.Header().Set("Content-Type", "text/yaml")
98+
w.WriteHeader(http.StatusOK)
99+
if _, err := w.Write(out); err != nil {
100+
level.Error(util.Logger).Log("msg", "error writing response", "err", err)
101+
}
108102
}
109103
}

pkg/cortex/server_service_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ func TestServerStopViaContext(t *testing.T) {
2626
ctx, cancel := context.WithTimeout(context.Background(), 500*time.Millisecond)
2727
defer cancel()
2828

29-
s := NewServerService(&Config{}, serv, func() []services.Service { return nil })
29+
s := NewServerService(serv, func() []services.Service { return nil })
3030
require.NoError(t, s.StartAsync(ctx))
3131

3232
// should terminate soon, since context has short timeout
@@ -44,7 +44,7 @@ func TestServerStopViaShutdown(t *testing.T) {
4444
serv, err := server.New(server.Config{})
4545
require.NoError(t, err)
4646

47-
s := NewServerService(&Config{}, serv, func() []services.Service { return nil })
47+
s := NewServerService(serv, func() []services.Service { return nil })
4848
require.NoError(t, services.StartAndAwaitRunning(context.Background(), s))
4949

5050
// we stop HTTP/gRPC Servers here... that should make server stop.
@@ -64,7 +64,7 @@ func TestServerStopViaStop(t *testing.T) {
6464
serv, err := server.New(server.Config{})
6565
require.NoError(t, err)
6666

67-
s := NewServerService(&Config{}, serv, func() []services.Service { return nil })
67+
s := NewServerService(serv, func() []services.Service { return nil })
6868
require.NoError(t, services.StartAndAwaitRunning(context.Background(), s))
6969

7070
serv.Stop()

0 commit comments

Comments
 (0)