Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/proto
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2021-11-30 17:59:58 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2021-11-30 17:59:58 +0300
commitc023d0aaa1691096ddd1bd782af428ba5dfb19c8 (patch)
tree1f2132edd3a47f8991db4c63be2852997f988843 /proto
parent9a53844de5035a693534d17715dcb77b95f7bf16 (diff)
parent64ad803a11f85abbf055114f795c8fd1bdfe0e08 (diff)
Merge branch 'smh-generalize-dataloss' into 'master'
Add 'praefect metadata' subcommand Closes #3481 See merge request gitlab-org/gitaly!4122
Diffstat (limited to 'proto')
-rw-r--r--proto/go/gitalypb/praefect.pb.go818
-rw-r--r--proto/go/gitalypb/praefect_grpc.pb.go38
-rw-r--r--proto/praefect.proto51
3 files changed, 717 insertions, 190 deletions
diff --git a/proto/go/gitalypb/praefect.pb.go b/proto/go/gitalypb/praefect.pb.go
index 9fdc2d146..e59dacdf1 100644
--- a/proto/go/gitalypb/praefect.pb.go
+++ b/proto/go/gitalypb/praefect.pb.go
@@ -20,6 +20,192 @@ const (
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
+// GetRepositoryMetadataRequest specifies the repository to retrieve metadata for.
+type GetRepositoryMetadataRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to Query:
+ // *GetRepositoryMetadataRequest_RepositoryId
+ // *GetRepositoryMetadataRequest_Path_
+ Query isGetRepositoryMetadataRequest_Query `protobuf_oneof:"query"`
+}
+
+func (x *GetRepositoryMetadataRequest) Reset() {
+ *x = GetRepositoryMetadataRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_praefect_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetRepositoryMetadataRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRepositoryMetadataRequest) ProtoMessage() {}
+
+func (x *GetRepositoryMetadataRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_praefect_proto_msgTypes[0]
+ 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 GetRepositoryMetadataRequest.ProtoReflect.Descriptor instead.
+func (*GetRepositoryMetadataRequest) Descriptor() ([]byte, []int) {
+ return file_praefect_proto_rawDescGZIP(), []int{0}
+}
+
+func (m *GetRepositoryMetadataRequest) GetQuery() isGetRepositoryMetadataRequest_Query {
+ if m != nil {
+ return m.Query
+ }
+ return nil
+}
+
+func (x *GetRepositoryMetadataRequest) GetRepositoryId() int64 {
+ if x, ok := x.GetQuery().(*GetRepositoryMetadataRequest_RepositoryId); ok {
+ return x.RepositoryId
+ }
+ return 0
+}
+
+func (x *GetRepositoryMetadataRequest) GetPath() *GetRepositoryMetadataRequest_Path {
+ if x, ok := x.GetQuery().(*GetRepositoryMetadataRequest_Path_); ok {
+ return x.Path
+ }
+ return nil
+}
+
+type isGetRepositoryMetadataRequest_Query interface {
+ isGetRepositoryMetadataRequest_Query()
+}
+
+type GetRepositoryMetadataRequest_RepositoryId struct {
+ // repository_id is the ID of the repository to retrieve information for.
+ RepositoryId int64 `protobuf:"varint,1,opt,name=repository_id,json=repositoryId,proto3,oneof"`
+}
+
+type GetRepositoryMetadataRequest_Path_ struct {
+ // path is the external path of the repository to retrieve information for.
+ Path *GetRepositoryMetadataRequest_Path `protobuf:"bytes,2,opt,name=path,proto3,oneof"`
+}
+
+func (*GetRepositoryMetadataRequest_RepositoryId) isGetRepositoryMetadataRequest_Query() {}
+
+func (*GetRepositoryMetadataRequest_Path_) isGetRepositoryMetadataRequest_Query() {}
+
+// GeRepositoryMetadataResponse contains the repository's cluster metadata.
+type GetRepositoryMetadataResponse struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // repository_id is the internal ID of the repository.
+ RepositoryId int64 `protobuf:"varint,1,opt,name=repository_id,json=repositoryId,proto3" json:"repository_id,omitempty"`
+ // virtual_storage is the virtual storage in which the repository is located.
+ VirtualStorage string `protobuf:"bytes,2,opt,name=virtual_storage,json=virtualStorage,proto3" json:"virtual_storage,omitempty"`
+ // relative_path is the relative path of the repository in the virtual storage.
+ RelativePath string `protobuf:"bytes,3,opt,name=relative_path,json=relativePath,proto3" json:"relative_path,omitempty"`
+ // replica_path is the path on the disk where the replicas are stored.
+ ReplicaPath string `protobuf:"bytes,4,opt,name=replica_path,json=replicaPath,proto3" json:"replica_path,omitempty"`
+ // primary is the current primary of the repository.
+ Primary string `protobuf:"bytes,5,opt,name=primary,proto3" json:"primary,omitempty"`
+ // generation is the repository's current generation.
+ Generation int64 `protobuf:"varint,6,opt,name=generation,proto3" json:"generation,omitempty"`
+ // replicas are the existing and supposed to exist replicas of this repository.
+ Replicas []*GetRepositoryMetadataResponse_Replica `protobuf:"bytes,7,rep,name=replicas,proto3" json:"replicas,omitempty"`
+}
+
+func (x *GetRepositoryMetadataResponse) Reset() {
+ *x = GetRepositoryMetadataResponse{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_praefect_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetRepositoryMetadataResponse) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRepositoryMetadataResponse) ProtoMessage() {}
+
+func (x *GetRepositoryMetadataResponse) ProtoReflect() protoreflect.Message {
+ mi := &file_praefect_proto_msgTypes[1]
+ 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 GetRepositoryMetadataResponse.ProtoReflect.Descriptor instead.
+func (*GetRepositoryMetadataResponse) Descriptor() ([]byte, []int) {
+ return file_praefect_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *GetRepositoryMetadataResponse) GetRepositoryId() int64 {
+ if x != nil {
+ return x.RepositoryId
+ }
+ return 0
+}
+
+func (x *GetRepositoryMetadataResponse) GetVirtualStorage() string {
+ if x != nil {
+ return x.VirtualStorage
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataResponse) GetRelativePath() string {
+ if x != nil {
+ return x.RelativePath
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataResponse) GetReplicaPath() string {
+ if x != nil {
+ return x.ReplicaPath
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataResponse) GetPrimary() string {
+ if x != nil {
+ return x.Primary
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataResponse) GetGeneration() int64 {
+ if x != nil {
+ return x.Generation
+ }
+ return 0
+}
+
+func (x *GetRepositoryMetadataResponse) GetReplicas() []*GetRepositoryMetadataResponse_Replica {
+ if x != nil {
+ return x.Replicas
+ }
+ return nil
+}
+
// SetReplicationFactorRequest sets the desired replication factor for a repository.
type SetReplicationFactorRequest struct {
state protoimpl.MessageState
@@ -37,7 +223,7 @@ type SetReplicationFactorRequest struct {
func (x *SetReplicationFactorRequest) Reset() {
*x = SetReplicationFactorRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[0]
+ mi := &file_praefect_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -50,7 +236,7 @@ func (x *SetReplicationFactorRequest) String() string {
func (*SetReplicationFactorRequest) ProtoMessage() {}
func (x *SetReplicationFactorRequest) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[0]
+ mi := &file_praefect_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -63,7 +249,7 @@ func (x *SetReplicationFactorRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationFactorRequest.ProtoReflect.Descriptor instead.
func (*SetReplicationFactorRequest) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{0}
+ return file_praefect_proto_rawDescGZIP(), []int{2}
}
func (x *SetReplicationFactorRequest) GetVirtualStorage() string {
@@ -100,7 +286,7 @@ type SetReplicationFactorResponse struct {
func (x *SetReplicationFactorResponse) Reset() {
*x = SetReplicationFactorResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[1]
+ mi := &file_praefect_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -113,7 +299,7 @@ func (x *SetReplicationFactorResponse) String() string {
func (*SetReplicationFactorResponse) ProtoMessage() {}
func (x *SetReplicationFactorResponse) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[1]
+ mi := &file_praefect_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -126,7 +312,7 @@ func (x *SetReplicationFactorResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetReplicationFactorResponse.ProtoReflect.Descriptor instead.
func (*SetReplicationFactorResponse) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{1}
+ return file_praefect_proto_rawDescGZIP(), []int{3}
}
func (x *SetReplicationFactorResponse) GetStorages() []string {
@@ -149,7 +335,7 @@ type SetAuthoritativeStorageRequest struct {
func (x *SetAuthoritativeStorageRequest) Reset() {
*x = SetAuthoritativeStorageRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[2]
+ mi := &file_praefect_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -162,7 +348,7 @@ func (x *SetAuthoritativeStorageRequest) String() string {
func (*SetAuthoritativeStorageRequest) ProtoMessage() {}
func (x *SetAuthoritativeStorageRequest) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[2]
+ mi := &file_praefect_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -175,7 +361,7 @@ func (x *SetAuthoritativeStorageRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetAuthoritativeStorageRequest.ProtoReflect.Descriptor instead.
func (*SetAuthoritativeStorageRequest) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{2}
+ return file_praefect_proto_rawDescGZIP(), []int{4}
}
func (x *SetAuthoritativeStorageRequest) GetVirtualStorage() string {
@@ -208,7 +394,7 @@ type SetAuthoritativeStorageResponse struct {
func (x *SetAuthoritativeStorageResponse) Reset() {
*x = SetAuthoritativeStorageResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[3]
+ mi := &file_praefect_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -221,7 +407,7 @@ func (x *SetAuthoritativeStorageResponse) String() string {
func (*SetAuthoritativeStorageResponse) ProtoMessage() {}
func (x *SetAuthoritativeStorageResponse) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[3]
+ mi := &file_praefect_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -234,7 +420,7 @@ func (x *SetAuthoritativeStorageResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetAuthoritativeStorageResponse.ProtoReflect.Descriptor instead.
func (*SetAuthoritativeStorageResponse) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{3}
+ return file_praefect_proto_rawDescGZIP(), []int{5}
}
type DatalossCheckRequest struct {
@@ -251,7 +437,7 @@ type DatalossCheckRequest struct {
func (x *DatalossCheckRequest) Reset() {
*x = DatalossCheckRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[4]
+ mi := &file_praefect_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -264,7 +450,7 @@ func (x *DatalossCheckRequest) String() string {
func (*DatalossCheckRequest) ProtoMessage() {}
func (x *DatalossCheckRequest) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[4]
+ mi := &file_praefect_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -277,7 +463,7 @@ func (x *DatalossCheckRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use DatalossCheckRequest.ProtoReflect.Descriptor instead.
func (*DatalossCheckRequest) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{4}
+ return file_praefect_proto_rawDescGZIP(), []int{6}
}
func (x *DatalossCheckRequest) GetVirtualStorage() string {
@@ -306,7 +492,7 @@ type DatalossCheckResponse struct {
func (x *DatalossCheckResponse) Reset() {
*x = DatalossCheckResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[5]
+ mi := &file_praefect_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -319,7 +505,7 @@ func (x *DatalossCheckResponse) String() string {
func (*DatalossCheckResponse) ProtoMessage() {}
func (x *DatalossCheckResponse) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[5]
+ mi := &file_praefect_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -332,7 +518,7 @@ func (x *DatalossCheckResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use DatalossCheckResponse.ProtoReflect.Descriptor instead.
func (*DatalossCheckResponse) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{5}
+ return file_praefect_proto_rawDescGZIP(), []int{7}
}
func (x *DatalossCheckResponse) GetRepositories() []*DatalossCheckResponse_Repository {
@@ -353,7 +539,7 @@ type RepositoryReplicasRequest struct {
func (x *RepositoryReplicasRequest) Reset() {
*x = RepositoryReplicasRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[6]
+ mi := &file_praefect_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -366,7 +552,7 @@ func (x *RepositoryReplicasRequest) String() string {
func (*RepositoryReplicasRequest) ProtoMessage() {}
func (x *RepositoryReplicasRequest) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[6]
+ mi := &file_praefect_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -379,7 +565,7 @@ func (x *RepositoryReplicasRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RepositoryReplicasRequest.ProtoReflect.Descriptor instead.
func (*RepositoryReplicasRequest) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{6}
+ return file_praefect_proto_rawDescGZIP(), []int{8}
}
func (x *RepositoryReplicasRequest) GetRepository() *Repository {
@@ -401,7 +587,7 @@ type RepositoryReplicasResponse struct {
func (x *RepositoryReplicasResponse) Reset() {
*x = RepositoryReplicasResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[7]
+ mi := &file_praefect_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -414,7 +600,7 @@ func (x *RepositoryReplicasResponse) String() string {
func (*RepositoryReplicasResponse) ProtoMessage() {}
func (x *RepositoryReplicasResponse) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[7]
+ mi := &file_praefect_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -427,7 +613,7 @@ func (x *RepositoryReplicasResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use RepositoryReplicasResponse.ProtoReflect.Descriptor instead.
func (*RepositoryReplicasResponse) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{7}
+ return file_praefect_proto_rawDescGZIP(), []int{9}
}
func (x *RepositoryReplicasResponse) GetPrimary() *RepositoryReplicasResponse_RepositoryDetails {
@@ -444,6 +630,148 @@ func (x *RepositoryReplicasResponse) GetReplicas() []*RepositoryReplicasResponse
return nil
}
+type GetRepositoryMetadataRequest_Path struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // virtual_storage is the virtual storage where the repository is.
+ VirtualStorage string `protobuf:"bytes,1,opt,name=virtual_storage,json=virtualStorage,proto3" json:"virtual_storage,omitempty"`
+ // relative_path is the relative path of the repository in the virtual storage.
+ RelativePath string `protobuf:"bytes,2,opt,name=relative_path,json=relativePath,proto3" json:"relative_path,omitempty"`
+}
+
+func (x *GetRepositoryMetadataRequest_Path) Reset() {
+ *x = GetRepositoryMetadataRequest_Path{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_praefect_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetRepositoryMetadataRequest_Path) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRepositoryMetadataRequest_Path) ProtoMessage() {}
+
+func (x *GetRepositoryMetadataRequest_Path) 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 GetRepositoryMetadataRequest_Path.ProtoReflect.Descriptor instead.
+func (*GetRepositoryMetadataRequest_Path) Descriptor() ([]byte, []int) {
+ return file_praefect_proto_rawDescGZIP(), []int{0, 0}
+}
+
+func (x *GetRepositoryMetadataRequest_Path) GetVirtualStorage() string {
+ if x != nil {
+ return x.VirtualStorage
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataRequest_Path) GetRelativePath() string {
+ if x != nil {
+ return x.RelativePath
+ }
+ return ""
+}
+
+type GetRepositoryMetadataResponse_Replica struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // storage is the name of the replica's storage.
+ Storage string `protobuf:"bytes,1,opt,name=storage,proto3" json:"storage,omitempty"`
+ // assigned indicates whether the replica is on an assigned storage.
+ Assigned bool `protobuf:"varint,2,opt,name=assigned,proto3" json:"assigned,omitempty"`
+ // generation is the replicas confirmed generation. Generation is -1 if the replica
+ // does not yet exist.
+ Generation int64 `protobuf:"varint,4,opt,name=generation,proto3" json:"generation,omitempty"`
+ // healthy indicates whether the replica is on a healthy storage.
+ Healthy bool `protobuf:"varint,5,opt,name=healthy,proto3" json:"healthy,omitempty"`
+ // valid_primary indicates whether the replica is considered a valid primary.
+ ValidPrimary bool `protobuf:"varint,6,opt,name=valid_primary,json=validPrimary,proto3" json:"valid_primary,omitempty"`
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) Reset() {
+ *x = GetRepositoryMetadataResponse_Replica{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_praefect_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetRepositoryMetadataResponse_Replica) ProtoMessage() {}
+
+func (x *GetRepositoryMetadataResponse_Replica) 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 GetRepositoryMetadataResponse_Replica.ProtoReflect.Descriptor instead.
+func (*GetRepositoryMetadataResponse_Replica) Descriptor() ([]byte, []int) {
+ return file_praefect_proto_rawDescGZIP(), []int{1, 0}
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) GetStorage() string {
+ if x != nil {
+ return x.Storage
+ }
+ return ""
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) GetAssigned() bool {
+ if x != nil {
+ return x.Assigned
+ }
+ return false
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) GetGeneration() int64 {
+ if x != nil {
+ return x.Generation
+ }
+ return 0
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) GetHealthy() bool {
+ if x != nil {
+ return x.Healthy
+ }
+ return false
+}
+
+func (x *GetRepositoryMetadataResponse_Replica) GetValidPrimary() bool {
+ if x != nil {
+ return x.ValidPrimary
+ }
+ return false
+}
+
type DatalossCheckResponse_Repository struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -462,7 +790,7 @@ type DatalossCheckResponse_Repository struct {
func (x *DatalossCheckResponse_Repository) Reset() {
*x = DatalossCheckResponse_Repository{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[8]
+ mi := &file_praefect_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -475,7 +803,7 @@ func (x *DatalossCheckResponse_Repository) String() string {
func (*DatalossCheckResponse_Repository) ProtoMessage() {}
func (x *DatalossCheckResponse_Repository) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[8]
+ mi := &file_praefect_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -488,7 +816,7 @@ func (x *DatalossCheckResponse_Repository) ProtoReflect() protoreflect.Message {
// Deprecated: Use DatalossCheckResponse_Repository.ProtoReflect.Descriptor instead.
func (*DatalossCheckResponse_Repository) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{5, 0}
+ return file_praefect_proto_rawDescGZIP(), []int{7, 0}
}
func (x *DatalossCheckResponse_Repository) GetRelativePath() string {
@@ -539,7 +867,7 @@ type DatalossCheckResponse_Repository_Storage struct {
func (x *DatalossCheckResponse_Repository_Storage) Reset() {
*x = DatalossCheckResponse_Repository_Storage{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[9]
+ mi := &file_praefect_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -552,7 +880,7 @@ func (x *DatalossCheckResponse_Repository_Storage) String() string {
func (*DatalossCheckResponse_Repository_Storage) ProtoMessage() {}
func (x *DatalossCheckResponse_Repository_Storage) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[9]
+ mi := &file_praefect_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -565,7 +893,7 @@ func (x *DatalossCheckResponse_Repository_Storage) ProtoReflect() protoreflect.M
// Deprecated: Use DatalossCheckResponse_Repository_Storage.ProtoReflect.Descriptor instead.
func (*DatalossCheckResponse_Repository_Storage) Descriptor() ([]byte, []int) {
- return file_praefect_proto_rawDescGZIP(), []int{5, 0, 0}
+ return file_praefect_proto_rawDescGZIP(), []int{7, 0, 0}
}
func (x *DatalossCheckResponse_Repository_Storage) GetName() string {
@@ -615,7 +943,7 @@ type RepositoryReplicasResponse_RepositoryDetails struct {
func (x *RepositoryReplicasResponse_RepositoryDetails) Reset() {
*x = RepositoryReplicasResponse_RepositoryDetails{}
if protoimpl.UnsafeEnabled {
- mi := &file_praefect_proto_msgTypes[10]
+ mi := &file_praefect_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -628,7 +956,7 @@ func (x *RepositoryReplicasResponse_RepositoryDetails) String() string {
func (*RepositoryReplicasResponse_RepositoryDetails) ProtoMessage() {}
func (x *RepositoryReplicasResponse_RepositoryDetails) ProtoReflect() protoreflect.Message {
- mi := &file_praefect_proto_msgTypes[10]
+ mi := &file_praefect_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -641,7 +969,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{7, 0}
+ return file_praefect_proto_rawDescGZIP(), []int{9, 0}
}
func (x *RepositoryReplicasResponse_RepositoryDetails) GetRepository() *Repository {
@@ -664,122 +992,172 @@ var file_praefect_proto_rawDesc = []byte{
0x0a, 0x0e, 0x70, 0x72, 0x61, 0x65, 0x66, 0x65, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
0x12, 0x06, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x79, 0x1a, 0x0a, 0x6c, 0x69, 0x6e, 0x74, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x22, 0x9a, 0x01, 0x0a, 0x1b, 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, 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, 0x23, 0x0a, 0x0d, 0x72,
- 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68,
- 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
- 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65,
- 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22,
- 0x3a, 0x0a, 0x1c, 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,
- 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x1e,
- 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, 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, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74,
- 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c,
- 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x15,
- 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74,
- 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x61, 0x75, 0x74,
- 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67,
- 0x65, 0x22, 0x21, 0x0a, 0x1f, 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, 0x22, 0x81, 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, 0x22, 0xbb, 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, 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, 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, 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, 0x95, 0x03,
- 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,
+ 0x74, 0x6f, 0x22, 0xe5, 0x01, 0x0a, 0x1c, 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, 0x12, 0x25, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72,
+ 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65,
+ 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x04, 0x70, 0x61,
+ 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x50,
+ 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x1a, 0x54, 0x0a, 0x04, 0x50,
+ 0x61, 0x74, 0x68, 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, 0x23, 0x0a, 0x0d,
+ 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74,
+ 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, 0xdb, 0x03, 0x0a, 0x1d, 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, 0x12, 0x23, 0x0a, 0x0d,
+ 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x49,
+ 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x6f,
+ 0x72, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x69, 0x72, 0x74,
+ 0x75, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65,
+ 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12,
+ 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x50, 0x61,
+ 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x49, 0x0a, 0x08,
+ 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d,
+ 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, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72,
+ 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x1a, 0x9e, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x63, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a,
+ 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x08, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e,
+ 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67,
+ 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61,
+ 0x6c, 0x74, 0x68, 0x79, 0x18, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69,
+ 0x64, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x9a, 0x01, 0x0a, 0x1b, 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, 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, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61,
+ 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69,
+ 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
+ 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0x3a, 0x0a, 0x1c, 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, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
+ 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65,
+ 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x1e, 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, 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, 0x23, 0x0a,
+ 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x50, 0x61,
+ 0x74, 0x68, 0x12, 0x33, 0x0a, 0x15, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74,
+ 0x69, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x14, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65,
+ 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x22, 0x21, 0x0a, 0x1f, 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, 0x22, 0x81, 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, 0x22, 0xbb,
+ 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, 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, 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, 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, 0x12, 0x4c, 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,
- 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, 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, 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, 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, 0x34, 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,
+ 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, 0xfb, 0x03, 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, 0x4c, 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, 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, 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, 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, 0x34, 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 (
@@ -794,41 +1172,49 @@ func file_praefect_proto_rawDescGZIP() []byte {
return file_praefect_proto_rawDescData
}
-var file_praefect_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
+var file_praefect_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_praefect_proto_goTypes = []interface{}{
- (*SetReplicationFactorRequest)(nil), // 0: gitaly.SetReplicationFactorRequest
- (*SetReplicationFactorResponse)(nil), // 1: gitaly.SetReplicationFactorResponse
- (*SetAuthoritativeStorageRequest)(nil), // 2: gitaly.SetAuthoritativeStorageRequest
- (*SetAuthoritativeStorageResponse)(nil), // 3: gitaly.SetAuthoritativeStorageResponse
- (*DatalossCheckRequest)(nil), // 4: gitaly.DatalossCheckRequest
- (*DatalossCheckResponse)(nil), // 5: gitaly.DatalossCheckResponse
- (*RepositoryReplicasRequest)(nil), // 6: gitaly.RepositoryReplicasRequest
- (*RepositoryReplicasResponse)(nil), // 7: gitaly.RepositoryReplicasResponse
- (*DatalossCheckResponse_Repository)(nil), // 8: gitaly.DatalossCheckResponse.Repository
- (*DatalossCheckResponse_Repository_Storage)(nil), // 9: gitaly.DatalossCheckResponse.Repository.Storage
- (*RepositoryReplicasResponse_RepositoryDetails)(nil), // 10: gitaly.RepositoryReplicasResponse.RepositoryDetails
- (*Repository)(nil), // 11: gitaly.Repository
+ (*GetRepositoryMetadataRequest)(nil), // 0: gitaly.GetRepositoryMetadataRequest
+ (*GetRepositoryMetadataResponse)(nil), // 1: gitaly.GetRepositoryMetadataResponse
+ (*SetReplicationFactorRequest)(nil), // 2: gitaly.SetReplicationFactorRequest
+ (*SetReplicationFactorResponse)(nil), // 3: gitaly.SetReplicationFactorResponse
+ (*SetAuthoritativeStorageRequest)(nil), // 4: gitaly.SetAuthoritativeStorageRequest
+ (*SetAuthoritativeStorageResponse)(nil), // 5: gitaly.SetAuthoritativeStorageResponse
+ (*DatalossCheckRequest)(nil), // 6: gitaly.DatalossCheckRequest
+ (*DatalossCheckResponse)(nil), // 7: gitaly.DatalossCheckResponse
+ (*RepositoryReplicasRequest)(nil), // 8: gitaly.RepositoryReplicasRequest
+ (*RepositoryReplicasResponse)(nil), // 9: gitaly.RepositoryReplicasResponse
+ (*GetRepositoryMetadataRequest_Path)(nil), // 10: gitaly.GetRepositoryMetadataRequest.Path
+ (*GetRepositoryMetadataResponse_Replica)(nil), // 11: gitaly.GetRepositoryMetadataResponse.Replica
+ (*DatalossCheckResponse_Repository)(nil), // 12: gitaly.DatalossCheckResponse.Repository
+ (*DatalossCheckResponse_Repository_Storage)(nil), // 13: gitaly.DatalossCheckResponse.Repository.Storage
+ (*RepositoryReplicasResponse_RepositoryDetails)(nil), // 14: gitaly.RepositoryReplicasResponse.RepositoryDetails
+ (*Repository)(nil), // 15: gitaly.Repository
}
var file_praefect_proto_depIdxs = []int32{
- 8, // 0: gitaly.DatalossCheckResponse.repositories:type_name -> gitaly.DatalossCheckResponse.Repository
- 11, // 1: gitaly.RepositoryReplicasRequest.repository:type_name -> gitaly.Repository
- 10, // 2: gitaly.RepositoryReplicasResponse.primary:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails
- 10, // 3: gitaly.RepositoryReplicasResponse.replicas:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails
- 9, // 4: gitaly.DatalossCheckResponse.Repository.storages:type_name -> gitaly.DatalossCheckResponse.Repository.Storage
- 11, // 5: gitaly.RepositoryReplicasResponse.RepositoryDetails.repository:type_name -> gitaly.Repository
- 6, // 6: gitaly.PraefectInfoService.RepositoryReplicas:input_type -> gitaly.RepositoryReplicasRequest
- 4, // 7: gitaly.PraefectInfoService.DatalossCheck:input_type -> gitaly.DatalossCheckRequest
- 2, // 8: gitaly.PraefectInfoService.SetAuthoritativeStorage:input_type -> gitaly.SetAuthoritativeStorageRequest
- 0, // 9: gitaly.PraefectInfoService.SetReplicationFactor:input_type -> gitaly.SetReplicationFactorRequest
- 7, // 10: gitaly.PraefectInfoService.RepositoryReplicas:output_type -> gitaly.RepositoryReplicasResponse
- 5, // 11: gitaly.PraefectInfoService.DatalossCheck:output_type -> gitaly.DatalossCheckResponse
- 3, // 12: gitaly.PraefectInfoService.SetAuthoritativeStorage:output_type -> gitaly.SetAuthoritativeStorageResponse
- 1, // 13: gitaly.PraefectInfoService.SetReplicationFactor:output_type -> gitaly.SetReplicationFactorResponse
- 10, // [10:14] is the sub-list for method output_type
- 6, // [6:10] is the sub-list for method input_type
- 6, // [6:6] is the sub-list for extension type_name
- 6, // [6:6] is the sub-list for extension extendee
- 0, // [0:6] is the sub-list for field type_name
+ 10, // 0: gitaly.GetRepositoryMetadataRequest.path:type_name -> gitaly.GetRepositoryMetadataRequest.Path
+ 11, // 1: gitaly.GetRepositoryMetadataResponse.replicas:type_name -> gitaly.GetRepositoryMetadataResponse.Replica
+ 12, // 2: gitaly.DatalossCheckResponse.repositories:type_name -> gitaly.DatalossCheckResponse.Repository
+ 15, // 3: gitaly.RepositoryReplicasRequest.repository:type_name -> gitaly.Repository
+ 14, // 4: gitaly.RepositoryReplicasResponse.primary:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails
+ 14, // 5: gitaly.RepositoryReplicasResponse.replicas:type_name -> gitaly.RepositoryReplicasResponse.RepositoryDetails
+ 13, // 6: gitaly.DatalossCheckResponse.Repository.storages:type_name -> gitaly.DatalossCheckResponse.Repository.Storage
+ 15, // 7: gitaly.RepositoryReplicasResponse.RepositoryDetails.repository:type_name -> gitaly.Repository
+ 8, // 8: gitaly.PraefectInfoService.RepositoryReplicas:input_type -> gitaly.RepositoryReplicasRequest
+ 6, // 9: gitaly.PraefectInfoService.DatalossCheck:input_type -> gitaly.DatalossCheckRequest
+ 4, // 10: gitaly.PraefectInfoService.SetAuthoritativeStorage:input_type -> gitaly.SetAuthoritativeStorageRequest
+ 2, // 11: gitaly.PraefectInfoService.SetReplicationFactor:input_type -> gitaly.SetReplicationFactorRequest
+ 0, // 12: gitaly.PraefectInfoService.GetRepositoryMetadata:input_type -> gitaly.GetRepositoryMetadataRequest
+ 9, // 13: gitaly.PraefectInfoService.RepositoryReplicas:output_type -> gitaly.RepositoryReplicasResponse
+ 7, // 14: gitaly.PraefectInfoService.DatalossCheck:output_type -> gitaly.DatalossCheckResponse
+ 5, // 15: gitaly.PraefectInfoService.SetAuthoritativeStorage:output_type -> gitaly.SetAuthoritativeStorageResponse
+ 3, // 16: gitaly.PraefectInfoService.SetReplicationFactor:output_type -> gitaly.SetReplicationFactorResponse
+ 1, // 17: gitaly.PraefectInfoService.GetRepositoryMetadata:output_type -> gitaly.GetRepositoryMetadataResponse
+ 13, // [13:18] is the sub-list for method output_type
+ 8, // [8:13] is the sub-list for method input_type
+ 8, // [8:8] is the sub-list for extension type_name
+ 8, // [8:8] is the sub-list for extension extendee
+ 0, // [0:8] is the sub-list for field type_name
}
func init() { file_praefect_proto_init() }
@@ -840,7 +1226,7 @@ func file_praefect_proto_init() {
file_shared_proto_init()
if !protoimpl.UnsafeEnabled {
file_praefect_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SetReplicationFactorRequest); i {
+ switch v := v.(*GetRepositoryMetadataRequest); i {
case 0:
return &v.state
case 1:
@@ -852,7 +1238,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SetReplicationFactorResponse); i {
+ switch v := v.(*GetRepositoryMetadataResponse); i {
case 0:
return &v.state
case 1:
@@ -864,7 +1250,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SetAuthoritativeStorageRequest); i {
+ switch v := v.(*SetReplicationFactorRequest); i {
case 0:
return &v.state
case 1:
@@ -876,7 +1262,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*SetAuthoritativeStorageResponse); i {
+ switch v := v.(*SetReplicationFactorResponse); i {
case 0:
return &v.state
case 1:
@@ -888,7 +1274,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DatalossCheckRequest); i {
+ switch v := v.(*SetAuthoritativeStorageRequest); i {
case 0:
return &v.state
case 1:
@@ -900,7 +1286,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DatalossCheckResponse); i {
+ switch v := v.(*SetAuthoritativeStorageResponse); i {
case 0:
return &v.state
case 1:
@@ -912,7 +1298,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RepositoryReplicasRequest); i {
+ switch v := v.(*DatalossCheckRequest); i {
case 0:
return &v.state
case 1:
@@ -924,7 +1310,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*RepositoryReplicasResponse); i {
+ switch v := v.(*DatalossCheckResponse); i {
case 0:
return &v.state
case 1:
@@ -936,7 +1322,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DatalossCheckResponse_Repository); i {
+ switch v := v.(*RepositoryReplicasRequest); i {
case 0:
return &v.state
case 1:
@@ -948,7 +1334,7 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*DatalossCheckResponse_Repository_Storage); i {
+ switch v := v.(*RepositoryReplicasResponse); i {
case 0:
return &v.state
case 1:
@@ -960,6 +1346,54 @@ func file_praefect_proto_init() {
}
}
file_praefect_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GetRepositoryMetadataRequest_Path); 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.(*GetRepositoryMetadataResponse_Replica); 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.(*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[13].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[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RepositoryReplicasResponse_RepositoryDetails); i {
case 0:
return &v.state
@@ -972,13 +1406,17 @@ func file_praefect_proto_init() {
}
}
}
+ file_praefect_proto_msgTypes[0].OneofWrappers = []interface{}{
+ (*GetRepositoryMetadataRequest_RepositoryId)(nil),
+ (*GetRepositoryMetadataRequest_Path_)(nil),
+ }
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_praefect_proto_rawDesc,
NumEnums: 0,
- NumMessages: 11,
+ NumMessages: 15,
NumExtensions: 0,
NumServices: 1,
},
diff --git a/proto/go/gitalypb/praefect_grpc.pb.go b/proto/go/gitalypb/praefect_grpc.pb.go
index b09fcd6ae..e16d18b83 100644
--- a/proto/go/gitalypb/praefect_grpc.pb.go
+++ b/proto/go/gitalypb/praefect_grpc.pb.go
@@ -34,6 +34,8 @@ type PraefectInfoServiceClient interface {
// from a Praefect node that does not yet know about a new node. As assignments of unconfigured storages are ignored, replication
// factor of repositories assigned to a storage node removed from the cluster is effectively decreased.
SetReplicationFactor(ctx context.Context, in *SetReplicationFactorRequest, opts ...grpc.CallOption) (*SetReplicationFactorResponse, error)
+ // GetRepositoryMetadata returns the cluster metadata for a repository. Returns NotFound if the repository does not exist.
+ GetRepositoryMetadata(ctx context.Context, in *GetRepositoryMetadataRequest, opts ...grpc.CallOption) (*GetRepositoryMetadataResponse, error)
}
type praefectInfoServiceClient struct {
@@ -80,6 +82,15 @@ func (c *praefectInfoServiceClient) SetReplicationFactor(ctx context.Context, in
return out, nil
}
+func (c *praefectInfoServiceClient) GetRepositoryMetadata(ctx context.Context, in *GetRepositoryMetadataRequest, opts ...grpc.CallOption) (*GetRepositoryMetadataResponse, error) {
+ out := new(GetRepositoryMetadataResponse)
+ err := c.cc.Invoke(ctx, "/gitaly.PraefectInfoService/GetRepositoryMetadata", in, out, opts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
// PraefectInfoServiceServer is the server API for PraefectInfoService service.
// All implementations must embed UnimplementedPraefectInfoServiceServer
// for forward compatibility
@@ -100,6 +111,8 @@ type PraefectInfoServiceServer interface {
// from a Praefect node that does not yet know about a new node. As assignments of unconfigured storages are ignored, replication
// factor of repositories assigned to a storage node removed from the cluster is effectively decreased.
SetReplicationFactor(context.Context, *SetReplicationFactorRequest) (*SetReplicationFactorResponse, error)
+ // GetRepositoryMetadata returns the cluster metadata for a repository. Returns NotFound if the repository does not exist.
+ GetRepositoryMetadata(context.Context, *GetRepositoryMetadataRequest) (*GetRepositoryMetadataResponse, error)
mustEmbedUnimplementedPraefectInfoServiceServer()
}
@@ -119,6 +132,9 @@ func (UnimplementedPraefectInfoServiceServer) SetAuthoritativeStorage(context.Co
func (UnimplementedPraefectInfoServiceServer) SetReplicationFactor(context.Context, *SetReplicationFactorRequest) (*SetReplicationFactorResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SetReplicationFactor not implemented")
}
+func (UnimplementedPraefectInfoServiceServer) GetRepositoryMetadata(context.Context, *GetRepositoryMetadataRequest) (*GetRepositoryMetadataResponse, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetRepositoryMetadata not implemented")
+}
func (UnimplementedPraefectInfoServiceServer) mustEmbedUnimplementedPraefectInfoServiceServer() {}
// UnsafePraefectInfoServiceServer may be embedded to opt out of forward compatibility for this service.
@@ -204,6 +220,24 @@ func _PraefectInfoService_SetReplicationFactor_Handler(srv interface{}, ctx cont
return interceptor(ctx, in, info, handler)
}
+func _PraefectInfoService_GetRepositoryMetadata_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetRepositoryMetadataRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(PraefectInfoServiceServer).GetRepositoryMetadata(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: "/gitaly.PraefectInfoService/GetRepositoryMetadata",
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(PraefectInfoServiceServer).GetRepositoryMetadata(ctx, req.(*GetRepositoryMetadataRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
// PraefectInfoService_ServiceDesc is the grpc.ServiceDesc for PraefectInfoService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
@@ -227,6 +261,10 @@ var PraefectInfoService_ServiceDesc = grpc.ServiceDesc{
MethodName: "SetReplicationFactor",
Handler: _PraefectInfoService_SetReplicationFactor_Handler,
},
+ {
+ MethodName: "GetRepositoryMetadata",
+ Handler: _PraefectInfoService_GetRepositoryMetadata_Handler,
+ },
},
Streams: []grpc.StreamDesc{},
Metadata: "praefect.proto",
diff --git a/proto/praefect.proto b/proto/praefect.proto
index d89d2c3e0..34a4c5f79 100644
--- a/proto/praefect.proto
+++ b/proto/praefect.proto
@@ -29,6 +29,57 @@ service PraefectInfoService {
// from a Praefect node that does not yet know about a new node. As assignments of unconfigured storages are ignored, replication
// factor of repositories assigned to a storage node removed from the cluster is effectively decreased.
rpc SetReplicationFactor(SetReplicationFactorRequest) returns (SetReplicationFactorResponse);
+ // GetRepositoryMetadata returns the cluster metadata for a repository. Returns NotFound if the repository does not exist.
+ rpc GetRepositoryMetadata(GetRepositoryMetadataRequest) returns (GetRepositoryMetadataResponse);
+}
+
+// GetRepositoryMetadataRequest specifies the repository to retrieve metadata for.
+message GetRepositoryMetadataRequest {
+ message Path {
+ // virtual_storage is the virtual storage where the repository is.
+ string virtual_storage = 1;
+ // relative_path is the relative path of the repository in the virtual storage.
+ string relative_path = 2;
+ }
+
+ oneof query {
+ // repository_id is the ID of the repository to retrieve information for.
+ int64 repository_id = 1;
+ // path is the external path of the repository to retrieve information for.
+ Path path = 2;
+ };
+}
+
+// GeRepositoryMetadataResponse contains the repository's cluster metadata.
+message GetRepositoryMetadataResponse {
+ message Replica {
+ // storage is the name of the replica's storage.
+ string storage = 1;
+ // assigned indicates whether the replica is on an assigned storage.
+ bool assigned = 2;
+ // generation is the replicas confirmed generation. Generation is -1 if the replica
+ // does not yet exist.
+ int64 generation = 4;
+ // healthy indicates whether the replica is on a healthy storage.
+ bool healthy = 5;
+ // valid_primary indicates whether the replica is considered a valid primary.
+ bool valid_primary = 6;
+ }
+
+ // repository_id is the internal ID of the repository.
+ int64 repository_id = 1;
+ // virtual_storage is the virtual storage in which the repository is located.
+ string virtual_storage = 2;
+ // relative_path is the relative path of the repository in the virtual storage.
+ string relative_path = 3;
+ // replica_path is the path on the disk where the replicas are stored.
+ string replica_path = 4;
+ // primary is the current primary of the repository.
+ string primary = 5;
+ // generation is the repository's current generation.
+ int64 generation = 6;
+ // replicas are the existing and supposed to exist replicas of this repository.
+ repeated Replica replicas = 7;
}
// SetReplicationFactorRequest sets the desired replication factor for a repository.