Skip to content

Commit 2ecd50c

Browse files
committed
server: register Status service with DRPC server
Enable the `Status` service on the DRPC server in addition to gRPC. This is controlled by `rpc.experimental_drpc.enabled` (off by default). This change is part of a series and is similar to: #146926 Note: This only registers the service; the client is not updated to use the DRPC client, so this service will not have any functional effect. Epic: CRDB-48925 Release note: None
1 parent 7ac157f commit 2ecd50c

File tree

4 files changed

+26
-16
lines changed

4 files changed

+26
-16
lines changed

pkg/server/drpc_server.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"github.com/cockroachdb/cockroach/pkg/server/srverrors"
1414
"github.com/cockroachdb/errors"
1515
"google.golang.org/grpc/codes"
16+
"storj.io/drpc"
1617
"storj.io/drpc/drpcerr"
1718
)
1819

@@ -75,3 +76,9 @@ func (s *drpcServer) health(ctx context.Context) error {
7576
return srverrors.ServerError(ctx, errors.Newf("unknown mode: %v", sm))
7677
}
7778
}
79+
80+
// drpcServiceRegistrar is implemented by servers that create a DRPC server and
81+
// registers it with drpc.Mux
82+
type drpcServiceRegistrar interface {
83+
RegisterDRPCService(drpc.Mux) error
84+
}

pkg/server/server.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,14 +1253,10 @@ func NewServer(cfg Config, stopper *stop.Stopper) (serverctl.ServerStartupInterf
12531253
gw.RegisterService(grpcServer.Server)
12541254
}
12551255

1256-
if err := sAuth.RegisterDRPCService(drpcServer); err != nil {
1257-
return nil, err
1258-
}
1259-
if err := sTS.RegisterDRPCService(drpcServer); err != nil {
1260-
return nil, err
1261-
}
1262-
if err := sAdmin.RegisterDRPCService(drpcServer); err != nil {
1263-
return nil, err
1256+
for _, s := range []drpcServiceRegistrar{sAdmin, sStatus, sAuth, &sTS} {
1257+
if err := s.RegisterDRPCService(drpcServer); err != nil {
1258+
return nil, err
1259+
}
12641260
}
12651261

12661262
// Tell the node event logger (join, restart) how to populate SQL entries

pkg/server/status.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ import (
9595
"google.golang.org/grpc"
9696
"google.golang.org/grpc/codes"
9797
"google.golang.org/grpc/status"
98+
"storj.io/drpc"
9899
)
99100

100101
const (
@@ -695,6 +696,11 @@ func (s *statusServer) RegisterService(g *grpc.Server) {
695696
serverpb.RegisterStatusServer(g, s)
696697
}
697698

699+
// RegisterService registers the DRPC service.
700+
func (s *statusServer) RegisterDRPCService(d drpc.Mux) error {
701+
return serverpb.DRPCRegisterStatus(d, s)
702+
}
703+
698704
// RegisterGateway starts the gateway (i.e. reverse
699705
// proxy) that proxies HTTP requests to the appropriate gRPC endpoints.
700706
func (s *statusServer) RegisterGateway(
@@ -709,6 +715,11 @@ func (s *systemStatusServer) RegisterService(g *grpc.Server) {
709715
serverpb.RegisterStatusServer(g, s)
710716
}
711717

718+
// RegisterService registers the DRPC service.
719+
func (s *systemStatusServer) RegisterDRPCService(d drpc.Mux) error {
720+
return serverpb.DRPCRegisterStatus(d, s)
721+
}
722+
712723
func (s *statusServer) parseNodeID(nodeIDParam string) (roachpb.NodeID, bool, error) {
713724
id, local, err := s.serverIterator.parseServerID(nodeIDParam)
714725
return roachpb.NodeID(id), local, err

pkg/server/tenant.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -480,14 +480,10 @@ func newTenantServer(
480480
gw.RegisterService(args.grpc.Server)
481481
}
482482

483-
if err := sAuth.RegisterDRPCService(args.drpc); err != nil {
484-
return nil, err
485-
}
486-
if err := args.tenantTimeSeriesServer.RegisterDRPCService(args.drpc); err != nil {
487-
return nil, err
488-
}
489-
if err := sAdmin.RegisterDRPCService(args.drpc); err != nil {
490-
return nil, err
483+
for _, s := range []drpcServiceRegistrar{sAdmin, sStatus, sAuth, args.tenantTimeSeriesServer} {
484+
if err := s.RegisterDRPCService(args.drpc); err != nil {
485+
return nil, err
486+
}
491487
}
492488

493489
// Tell the status/admin servers how to access SQL structures.

0 commit comments

Comments
 (0)