diff options
author | John Cai <jcai@gitlab.com> | 2023-10-11 18:52:13 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2023-10-11 19:23:01 +0300 |
commit | b6db3dbdbc64618d51b3715e15d2d1ca98ab8bfe (patch) | |
tree | f3606673560042a4c926e40e77fb6788a350496a | |
parent | 8ceeb1c1709b1023faa1c1c5b4e0ada3b5c6a121 (diff) |
praefect: Remove DatalossCheck RPC and messages
The DatalossCheck RPC has been replaced by the Dataloss RPC. Let's
remove the code, the RPC definition, and associated messages.
-rw-r--r-- | internal/grpc/protoregistry/registry_test.go | 2 | ||||
-rw-r--r-- | internal/praefect/service/info/dataloss.go | 50 | ||||
-rw-r--r-- | proto/go/gitalypb/praefect.pb.go | 621 | ||||
-rw-r--r-- | proto/go/gitalypb/praefect_grpc.pb.go | 45 | ||||
-rw-r--r-- | proto/praefect.proto | 51 |
5 files changed, 126 insertions, 643 deletions
diff --git a/internal/grpc/protoregistry/registry_test.go b/internal/grpc/protoregistry/registry_test.go index 39d24e1f7..1727e52f7 100644 --- a/internal/grpc/protoregistry/registry_test.go +++ b/internal/grpc/protoregistry/registry_test.go @@ -162,7 +162,7 @@ func TestNewProtoRegistry_IsInterceptedMethod(t *testing.T) { }, "PraefectInfoService": { "RepositoryReplicas", - "DatalossCheck", + "Dataloss", "SetAuthoritativeStorage", }, "RefTransaction": { diff --git a/internal/praefect/service/info/dataloss.go b/internal/praefect/service/info/dataloss.go index 3f9558511..15806f75e 100644 --- a/internal/praefect/service/info/dataloss.go +++ b/internal/praefect/service/info/dataloss.go @@ -1,8 +1,6 @@ package info import ( - "context" - "gitlab.com/gitlab-org/gitaly/v16/internal/helper/chunk" "gitlab.com/gitlab-org/gitaly/v16/internal/structerr" "gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb" @@ -85,51 +83,3 @@ func (s *Server) Dataloss( return nil } - -// DatalossCheck implements the DatalossCheck RPC to return data about repositories that -// are outdated. -// Deprecated: The Dataloss streaming RPC will be used going forward -// -//nolint:staticcheck -func (s *Server) DatalossCheck(ctx context.Context, req *gitalypb.DatalossCheckRequest) (*gitalypb.DatalossCheckResponse, error) { - repos, err := s.rs.GetPartiallyAvailableRepositories(ctx, req.GetVirtualStorage()) - if err != nil { - return nil, err - } - - pbRepos := make([]*gitalypb.DatalossCheckResponse_Repository, 0, len(repos)) - for _, outdatedRepo := range repos { - unavailable := true - - storages := make([]*gitalypb.DatalossCheckResponse_Repository_Storage, 0, len(outdatedRepo.Replicas)) - for _, replica := range outdatedRepo.Replicas { - if replica.ValidPrimary { - unavailable = false - } - - storages = append(storages, &gitalypb.DatalossCheckResponse_Repository_Storage{ - Name: replica.Storage, - BehindBy: outdatedRepo.Generation - replica.Generation, - Assigned: replica.Assigned, - Healthy: replica.Healthy, - ValidPrimary: replica.ValidPrimary, - }) - } - - if !req.IncludePartiallyReplicated && !unavailable { - continue - } - - //nolint:staticcheck - pbRepos = append(pbRepos, &gitalypb.DatalossCheckResponse_Repository{ - RelativePath: outdatedRepo.RelativePath, - Primary: outdatedRepo.Primary, - Unavailable: unavailable, - Storages: storages, - }) - } - - return &gitalypb.DatalossCheckResponse{ - Repositories: pbRepos, - }, nil -} diff --git a/proto/go/gitalypb/praefect.pb.go b/proto/go/gitalypb/praefect.pb.go index 640e589a0..9984195bf 100644 --- a/proto/go/gitalypb/praefect.pb.go +++ b/proto/go/gitalypb/praefect.pb.go @@ -690,118 +690,6 @@ func (x *DatalossResponse) GetRepositories() []*DatalossResponse_Repository { return nil } -// DatalossCheckRequest ... -// -// Deprecated: Marked as deprecated in praefect.proto. -type DatalossCheckRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // virtual_storage ... - VirtualStorage string `protobuf:"bytes,1,opt,name=virtual_storage,json=virtualStorage,proto3" json:"virtual_storage,omitempty"` - // include_partially_replicated indicates whether to include repositories which are available but - // are unavailable on some assigned storages. - IncludePartiallyReplicated bool `protobuf:"varint,2,opt,name=include_partially_replicated,json=includePartiallyReplicated,proto3" json:"include_partially_replicated,omitempty"` -} - -func (x *DatalossCheckRequest) Reset() { - *x = DatalossCheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DatalossCheckRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DatalossCheckRequest) ProtoMessage() {} - -func (x *DatalossCheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DatalossCheckRequest.ProtoReflect.Descriptor instead. -func (*DatalossCheckRequest) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{10} -} - -func (x *DatalossCheckRequest) GetVirtualStorage() string { - if x != nil { - return x.VirtualStorage - } - return "" -} - -func (x *DatalossCheckRequest) GetIncludePartiallyReplicated() bool { - if x != nil { - return x.IncludePartiallyReplicated - } - return false -} - -// DatalossCheckResponse ... -// -// Deprecated: Marked as deprecated in praefect.proto. -type DatalossCheckResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // repositories with data loss - Repositories []*DatalossCheckResponse_Repository `protobuf:"bytes,2,rep,name=repositories,proto3" json:"repositories,omitempty"` -} - -func (x *DatalossCheckResponse) Reset() { - *x = DatalossCheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DatalossCheckResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DatalossCheckResponse) ProtoMessage() {} - -func (x *DatalossCheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DatalossCheckResponse.ProtoReflect.Descriptor instead. -func (*DatalossCheckResponse) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{11} -} - -func (x *DatalossCheckResponse) GetRepositories() []*DatalossCheckResponse_Repository { - if x != nil { - return x.Repositories - } - return nil -} - // RepositoryReplicasRequest ... type RepositoryReplicasRequest struct { state protoimpl.MessageState @@ -815,7 +703,7 @@ type RepositoryReplicasRequest struct { func (x *RepositoryReplicasRequest) Reset() { *x = RepositoryReplicasRequest{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[12] + mi := &file_praefect_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -828,7 +716,7 @@ func (x *RepositoryReplicasRequest) String() string { func (*RepositoryReplicasRequest) ProtoMessage() {} func (x *RepositoryReplicasRequest) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[12] + mi := &file_praefect_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -841,7 +729,7 @@ func (x *RepositoryReplicasRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RepositoryReplicasRequest.ProtoReflect.Descriptor instead. func (*RepositoryReplicasRequest) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{12} + return file_praefect_proto_rawDescGZIP(), []int{10} } func (x *RepositoryReplicasRequest) GetRepository() *Repository { @@ -866,7 +754,7 @@ type RepositoryReplicasResponse struct { func (x *RepositoryReplicasResponse) Reset() { *x = RepositoryReplicasResponse{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[13] + mi := &file_praefect_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -879,7 +767,7 @@ func (x *RepositoryReplicasResponse) String() string { func (*RepositoryReplicasResponse) ProtoMessage() {} func (x *RepositoryReplicasResponse) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[13] + mi := &file_praefect_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -892,7 +780,7 @@ func (x *RepositoryReplicasResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RepositoryReplicasResponse.ProtoReflect.Descriptor instead. func (*RepositoryReplicasResponse) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{13} + return file_praefect_proto_rawDescGZIP(), []int{11} } func (x *RepositoryReplicasResponse) GetPrimary() *RepositoryReplicasResponse_RepositoryDetails { @@ -924,7 +812,7 @@ type MarkUnverifiedRequest_Storage struct { func (x *MarkUnverifiedRequest_Storage) Reset() { *x = MarkUnverifiedRequest_Storage{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[14] + mi := &file_praefect_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -937,7 +825,7 @@ func (x *MarkUnverifiedRequest_Storage) String() string { func (*MarkUnverifiedRequest_Storage) ProtoMessage() {} func (x *MarkUnverifiedRequest_Storage) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[14] + mi := &file_praefect_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -982,7 +870,7 @@ type GetRepositoryMetadataRequest_Path struct { func (x *GetRepositoryMetadataRequest_Path) Reset() { *x = GetRepositoryMetadataRequest_Path{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[15] + mi := &file_praefect_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -995,7 +883,7 @@ func (x *GetRepositoryMetadataRequest_Path) String() string { func (*GetRepositoryMetadataRequest_Path) ProtoMessage() {} func (x *GetRepositoryMetadataRequest_Path) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[15] + mi := &file_praefect_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1049,7 +937,7 @@ type GetRepositoryMetadataResponse_Replica struct { func (x *GetRepositoryMetadataResponse_Replica) Reset() { *x = GetRepositoryMetadataResponse_Replica{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[16] + mi := &file_praefect_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +950,7 @@ func (x *GetRepositoryMetadataResponse_Replica) String() string { func (*GetRepositoryMetadataResponse_Replica) ProtoMessage() {} func (x *GetRepositoryMetadataResponse_Replica) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[16] + mi := &file_praefect_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1139,7 +1027,7 @@ type DatalossResponse_Repository struct { func (x *DatalossResponse_Repository) Reset() { *x = DatalossResponse_Repository{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[17] + mi := &file_praefect_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1152,7 +1040,7 @@ func (x *DatalossResponse_Repository) String() string { func (*DatalossResponse_Repository) ProtoMessage() {} func (x *DatalossResponse_Repository) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[17] + mi := &file_praefect_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1217,7 +1105,7 @@ type DatalossResponse_Repository_Storage struct { func (x *DatalossResponse_Repository_Storage) Reset() { *x = DatalossResponse_Repository_Storage{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[18] + mi := &file_praefect_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1230,7 +1118,7 @@ func (x *DatalossResponse_Repository_Storage) String() string { func (*DatalossResponse_Repository_Storage) ProtoMessage() {} func (x *DatalossResponse_Repository_Storage) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[18] + mi := &file_praefect_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1281,167 +1169,6 @@ func (x *DatalossResponse_Repository_Storage) GetValidPrimary() bool { return false } -// Repository ... -type DatalossCheckResponse_Repository struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // relative_path of the repository with outdated replicas - RelativePath string `protobuf:"bytes,1,opt,name=relative_path,json=relativePath,proto3" json:"relative_path,omitempty"` - // storages on which the repository is outdated - Storages []*DatalossCheckResponse_Repository_Storage `protobuf:"bytes,2,rep,name=storages,proto3" json:"storages,omitempty"` - // unavailable indicates whether the repository is in unavailable. - Unavailable bool `protobuf:"varint,3,opt,name=unavailable,proto3" json:"unavailable,omitempty"` - // primary is the current primary storage of the repository. - Primary string `protobuf:"bytes,4,opt,name=primary,proto3" json:"primary,omitempty"` -} - -func (x *DatalossCheckResponse_Repository) Reset() { - *x = DatalossCheckResponse_Repository{} - if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DatalossCheckResponse_Repository) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DatalossCheckResponse_Repository) ProtoMessage() {} - -func (x *DatalossCheckResponse_Repository) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DatalossCheckResponse_Repository.ProtoReflect.Descriptor instead. -func (*DatalossCheckResponse_Repository) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{11, 0} -} - -func (x *DatalossCheckResponse_Repository) GetRelativePath() string { - if x != nil { - return x.RelativePath - } - return "" -} - -func (x *DatalossCheckResponse_Repository) GetStorages() []*DatalossCheckResponse_Repository_Storage { - if x != nil { - return x.Storages - } - return nil -} - -func (x *DatalossCheckResponse_Repository) GetUnavailable() bool { - if x != nil { - return x.Unavailable - } - return false -} - -func (x *DatalossCheckResponse_Repository) GetPrimary() string { - if x != nil { - return x.Primary - } - return "" -} - -// Storage ... -type DatalossCheckResponse_Repository_Storage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // name of the storage - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // behind_by indicates how many generations this storage is behind. - BehindBy int64 `protobuf:"varint,2,opt,name=behind_by,json=behindBy,proto3" json:"behind_by,omitempty"` - // assigned indicates whether the storage is assigned to host the repository. - Assigned bool `protobuf:"varint,3,opt,name=assigned,proto3" json:"assigned,omitempty"` - // healthy indicates whether the storage is considered healthy by the consensus of Praefect nodes. - Healthy bool `protobuf:"varint,4,opt,name=healthy,proto3" json:"healthy,omitempty"` - // valid_primary indicates whether the storage is ready to act as the primary if necessary. - ValidPrimary bool `protobuf:"varint,5,opt,name=valid_primary,json=validPrimary,proto3" json:"valid_primary,omitempty"` -} - -func (x *DatalossCheckResponse_Repository_Storage) Reset() { - *x = DatalossCheckResponse_Repository_Storage{} - if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DatalossCheckResponse_Repository_Storage) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DatalossCheckResponse_Repository_Storage) ProtoMessage() {} - -func (x *DatalossCheckResponse_Repository_Storage) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DatalossCheckResponse_Repository_Storage.ProtoReflect.Descriptor instead. -func (*DatalossCheckResponse_Repository_Storage) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{11, 0, 0} -} - -func (x *DatalossCheckResponse_Repository_Storage) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *DatalossCheckResponse_Repository_Storage) GetBehindBy() int64 { - if x != nil { - return x.BehindBy - } - return 0 -} - -func (x *DatalossCheckResponse_Repository_Storage) GetAssigned() bool { - if x != nil { - return x.Assigned - } - return false -} - -func (x *DatalossCheckResponse_Repository_Storage) GetHealthy() bool { - if x != nil { - return x.Healthy - } - return false -} - -func (x *DatalossCheckResponse_Repository_Storage) GetValidPrimary() bool { - if x != nil { - return x.ValidPrimary - } - return false -} - // RepositoryDetails ... type RepositoryReplicasResponse_RepositoryDetails struct { state protoimpl.MessageState @@ -1457,7 +1184,7 @@ type RepositoryReplicasResponse_RepositoryDetails struct { func (x *RepositoryReplicasResponse_RepositoryDetails) Reset() { *x = RepositoryReplicasResponse_RepositoryDetails{} if protoimpl.UnsafeEnabled { - mi := &file_praefect_proto_msgTypes[21] + mi := &file_praefect_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1470,7 +1197,7 @@ func (x *RepositoryReplicasResponse_RepositoryDetails) String() string { func (*RepositoryReplicasResponse_RepositoryDetails) ProtoMessage() {} func (x *RepositoryReplicasResponse_RepositoryDetails) ProtoReflect() protoreflect.Message { - mi := &file_praefect_proto_msgTypes[21] + mi := &file_praefect_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1483,7 +1210,7 @@ func (x *RepositoryReplicasResponse_RepositoryDetails) ProtoReflect() protorefle // Deprecated: Use RepositoryReplicasResponse_RepositoryDetails.ProtoReflect.Descriptor instead. func (*RepositoryReplicasResponse_RepositoryDetails) Descriptor() ([]byte, []int) { - return file_praefect_proto_rawDescGZIP(), []int{13, 0} + return file_praefect_proto_rawDescGZIP(), []int{11, 0} } func (x *RepositoryReplicasResponse_RepositoryDetails) GetRepository() *Repository { @@ -1638,112 +1365,70 @@ var file_praefect_proto_rawDesc = []byte{ 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x22, 0x85, 0x01, 0x0a, 0x14, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x69, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xbf, 0x03, 0x0a, 0x15, 0x44, 0x61, - 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, - 0x73, 0x1a, 0xd3, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x4c, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x79, 0x22, 0x4f, 0x0a, 0x19, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, + 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x22, 0xa3, 0x02, 0x0a, 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, 0x6e, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x1a, - 0x95, 0x01, 0x0a, 0x07, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x08, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x42, 0x79, 0x12, 0x1a, 0x0a, 0x08, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, - 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x70, 0x72, 0x69, 0x6d, - 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x3a, 0x02, 0x18, 0x01, 0x22, 0x4f, 0x0a, 0x19, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x12, 0x50, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x73, 0x1a, 0x63, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x22, 0xa3, 0x02, 0x0a, - 0x1a, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x07, 0x70, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, - 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x50, 0x0a, 0x08, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, - 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x1a, 0x63, 0x0a, - 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x32, 0x92, 0x05, 0x0a, 0x13, 0x50, 0x72, 0x61, 0x65, 0x66, 0x65, 0x63, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x12, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, - 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x61, 0x6c, - 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1c, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x44, 0x61, - 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6a, 0x0a, 0x17, 0x53, - 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, - 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x4d, 0x61, 0x72, 0x6b, 0x55, - 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x69, 0x74, 0x61, - 0x6c, 0x79, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, - 0x79, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x53, + 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x32, 0xbf, 0x04, 0x0a, 0x13, 0x50, 0x72, 0x61, + 0x65, 0x66, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x5b, 0x0a, 0x12, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, + 0x08, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x12, 0x17, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x6c, 0x6f, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x6a, + 0x0a, 0x17, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, + 0x76, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x61, + 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, + 0x69, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x74, 0x41, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x4d, 0x61, + 0x72, 0x6b, 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, + 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x67, 0x69, + 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x4d, 0x61, 0x72, 0x6b, 0x55, 0x6e, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x61, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x69, 0x74, - 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x1a, 0x04, 0xf0, 0x97, 0x28, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x6c, 0x61, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, 0x6f, 0x72, 0x67, - 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76, 0x31, 0x36, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x6f, 0x72, 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, + 0x79, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x04, 0xf0, 0x97, 0x28, 0x01, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, + 0x74, 0x6c, 0x61, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x69, 0x74, 0x6c, 0x61, 0x62, 0x2d, + 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x2f, 0x76, 0x31, 0x36, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x2f, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1758,7 +1443,7 @@ func file_praefect_proto_rawDescGZIP() []byte { return file_praefect_proto_rawDescData } -var file_praefect_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_praefect_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_praefect_proto_goTypes = []interface{}{ (*MarkUnverifiedRequest)(nil), // 0: gitaly.MarkUnverifiedRequest (*MarkUnverifiedResponse)(nil), // 1: gitaly.MarkUnverifiedResponse @@ -1770,53 +1455,45 @@ var file_praefect_proto_goTypes = []interface{}{ (*SetAuthoritativeStorageResponse)(nil), // 7: gitaly.SetAuthoritativeStorageResponse (*DatalossRequest)(nil), // 8: gitaly.DatalossRequest (*DatalossResponse)(nil), // 9: gitaly.DatalossResponse - (*DatalossCheckRequest)(nil), // 10: gitaly.DatalossCheckRequest - (*DatalossCheckResponse)(nil), // 11: gitaly.DatalossCheckResponse - (*RepositoryReplicasRequest)(nil), // 12: gitaly.RepositoryReplicasRequest - (*RepositoryReplicasResponse)(nil), // 13: gitaly.RepositoryReplicasResponse - (*MarkUnverifiedRequest_Storage)(nil), // 14: gitaly.MarkUnverifiedRequest.Storage - (*GetRepositoryMetadataRequest_Path)(nil), // 15: gitaly.GetRepositoryMetadataRequest.Path - (*GetRepositoryMetadataResponse_Replica)(nil), // 16: gitaly.GetRepositoryMetadataResponse.Replica - (*DatalossResponse_Repository)(nil), // 17: gitaly.DatalossResponse.Repository - (*DatalossResponse_Repository_Storage)(nil), // 18: gitaly.DatalossResponse.Repository.Storage - (*DatalossCheckResponse_Repository)(nil), // 19: gitaly.DatalossCheckResponse.Repository - (*DatalossCheckResponse_Repository_Storage)(nil), // 20: gitaly.DatalossCheckResponse.Repository.Storage - (*RepositoryReplicasResponse_RepositoryDetails)(nil), // 21: gitaly.RepositoryReplicasResponse.RepositoryDetails - (*Repository)(nil), // 22: gitaly.Repository - (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp + (*RepositoryReplicasRequest)(nil), // 10: gitaly.RepositoryReplicasRequest + (*RepositoryReplicasResponse)(nil), // 11: gitaly.RepositoryReplicasResponse + (*MarkUnverifiedRequest_Storage)(nil), // 12: gitaly.MarkUnverifiedRequest.Storage + (*GetRepositoryMetadataRequest_Path)(nil), // 13: gitaly.GetRepositoryMetadataRequest.Path + (*GetRepositoryMetadataResponse_Replica)(nil), // 14: gitaly.GetRepositoryMetadataResponse.Replica + (*DatalossResponse_Repository)(nil), // 15: gitaly.DatalossResponse.Repository + (*DatalossResponse_Repository_Storage)(nil), // 16: gitaly.DatalossResponse.Repository.Storage + (*RepositoryReplicasResponse_RepositoryDetails)(nil), // 17: gitaly.RepositoryReplicasResponse.RepositoryDetails + (*Repository)(nil), // 18: gitaly.Repository + (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp } var file_praefect_proto_depIdxs = []int32{ - 14, // 0: gitaly.MarkUnverifiedRequest.storage:type_name -> gitaly.MarkUnverifiedRequest.Storage - 15, // 1: gitaly.GetRepositoryMetadataRequest.path:type_name -> gitaly.GetRepositoryMetadataRequest.Path - 16, // 2: gitaly.GetRepositoryMetadataResponse.replicas:type_name -> gitaly.GetRepositoryMetadataResponse.Replica - 17, // 3: gitaly.DatalossResponse.repositories:type_name -> gitaly.DatalossResponse.Repository - 19, // 4: gitaly.DatalossCheckResponse.repositories:type_name -> gitaly.DatalossCheckResponse.Repository - 22, // 5: gitaly.RepositoryReplicasRequest.repository:type_name -> gitaly.Repository - 21, // 6: gitaly.RepositoryReplicasResponse.primary:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails - 21, // 7: gitaly.RepositoryReplicasResponse.replicas:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails - 23, // 8: gitaly.GetRepositoryMetadataResponse.Replica.verified_at:type_name -> google.protobuf.Timestamp - 18, // 9: gitaly.DatalossResponse.Repository.storages:type_name -> gitaly.DatalossResponse.Repository.Storage - 20, // 10: gitaly.DatalossCheckResponse.Repository.storages:type_name -> gitaly.DatalossCheckResponse.Repository.Storage - 22, // 11: gitaly.RepositoryReplicasResponse.RepositoryDetails.repository:type_name -> gitaly.Repository - 12, // 12: gitaly.PraefectInfoService.RepositoryReplicas:input_type -> gitaly.RepositoryReplicasRequest - 10, // 13: gitaly.PraefectInfoService.DatalossCheck:input_type -> gitaly.DatalossCheckRequest - 8, // 14: gitaly.PraefectInfoService.Dataloss:input_type -> gitaly.DatalossRequest - 6, // 15: gitaly.PraefectInfoService.SetAuthoritativeStorage:input_type -> gitaly.SetAuthoritativeStorageRequest - 0, // 16: gitaly.PraefectInfoService.MarkUnverified:input_type -> gitaly.MarkUnverifiedRequest - 4, // 17: gitaly.PraefectInfoService.SetReplicationFactor:input_type -> gitaly.SetReplicationFactorRequest - 2, // 18: gitaly.PraefectInfoService.GetRepositoryMetadata:input_type -> gitaly.GetRepositoryMetadataRequest - 13, // 19: gitaly.PraefectInfoService.RepositoryReplicas:output_type -> gitaly.RepositoryReplicasResponse - 11, // 20: gitaly.PraefectInfoService.DatalossCheck:output_type -> gitaly.DatalossCheckResponse - 9, // 21: gitaly.PraefectInfoService.Dataloss:output_type -> gitaly.DatalossResponse - 7, // 22: gitaly.PraefectInfoService.SetAuthoritativeStorage:output_type -> gitaly.SetAuthoritativeStorageResponse - 1, // 23: gitaly.PraefectInfoService.MarkUnverified:output_type -> gitaly.MarkUnverifiedResponse - 5, // 24: gitaly.PraefectInfoService.SetReplicationFactor:output_type -> gitaly.SetReplicationFactorResponse - 3, // 25: gitaly.PraefectInfoService.GetRepositoryMetadata:output_type -> gitaly.GetRepositoryMetadataResponse - 19, // [19:26] is the sub-list for method output_type - 12, // [12:19] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 12, // 0: gitaly.MarkUnverifiedRequest.storage:type_name -> gitaly.MarkUnverifiedRequest.Storage + 13, // 1: gitaly.GetRepositoryMetadataRequest.path:type_name -> gitaly.GetRepositoryMetadataRequest.Path + 14, // 2: gitaly.GetRepositoryMetadataResponse.replicas:type_name -> gitaly.GetRepositoryMetadataResponse.Replica + 15, // 3: gitaly.DatalossResponse.repositories:type_name -> gitaly.DatalossResponse.Repository + 18, // 4: gitaly.RepositoryReplicasRequest.repository:type_name -> gitaly.Repository + 17, // 5: gitaly.RepositoryReplicasResponse.primary:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails + 17, // 6: gitaly.RepositoryReplicasResponse.replicas:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails + 19, // 7: gitaly.GetRepositoryMetadataResponse.Replica.verified_at:type_name -> google.protobuf.Timestamp + 16, // 8: gitaly.DatalossResponse.Repository.storages:type_name -> gitaly.DatalossResponse.Repository.Storage + 18, // 9: gitaly.RepositoryReplicasResponse.RepositoryDetails.repository:type_name -> gitaly.Repository + 10, // 10: gitaly.PraefectInfoService.RepositoryReplicas:input_type -> gitaly.RepositoryReplicasRequest + 8, // 11: gitaly.PraefectInfoService.Dataloss:input_type -> gitaly.DatalossRequest + 6, // 12: gitaly.PraefectInfoService.SetAuthoritativeStorage:input_type -> gitaly.SetAuthoritativeStorageRequest + 0, // 13: gitaly.PraefectInfoService.MarkUnverified:input_type -> gitaly.MarkUnverifiedRequest + 4, // 14: gitaly.PraefectInfoService.SetReplicationFactor:input_type -> gitaly.SetReplicationFactorRequest + 2, // 15: gitaly.PraefectInfoService.GetRepositoryMetadata:input_type -> gitaly.GetRepositoryMetadataRequest + 11, // 16: gitaly.PraefectInfoService.RepositoryReplicas:output_type -> gitaly.RepositoryReplicasResponse + 9, // 17: gitaly.PraefectInfoService.Dataloss:output_type -> gitaly.DatalossResponse + 7, // 18: gitaly.PraefectInfoService.SetAuthoritativeStorage:output_type -> gitaly.SetAuthoritativeStorageResponse + 1, // 19: gitaly.PraefectInfoService.MarkUnverified:output_type -> gitaly.MarkUnverifiedResponse + 5, // 20: gitaly.PraefectInfoService.SetReplicationFactor:output_type -> gitaly.SetReplicationFactorResponse + 3, // 21: gitaly.PraefectInfoService.GetRepositoryMetadata:output_type -> gitaly.GetRepositoryMetadataResponse + 16, // [16:22] is the sub-list for method output_type + 10, // [10:16] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_praefect_proto_init() } @@ -1948,30 +1625,6 @@ func file_praefect_proto_init() { } } file_praefect_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatalossCheckRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_praefect_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatalossCheckResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_praefect_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepositoryReplicasRequest); i { case 0: return &v.state @@ -1983,7 +1636,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepositoryReplicasResponse); i { case 0: return &v.state @@ -1995,7 +1648,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MarkUnverifiedRequest_Storage); i { case 0: return &v.state @@ -2007,7 +1660,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRepositoryMetadataRequest_Path); i { case 0: return &v.state @@ -2019,7 +1672,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetRepositoryMetadataResponse_Replica); i { case 0: return &v.state @@ -2031,7 +1684,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatalossResponse_Repository); i { case 0: return &v.state @@ -2043,7 +1696,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DatalossResponse_Repository_Storage); i { case 0: return &v.state @@ -2055,31 +1708,7 @@ func file_praefect_proto_init() { return nil } } - file_praefect_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatalossCheckResponse_Repository); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_praefect_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DatalossCheckResponse_Repository_Storage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_praefect_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_praefect_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepositoryReplicasResponse_RepositoryDetails); i { case 0: return &v.state @@ -2107,7 +1736,7 @@ func file_praefect_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_praefect_proto_rawDesc, NumEnums: 0, - NumMessages: 22, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/go/gitalypb/praefect_grpc.pb.go b/proto/go/gitalypb/praefect_grpc.pb.go index 5420f3393..1d533c064 100644 --- a/proto/go/gitalypb/praefect_grpc.pb.go +++ b/proto/go/gitalypb/praefect_grpc.pb.go @@ -24,11 +24,6 @@ const _ = grpc.SupportPackageIsVersion7 type PraefectInfoServiceClient interface { // RepositoryReplicas ... RepositoryReplicas(ctx context.Context, in *RepositoryReplicasRequest, opts ...grpc.CallOption) (*RepositoryReplicasResponse, error) - // Deprecated: Do not use. - // DatalossCheck provides information on repositories in Praefect that are in a degraded state and - // thus susceptible to dataloss. A repository is considered degraded when its replicas are - // outdated and/or unavailable. - DatalossCheck(ctx context.Context, in *DatalossCheckRequest, opts ...grpc.CallOption) (*DatalossCheckResponse, error) // Dataloss provides information on repositories in Praefect that are in a degraded state and // thus susceptible to dataloss. A repository is considered degraded when its replicas are // outdated and/or unavailable. @@ -70,16 +65,6 @@ func (c *praefectInfoServiceClient) RepositoryReplicas(ctx context.Context, in * return out, nil } -// Deprecated: Do not use. -func (c *praefectInfoServiceClient) DatalossCheck(ctx context.Context, in *DatalossCheckRequest, opts ...grpc.CallOption) (*DatalossCheckResponse, error) { - out := new(DatalossCheckResponse) - err := c.cc.Invoke(ctx, "/gitaly.PraefectInfoService/DatalossCheck", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *praefectInfoServiceClient) Dataloss(ctx context.Context, in *DatalossRequest, opts ...grpc.CallOption) (PraefectInfoService_DatalossClient, error) { stream, err := c.cc.NewStream(ctx, &PraefectInfoService_ServiceDesc.Streams[0], "/gitaly.PraefectInfoService/Dataloss", opts...) if err != nil { @@ -154,11 +139,6 @@ func (c *praefectInfoServiceClient) GetRepositoryMetadata(ctx context.Context, i type PraefectInfoServiceServer interface { // RepositoryReplicas ... RepositoryReplicas(context.Context, *RepositoryReplicasRequest) (*RepositoryReplicasResponse, error) - // Deprecated: Do not use. - // DatalossCheck provides information on repositories in Praefect that are in a degraded state and - // thus susceptible to dataloss. A repository is considered degraded when its replicas are - // outdated and/or unavailable. - DatalossCheck(context.Context, *DatalossCheckRequest) (*DatalossCheckResponse, error) // Dataloss provides information on repositories in Praefect that are in a degraded state and // thus susceptible to dataloss. A repository is considered degraded when its replicas are // outdated and/or unavailable. @@ -191,9 +171,6 @@ type UnimplementedPraefectInfoServiceServer struct { func (UnimplementedPraefectInfoServiceServer) RepositoryReplicas(context.Context, *RepositoryReplicasRequest) (*RepositoryReplicasResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RepositoryReplicas not implemented") } -func (UnimplementedPraefectInfoServiceServer) DatalossCheck(context.Context, *DatalossCheckRequest) (*DatalossCheckResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method DatalossCheck not implemented") -} func (UnimplementedPraefectInfoServiceServer) Dataloss(*DatalossRequest, PraefectInfoService_DatalossServer) error { return status.Errorf(codes.Unimplemented, "method Dataloss not implemented") } @@ -240,24 +217,6 @@ func _PraefectInfoService_RepositoryReplicas_Handler(srv interface{}, ctx contex return interceptor(ctx, in, info, handler) } -func _PraefectInfoService_DatalossCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DatalossCheckRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PraefectInfoServiceServer).DatalossCheck(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gitaly.PraefectInfoService/DatalossCheck", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PraefectInfoServiceServer).DatalossCheck(ctx, req.(*DatalossCheckRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _PraefectInfoService_Dataloss_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(DatalossRequest) if err := stream.RecvMsg(m); err != nil { @@ -363,10 +322,6 @@ var PraefectInfoService_ServiceDesc = grpc.ServiceDesc{ Handler: _PraefectInfoService_RepositoryReplicas_Handler, }, { - MethodName: "DatalossCheck", - Handler: _PraefectInfoService_DatalossCheck_Handler, - }, - { MethodName: "SetAuthoritativeStorage", Handler: _PraefectInfoService_SetAuthoritativeStorage_Handler, }, diff --git a/proto/praefect.proto b/proto/praefect.proto index 1ec4fa11a..03aa2b22c 100644 --- a/proto/praefect.proto +++ b/proto/praefect.proto @@ -16,13 +16,6 @@ service PraefectInfoService { // RepositoryReplicas ... rpc RepositoryReplicas(RepositoryReplicasRequest) returns (RepositoryReplicasResponse); - // DatalossCheck provides information on repositories in Praefect that are in a degraded state and - // thus susceptible to dataloss. A repository is considered degraded when its replicas are - // outdated and/or unavailable. - rpc DatalossCheck(DatalossCheckRequest) returns (DatalossCheckResponse) { - option deprecated = true; - }; - // Dataloss provides information on repositories in Praefect that are in a degraded state and // thus susceptible to dataloss. A repository is considered degraded when its replicas are // outdated and/or unavailable. @@ -206,50 +199,6 @@ message DatalossResponse { repeated Repository repositories = 2; } -// DatalossCheckRequest ... -message DatalossCheckRequest { - option deprecated = true; - // virtual_storage ... - string virtual_storage = 1; - // include_partially_replicated indicates whether to include repositories which are available but - // are unavailable on some assigned storages. - bool include_partially_replicated = 2; -} - -// DatalossCheckResponse ... -message DatalossCheckResponse { - option deprecated = true; - // Repository ... - message Repository { - // Storage ... - message Storage { - // name of the storage - string name = 1; - // behind_by indicates how many generations this storage is behind. - int64 behind_by = 2; - // assigned indicates whether the storage is assigned to host the repository. - bool assigned = 3; - // healthy indicates whether the storage is considered healthy by the consensus of Praefect nodes. - bool healthy = 4; - // valid_primary indicates whether the storage is ready to act as the primary if necessary. - bool valid_primary = 5; - } - - // relative_path of the repository with outdated replicas - string relative_path = 1; - // storages on which the repository is outdated - repeated Storage storages = 2; - // unavailable indicates whether the repository is in unavailable. - bool unavailable = 3; - - // primary is the current primary storage of the repository. - string primary = 4; - } - - // repositories with data loss - repeated Repository repositories = 2; -} - // RepositoryReplicasRequest ... message RepositoryReplicasRequest{ // repository ... |