diff options
Diffstat (limited to 'internal/bootstrap/server_factory.go')
-rw-r--r-- | internal/bootstrap/server_factory.go | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/internal/bootstrap/server_factory.go b/internal/bootstrap/server_factory.go index bb26a59d4..ca6d870d1 100644 --- a/internal/bootstrap/server_factory.go +++ b/internal/bootstrap/server_factory.go @@ -9,7 +9,8 @@ import ( "google.golang.org/grpc" ) -type serverFactory struct { +// GitalyServerFactory is a factory of gitaly grpc servers +type GitalyServerFactory struct { ruby *rubyserver.Server secure, insecure *grpc.Server } @@ -19,17 +20,20 @@ type GracefulStoppableServer interface { GracefulStop() Stop() Serve(l net.Listener, secure bool) error - StartRuby() error } -// NewServerFactory initializes a rubyserver and then lazily initializes both secure and insecure grpc.Server -func NewServerFactory() GracefulStoppableServer { - return &serverFactory{ruby: &rubyserver.Server{}} +// NewGitalyServerFactory initializes a rubyserver and then lazily initializes both secure and insecure grpc.Server +func NewGitalyServerFactory() *GitalyServerFactory { + return &GitalyServerFactory{ruby: &rubyserver.Server{}} } -func (s *serverFactory) StartRuby() error { return s.ruby.Start() } +// StartRuby starts the ruby process +func (s *GitalyServerFactory) StartRuby() error { + return s.ruby.Start() +} -func (s *serverFactory) Stop() { +// Stop stops both the secure and insecure servers +func (s *GitalyServerFactory) Stop() { for _, srv := range s.all() { srv.Stop() } @@ -37,7 +41,8 @@ func (s *serverFactory) Stop() { s.ruby.Stop() } -func (s *serverFactory) GracefulStop() { +// GracefulStop stops both the secure and insecure servers gracefully +func (s *GitalyServerFactory) GracefulStop() { wg := sync.WaitGroup{} for _, srv := range s.all() { @@ -52,13 +57,14 @@ func (s *serverFactory) GracefulStop() { wg.Wait() } -func (s *serverFactory) Serve(l net.Listener, secure bool) error { +// Serve starts serving the listener +func (s *GitalyServerFactory) Serve(l net.Listener, secure bool) error { srv := s.get(secure) return srv.Serve(l) } -func (s *serverFactory) get(secure bool) *grpc.Server { +func (s *GitalyServerFactory) get(secure bool) *grpc.Server { if secure { if s.secure == nil { s.secure = server.NewSecure(s.ruby) @@ -74,7 +80,7 @@ func (s *serverFactory) get(secure bool) *grpc.Server { return s.insecure } -func (s *serverFactory) all() []*grpc.Server { +func (s *GitalyServerFactory) all() []*grpc.Server { var servers []*grpc.Server if s.secure != nil { servers = append(servers, s.secure) |