[#1086] services/control: implement DumpShard RPC

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-01-24 13:13:37 +03:00 committed by Alex Vanin
parent aa53418119
commit 0e60b1d6c9
9 changed files with 783 additions and 141 deletions

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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
}

View file

@ -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()
}

View file

@ -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,
},

View file

@ -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;
}

View file

@ -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",

View file

@ -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