From 0e60b1d6c9514ef148f8c6d4508efaa1b1e41706 Mon Sep 17 00:00:00 2001 From: Evgenii Stratonikov Date: Mon, 24 Jan 2022 13:13:37 +0300 Subject: [PATCH] [#1086] services/control: implement `DumpShard` RPC Signed-off-by: Evgenii Stratonikov --- pkg/local_object_storage/engine/dump.go | 19 + pkg/services/control/convert.go | 18 + pkg/services/control/rpc.go | 14 + pkg/services/control/server/dump.go | 37 ++ pkg/services/control/service.go | 169 +++++++ pkg/services/control/service.pb.go | 584 ++++++++++++++++++------ pkg/services/control/service.proto | 37 ++ pkg/services/control/service_grpc.pb.go | 42 ++ pkg/services/control/types.pb.go | 4 +- 9 files changed, 783 insertions(+), 141 deletions(-) create mode 100644 pkg/local_object_storage/engine/dump.go create mode 100644 pkg/services/control/server/dump.go diff --git a/pkg/local_object_storage/engine/dump.go b/pkg/local_object_storage/engine/dump.go new file mode 100644 index 000000000..f9a1fffa1 --- /dev/null +++ b/pkg/local_object_storage/engine/dump.go @@ -0,0 +1,19 @@ +package engine + +import "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/shard" + +// DumpShard dumps objects from the shard with provided identifier. +// +// Returns an error if shard is not read-only. +func (e *StorageEngine) DumpShard(id *shard.ID, prm *shard.DumpPrm) error { + e.mtx.RLock() + defer e.mtx.RUnlock() + + sh, ok := e.shards[id.String()] + if !ok { + return errShardNotFound + } + + _, err := sh.Dump(prm) + return err +} diff --git a/pkg/services/control/convert.go b/pkg/services/control/convert.go index 02c74d136..c64b80b81 100644 --- a/pkg/services/control/convert.go +++ b/pkg/services/control/convert.go @@ -130,3 +130,21 @@ func (w *setShardModeResponseWrapper) FromGRPCMessage(m grpc.Message) error { return nil } + +type dumpShardResponseWrapper struct { + *DumpShardResponse +} + +func (w *dumpShardResponseWrapper) ToGRPCMessage() grpc.Message { + return w.DumpShardResponse +} + +func (w *dumpShardResponseWrapper) FromGRPCMessage(m grpc.Message) error { + r, ok := m.(*DumpShardResponse) + if !ok { + return message.NewUnexpectedMessageType(m, (*DumpShardResponse)(nil)) + } + + w.DumpShardResponse = r + return nil +} diff --git a/pkg/services/control/rpc.go b/pkg/services/control/rpc.go index c8edde492..46fba470e 100644 --- a/pkg/services/control/rpc.go +++ b/pkg/services/control/rpc.go @@ -14,6 +14,7 @@ const ( rpcDropObjects = "DropObjects" rpcListShards = "ListShards" rpcSetShardMode = "SetShardMode" + rpcDumpShard = "DumpShard" ) // HealthCheck executes ControlService.HealthCheck RPC. @@ -144,3 +145,16 @@ func SetShardMode( return wResp.m, nil } + +// DumpShard executes ControlService.DumpShard RPC. +func DumpShard(cli *client.Client, req *DumpShardRequest, opts ...client.CallOption) (*DumpShardResponse, error) { + wResp := new(dumpShardResponseWrapper) + wReq := &requestWrapper{m: req} + + err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceName, rpcDumpShard), wReq, wResp, opts...) + if err != nil { + return nil, err + } + + return wResp.DumpShardResponse, nil +} diff --git a/pkg/services/control/server/dump.go b/pkg/services/control/server/dump.go new file mode 100644 index 000000000..024af053f --- /dev/null +++ b/pkg/services/control/server/dump.go @@ -0,0 +1,37 @@ +package control + +import ( + "context" + + "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/shard" + "github.com/nspcc-dev/neofs-node/pkg/services/control" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +func (s *Server) DumpShard(_ context.Context, req *control.DumpShardRequest) (*control.DumpShardResponse, error) { + err := s.isValidRequest(req) + if err != nil { + return nil, status.Error(codes.PermissionDenied, err.Error()) + } + + shardID := shard.NewIDFromBytes(req.GetBody().GetShard_ID()) + + prm := new(shard.DumpPrm) + prm.WithPath(req.GetBody().GetFilepath()) + prm.WithIgnoreErrors(req.GetBody().GetIgnoreErrors()) + + err = s.s.DumpShard(shardID, prm) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + + resp := new(control.DumpShardResponse) + resp.SetBody(new(control.DumpShardResponse_Body)) + + err = SignMessage(s.key, resp) + if err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + return resp, nil +} diff --git a/pkg/services/control/service.go b/pkg/services/control/service.go index cdd6cede6..b57d70c80 100644 --- a/pkg/services/control/service.go +++ b/pkg/services/control/service.go @@ -910,3 +910,172 @@ func (x *SetShardModeResponse) ReadSignedData(buf []byte) ([]byte, error) { func (x *SetShardModeResponse) SignedDataSize() int { return x.GetBody().StableSize() } + +// SetShardID sets shard ID for the dump shard request. +func (x *DumpShardRequest_Body) SetShardID(id []byte) { + x.Shard_ID = id +} + +// SetFilepath sets filepath for the dump shard request. +func (x *DumpShardRequest_Body) SetFilepath(p string) { + x.Filepath = p +} + +// SetIgnoreErrors sets ignore errors flag for the dump shard request. +func (x *DumpShardRequest_Body) SetIgnoreErrors(ignore bool) { + x.IgnoreErrors = ignore +} + +const ( + _ = iota + dumpShardReqBodyShardIDFNum + dumpShardReqBodyFilepathFNum + dumpShardReqBodyIgnoreErrorsFNum +) + +// StableMarshal reads binary representation of request body binary format. +// +// If buffer length is less than StableSize(), new buffer is allocated. +// +// Returns any error encountered which did not allow writing the data completely. +// Otherwise, returns the buffer in which the data is written. +// +// Structures with the same field values have the same binary format. +func (x *DumpShardRequest_Body) StableMarshal(buf []byte) ([]byte, error) { + if x == nil { + return []byte{}, nil + } + + if sz := x.StableSize(); len(buf) < sz { + buf = make([]byte, sz) + } + + var ( + offset, n int + err error + ) + + n, err = proto.BytesMarshal(dumpShardReqBodyShardIDFNum, buf, x.Shard_ID) + if err != nil { + return nil, err + } + + offset += n + + n, err = proto.StringMarshal(dumpShardReqBodyFilepathFNum, buf[offset:], x.Filepath) + if err != nil { + return nil, err + } + + offset += n + + _, err = proto.BoolMarshal(dumpShardReqBodyIgnoreErrorsFNum, buf[offset:], x.IgnoreErrors) + if err != nil { + return nil, err + } + + return buf, nil +} + +// StableSize returns binary size of the request body in protobuf binary format. +// +// Structures with the same field values have the same binary size. +func (x *DumpShardRequest_Body) StableSize() int { + if x == nil { + return 0 + } + + size := 0 + + size += proto.BytesSize(dumpShardReqBodyShardIDFNum, x.Shard_ID) + size += proto.StringSize(dumpShardReqBodyFilepathFNum, x.Filepath) + size += proto.BoolSize(dumpShardReqBodyIgnoreErrorsFNum, x.IgnoreErrors) + + return size +} + +// SetBody sets request body. +func (x *DumpShardRequest) SetBody(v *DumpShardRequest_Body) { + if x != nil { + x.Body = v + } +} + +// SetSignature sets body signature of the request. +func (x *DumpShardRequest) SetSignature(v *Signature) { + if x != nil { + x.Signature = v + } +} + +// ReadSignedData reads signed data from request to buf. +// +// If buffer length is less than x.SignedDataSize(), new buffer is allocated. +// +// Returns any error encountered which did not allow writing the data completely. +// Otherwise, returns the buffer in which the data is written. +// +// Structures with the same field values have the same signed data. +func (x *DumpShardRequest) ReadSignedData(buf []byte) ([]byte, error) { + return x.GetBody().StableMarshal(buf) +} + +// SignedDataSize returns size of the request signed data in bytes. +// +// Structures with the same field values have the same signed data size. +func (x *DumpShardRequest) SignedDataSize() int { + return x.GetBody().StableSize() +} + +// StableMarshal reads binary representation of the response body in protobuf binary format. +// +// If buffer length is less than x.StableSize(), new buffer is allocated. +// +// Returns any error encountered which did not allow writing the data completely. +// Otherwise, returns the buffer in which the data is written. +// +// Structures with the same field values have the same binary format. +func (x *DumpShardResponse_Body) StableMarshal(buf []byte) ([]byte, error) { + return buf, nil +} + +// StableSize returns binary size of the response body +// in protobuf binary format. +// +// Structures with the same field values have the same binary size. +func (x *DumpShardResponse_Body) StableSize() int { + return 0 +} + +// SetBody sets response body. +func (x *DumpShardResponse) SetBody(v *DumpShardResponse_Body) { + if x != nil { + x.Body = v + } +} + +// SetSignature sets response body signature. +func (x *DumpShardResponse) SetSignature(v *Signature) { + if x != nil { + x.Signature = v + } +} + +// ReadSignedData reads signed data from response to buf. +// +// If buffer length is less than SignedDataSize(), new buffer is allocated. +// +// Returns any error encountered which did not allow writing the data completely. +// Otherwise, returns the buffer in which the data is written. +// +// Structures with the same field values have the same signed data. +func (x *DumpShardResponse) ReadSignedData(buf []byte) ([]byte, error) { + return x.GetBody().StableMarshal(buf) +} + +// SignedDataSize returns binary size of the signed data. +// +// Structures with the same field values have the same signed data size. +func (x *DumpShardResponse) SignedDataSize() int { + return x.GetBody().StableSize() +} diff --git a/pkg/services/control/service.pb.go b/pkg/services/control/service.pb.go index 49d32bf84..5ab9bd963 100644 --- a/pkg/services/control/service.pb.go +++ b/pkg/services/control/service.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.19.1 +// protoc-gen-go v1.26.0 +// protoc v3.19.4 // source: pkg/services/control/service.proto package control @@ -716,6 +716,122 @@ func (x *SetShardModeResponse) GetSignature() *Signature { return nil } +// DumpShard request. +type DumpShardRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Body of dump shard request message. + Body *DumpShardRequest_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // Body signature. + Signature *Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *DumpShardRequest) Reset() { + *x = DumpShardRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_services_control_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DumpShardRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpShardRequest) ProtoMessage() {} + +func (x *DumpShardRequest) ProtoReflect() protoreflect.Message { + mi := &file_pkg_services_control_service_proto_msgTypes[12] + 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 DumpShardRequest.ProtoReflect.Descriptor instead. +func (*DumpShardRequest) Descriptor() ([]byte, []int) { + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12} +} + +func (x *DumpShardRequest) GetBody() *DumpShardRequest_Body { + if x != nil { + return x.Body + } + return nil +} + +func (x *DumpShardRequest) GetSignature() *Signature { + if x != nil { + return x.Signature + } + return nil +} + +// DumpShard response. +type DumpShardResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Body of dump shard response message. + Body *DumpShardResponse_Body `protobuf:"bytes,1,opt,name=body,proto3" json:"body,omitempty"` + // Body signature. + Signature *Signature `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"` +} + +func (x *DumpShardResponse) Reset() { + *x = DumpShardResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_services_control_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DumpShardResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpShardResponse) ProtoMessage() {} + +func (x *DumpShardResponse) ProtoReflect() protoreflect.Message { + mi := &file_pkg_services_control_service_proto_msgTypes[13] + 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 DumpShardResponse.ProtoReflect.Descriptor instead. +func (*DumpShardResponse) Descriptor() ([]byte, []int) { + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13} +} + +func (x *DumpShardResponse) GetBody() *DumpShardResponse_Body { + if x != nil { + return x.Body + } + return nil +} + +func (x *DumpShardResponse) GetSignature() *Signature { + if x != nil { + return x.Signature + } + return nil +} + // Health check request body. type HealthCheckRequest_Body struct { state protoimpl.MessageState @@ -726,7 +842,7 @@ type HealthCheckRequest_Body struct { func (x *HealthCheckRequest_Body) Reset() { *x = HealthCheckRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[12] + mi := &file_pkg_services_control_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -739,7 +855,7 @@ func (x *HealthCheckRequest_Body) String() string { func (*HealthCheckRequest_Body) ProtoMessage() {} func (x *HealthCheckRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[12] + mi := &file_pkg_services_control_service_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -770,7 +886,7 @@ type HealthCheckResponse_Body struct { func (x *HealthCheckResponse_Body) Reset() { *x = HealthCheckResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[13] + mi := &file_pkg_services_control_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -783,7 +899,7 @@ func (x *HealthCheckResponse_Body) String() string { func (*HealthCheckResponse_Body) ProtoMessage() {} func (x *HealthCheckResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[13] + mi := &file_pkg_services_control_service_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -823,7 +939,7 @@ type NetmapSnapshotRequest_Body struct { func (x *NetmapSnapshotRequest_Body) Reset() { *x = NetmapSnapshotRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[14] + mi := &file_pkg_services_control_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -836,7 +952,7 @@ func (x *NetmapSnapshotRequest_Body) String() string { func (*NetmapSnapshotRequest_Body) ProtoMessage() {} func (x *NetmapSnapshotRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[14] + mi := &file_pkg_services_control_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -865,7 +981,7 @@ type NetmapSnapshotResponse_Body struct { func (x *NetmapSnapshotResponse_Body) Reset() { *x = NetmapSnapshotResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[15] + mi := &file_pkg_services_control_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -878,7 +994,7 @@ func (x *NetmapSnapshotResponse_Body) String() string { func (*NetmapSnapshotResponse_Body) ProtoMessage() {} func (x *NetmapSnapshotResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[15] + mi := &file_pkg_services_control_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -914,7 +1030,7 @@ type SetNetmapStatusRequest_Body struct { func (x *SetNetmapStatusRequest_Body) Reset() { *x = SetNetmapStatusRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[16] + mi := &file_pkg_services_control_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -927,7 +1043,7 @@ func (x *SetNetmapStatusRequest_Body) String() string { func (*SetNetmapStatusRequest_Body) ProtoMessage() {} func (x *SetNetmapStatusRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[16] + mi := &file_pkg_services_control_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -960,7 +1076,7 @@ type SetNetmapStatusResponse_Body struct { func (x *SetNetmapStatusResponse_Body) Reset() { *x = SetNetmapStatusResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[17] + mi := &file_pkg_services_control_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -973,7 +1089,7 @@ func (x *SetNetmapStatusResponse_Body) String() string { func (*SetNetmapStatusResponse_Body) ProtoMessage() {} func (x *SetNetmapStatusResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[17] + mi := &file_pkg_services_control_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1003,7 +1119,7 @@ type DropObjectsRequest_Body struct { func (x *DropObjectsRequest_Body) Reset() { *x = DropObjectsRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[18] + mi := &file_pkg_services_control_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1016,7 +1132,7 @@ func (x *DropObjectsRequest_Body) String() string { func (*DropObjectsRequest_Body) ProtoMessage() {} func (x *DropObjectsRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[18] + mi := &file_pkg_services_control_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1049,7 +1165,7 @@ type DropObjectsResponse_Body struct { func (x *DropObjectsResponse_Body) Reset() { *x = DropObjectsResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[19] + mi := &file_pkg_services_control_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1062,7 +1178,7 @@ func (x *DropObjectsResponse_Body) String() string { func (*DropObjectsResponse_Body) ProtoMessage() {} func (x *DropObjectsResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[19] + mi := &file_pkg_services_control_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1088,7 +1204,7 @@ type ListShardsRequest_Body struct { func (x *ListShardsRequest_Body) Reset() { *x = ListShardsRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[20] + mi := &file_pkg_services_control_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1101,7 +1217,7 @@ func (x *ListShardsRequest_Body) String() string { func (*ListShardsRequest_Body) ProtoMessage() {} func (x *ListShardsRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[20] + mi := &file_pkg_services_control_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1130,7 +1246,7 @@ type ListShardsResponse_Body struct { func (x *ListShardsResponse_Body) Reset() { *x = ListShardsResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[21] + mi := &file_pkg_services_control_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1143,7 +1259,7 @@ func (x *ListShardsResponse_Body) String() string { func (*ListShardsResponse_Body) ProtoMessage() {} func (x *ListShardsResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[21] + mi := &file_pkg_services_control_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1181,7 +1297,7 @@ type SetShardModeRequest_Body struct { func (x *SetShardModeRequest_Body) Reset() { *x = SetShardModeRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[22] + mi := &file_pkg_services_control_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1194,7 +1310,7 @@ func (x *SetShardModeRequest_Body) String() string { func (*SetShardModeRequest_Body) ProtoMessage() {} func (x *SetShardModeRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[22] + mi := &file_pkg_services_control_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1234,7 +1350,7 @@ type SetShardModeResponse_Body struct { func (x *SetShardModeResponse_Body) Reset() { *x = SetShardModeResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[23] + mi := &file_pkg_services_control_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1247,7 +1363,7 @@ func (x *SetShardModeResponse_Body) String() string { func (*SetShardModeResponse_Body) ProtoMessage() {} func (x *SetShardModeResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[23] + mi := &file_pkg_services_control_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1263,6 +1379,112 @@ func (*SetShardModeResponse_Body) Descriptor() ([]byte, []int) { return file_pkg_services_control_service_proto_rawDescGZIP(), []int{11, 0} } +// Request body structure. +type DumpShardRequest_Body struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // ID of the shard. + Shard_ID []byte `protobuf:"bytes,1,opt,name=shard_ID,json=shardID,proto3" json:"shard_ID,omitempty"` + // Path to the output. + Filepath string `protobuf:"bytes,2,opt,name=filepath,proto3" json:"filepath,omitempty"` + // Flag indicating whether object read errors should be ignored. + IgnoreErrors bool `protobuf:"varint,3,opt,name=ignore_errors,json=ignoreErrors,proto3" json:"ignore_errors,omitempty"` +} + +func (x *DumpShardRequest_Body) Reset() { + *x = DumpShardRequest_Body{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_services_control_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DumpShardRequest_Body) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpShardRequest_Body) ProtoMessage() {} + +func (x *DumpShardRequest_Body) ProtoReflect() protoreflect.Message { + mi := &file_pkg_services_control_service_proto_msgTypes[26] + 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 DumpShardRequest_Body.ProtoReflect.Descriptor instead. +func (*DumpShardRequest_Body) Descriptor() ([]byte, []int) { + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12, 0} +} + +func (x *DumpShardRequest_Body) GetShard_ID() []byte { + if x != nil { + return x.Shard_ID + } + return nil +} + +func (x *DumpShardRequest_Body) GetFilepath() string { + if x != nil { + return x.Filepath + } + return "" +} + +func (x *DumpShardRequest_Body) GetIgnoreErrors() bool { + if x != nil { + return x.IgnoreErrors + } + return false +} + +// Response body structure. +type DumpShardResponse_Body struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DumpShardResponse_Body) Reset() { + *x = DumpShardResponse_Body{} + if protoimpl.UnsafeEnabled { + mi := &file_pkg_services_control_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DumpShardResponse_Body) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpShardResponse_Body) ProtoMessage() {} + +func (x *DumpShardResponse_Body) ProtoReflect() protoreflect.Message { + mi := &file_pkg_services_control_service_proto_msgTypes[27] + 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 DumpShardResponse_Body.ProtoReflect.Descriptor instead. +func (*DumpShardResponse_Body) Descriptor() ([]byte, []int) { + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13, 0} +} + var File_pkg_services_control_service_proto protoreflect.FileDescriptor var file_pkg_services_control_service_proto_rawDesc = []byte{ @@ -1396,42 +1618,68 @@ var file_pkg_services_control_service_proto_rawDesc = []byte{ 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x32, 0xe1, 0x03, - 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x48, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, - 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0e, 0x4e, 0x65, - 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, - 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4e, 0x65, - 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x4e, - 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x72, 0x6f, - 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, 0x1a, 0x2e, 0x63, 0x6f, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xdc, 0x01, + 0x0a, 0x10, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x62, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, + 0x12, 0x19, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x64, 0x5f, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x73, 0x68, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x82, 0x01, 0x0a, + 0x11, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, + 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x30, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, + 0x79, 0x32, 0xa5, 0x04, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, + 0x0a, 0x0e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, + 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, + 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, + 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x53, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x44, 0x72, 0x6f, 0x70, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x72, + 0x6f, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12, + 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, - 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x6e, 0x73, 0x70, 0x63, 0x63, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x2d, - 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x53, + 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x09, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x68, 0x61, + 0x72, 0x64, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x75, 0x6d, + 0x70, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x44, 0x75, 0x6d, 0x70, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x36, 0x5a, 0x34, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6e, 0x73, 0x70, 0x63, 0x63, 0x2d, 0x64, 0x65, + 0x76, 0x2f, 0x6e, 0x65, 0x6f, 0x66, 0x73, 0x2d, 0x6e, 0x6f, 0x64, 0x65, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1446,7 +1694,7 @@ func file_pkg_services_control_service_proto_rawDescGZIP() []byte { return file_pkg_services_control_service_proto_rawDescData } -var file_pkg_services_control_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_pkg_services_control_service_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_pkg_services_control_service_proto_goTypes = []interface{}{ (*HealthCheckRequest)(nil), // 0: control.HealthCheckRequest (*HealthCheckResponse)(nil), // 1: control.HealthCheckResponse @@ -1460,73 +1708,83 @@ var file_pkg_services_control_service_proto_goTypes = []interface{}{ (*ListShardsResponse)(nil), // 9: control.ListShardsResponse (*SetShardModeRequest)(nil), // 10: control.SetShardModeRequest (*SetShardModeResponse)(nil), // 11: control.SetShardModeResponse - (*HealthCheckRequest_Body)(nil), // 12: control.HealthCheckRequest.Body - (*HealthCheckResponse_Body)(nil), // 13: control.HealthCheckResponse.Body - (*NetmapSnapshotRequest_Body)(nil), // 14: control.NetmapSnapshotRequest.Body - (*NetmapSnapshotResponse_Body)(nil), // 15: control.NetmapSnapshotResponse.Body - (*SetNetmapStatusRequest_Body)(nil), // 16: control.SetNetmapStatusRequest.Body - (*SetNetmapStatusResponse_Body)(nil), // 17: control.SetNetmapStatusResponse.Body - (*DropObjectsRequest_Body)(nil), // 18: control.DropObjectsRequest.Body - (*DropObjectsResponse_Body)(nil), // 19: control.DropObjectsResponse.Body - (*ListShardsRequest_Body)(nil), // 20: control.ListShardsRequest.Body - (*ListShardsResponse_Body)(nil), // 21: control.ListShardsResponse.Body - (*SetShardModeRequest_Body)(nil), // 22: control.SetShardModeRequest.Body - (*SetShardModeResponse_Body)(nil), // 23: control.SetShardModeResponse.Body - (*Signature)(nil), // 24: control.Signature - (NetmapStatus)(0), // 25: control.NetmapStatus - (HealthStatus)(0), // 26: control.HealthStatus - (*Netmap)(nil), // 27: control.Netmap - (*ShardInfo)(nil), // 28: control.ShardInfo - (ShardMode)(0), // 29: control.ShardMode + (*DumpShardRequest)(nil), // 12: control.DumpShardRequest + (*DumpShardResponse)(nil), // 13: control.DumpShardResponse + (*HealthCheckRequest_Body)(nil), // 14: control.HealthCheckRequest.Body + (*HealthCheckResponse_Body)(nil), // 15: control.HealthCheckResponse.Body + (*NetmapSnapshotRequest_Body)(nil), // 16: control.NetmapSnapshotRequest.Body + (*NetmapSnapshotResponse_Body)(nil), // 17: control.NetmapSnapshotResponse.Body + (*SetNetmapStatusRequest_Body)(nil), // 18: control.SetNetmapStatusRequest.Body + (*SetNetmapStatusResponse_Body)(nil), // 19: control.SetNetmapStatusResponse.Body + (*DropObjectsRequest_Body)(nil), // 20: control.DropObjectsRequest.Body + (*DropObjectsResponse_Body)(nil), // 21: control.DropObjectsResponse.Body + (*ListShardsRequest_Body)(nil), // 22: control.ListShardsRequest.Body + (*ListShardsResponse_Body)(nil), // 23: control.ListShardsResponse.Body + (*SetShardModeRequest_Body)(nil), // 24: control.SetShardModeRequest.Body + (*SetShardModeResponse_Body)(nil), // 25: control.SetShardModeResponse.Body + (*DumpShardRequest_Body)(nil), // 26: control.DumpShardRequest.Body + (*DumpShardResponse_Body)(nil), // 27: control.DumpShardResponse.Body + (*Signature)(nil), // 28: control.Signature + (NetmapStatus)(0), // 29: control.NetmapStatus + (HealthStatus)(0), // 30: control.HealthStatus + (*Netmap)(nil), // 31: control.Netmap + (*ShardInfo)(nil), // 32: control.ShardInfo + (ShardMode)(0), // 33: control.ShardMode } var file_pkg_services_control_service_proto_depIdxs = []int32{ - 12, // 0: control.HealthCheckRequest.body:type_name -> control.HealthCheckRequest.Body - 24, // 1: control.HealthCheckRequest.signature:type_name -> control.Signature - 13, // 2: control.HealthCheckResponse.body:type_name -> control.HealthCheckResponse.Body - 24, // 3: control.HealthCheckResponse.signature:type_name -> control.Signature - 14, // 4: control.NetmapSnapshotRequest.body:type_name -> control.NetmapSnapshotRequest.Body - 24, // 5: control.NetmapSnapshotRequest.signature:type_name -> control.Signature - 15, // 6: control.NetmapSnapshotResponse.body:type_name -> control.NetmapSnapshotResponse.Body - 24, // 7: control.NetmapSnapshotResponse.signature:type_name -> control.Signature - 16, // 8: control.SetNetmapStatusRequest.body:type_name -> control.SetNetmapStatusRequest.Body - 24, // 9: control.SetNetmapStatusRequest.signature:type_name -> control.Signature - 17, // 10: control.SetNetmapStatusResponse.body:type_name -> control.SetNetmapStatusResponse.Body - 24, // 11: control.SetNetmapStatusResponse.signature:type_name -> control.Signature - 18, // 12: control.DropObjectsRequest.body:type_name -> control.DropObjectsRequest.Body - 24, // 13: control.DropObjectsRequest.signature:type_name -> control.Signature - 19, // 14: control.DropObjectsResponse.body:type_name -> control.DropObjectsResponse.Body - 24, // 15: control.DropObjectsResponse.signature:type_name -> control.Signature - 20, // 16: control.ListShardsRequest.body:type_name -> control.ListShardsRequest.Body - 24, // 17: control.ListShardsRequest.signature:type_name -> control.Signature - 21, // 18: control.ListShardsResponse.body:type_name -> control.ListShardsResponse.Body - 24, // 19: control.ListShardsResponse.signature:type_name -> control.Signature - 22, // 20: control.SetShardModeRequest.body:type_name -> control.SetShardModeRequest.Body - 24, // 21: control.SetShardModeRequest.signature:type_name -> control.Signature - 23, // 22: control.SetShardModeResponse.body:type_name -> control.SetShardModeResponse.Body - 24, // 23: control.SetShardModeResponse.signature:type_name -> control.Signature - 25, // 24: control.HealthCheckResponse.Body.netmap_status:type_name -> control.NetmapStatus - 26, // 25: control.HealthCheckResponse.Body.health_status:type_name -> control.HealthStatus - 27, // 26: control.NetmapSnapshotResponse.Body.netmap:type_name -> control.Netmap - 25, // 27: control.SetNetmapStatusRequest.Body.status:type_name -> control.NetmapStatus - 28, // 28: control.ListShardsResponse.Body.shards:type_name -> control.ShardInfo - 29, // 29: control.SetShardModeRequest.Body.mode:type_name -> control.ShardMode - 0, // 30: control.ControlService.HealthCheck:input_type -> control.HealthCheckRequest - 2, // 31: control.ControlService.NetmapSnapshot:input_type -> control.NetmapSnapshotRequest - 4, // 32: control.ControlService.SetNetmapStatus:input_type -> control.SetNetmapStatusRequest - 6, // 33: control.ControlService.DropObjects:input_type -> control.DropObjectsRequest - 8, // 34: control.ControlService.ListShards:input_type -> control.ListShardsRequest - 10, // 35: control.ControlService.SetShardMode:input_type -> control.SetShardModeRequest - 1, // 36: control.ControlService.HealthCheck:output_type -> control.HealthCheckResponse - 3, // 37: control.ControlService.NetmapSnapshot:output_type -> control.NetmapSnapshotResponse - 5, // 38: control.ControlService.SetNetmapStatus:output_type -> control.SetNetmapStatusResponse - 7, // 39: control.ControlService.DropObjects:output_type -> control.DropObjectsResponse - 9, // 40: control.ControlService.ListShards:output_type -> control.ListShardsResponse - 11, // 41: control.ControlService.SetShardMode:output_type -> control.SetShardModeResponse - 36, // [36:42] is the sub-list for method output_type - 30, // [30:36] is the sub-list for method input_type - 30, // [30:30] is the sub-list for extension type_name - 30, // [30:30] is the sub-list for extension extendee - 0, // [0:30] is the sub-list for field type_name + 14, // 0: control.HealthCheckRequest.body:type_name -> control.HealthCheckRequest.Body + 28, // 1: control.HealthCheckRequest.signature:type_name -> control.Signature + 15, // 2: control.HealthCheckResponse.body:type_name -> control.HealthCheckResponse.Body + 28, // 3: control.HealthCheckResponse.signature:type_name -> control.Signature + 16, // 4: control.NetmapSnapshotRequest.body:type_name -> control.NetmapSnapshotRequest.Body + 28, // 5: control.NetmapSnapshotRequest.signature:type_name -> control.Signature + 17, // 6: control.NetmapSnapshotResponse.body:type_name -> control.NetmapSnapshotResponse.Body + 28, // 7: control.NetmapSnapshotResponse.signature:type_name -> control.Signature + 18, // 8: control.SetNetmapStatusRequest.body:type_name -> control.SetNetmapStatusRequest.Body + 28, // 9: control.SetNetmapStatusRequest.signature:type_name -> control.Signature + 19, // 10: control.SetNetmapStatusResponse.body:type_name -> control.SetNetmapStatusResponse.Body + 28, // 11: control.SetNetmapStatusResponse.signature:type_name -> control.Signature + 20, // 12: control.DropObjectsRequest.body:type_name -> control.DropObjectsRequest.Body + 28, // 13: control.DropObjectsRequest.signature:type_name -> control.Signature + 21, // 14: control.DropObjectsResponse.body:type_name -> control.DropObjectsResponse.Body + 28, // 15: control.DropObjectsResponse.signature:type_name -> control.Signature + 22, // 16: control.ListShardsRequest.body:type_name -> control.ListShardsRequest.Body + 28, // 17: control.ListShardsRequest.signature:type_name -> control.Signature + 23, // 18: control.ListShardsResponse.body:type_name -> control.ListShardsResponse.Body + 28, // 19: control.ListShardsResponse.signature:type_name -> control.Signature + 24, // 20: control.SetShardModeRequest.body:type_name -> control.SetShardModeRequest.Body + 28, // 21: control.SetShardModeRequest.signature:type_name -> control.Signature + 25, // 22: control.SetShardModeResponse.body:type_name -> control.SetShardModeResponse.Body + 28, // 23: control.SetShardModeResponse.signature:type_name -> control.Signature + 26, // 24: control.DumpShardRequest.body:type_name -> control.DumpShardRequest.Body + 28, // 25: control.DumpShardRequest.signature:type_name -> control.Signature + 27, // 26: control.DumpShardResponse.body:type_name -> control.DumpShardResponse.Body + 28, // 27: control.DumpShardResponse.signature:type_name -> control.Signature + 29, // 28: control.HealthCheckResponse.Body.netmap_status:type_name -> control.NetmapStatus + 30, // 29: control.HealthCheckResponse.Body.health_status:type_name -> control.HealthStatus + 31, // 30: control.NetmapSnapshotResponse.Body.netmap:type_name -> control.Netmap + 29, // 31: control.SetNetmapStatusRequest.Body.status:type_name -> control.NetmapStatus + 32, // 32: control.ListShardsResponse.Body.shards:type_name -> control.ShardInfo + 33, // 33: control.SetShardModeRequest.Body.mode:type_name -> control.ShardMode + 0, // 34: control.ControlService.HealthCheck:input_type -> control.HealthCheckRequest + 2, // 35: control.ControlService.NetmapSnapshot:input_type -> control.NetmapSnapshotRequest + 4, // 36: control.ControlService.SetNetmapStatus:input_type -> control.SetNetmapStatusRequest + 6, // 37: control.ControlService.DropObjects:input_type -> control.DropObjectsRequest + 8, // 38: control.ControlService.ListShards:input_type -> control.ListShardsRequest + 10, // 39: control.ControlService.SetShardMode:input_type -> control.SetShardModeRequest + 12, // 40: control.ControlService.DumpShard:input_type -> control.DumpShardRequest + 1, // 41: control.ControlService.HealthCheck:output_type -> control.HealthCheckResponse + 3, // 42: control.ControlService.NetmapSnapshot:output_type -> control.NetmapSnapshotResponse + 5, // 43: control.ControlService.SetNetmapStatus:output_type -> control.SetNetmapStatusResponse + 7, // 44: control.ControlService.DropObjects:output_type -> control.DropObjectsResponse + 9, // 45: control.ControlService.ListShards:output_type -> control.ListShardsResponse + 11, // 46: control.ControlService.SetShardMode:output_type -> control.SetShardModeResponse + 13, // 47: control.ControlService.DumpShard:output_type -> control.DumpShardResponse + 41, // [41:48] is the sub-list for method output_type + 34, // [34:41] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_pkg_services_control_service_proto_init() } @@ -1681,7 +1939,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckRequest_Body); i { + switch v := v.(*DumpShardRequest); i { case 0: return &v.state case 1: @@ -1693,7 +1951,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCheckResponse_Body); i { + switch v := v.(*DumpShardResponse); i { case 0: return &v.state case 1: @@ -1705,7 +1963,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotRequest_Body); i { + switch v := v.(*HealthCheckRequest_Body); i { case 0: return &v.state case 1: @@ -1717,7 +1975,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotResponse_Body); i { + switch v := v.(*HealthCheckResponse_Body); i { case 0: return &v.state case 1: @@ -1729,7 +1987,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNetmapStatusRequest_Body); i { + switch v := v.(*NetmapSnapshotRequest_Body); i { case 0: return &v.state case 1: @@ -1741,7 +1999,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetNetmapStatusResponse_Body); i { + switch v := v.(*NetmapSnapshotResponse_Body); i { case 0: return &v.state case 1: @@ -1753,7 +2011,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DropObjectsRequest_Body); i { + switch v := v.(*SetNetmapStatusRequest_Body); i { case 0: return &v.state case 1: @@ -1765,7 +2023,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DropObjectsResponse_Body); i { + switch v := v.(*SetNetmapStatusResponse_Body); i { case 0: return &v.state case 1: @@ -1777,7 +2035,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListShardsRequest_Body); i { + switch v := v.(*DropObjectsRequest_Body); i { case 0: return &v.state case 1: @@ -1789,7 +2047,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListShardsResponse_Body); i { + switch v := v.(*DropObjectsResponse_Body); i { case 0: return &v.state case 1: @@ -1801,7 +2059,7 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetShardModeRequest_Body); i { + switch v := v.(*ListShardsRequest_Body); i { case 0: return &v.state case 1: @@ -1813,6 +2071,30 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListShardsResponse_Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_services_control_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetShardModeRequest_Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_services_control_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetShardModeResponse_Body); i { case 0: return &v.state @@ -1824,6 +2106,30 @@ func file_pkg_services_control_service_proto_init() { return nil } } + file_pkg_services_control_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DumpShardRequest_Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_pkg_services_control_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DumpShardResponse_Body); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1831,7 +2137,7 @@ func file_pkg_services_control_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pkg_services_control_service_proto_rawDesc, NumEnums: 0, - NumMessages: 24, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/services/control/service.proto b/pkg/services/control/service.proto index 2160e1fe2..7146047e6 100644 --- a/pkg/services/control/service.proto +++ b/pkg/services/control/service.proto @@ -25,6 +25,9 @@ service ControlService { // Sets mode of the shard. rpc SetShardMode (SetShardModeRequest) returns (SetShardModeResponse); + + // Dump objects from the shard. + rpc DumpShard (DumpShardRequest) returns (DumpShardResponse); } // Health check request. @@ -201,3 +204,37 @@ message SetShardModeResponse { // Body signature. Signature signature = 2; } + +// DumpShard request. +message DumpShardRequest { + // Request body structure. + message Body { + // ID of the shard. + bytes shard_ID = 1; + + // Path to the output. + string filepath = 2; + + // Flag indicating whether object read errors should be ignored. + bool ignore_errors = 3; + } + + // Body of dump shard request message. + Body body = 1; + + // Body signature. + Signature signature = 2; +} + +// DumpShard response. +message DumpShardResponse { + // Response body structure. + message Body { + } + + // Body of dump shard response message. + Body body = 1; + + // Body signature. + Signature signature = 2; +} diff --git a/pkg/services/control/service_grpc.pb.go b/pkg/services/control/service_grpc.pb.go index c6306df78..cbfdbf7fb 100644 --- a/pkg/services/control/service_grpc.pb.go +++ b/pkg/services/control/service_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc v3.19.4 +// source: pkg/services/control/service.proto package control @@ -30,6 +34,8 @@ type ControlServiceClient interface { ListShards(ctx context.Context, in *ListShardsRequest, opts ...grpc.CallOption) (*ListShardsResponse, error) // Sets mode of the shard. SetShardMode(ctx context.Context, in *SetShardModeRequest, opts ...grpc.CallOption) (*SetShardModeResponse, error) + // Dump objects from the shard. + DumpShard(ctx context.Context, in *DumpShardRequest, opts ...grpc.CallOption) (*DumpShardResponse, error) } type controlServiceClient struct { @@ -94,6 +100,15 @@ func (c *controlServiceClient) SetShardMode(ctx context.Context, in *SetShardMod return out, nil } +func (c *controlServiceClient) DumpShard(ctx context.Context, in *DumpShardRequest, opts ...grpc.CallOption) (*DumpShardResponse, error) { + out := new(DumpShardResponse) + err := c.cc.Invoke(ctx, "/control.ControlService/DumpShard", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ControlServiceServer is the server API for ControlService service. // All implementations should embed UnimplementedControlServiceServer // for forward compatibility @@ -110,6 +125,8 @@ type ControlServiceServer interface { ListShards(context.Context, *ListShardsRequest) (*ListShardsResponse, error) // Sets mode of the shard. SetShardMode(context.Context, *SetShardModeRequest) (*SetShardModeResponse, error) + // Dump objects from the shard. + DumpShard(context.Context, *DumpShardRequest) (*DumpShardResponse, error) } // UnimplementedControlServiceServer should be embedded to have forward compatible implementations. @@ -134,6 +151,9 @@ func (UnimplementedControlServiceServer) ListShards(context.Context, *ListShards func (UnimplementedControlServiceServer) SetShardMode(context.Context, *SetShardModeRequest) (*SetShardModeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetShardMode not implemented") } +func (UnimplementedControlServiceServer) DumpShard(context.Context, *DumpShardRequest) (*DumpShardResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DumpShard not implemented") +} // UnsafeControlServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ControlServiceServer will @@ -254,6 +274,24 @@ func _ControlService_SetShardMode_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _ControlService_DumpShard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DumpShardRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControlServiceServer).DumpShard(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/control.ControlService/DumpShard", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControlServiceServer).DumpShard(ctx, req.(*DumpShardRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ControlService_ServiceDesc is the grpc.ServiceDesc for ControlService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -285,6 +323,10 @@ var ControlService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SetShardMode", Handler: _ControlService_SetShardMode_Handler, }, + { + MethodName: "DumpShard", + Handler: _ControlService_DumpShard_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "pkg/services/control/service.proto", diff --git a/pkg/services/control/types.pb.go b/pkg/services/control/types.pb.go index 746d0cda9..a67cecd97 100644 --- a/pkg/services/control/types.pb.go +++ b/pkg/services/control/types.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.19.1 +// protoc-gen-go v1.26.0 +// protoc v3.19.4 // source: pkg/services/control/types.proto package control