diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-09-17 10:55:28 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2020-09-17 12:10:09 +0300 |
commit | 9ccd552acdcf0959baa1e6cefc8d7d5ca9ec4c29 (patch) | |
tree | 5bf704a3df212291b2d40e7cdf7479d1f878278b | |
parent | 974ed277520086b2a9c830fab11a3076234f13a9 (diff) |
grpc: Remove embedded UnimplementedServiceServer structures
In order to allow forwards-compatibility of service implementations,
gRPC generates an `UnimplementedServiceServer` structure implementing
all of the service's RPCs. As a result, if this structure is embedded
into the real service implementation, adding new RPCs to the Protobuf
definition won't break compilation. The implementation will simply get a
default implementation which just returns an "Unimplemented" error.
In the context of Gitaly, it doesn't really make a lot of sense to use
this feature. We control all Protobuf declarations anyway and our
service implementations currently implement all of the declared RPCs.
Any function that is still declared but not implemented should thus be
considered a bug, but it'd actually be a bug that's harder to spot due
to embedding the `UnimplementedServiceServer`. The compiler certainly
wouldn't complain as the service's interface is satisfied.
So let's just remove these embedded structures altogether and let the
compiler help us in satisfying the Protobuf interfaces.
-rw-r--r-- | internal/gitaly/service/blob/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/cleanup/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/commit/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/conflicts/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/diff/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/namespace/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/objectpool/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/operations/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/ref/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/remote/server.go | 4 | ||||
-rw-r--r-- | internal/gitaly/service/repository/server.go | 3 | ||||
-rw-r--r-- | internal/gitaly/service/server/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/smarthttp/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/ssh/server.go | 1 | ||||
-rw-r--r-- | internal/gitaly/service/wiki/server.go | 1 | ||||
-rw-r--r-- | internal/praefect/service/info/server.go | 1 | ||||
-rw-r--r-- | internal/praefect/service/server/server.go | 1 | ||||
-rw-r--r-- | internal/praefect/service/transaction/server.go | 2 |
18 files changed, 2 insertions, 22 deletions
diff --git a/internal/gitaly/service/blob/server.go b/internal/gitaly/service/blob/server.go index 248074a51..283fb79ce 100644 --- a/internal/gitaly/service/blob/server.go +++ b/internal/gitaly/service/blob/server.go @@ -7,7 +7,6 @@ import ( type server struct { ruby *rubyserver.Server - gitalypb.UnimplementedBlobServiceServer } // NewServer creates a new instance of a grpc BlobServer diff --git a/internal/gitaly/service/cleanup/server.go b/internal/gitaly/service/cleanup/server.go index 266287b36..e482b6069 100644 --- a/internal/gitaly/service/cleanup/server.go +++ b/internal/gitaly/service/cleanup/server.go @@ -5,7 +5,6 @@ import ( ) type server struct { - gitalypb.UnimplementedCleanupServiceServer } // NewServer creates a new instance of a grpc CleanupServer diff --git a/internal/gitaly/service/commit/server.go b/internal/gitaly/service/commit/server.go index cc93d4386..d36c6c3e6 100644 --- a/internal/gitaly/service/commit/server.go +++ b/internal/gitaly/service/commit/server.go @@ -7,7 +7,6 @@ import ( ) type server struct { - gitalypb.UnimplementedCommitServiceServer locator storage.Locator } diff --git a/internal/gitaly/service/conflicts/server.go b/internal/gitaly/service/conflicts/server.go index 19e4fa748..d339dcca4 100644 --- a/internal/gitaly/service/conflicts/server.go +++ b/internal/gitaly/service/conflicts/server.go @@ -7,7 +7,6 @@ import ( type server struct { ruby *rubyserver.Server - gitalypb.UnimplementedConflictsServiceServer } // NewServer creates a new instance of a grpc ConflictsServer diff --git a/internal/gitaly/service/diff/server.go b/internal/gitaly/service/diff/server.go index 24e0e56bd..1966b25a0 100644 --- a/internal/gitaly/service/diff/server.go +++ b/internal/gitaly/service/diff/server.go @@ -10,7 +10,6 @@ const msgSizeThreshold = 5 * 1024 type server struct { MsgSizeThreshold int locator storage.Locator - gitalypb.UnimplementedDiffServiceServer } // NewServer creates a new instance of a gRPC DiffServer diff --git a/internal/gitaly/service/namespace/server.go b/internal/gitaly/service/namespace/server.go index 1d3298715..4b324b3a1 100644 --- a/internal/gitaly/service/namespace/server.go +++ b/internal/gitaly/service/namespace/server.go @@ -3,7 +3,6 @@ package namespace import "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb" type server struct { - gitalypb.UnimplementedNamespaceServiceServer } // NewServer creates a new instance of a gRPC namespace server diff --git a/internal/gitaly/service/objectpool/server.go b/internal/gitaly/service/objectpool/server.go index 022376bd3..bc90a7a58 100644 --- a/internal/gitaly/service/objectpool/server.go +++ b/internal/gitaly/service/objectpool/server.go @@ -6,7 +6,6 @@ import ( ) type server struct { - gitalypb.UnimplementedObjectPoolServiceServer locator storage.Locator } diff --git a/internal/gitaly/service/operations/server.go b/internal/gitaly/service/operations/server.go index f6592ee20..6c2892f19 100644 --- a/internal/gitaly/service/operations/server.go +++ b/internal/gitaly/service/operations/server.go @@ -13,7 +13,6 @@ type server struct { ruby *rubyserver.Server hookManager hook.Manager locator storage.Locator - gitalypb.UnimplementedOperationServiceServer } // NewServer creates a new instance of a grpc OperationServiceServer diff --git a/internal/gitaly/service/ref/server.go b/internal/gitaly/service/ref/server.go index 311133fad..e68f418a5 100644 --- a/internal/gitaly/service/ref/server.go +++ b/internal/gitaly/service/ref/server.go @@ -5,7 +5,6 @@ import ( ) type server struct { - gitalypb.UnimplementedRefServiceServer } // NewServer creates a new instance of a grpc RefServer diff --git a/internal/gitaly/service/remote/server.go b/internal/gitaly/service/remote/server.go index f3204ad33..08057a8b1 100644 --- a/internal/gitaly/service/remote/server.go +++ b/internal/gitaly/service/remote/server.go @@ -7,9 +7,7 @@ import ( ) type server struct { - ruby *rubyserver.Server - gitalypb.UnimplementedRemoteServiceServer - + ruby *rubyserver.Server conns *client.Pool } diff --git a/internal/gitaly/service/repository/server.go b/internal/gitaly/service/repository/server.go index 01bf76c33..5a52d1eaa 100644 --- a/internal/gitaly/service/repository/server.go +++ b/internal/gitaly/service/repository/server.go @@ -11,8 +11,7 @@ import ( ) type server struct { - ruby *rubyserver.Server - gitalypb.UnimplementedRepositoryServiceServer + ruby *rubyserver.Server conns *client.Pool internalGitalySocket string locator storage.Locator diff --git a/internal/gitaly/service/server/server.go b/internal/gitaly/service/server/server.go index b6087e82a..993b10dd4 100644 --- a/internal/gitaly/service/server/server.go +++ b/internal/gitaly/service/server/server.go @@ -7,7 +7,6 @@ import ( type server struct { storages []config.Storage - gitalypb.UnimplementedServerServiceServer } // NewServer creates a new instance of a grpc ServerServiceServer diff --git a/internal/gitaly/service/smarthttp/server.go b/internal/gitaly/service/smarthttp/server.go index 76ab4b36e..15a6bb969 100644 --- a/internal/gitaly/service/smarthttp/server.go +++ b/internal/gitaly/service/smarthttp/server.go @@ -7,7 +7,6 @@ import ( type server struct { packfileNegotiationMetrics *prometheus.CounterVec - gitalypb.UnimplementedSmartHTTPServiceServer } // NewServer creates a new instance of a grpc SmartHTTPServer diff --git a/internal/gitaly/service/ssh/server.go b/internal/gitaly/service/ssh/server.go index abe01ad98..b86df0a34 100644 --- a/internal/gitaly/service/ssh/server.go +++ b/internal/gitaly/service/ssh/server.go @@ -16,7 +16,6 @@ type server struct { uploadPackRequestTimeout time.Duration uploadArchiveRequestTimeout time.Duration packfileNegotiationMetrics *prometheus.CounterVec - gitalypb.UnimplementedSSHServiceServer } // NewServer creates a new instance of a grpc SSHServer diff --git a/internal/gitaly/service/wiki/server.go b/internal/gitaly/service/wiki/server.go index 637d9d7c7..0b695b005 100644 --- a/internal/gitaly/service/wiki/server.go +++ b/internal/gitaly/service/wiki/server.go @@ -7,7 +7,6 @@ import ( type server struct { ruby *rubyserver.Server - gitalypb.UnimplementedWikiServiceServer } // NewServer creates a new instance of a grpc WikiServiceServer diff --git a/internal/praefect/service/info/server.go b/internal/praefect/service/info/server.go index 8b93072cd..9a812a4d1 100644 --- a/internal/praefect/service/info/server.go +++ b/internal/praefect/service/info/server.go @@ -12,7 +12,6 @@ import ( // Server is a InfoService server type Server struct { - gitalypb.UnimplementedPraefectInfoServiceServer nodeMgr nodes.Manager conf config.Config queue datastore.ReplicationEventQueue diff --git a/internal/praefect/service/server/server.go b/internal/praefect/service/server/server.go index 88991d50b..1788307ed 100644 --- a/internal/praefect/service/server/server.go +++ b/internal/praefect/service/server/server.go @@ -8,7 +8,6 @@ import ( // Server is a ServerService server type Server struct { - *gitalypb.UnimplementedPraefectInfoServiceServer nodeMgr nodes.Manager conf config.Config } diff --git a/internal/praefect/service/transaction/server.go b/internal/praefect/service/transaction/server.go index 452ad3914..96fd12efd 100644 --- a/internal/praefect/service/transaction/server.go +++ b/internal/praefect/service/transaction/server.go @@ -11,8 +11,6 @@ import ( ) type Server struct { - gitalypb.UnimplementedRefTransactionServer - txMgr *transactions.Manager } |