@@ -82,6 +82,8 @@ import (
82
82
"google.golang.org/grpc/codes"
83
83
"google.golang.org/grpc/metadata"
84
84
grpcstatus "google.golang.org/grpc/status"
85
+ "storj.io/drpc"
86
+ "storj.io/drpc/drpcerr"
85
87
)
86
88
87
89
// Number of empty ranges for table descriptors that aren't actually tables. These
@@ -253,6 +255,26 @@ func (s *adminServer) RegisterService(g *grpc.Server) {
253
255
serverpb .RegisterAdminServer (g , s )
254
256
}
255
257
258
+ type drpcSystemAdminServer struct {
259
+ * systemAdminServer
260
+ }
261
+
262
+ // RegisterDRPCService registers the Admin service with the DRPC server running
263
+ // in the system tenant.
264
+ func (s * systemAdminServer ) RegisterDRPCService (d drpc.Mux ) error {
265
+ return serverpb .DRPCRegisterAdmin (d , & drpcSystemAdminServer {systemAdminServer : s })
266
+ }
267
+
268
+ type drpcAdminServer struct {
269
+ * adminServer
270
+ }
271
+
272
+ // RegisterDRPCService registers the Admin service with the DRPC server running
273
+ // in a secondary tenant.
274
+ func (s * adminServer ) RegisterDRPCService (d drpc.Mux ) error {
275
+ return serverpb .DRPCRegisterAdmin (d , & drpcAdminServer {adminServer : s })
276
+ }
277
+
256
278
// RegisterGateway starts the gateway (i.e. reverse proxy) that proxies HTTP requests
257
279
// to the appropriate gRPC endpoints.
258
280
func (s * adminServer ) RegisterGateway (
@@ -3312,9 +3334,23 @@ func (s *systemAdminServer) SendKVBatch(
3312
3334
return br , nil
3313
3335
}
3314
3336
3337
+ func (s * drpcSystemAdminServer ) RecoveryCollectReplicaInfo (
3338
+ request * serverpb.RecoveryCollectReplicaInfoRequest ,
3339
+ stream serverpb.DRPCAdmin_RecoveryCollectReplicaInfoStream ,
3340
+ ) error {
3341
+ return s .recoveryCollectReplicaInfo (request , stream )
3342
+ }
3343
+
3315
3344
func (s * systemAdminServer ) RecoveryCollectReplicaInfo (
3316
3345
request * serverpb.RecoveryCollectReplicaInfoRequest ,
3317
3346
stream serverpb.Admin_RecoveryCollectReplicaInfoServer ,
3347
+ ) error {
3348
+ return s .recoveryCollectReplicaInfo (request , stream )
3349
+ }
3350
+
3351
+ func (s * systemAdminServer ) recoveryCollectReplicaInfo (
3352
+ request * serverpb.RecoveryCollectReplicaInfoRequest ,
3353
+ stream serverpb.RPCAdmin_RecoveryCollectReplicaInfoStream ,
3318
3354
) error {
3319
3355
ctx := stream .Context ()
3320
3356
ctx = s .server .AnnotateCtx (ctx )
@@ -3327,9 +3363,23 @@ func (s *systemAdminServer) RecoveryCollectReplicaInfo(
3327
3363
return s .server .recoveryServer .ServeClusterReplicas (ctx , request , stream , s .server .db )
3328
3364
}
3329
3365
3366
+ func (s * drpcSystemAdminServer ) RecoveryCollectLocalReplicaInfo (
3367
+ request * serverpb.RecoveryCollectLocalReplicaInfoRequest ,
3368
+ stream serverpb.DRPCAdmin_RecoveryCollectLocalReplicaInfoStream ,
3369
+ ) error {
3370
+ return s .recoveryCollectLocalReplicaInfo (request , stream )
3371
+ }
3372
+
3330
3373
func (s * systemAdminServer ) RecoveryCollectLocalReplicaInfo (
3331
3374
request * serverpb.RecoveryCollectLocalReplicaInfoRequest ,
3332
3375
stream serverpb.Admin_RecoveryCollectLocalReplicaInfoServer ,
3376
+ ) error {
3377
+ return s .recoveryCollectLocalReplicaInfo (request , stream )
3378
+ }
3379
+
3380
+ func (s * systemAdminServer ) recoveryCollectLocalReplicaInfo (
3381
+ request * serverpb.RecoveryCollectLocalReplicaInfoRequest ,
3382
+ stream serverpb.RPCAdmin_RecoveryCollectLocalReplicaInfoStream ,
3333
3383
) error {
3334
3384
ctx := stream .Context ()
3335
3385
ctx = s .server .AnnotateCtx (ctx )
@@ -4043,3 +4093,21 @@ func (s *systemAdminServer) ReadFromTenantInfo(
4043
4093
4044
4094
return & serverpb.ReadFromTenantInfoResponse {ReadFrom : dstID , ReadAt : progress .GetStreamIngest ().ReplicatedTime }, nil
4045
4095
}
4096
+
4097
+ // RecoveryCollectReplicaInfo is unimplemented here because adminServer also
4098
+ // have it delegated from embedded serverpb.UnimplementedAdminServer.
4099
+ func (s * drpcAdminServer ) RecoveryCollectReplicaInfo (
4100
+ request * serverpb.RecoveryCollectReplicaInfoRequest ,
4101
+ stream serverpb.DRPCAdmin_RecoveryCollectReplicaInfoStream ,
4102
+ ) error {
4103
+ return drpcerr .WithCode (errors .New ("Unimplemented" ), drpcerr .Unimplemented )
4104
+ }
4105
+
4106
+ // RecoveryCollectLocalReplicaInfo is unimplemented here because adminServer
4107
+ // also have it delegated from embedded serverpb.UnimplementedAdminServer.
4108
+ func (s * drpcAdminServer ) RecoveryCollectLocalReplicaInfo (
4109
+ request * serverpb.RecoveryCollectLocalReplicaInfoRequest ,
4110
+ stream serverpb.DRPCAdmin_RecoveryCollectLocalReplicaInfoStream ,
4111
+ ) error {
4112
+ return drpcerr .WithCode (errors .New ("Unimplemented" ), drpcerr .Unimplemented )
4113
+ }
0 commit comments