• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

gatewayd-io / gatewayd / 12504314074

26 Dec 2024 01:14PM UTC coverage: 63.003% (+0.4%) from 62.62%
12504314074

Pull #644

github

mostafa
Ignore linter errors
Pull Request #644: Refactor commands

886 of 1138 new or added lines in 12 files covered. (77.86%)

33 existing lines in 3 files now uncovered.

5233 of 8306 relevant lines covered (63.0%)

17.08 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

68.42
/api/grpc_server.go
1
package api
2

3
import (
4
        "context"
5
        "errors"
6
        "net"
7

8
        v1 "github.com/gatewayd-io/gatewayd/api/v1"
9
        "google.golang.org/grpc"
10
        "google.golang.org/grpc/health/grpc_health_v1"
11
        "google.golang.org/grpc/reflection"
12
)
13

14
type GRPCServer struct {
15
        API        *API
16
        grpcServer *grpc.Server
17
        listener   net.Listener
18
        *HealthChecker
19
}
20

21
// NewGRPCServer creates a new gRPC server.
22
func NewGRPCServer(ctx context.Context, server GRPCServer) *GRPCServer {
2✔
23
        grpcServer, listener := createGRPCAPI(server.API, server.HealthChecker)
2✔
24
        if grpcServer == nil || listener == nil {
2✔
25
                server.API.Options.Logger.Error().Msg("Failed to create gRPC API server and listener")
×
26
                return nil
×
27
        }
×
28

29
        if ctx != nil {
4✔
30
                server.API.ctx = ctx
2✔
31
        } else {
2✔
32
                server.API.ctx = context.Background()
×
33
        }
×
34

35
        return &GRPCServer{
2✔
36
                API:           server.API,
2✔
37
                grpcServer:    grpcServer,
2✔
38
                listener:      listener,
2✔
39
                HealthChecker: server.HealthChecker,
2✔
40
        }
2✔
41
}
42

43
// Start starts the gRPC server.
44
func (s *GRPCServer) Start() {
2✔
45
        if err := s.grpcServer.Serve(s.listener); err != nil && !errors.Is(err, net.ErrClosed) {
2✔
NEW
46
                s.API.Options.Logger.Err(err).Msg("failed to start gRPC API")
×
NEW
47
        }
×
48
}
49

50
// Shutdown shuts down the gRPC server.
51
func (s *GRPCServer) Shutdown(context.Context) {
2✔
52
        if err := s.listener.Close(); err != nil && !errors.Is(err, net.ErrClosed) {
2✔
NEW
53
                s.API.Options.Logger.Err(err).Msg("failed to close listener")
×
NEW
54
        }
×
55
        s.grpcServer.GracefulStop()
2✔
56
}
57

58
// createGRPCAPI creates a new gRPC API server and listener.
59
func createGRPCAPI(api *API, healthchecker *HealthChecker) (*grpc.Server, net.Listener) {
2✔
60
        listener, err := net.Listen(api.Options.GRPCNetwork, api.Options.GRPCAddress)
2✔
61
        if err != nil && !errors.Is(err, net.ErrClosed) {
2✔
62
                api.Options.Logger.Err(err).Msg("failed to start gRPC API")
×
63
                return nil, nil
×
64
        }
×
65

66
        grpcServer := grpc.NewServer()
2✔
67
        reflection.Register(grpcServer)
2✔
68
        v1.RegisterGatewayDAdminAPIServiceServer(grpcServer, api)
2✔
69
        grpc_health_v1.RegisterHealthServer(grpcServer, healthchecker)
2✔
70

2✔
71
        return grpcServer, listener
2✔
72
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc