diff --git a/CHANGELOG.md b/CHANGELOG.md index 0578b3097..502981d05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ Changelog for NeoFS Node ## [Unreleased] - Anmado (안마도, 鞍馬島) ### Added +- Serving `NetmapService.NetmapSnapshot` RPC (#1793) +- `netmap snapshot` command of NeoFS CLI (#1793) - Changelog updates CI step (#1808) - Validate storage node configuration before node startup (#1805) @@ -18,10 +20,13 @@ Changelog for NeoFS Node ### Removed - Remove WIF and NEP2 support in `neofs-cli`'s --wallet flag (#1128) - Remove --generate-key option in `neofs-cli container delete` (#1692) +- Serving `ControlService.NetmapSnapshot` RPC (#1793) +- `control netmap-snapshot` command of NeoFS CLI (#1793) ### Updated ### Updating from v0.32.0 +Replace using the `control netmap-snapshot` command with `netmap snapshot` one in NeoFS CLI. ## [0.32.0] - 2022-09-14 - Pungdo (풍도, 楓島) diff --git a/cmd/neofs-adm/internal/modules/morph/internal/types.pb.go b/cmd/neofs-adm/internal/modules/morph/internal/types.pb.go index ab8c5959a..26409987b 100644 --- a/cmd/neofs-adm/internal/modules/morph/internal/types.pb.go +++ b/cmd/neofs-adm/internal/modules/morph/internal/types.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.2 +// protoc v3.21.6 // source: cmd/neofs-adm/internal/modules/morph/internal/types.proto package internal diff --git a/cmd/neofs-cli/internal/client/client.go b/cmd/neofs-cli/internal/client/client.go index c94856376..90056d9f5 100644 --- a/cmd/neofs-cli/internal/client/client.go +++ b/cmd/neofs-cli/internal/client/client.go @@ -272,6 +272,29 @@ func NodeInfo(prm NodeInfoPrm) (res NodeInfoRes, err error) { return } +// NetMapSnapshotPrm groups parameters of NetMapSnapshot operation. +type NetMapSnapshotPrm struct { + commonPrm +} + +// NetMapSnapshotRes groups the resulting values of NetMapSnapshot operation. +type NetMapSnapshotRes struct { + cliRes *client.ResNetMapSnapshot +} + +// NetMap returns current local snapshot of the NeoFS network map. +func (x NetMapSnapshotRes) NetMap() netmap.NetMap { + return x.cliRes.NetMap() +} + +// NetMapSnapshot requests current network view of the remote server. +// +// Returns any error which prevented the operation from completing correctly in error return. +func NetMapSnapshot(prm NetMapSnapshotPrm) (res NetMapSnapshotRes, err error) { + res.cliRes, err = prm.cli.NetMapSnapshot(context.Background(), client.PrmNetMapSnapshot{}) + return +} + // CreateSessionPrm groups parameters of CreateSession operation. type CreateSessionPrm struct { commonPrm diff --git a/cmd/neofs-cli/modules/control/root.go b/cmd/neofs-cli/modules/control/root.go index 31459d030..515b60cab 100644 --- a/cmd/neofs-cli/modules/control/root.go +++ b/cmd/neofs-cli/modules/control/root.go @@ -30,7 +30,6 @@ func init() { healthCheckCmd, setNetmapStatusCmd, dropObjectsCmd, - snapshotCmd, shardsCmd, synchronizeTreeCmd, ) @@ -38,7 +37,6 @@ func init() { initControlHealthCheckCmd() initControlSetNetmapStatusCmd() initControlDropObjectsCmd() - initControlSnapshotCmd() initControlShardsCmd() initControlSynchronizeTreeCmd() } diff --git a/cmd/neofs-cli/modules/control/snapshot.go b/cmd/neofs-cli/modules/control/snapshot.go deleted file mode 100644 index 49345d787..000000000 --- a/cmd/neofs-cli/modules/control/snapshot.go +++ /dev/null @@ -1,74 +0,0 @@ -package control - -import ( - "github.com/mr-tron/base58" - rawclient "github.com/nspcc-dev/neofs-api-go/v2/rpc/client" - "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/common" - "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/commonflags" - "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/key" - "github.com/nspcc-dev/neofs-node/pkg/services/control" - "github.com/spf13/cobra" -) - -const ( - netmapSnapshotJSONFlag = commonflags.JSON -) - -var snapshotCmd = &cobra.Command{ - Use: "netmap-snapshot", - Short: "Get network map snapshot", - Long: "Get network map snapshot", - Run: func(cmd *cobra.Command, args []string) { - pk := key.Get(cmd) - - req := new(control.NetmapSnapshotRequest) - req.SetBody(new(control.NetmapSnapshotRequest_Body)) - - signRequest(cmd, pk, req) - - cli := getClient(cmd, pk) - - var resp *control.NetmapSnapshotResponse - var err error - err = cli.ExecRaw(func(client *rawclient.Client) error { - resp, err = control.NetmapSnapshot(client, req) - return err - }) - common.ExitOnErr(cmd, "rpc error: %w", err) - - verifyResponse(cmd, resp.GetSignature(), resp.GetBody()) - - isJSON, _ := cmd.Flags().GetBool(netmapSnapshotJSONFlag) - prettyPrintNetmap(cmd, resp.GetBody().GetNetmap(), isJSON) - }, -} - -func initControlSnapshotCmd() { - commonflags.InitWithoutRPC(snapshotCmd) - - flags := snapshotCmd.Flags() - - flags.String(controlRPC, controlRPCDefault, controlRPCUsage) - flags.Bool(netmapSnapshotJSONFlag, false, "print netmap structure in JSON format") -} - -func prettyPrintNetmap(cmd *cobra.Command, nm *control.Netmap, jsonEncoding bool) { - if jsonEncoding { - common.PrettyPrintJSON(cmd, nm, "netmap") - return - } - - cmd.Println("Epoch:", nm.GetEpoch()) - - for i, node := range nm.GetNodes() { - cmd.Printf("Node %d: %s %s %v\n", i+1, - base58.Encode(node.GetPublicKey()), - node.GetState(), - node.GetAddresses(), - ) - - for _, attr := range node.GetAttributes() { - cmd.Printf("\t%s: %s\n", attr.GetKey(), attr.GetValue()) - } - } -} diff --git a/cmd/neofs-cli/modules/netmap/root.go b/cmd/neofs-cli/modules/netmap/root.go index 89e2e34d4..45a2075f0 100644 --- a/cmd/neofs-cli/modules/netmap/root.go +++ b/cmd/neofs-cli/modules/netmap/root.go @@ -22,9 +22,11 @@ func init() { getEpochCmd, nodeInfoCmd, netInfoCmd, + snapshotCmd, ) initGetEpochCmd() initNetInfoCmd() initNodeInfoCmd() + initSnapshotCmd() } diff --git a/cmd/neofs-cli/modules/netmap/snapshot.go b/cmd/neofs-cli/modules/netmap/snapshot.go new file mode 100644 index 000000000..bb4a6cd2b --- /dev/null +++ b/cmd/neofs-cli/modules/netmap/snapshot.go @@ -0,0 +1,63 @@ +package netmap + +import ( + "encoding/hex" + + internalclient "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/client" + "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/common" + "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/commonflags" + "github.com/nspcc-dev/neofs-node/cmd/neofs-cli/internal/key" + "github.com/nspcc-dev/neofs-sdk-go/netmap" + "github.com/spf13/cobra" +) + +var snapshotCmd = &cobra.Command{ + Use: "snapshot", + Short: "Request current local snapshot of the network map", + Long: `Request current local snapshot of the network map`, + Run: func(cmd *cobra.Command, args []string) { + p := key.GetOrGenerate(cmd) + cli := internalclient.GetSDKClientByFlag(cmd, p, commonflags.RPC) + + var prm internalclient.NetMapSnapshotPrm + prm.SetClient(cli) + + res, err := internalclient.NetMapSnapshot(prm) + common.ExitOnErr(cmd, "rpc error: %w", err) + + prettyPrintNetMap(cmd, res.NetMap()) + }, +} + +func initSnapshotCmd() { + commonflags.Init(snapshotCmd) + commonflags.InitAPI(snapshotCmd) +} + +func prettyPrintNetMap(cmd *cobra.Command, nm netmap.NetMap) { + cmd.Println("Epoch:", nm.Epoch()) + + nodes := nm.Nodes() + for i := range nodes { + var strState string + + switch { + case nodes[i].IsOnline(): + strState = "ONLINE" + case nodes[i].IsOffline(): + strState = "OFFLINE" + } + + cmd.Printf("Node %d: %s %s ", i+1, hex.EncodeToString(nodes[i].PublicKey()), strState) + + netmap.IterateNetworkEndpoints(nodes[i], func(endpoint string) { + cmd.Printf("%s ", endpoint) + }) + + cmd.Println() + + nodes[i].IterateAttributes(func(key, value string) { + cmd.Printf("\t%s: %s\n", key, value) + }) + } +} diff --git a/cmd/neofs-node/config.go b/cmd/neofs-node/config.go index da027bf5e..ac3ed7bd2 100644 --- a/cmd/neofs-node/config.go +++ b/cmd/neofs-node/config.go @@ -6,6 +6,7 @@ import ( "net" "path/filepath" "sync" + atomicstd "sync/atomic" "time" "github.com/nspcc-dev/neo-go/pkg/crypto/keys" @@ -134,6 +135,13 @@ type cfg struct { persistate *state.PersistentStorage netMapSource netmapCore.Source + + // current network map + netMap atomicstd.Value // type netmap.NetMap +} + +func (c *cfg) ProcessCurrentNetMap(f func(netmap.NetMap)) { + f(c.netMap.Load().(netmap.NetMap)) } type cfgGRPC struct { diff --git a/cmd/neofs-node/netmap.go b/cmd/neofs-node/netmap.go index 86dc397c7..1fd522c0f 100644 --- a/cmd/neofs-node/netmap.go +++ b/cmd/neofs-node/netmap.go @@ -286,6 +286,8 @@ func (c *cfg) netmapLocalNodeState(epoch uint64) (*netmapSDK.NodeInfo, error) { return nil, err } + c.netMap.Store(*nm) + nmNodes := nm.Nodes() for i := range nmNodes { if bytes.Equal(nmNodes[i].PublicKey(), c.binPublicKey) { diff --git a/go.mod b/go.mod index 1d0119e41..8357f6e74 100644 --- a/go.mod +++ b/go.mod @@ -17,9 +17,9 @@ require ( github.com/nspcc-dev/hrw v1.0.9 github.com/nspcc-dev/neo-go v0.99.2 github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220809123759-3094d3e0c14b // indirect - github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220827080658-9e17cdfc7647 + github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220919124434-cf868188ef9c github.com/nspcc-dev/neofs-contract v0.15.5 - github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220914073456-f75a5feba335 + github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220922065107-8e3173eacd23 github.com/nspcc-dev/tzhash v1.6.1 github.com/panjf2000/ants/v2 v2.4.0 github.com/paulmach/orb v0.2.2 diff --git a/go.sum b/go.sum index 54e5c031d..f1475e838 100644 --- a/go.sum +++ b/go.sum @@ -453,8 +453,8 @@ github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220809123759-3094d3e0c14b h1:J7 github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220809123759-3094d3e0c14b/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= github.com/nspcc-dev/neofs-api-go/v2 v2.11.0-pre.0.20211201134523-3604d96f3fe1/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= github.com/nspcc-dev/neofs-api-go/v2 v2.11.1/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= -github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220827080658-9e17cdfc7647 h1:00JDCprdZG15n8z58EaFvJlmvZ4uESUii8MSzk869JM= -github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220827080658-9e17cdfc7647/go.mod h1:NAaDfOnFWIbAFkTj7pNQ+cknVue0JbdeRT9QQaeBCEY= +github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220919124434-cf868188ef9c h1:YZwtBY9uypaShbe/NLhosDanIfxt8VhQlSLYUeFIWv8= +github.com/nspcc-dev/neofs-api-go/v2 v2.13.2-0.20220919124434-cf868188ef9c/go.mod h1:DRIr0Ic1s+6QgdqmNFNLIqMqd7lNMJfYwkczlm1hDtM= github.com/nspcc-dev/neofs-contract v0.15.3/go.mod h1:BXVZUZUJxrmmDETglXHI8+5DSgn84B9y5DoSWqEjYCs= github.com/nspcc-dev/neofs-contract v0.15.5 h1:6Fsr1VRaG1klCWipWWPHvVkKaVS85tcxxsNDbvVB2zk= github.com/nspcc-dev/neofs-contract v0.15.5/go.mod h1:gN5bo2TlMvLbySImmg76DVj3jVmYgti2VVlQ+h/tcr0= @@ -465,8 +465,8 @@ github.com/nspcc-dev/neofs-crypto v0.4.0 h1:5LlrUAM5O0k1+sH/sktBtrgfWtq1pgpDs09f github.com/nspcc-dev/neofs-crypto v0.4.0/go.mod h1:6XJ8kbXgOfevbI2WMruOtI+qUJXNwSGM/E9eClXxPHs= github.com/nspcc-dev/neofs-sdk-go v0.0.0-20211201182451-a5b61c4f6477/go.mod h1:dfMtQWmBHYpl9Dez23TGtIUKiFvCIxUZq/CkSIhEpz4= github.com/nspcc-dev/neofs-sdk-go v0.0.0-20220113123743-7f3162110659/go.mod h1:/jay1lr3w7NQd/VDBkEhkJmDmyPNsu4W+QV2obsUV40= -github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220914073456-f75a5feba335 h1:Rj6lGjHW26NdsqEPUQYdKSlXl1TMFh2YFQQJIZdeeOI= -github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220914073456-f75a5feba335/go.mod h1:2UqI14Aib8VPUmsxKB5q8q51LY9zO/FyRSAVLeXXqLE= +github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220922065107-8e3173eacd23 h1:LhLIUt1CxIjacCBU9bntf3CW3RsjXpCECaoQFrK2tbE= +github.com/nspcc-dev/neofs-sdk-go v1.0.0-rc.6.0.20220922065107-8e3173eacd23/go.mod h1:lJ1K24ZW5MsUrAi2741cs8/gZ/jj61ilHe2NyfMuYMs= github.com/nspcc-dev/rfc6979 v0.1.0/go.mod h1:exhIh1PdpDC5vQmyEsGvc4YDM/lyQp/452QxGq/UEso= github.com/nspcc-dev/rfc6979 v0.2.0 h1:3e1WNxrN60/6N0DW7+UYisLeZJyfqZTNOjeV/toYvOE= github.com/nspcc-dev/rfc6979 v0.2.0/go.mod h1:exhIh1PdpDC5vQmyEsGvc4YDM/lyQp/452QxGq/UEso= diff --git a/pkg/morph/client/netmap/netmap.go b/pkg/morph/client/netmap/netmap.go index d099f680d..13f8c912c 100644 --- a/pkg/morph/client/netmap/netmap.go +++ b/pkg/morph/client/netmap/netmap.go @@ -28,7 +28,12 @@ func (c *Client) GetNetMapByEpoch(epoch uint64) (*netmap.NetMap, error) { epochSnapshotMethod, err) } - return unmarshalNetmap(res, epochSnapshotMethod) + nm, err := unmarshalNetmap(res, epochSnapshotMethod) + if err == nil { + nm.SetEpoch(epoch) + } + + return nm, err } // GetCandidates receives information list about candidates diff --git a/pkg/network/transport/netmap/grpc/service.go b/pkg/network/transport/netmap/grpc/service.go index 6a2d436a2..dc293e0fd 100644 --- a/pkg/network/transport/netmap/grpc/service.go +++ b/pkg/network/transport/netmap/grpc/service.go @@ -52,3 +52,18 @@ func (s *Server) NetworkInfo(ctx context.Context, req *netmapGRPC.NetworkInfoReq return resp.ToGRPCMessage().(*netmapGRPC.NetworkInfoResponse), nil } + +// NetmapSnapshot converts gRPC request message and passes it to internal netmap service. +func (s *Server) NetmapSnapshot(ctx context.Context, req *netmapGRPC.NetmapSnapshotRequest) (*netmapGRPC.NetmapSnapshotResponse, error) { + snapshotReq := new(netmap.SnapshotRequest) + if err := snapshotReq.FromGRPCMessage(req); err != nil { + return nil, err + } + + resp, err := s.srv.Snapshot(ctx, snapshotReq) + if err != nil { + return nil, err + } + + return resp.ToGRPCMessage().(*netmapGRPC.NetmapSnapshotResponse), nil +} diff --git a/pkg/services/control/convert.go b/pkg/services/control/convert.go index 373bbabee..39cad6aff 100644 --- a/pkg/services/control/convert.go +++ b/pkg/services/control/convert.go @@ -33,26 +33,6 @@ func (w *healthCheckResponseWrapper) FromGRPCMessage(m grpc.Message) error { return nil } -type netmapSnapshotResponseWrapper struct { - message.Message - m *NetmapSnapshotResponse -} - -func (w *netmapSnapshotResponseWrapper) ToGRPCMessage() grpc.Message { - return w.m -} - -func (w *netmapSnapshotResponseWrapper) FromGRPCMessage(m grpc.Message) error { - var ok bool - - w.m, ok = m.(*NetmapSnapshotResponse) - if !ok { - return message.NewUnexpectedMessageType(m, w.m) - } - - return nil -} - type setNetmapStatusResponseWrapper struct { message.Message m *SetNetmapStatusResponse diff --git a/pkg/services/control/ir/service.pb.go b/pkg/services/control/ir/service.pb.go index 8d3c40a41..7e1f7d9e3 100644 --- a/pkg/services/control/ir/service.pb.go +++ b/pkg/services/control/ir/service.pb.go @@ -1,16 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.5 +// protoc v3.21.6 // source: pkg/services/control/ir/service.proto package control import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( diff --git a/pkg/services/control/ir/service_grpc.pb.go b/pkg/services/control/ir/service_grpc.pb.go index 3753fae5c..7a053876e 100644 --- a/pkg/services/control/ir/service_grpc.pb.go +++ b/pkg/services/control/ir/service_grpc.pb.go @@ -1,13 +1,14 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.5 +// - protoc v3.21.6 // source: pkg/services/control/ir/service.proto package control import ( context "context" + grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" diff --git a/pkg/services/control/ir/types.pb.go b/pkg/services/control/ir/types.pb.go index a71db0969..d76fcc770 100644 --- a/pkg/services/control/ir/types.pb.go +++ b/pkg/services/control/ir/types.pb.go @@ -1,16 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.5 +// protoc v3.21.6 // source: pkg/services/control/ir/types.proto package control import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( diff --git a/pkg/services/control/rpc.go b/pkg/services/control/rpc.go index 20b4df980..6c70d9e6b 100644 --- a/pkg/services/control/rpc.go +++ b/pkg/services/control/rpc.go @@ -9,7 +9,6 @@ const serviceName = "control.ControlService" const ( rpcHealthCheck = "HealthCheck" - rpcNetmapSnapshot = "NetmapSnapshot" rpcSetNetmapStatus = "SetNetmapStatus" rpcDropObjects = "DropObjects" rpcListShards = "ListShards" @@ -42,28 +41,6 @@ func HealthCheck( return wResp.m, nil } -// NetmapSnapshot executes ControlService.NetmapSnapshot RPC. -func NetmapSnapshot( - cli *client.Client, - req *NetmapSnapshotRequest, - opts ...client.CallOption, -) (*NetmapSnapshotResponse, error) { - wResp := &netmapSnapshotResponseWrapper{ - m: new(NetmapSnapshotResponse), - } - - wReq := &requestWrapper{ - m: req, - } - - err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceName, rpcNetmapSnapshot), wReq, wResp, opts...) - if err != nil { - return nil, err - } - - return wResp.m, nil -} - // SetNetmapStatus executes ControlService.SetNetmapStatus RPC. func SetNetmapStatus( cli *client.Client, diff --git a/pkg/services/control/server/netmap_snapshot.go b/pkg/services/control/server/netmap_snapshot.go deleted file mode 100644 index d9fcfd529..000000000 --- a/pkg/services/control/server/netmap_snapshot.go +++ /dev/null @@ -1,91 +0,0 @@ -package control - -import ( - "context" - - "github.com/nspcc-dev/neofs-node/pkg/services/control" - netmapAPI "github.com/nspcc-dev/neofs-sdk-go/netmap" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -// NetmapSnapshot reads network map snapshot from Netmap storage. -func (s *Server) NetmapSnapshot(ctx context.Context, req *control.NetmapSnapshotRequest) (*control.NetmapSnapshotResponse, error) { - // verify request - if err := s.isValidRequest(req); err != nil { - return nil, status.Error(codes.PermissionDenied, err.Error()) - } - - // get current epoch - epoch, err := s.netMapSrc.Epoch() - if err != nil { - return nil, status.Error(codes.NotFound, err.Error()) - } - - apiNetMap, err := s.netMapSrc.GetNetMapByEpoch(epoch) - if err != nil { - return nil, status.Error(codes.NotFound, err.Error()) - } - - nm := new(control.Netmap) - nm.SetEpoch(epoch) - nm.SetNodes(nodesFromAPI(apiNetMap.Nodes())) - - // create and fill response - resp := new(control.NetmapSnapshotResponse) - - body := new(control.NetmapSnapshotResponse_Body) - resp.SetBody(body) - - body.SetNetmap(nm) - - // sign the response - if err := SignMessage(s.key, resp); err != nil { - return nil, status.Error(codes.Internal, err.Error()) - } - - return resp, nil -} - -func nodesFromAPI(apiNodes []netmapAPI.NodeInfo) []*control.NodeInfo { - nodes := make([]*control.NodeInfo, 0, len(apiNodes)) - - for i := range apiNodes { - node := new(control.NodeInfo) - node.SetPublicKey(apiNodes[i].PublicKey()) - - addrs := make([]string, 0, apiNodes[i].NumberOfNetworkEndpoints()) - netmapAPI.IterateNetworkEndpoints(apiNodes[i], func(s string) { - addrs = append(addrs, s) - }) - node.SetAddresses(addrs) - node.SetAttributes(attributesFromAPI(apiNodes[i])) - - switch { - default: - node.SetState(control.NetmapStatus_STATUS_UNDEFINED) - case apiNodes[i].IsOnline(): - node.SetState(control.NetmapStatus_ONLINE) - case apiNodes[i].IsOffline(): - node.SetState(control.NetmapStatus_OFFLINE) - } - - nodes = append(nodes, node) - } - - return nodes -} - -func attributesFromAPI(apiNode netmapAPI.NodeInfo) []*control.NodeInfo_Attribute { - attrs := make([]*control.NodeInfo_Attribute, 0, apiNode.NumberOfAttributes()) - - apiNode.IterateAttributes(func(key, value string) { - a := new(control.NodeInfo_Attribute) - a.SetKey(key) - a.SetValue(value) - - attrs = append(attrs, a) - }) - - return attrs -} diff --git a/pkg/services/control/service.go b/pkg/services/control/service.go index 2cf9ee774..acab74591 100644 --- a/pkg/services/control/service.go +++ b/pkg/services/control/service.go @@ -28,27 +28,6 @@ func (x *HealthCheckResponse) SetBody(v *HealthCheckResponse_Body) { } } -// SetBody sets get netmap snapshot request body. -func (x *NetmapSnapshotRequest) SetBody(v *NetmapSnapshotRequest_Body) { - if x != nil { - x.Body = v - } -} - -// SetNetmap sets structure of the current network map. -func (x *NetmapSnapshotResponse_Body) SetNetmap(v *Netmap) { - if x != nil { - x.Netmap = v - } -} - -// SetBody sets get netmap snapshot response body. -func (x *NetmapSnapshotResponse) SetBody(v *NetmapSnapshotResponse_Body) { - if x != nil { - x.Body = v - } -} - // SetStatus sets new storage node status in NeoFS network map. func (x *SetNetmapStatusRequest_Body) SetStatus(v NetmapStatus) { if x != nil { diff --git a/pkg/services/control/service.pb.go b/pkg/services/control/service.pb.go index 919642a90..0bef278bd 100644 --- a/pkg/services/control/service.pb.go +++ b/pkg/services/control/service.pb.go @@ -1,16 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.5 +// protoc v3.21.6 // source: pkg/services/control/service.proto package control import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( @@ -136,122 +137,6 @@ func (x *HealthCheckResponse) GetSignature() *Signature { return nil } -// Get netmap snapshot request. -type NetmapSnapshotRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Body of get netmap snapshot request message. - Body *NetmapSnapshotRequest_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 *NetmapSnapshotRequest) Reset() { - *x = NetmapSnapshotRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NetmapSnapshotRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetmapSnapshotRequest) ProtoMessage() {} - -func (x *NetmapSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[2] - 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 NetmapSnapshotRequest.ProtoReflect.Descriptor instead. -func (*NetmapSnapshotRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{2} -} - -func (x *NetmapSnapshotRequest) GetBody() *NetmapSnapshotRequest_Body { - if x != nil { - return x.Body - } - return nil -} - -func (x *NetmapSnapshotRequest) GetSignature() *Signature { - if x != nil { - return x.Signature - } - return nil -} - -// Get netmap snapshot request. -type NetmapSnapshotResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Body of get netmap snapshot response message. - Body *NetmapSnapshotResponse_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 *NetmapSnapshotResponse) Reset() { - *x = NetmapSnapshotResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NetmapSnapshotResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetmapSnapshotResponse) ProtoMessage() {} - -func (x *NetmapSnapshotResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[3] - 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 NetmapSnapshotResponse.ProtoReflect.Descriptor instead. -func (*NetmapSnapshotResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{3} -} - -func (x *NetmapSnapshotResponse) GetBody() *NetmapSnapshotResponse_Body { - if x != nil { - return x.Body - } - return nil -} - -func (x *NetmapSnapshotResponse) GetSignature() *Signature { - if x != nil { - return x.Signature - } - return nil -} - // Set netmap status request. type SetNetmapStatusRequest struct { state protoimpl.MessageState @@ -267,7 +152,7 @@ type SetNetmapStatusRequest struct { func (x *SetNetmapStatusRequest) Reset() { *x = SetNetmapStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[4] + mi := &file_pkg_services_control_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -280,7 +165,7 @@ func (x *SetNetmapStatusRequest) String() string { func (*SetNetmapStatusRequest) ProtoMessage() {} func (x *SetNetmapStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[4] + mi := &file_pkg_services_control_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -293,7 +178,7 @@ func (x *SetNetmapStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetNetmapStatusRequest.ProtoReflect.Descriptor instead. func (*SetNetmapStatusRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{4} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{2} } func (x *SetNetmapStatusRequest) GetBody() *SetNetmapStatusRequest_Body { @@ -325,7 +210,7 @@ type SetNetmapStatusResponse struct { func (x *SetNetmapStatusResponse) Reset() { *x = SetNetmapStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[5] + mi := &file_pkg_services_control_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -338,7 +223,7 @@ func (x *SetNetmapStatusResponse) String() string { func (*SetNetmapStatusResponse) ProtoMessage() {} func (x *SetNetmapStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[5] + mi := &file_pkg_services_control_service_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -351,7 +236,7 @@ func (x *SetNetmapStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetNetmapStatusResponse.ProtoReflect.Descriptor instead. func (*SetNetmapStatusResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{5} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{3} } func (x *SetNetmapStatusResponse) GetBody() *SetNetmapStatusResponse_Body { @@ -383,7 +268,7 @@ type DropObjectsRequest struct { func (x *DropObjectsRequest) Reset() { *x = DropObjectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[6] + mi := &file_pkg_services_control_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -396,7 +281,7 @@ func (x *DropObjectsRequest) String() string { func (*DropObjectsRequest) ProtoMessage() {} func (x *DropObjectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[6] + mi := &file_pkg_services_control_service_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -409,7 +294,7 @@ func (x *DropObjectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DropObjectsRequest.ProtoReflect.Descriptor instead. func (*DropObjectsRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{6} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{4} } func (x *DropObjectsRequest) GetBody() *DropObjectsRequest_Body { @@ -441,7 +326,7 @@ type DropObjectsResponse struct { func (x *DropObjectsResponse) Reset() { *x = DropObjectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[7] + mi := &file_pkg_services_control_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -454,7 +339,7 @@ func (x *DropObjectsResponse) String() string { func (*DropObjectsResponse) ProtoMessage() {} func (x *DropObjectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[7] + mi := &file_pkg_services_control_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -467,7 +352,7 @@ func (x *DropObjectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DropObjectsResponse.ProtoReflect.Descriptor instead. func (*DropObjectsResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{7} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{5} } func (x *DropObjectsResponse) GetBody() *DropObjectsResponse_Body { @@ -499,7 +384,7 @@ type ListShardsRequest struct { func (x *ListShardsRequest) Reset() { *x = ListShardsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[8] + mi := &file_pkg_services_control_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -512,7 +397,7 @@ func (x *ListShardsRequest) String() string { func (*ListShardsRequest) ProtoMessage() {} func (x *ListShardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[8] + mi := &file_pkg_services_control_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -525,7 +410,7 @@ func (x *ListShardsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListShardsRequest.ProtoReflect.Descriptor instead. func (*ListShardsRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{8} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{6} } func (x *ListShardsRequest) GetBody() *ListShardsRequest_Body { @@ -557,7 +442,7 @@ type ListShardsResponse struct { func (x *ListShardsResponse) Reset() { *x = ListShardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[9] + mi := &file_pkg_services_control_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -570,7 +455,7 @@ func (x *ListShardsResponse) String() string { func (*ListShardsResponse) ProtoMessage() {} func (x *ListShardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[9] + mi := &file_pkg_services_control_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -583,7 +468,7 @@ func (x *ListShardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListShardsResponse.ProtoReflect.Descriptor instead. func (*ListShardsResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{9} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{7} } func (x *ListShardsResponse) GetBody() *ListShardsResponse_Body { @@ -615,7 +500,7 @@ type SetShardModeRequest struct { func (x *SetShardModeRequest) Reset() { *x = SetShardModeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[10] + mi := &file_pkg_services_control_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -628,7 +513,7 @@ func (x *SetShardModeRequest) String() string { func (*SetShardModeRequest) ProtoMessage() {} func (x *SetShardModeRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[10] + mi := &file_pkg_services_control_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -641,7 +526,7 @@ func (x *SetShardModeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetShardModeRequest.ProtoReflect.Descriptor instead. func (*SetShardModeRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{10} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{8} } func (x *SetShardModeRequest) GetBody() *SetShardModeRequest_Body { @@ -673,7 +558,7 @@ type SetShardModeResponse struct { func (x *SetShardModeResponse) Reset() { *x = SetShardModeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[11] + mi := &file_pkg_services_control_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -686,7 +571,7 @@ func (x *SetShardModeResponse) String() string { func (*SetShardModeResponse) ProtoMessage() {} func (x *SetShardModeResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[11] + mi := &file_pkg_services_control_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -699,7 +584,7 @@ func (x *SetShardModeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetShardModeResponse.ProtoReflect.Descriptor instead. func (*SetShardModeResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{11} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{9} } func (x *SetShardModeResponse) GetBody() *SetShardModeResponse_Body { @@ -731,7 +616,7 @@ type DumpShardRequest struct { func (x *DumpShardRequest) Reset() { *x = DumpShardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[12] + mi := &file_pkg_services_control_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -744,7 +629,7 @@ func (x *DumpShardRequest) String() string { func (*DumpShardRequest) ProtoMessage() {} func (x *DumpShardRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[12] + mi := &file_pkg_services_control_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -757,7 +642,7 @@ func (x *DumpShardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DumpShardRequest.ProtoReflect.Descriptor instead. func (*DumpShardRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{10} } func (x *DumpShardRequest) GetBody() *DumpShardRequest_Body { @@ -789,7 +674,7 @@ type DumpShardResponse struct { func (x *DumpShardResponse) Reset() { *x = DumpShardResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[13] + mi := &file_pkg_services_control_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -802,7 +687,7 @@ func (x *DumpShardResponse) String() string { func (*DumpShardResponse) ProtoMessage() {} func (x *DumpShardResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[13] + mi := &file_pkg_services_control_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -815,7 +700,7 @@ func (x *DumpShardResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DumpShardResponse.ProtoReflect.Descriptor instead. func (*DumpShardResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{11} } func (x *DumpShardResponse) GetBody() *DumpShardResponse_Body { @@ -847,7 +732,7 @@ type RestoreShardRequest struct { func (x *RestoreShardRequest) Reset() { *x = RestoreShardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[14] + mi := &file_pkg_services_control_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -860,7 +745,7 @@ func (x *RestoreShardRequest) String() string { func (*RestoreShardRequest) ProtoMessage() {} func (x *RestoreShardRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[14] + 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 { @@ -873,7 +758,7 @@ func (x *RestoreShardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreShardRequest.ProtoReflect.Descriptor instead. func (*RestoreShardRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{14} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12} } func (x *RestoreShardRequest) GetBody() *RestoreShardRequest_Body { @@ -905,7 +790,7 @@ type RestoreShardResponse struct { func (x *RestoreShardResponse) Reset() { *x = RestoreShardResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[15] + mi := &file_pkg_services_control_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -918,7 +803,7 @@ func (x *RestoreShardResponse) String() string { func (*RestoreShardResponse) ProtoMessage() {} func (x *RestoreShardResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[15] + 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 { @@ -931,7 +816,7 @@ func (x *RestoreShardResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreShardResponse.ProtoReflect.Descriptor instead. func (*RestoreShardResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{15} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13} } func (x *RestoreShardResponse) GetBody() *RestoreShardResponse_Body { @@ -963,7 +848,7 @@ type SynchronizeTreeRequest struct { func (x *SynchronizeTreeRequest) Reset() { *x = SynchronizeTreeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[16] + mi := &file_pkg_services_control_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -976,7 +861,7 @@ func (x *SynchronizeTreeRequest) String() string { func (*SynchronizeTreeRequest) ProtoMessage() {} func (x *SynchronizeTreeRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[16] + 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 { @@ -989,7 +874,7 @@ func (x *SynchronizeTreeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeTreeRequest.ProtoReflect.Descriptor instead. func (*SynchronizeTreeRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{16} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{14} } func (x *SynchronizeTreeRequest) GetBody() *SynchronizeTreeRequest_Body { @@ -1021,7 +906,7 @@ type SynchronizeTreeResponse struct { func (x *SynchronizeTreeResponse) Reset() { *x = SynchronizeTreeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[17] + mi := &file_pkg_services_control_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1034,7 +919,7 @@ func (x *SynchronizeTreeResponse) String() string { func (*SynchronizeTreeResponse) ProtoMessage() {} func (x *SynchronizeTreeResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[17] + 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 { @@ -1047,7 +932,7 @@ func (x *SynchronizeTreeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeTreeResponse.ProtoReflect.Descriptor instead. func (*SynchronizeTreeResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{17} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{15} } func (x *SynchronizeTreeResponse) GetBody() *SynchronizeTreeResponse_Body { @@ -1077,7 +962,7 @@ type EvacuateShardRequest struct { func (x *EvacuateShardRequest) Reset() { *x = EvacuateShardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[18] + mi := &file_pkg_services_control_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1090,7 +975,7 @@ func (x *EvacuateShardRequest) String() string { func (*EvacuateShardRequest) ProtoMessage() {} func (x *EvacuateShardRequest) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[18] + 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 { @@ -1103,7 +988,7 @@ func (x *EvacuateShardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EvacuateShardRequest.ProtoReflect.Descriptor instead. func (*EvacuateShardRequest) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{18} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{16} } func (x *EvacuateShardRequest) GetBody() *EvacuateShardRequest_Body { @@ -1133,7 +1018,7 @@ type EvacuateShardResponse struct { func (x *EvacuateShardResponse) Reset() { *x = EvacuateShardResponse{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[19] + mi := &file_pkg_services_control_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1146,7 +1031,7 @@ func (x *EvacuateShardResponse) String() string { func (*EvacuateShardResponse) ProtoMessage() {} func (x *EvacuateShardResponse) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[19] + 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 { @@ -1159,7 +1044,7 @@ func (x *EvacuateShardResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EvacuateShardResponse.ProtoReflect.Descriptor instead. func (*EvacuateShardResponse) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{19} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{17} } func (x *EvacuateShardResponse) GetBody() *EvacuateShardResponse_Body { @@ -1186,7 +1071,7 @@ type HealthCheckRequest_Body struct { func (x *HealthCheckRequest_Body) Reset() { *x = HealthCheckRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[20] + mi := &file_pkg_services_control_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1199,7 +1084,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[20] + 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 { @@ -1230,7 +1115,7 @@ type HealthCheckResponse_Body struct { func (x *HealthCheckResponse_Body) Reset() { *x = HealthCheckResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[21] + mi := &file_pkg_services_control_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1243,7 +1128,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[21] + 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 { @@ -1273,94 +1158,6 @@ func (x *HealthCheckResponse_Body) GetHealthStatus() HealthStatus { return HealthStatus_HEALTH_STATUS_UNDEFINED } -// Get netmap snapshot request body. -type NetmapSnapshotRequest_Body struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *NetmapSnapshotRequest_Body) Reset() { - *x = NetmapSnapshotRequest_Body{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NetmapSnapshotRequest_Body) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetmapSnapshotRequest_Body) ProtoMessage() {} - -func (x *NetmapSnapshotRequest_Body) ProtoReflect() protoreflect.Message { - 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 { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetmapSnapshotRequest_Body.ProtoReflect.Descriptor instead. -func (*NetmapSnapshotRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{2, 0} -} - -// Get netmap snapshot response body -type NetmapSnapshotResponse_Body struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Structure of the requested network map. - Netmap *Netmap `protobuf:"bytes,1,opt,name=netmap,proto3" json:"netmap,omitempty"` -} - -func (x *NetmapSnapshotResponse_Body) Reset() { - *x = NetmapSnapshotResponse_Body{} - if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NetmapSnapshotResponse_Body) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NetmapSnapshotResponse_Body) ProtoMessage() {} - -func (x *NetmapSnapshotResponse_Body) ProtoReflect() protoreflect.Message { - 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 { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NetmapSnapshotResponse_Body.ProtoReflect.Descriptor instead. -func (*NetmapSnapshotResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{3, 0} -} - -func (x *NetmapSnapshotResponse_Body) GetNetmap() *Netmap { - if x != nil { - return x.Netmap - } - return nil -} - // Set netmap status request body. type SetNetmapStatusRequest_Body struct { state protoimpl.MessageState @@ -1374,7 +1171,7 @@ type SetNetmapStatusRequest_Body struct { func (x *SetNetmapStatusRequest_Body) Reset() { *x = SetNetmapStatusRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[24] + mi := &file_pkg_services_control_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1387,7 +1184,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[24] + 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 { @@ -1400,7 +1197,7 @@ func (x *SetNetmapStatusRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SetNetmapStatusRequest_Body.ProtoReflect.Descriptor instead. func (*SetNetmapStatusRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{4, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{2, 0} } func (x *SetNetmapStatusRequest_Body) GetStatus() NetmapStatus { @@ -1420,7 +1217,7 @@ type SetNetmapStatusResponse_Body struct { func (x *SetNetmapStatusResponse_Body) Reset() { *x = SetNetmapStatusResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[25] + mi := &file_pkg_services_control_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1433,7 +1230,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[25] + 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 { @@ -1446,7 +1243,7 @@ func (x *SetNetmapStatusResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SetNetmapStatusResponse_Body.ProtoReflect.Descriptor instead. func (*SetNetmapStatusResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{5, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{3, 0} } // Request body structure. @@ -1463,7 +1260,7 @@ type DropObjectsRequest_Body struct { func (x *DropObjectsRequest_Body) Reset() { *x = DropObjectsRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[26] + mi := &file_pkg_services_control_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1476,7 +1273,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[26] + 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 { @@ -1489,7 +1286,7 @@ func (x *DropObjectsRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use DropObjectsRequest_Body.ProtoReflect.Descriptor instead. func (*DropObjectsRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{6, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{4, 0} } func (x *DropObjectsRequest_Body) GetAddressList() [][]byte { @@ -1509,7 +1306,7 @@ type DropObjectsResponse_Body struct { func (x *DropObjectsResponse_Body) Reset() { *x = DropObjectsResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[27] + mi := &file_pkg_services_control_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1522,7 +1319,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[27] + 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 { @@ -1535,7 +1332,7 @@ func (x *DropObjectsResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use DropObjectsResponse_Body.ProtoReflect.Descriptor instead. func (*DropObjectsResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{7, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{5, 0} } // Request body structure. @@ -1548,7 +1345,7 @@ type ListShardsRequest_Body struct { func (x *ListShardsRequest_Body) Reset() { *x = ListShardsRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[28] + mi := &file_pkg_services_control_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1561,7 +1358,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[28] + 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 { @@ -1574,7 +1371,7 @@ func (x *ListShardsRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use ListShardsRequest_Body.ProtoReflect.Descriptor instead. func (*ListShardsRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{8, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{6, 0} } // Response body structure. @@ -1590,7 +1387,7 @@ type ListShardsResponse_Body struct { func (x *ListShardsResponse_Body) Reset() { *x = ListShardsResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[29] + mi := &file_pkg_services_control_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1603,7 +1400,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[29] + 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 { @@ -1616,7 +1413,7 @@ func (x *ListShardsResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use ListShardsResponse_Body.ProtoReflect.Descriptor instead. func (*ListShardsResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{9, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{7, 0} } func (x *ListShardsResponse_Body) GetShards() []*ShardInfo { @@ -1643,7 +1440,7 @@ type SetShardModeRequest_Body struct { func (x *SetShardModeRequest_Body) Reset() { *x = SetShardModeRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[30] + mi := &file_pkg_services_control_service_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1656,7 +1453,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[30] + 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 { @@ -1669,7 +1466,7 @@ func (x *SetShardModeRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SetShardModeRequest_Body.ProtoReflect.Descriptor instead. func (*SetShardModeRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{10, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{8, 0} } func (x *SetShardModeRequest_Body) GetShard_ID() []byte { @@ -1703,7 +1500,7 @@ type SetShardModeResponse_Body struct { func (x *SetShardModeResponse_Body) Reset() { *x = SetShardModeResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[31] + mi := &file_pkg_services_control_service_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1716,7 +1513,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[31] + 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 { @@ -1729,7 +1526,7 @@ func (x *SetShardModeResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SetShardModeResponse_Body.ProtoReflect.Descriptor instead. func (*SetShardModeResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{11, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{9, 0} } // Request body structure. @@ -1749,7 +1546,7 @@ type DumpShardRequest_Body struct { func (x *DumpShardRequest_Body) Reset() { *x = DumpShardRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[32] + mi := &file_pkg_services_control_service_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1762,7 +1559,7 @@ func (x *DumpShardRequest_Body) String() string { func (*DumpShardRequest_Body) ProtoMessage() {} func (x *DumpShardRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[32] + mi := &file_pkg_services_control_service_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1775,7 +1572,7 @@ func (x *DumpShardRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use DumpShardRequest_Body.ProtoReflect.Descriptor instead. func (*DumpShardRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{10, 0} } func (x *DumpShardRequest_Body) GetShard_ID() []byte { @@ -1809,7 +1606,7 @@ type DumpShardResponse_Body struct { func (x *DumpShardResponse_Body) Reset() { *x = DumpShardResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[33] + mi := &file_pkg_services_control_service_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1822,7 +1619,7 @@ func (x *DumpShardResponse_Body) String() string { func (*DumpShardResponse_Body) ProtoMessage() {} func (x *DumpShardResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[33] + mi := &file_pkg_services_control_service_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1835,7 +1632,7 @@ func (x *DumpShardResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use DumpShardResponse_Body.ProtoReflect.Descriptor instead. func (*DumpShardResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{11, 0} } // Request body structure. @@ -1855,7 +1652,7 @@ type RestoreShardRequest_Body struct { func (x *RestoreShardRequest_Body) Reset() { *x = RestoreShardRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[34] + mi := &file_pkg_services_control_service_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1868,7 +1665,7 @@ func (x *RestoreShardRequest_Body) String() string { func (*RestoreShardRequest_Body) ProtoMessage() {} func (x *RestoreShardRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[34] + mi := &file_pkg_services_control_service_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1881,7 +1678,7 @@ func (x *RestoreShardRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreShardRequest_Body.ProtoReflect.Descriptor instead. func (*RestoreShardRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{14, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{12, 0} } func (x *RestoreShardRequest_Body) GetShard_ID() []byte { @@ -1915,7 +1712,7 @@ type RestoreShardResponse_Body struct { func (x *RestoreShardResponse_Body) Reset() { *x = RestoreShardResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[35] + mi := &file_pkg_services_control_service_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1928,7 +1725,7 @@ func (x *RestoreShardResponse_Body) String() string { func (*RestoreShardResponse_Body) ProtoMessage() {} func (x *RestoreShardResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[35] + mi := &file_pkg_services_control_service_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1941,7 +1738,7 @@ func (x *RestoreShardResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use RestoreShardResponse_Body.ProtoReflect.Descriptor instead. func (*RestoreShardResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{15, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{13, 0} } // Request body structure. @@ -1959,7 +1756,7 @@ type SynchronizeTreeRequest_Body struct { func (x *SynchronizeTreeRequest_Body) Reset() { *x = SynchronizeTreeRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[36] + mi := &file_pkg_services_control_service_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1972,7 +1769,7 @@ func (x *SynchronizeTreeRequest_Body) String() string { func (*SynchronizeTreeRequest_Body) ProtoMessage() {} func (x *SynchronizeTreeRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[36] + mi := &file_pkg_services_control_service_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1985,7 +1782,7 @@ func (x *SynchronizeTreeRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeTreeRequest_Body.ProtoReflect.Descriptor instead. func (*SynchronizeTreeRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{16, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{14, 0} } func (x *SynchronizeTreeRequest_Body) GetContainerId() []byte { @@ -2019,7 +1816,7 @@ type SynchronizeTreeResponse_Body struct { func (x *SynchronizeTreeResponse_Body) Reset() { *x = SynchronizeTreeResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[37] + mi := &file_pkg_services_control_service_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2032,7 +1829,7 @@ func (x *SynchronizeTreeResponse_Body) String() string { func (*SynchronizeTreeResponse_Body) ProtoMessage() {} func (x *SynchronizeTreeResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[37] + mi := &file_pkg_services_control_service_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2045,7 +1842,7 @@ func (x *SynchronizeTreeResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use SynchronizeTreeResponse_Body.ProtoReflect.Descriptor instead. func (*SynchronizeTreeResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{17, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{15, 0} } // Request body structure. @@ -2063,7 +1860,7 @@ type EvacuateShardRequest_Body struct { func (x *EvacuateShardRequest_Body) Reset() { *x = EvacuateShardRequest_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[38] + mi := &file_pkg_services_control_service_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2076,7 +1873,7 @@ func (x *EvacuateShardRequest_Body) String() string { func (*EvacuateShardRequest_Body) ProtoMessage() {} func (x *EvacuateShardRequest_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[38] + mi := &file_pkg_services_control_service_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2089,7 +1886,7 @@ func (x *EvacuateShardRequest_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use EvacuateShardRequest_Body.ProtoReflect.Descriptor instead. func (*EvacuateShardRequest_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{18, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{16, 0} } func (x *EvacuateShardRequest_Body) GetShard_ID() []byte { @@ -2118,7 +1915,7 @@ type EvacuateShardResponse_Body struct { func (x *EvacuateShardResponse_Body) Reset() { *x = EvacuateShardResponse_Body{} if protoimpl.UnsafeEnabled { - mi := &file_pkg_services_control_service_proto_msgTypes[39] + mi := &file_pkg_services_control_service_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2131,7 +1928,7 @@ func (x *EvacuateShardResponse_Body) String() string { func (*EvacuateShardResponse_Body) ProtoMessage() {} func (x *EvacuateShardResponse_Body) ProtoReflect() protoreflect.Message { - mi := &file_pkg_services_control_service_proto_msgTypes[39] + mi := &file_pkg_services_control_service_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2144,7 +1941,7 @@ func (x *EvacuateShardResponse_Body) ProtoReflect() protoreflect.Message { // Deprecated: Use EvacuateShardResponse_Body.ProtoReflect.Descriptor instead. func (*EvacuateShardResponse_Body) Descriptor() ([]byte, []int) { - return file_pkg_services_control_service_proto_rawDescGZIP(), []int{19, 0} + return file_pkg_services_control_service_proto_rawDescGZIP(), []int{17, 0} } func (x *EvacuateShardResponse_Body) GetCount() uint32 { @@ -2186,256 +1983,231 @@ var file_pkg_services_control_service_proto_rawDesc = []byte{ 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8a, 0x01, 0x0a, 0x15, 0x4e, 0x65, 0x74, 0x6d, - 0x61, 0x70, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 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, 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, 0x22, 0xb5, 0x01, 0x0a, 0x16, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 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, 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, 0x2f, 0x0a, 0x04, 0x42, - 0x6f, 0x64, 0x79, 0x12, 0x27, 0x0a, 0x06, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, - 0x74, 0x6d, 0x61, 0x70, 0x52, 0x06, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x22, 0xbb, 0x01, 0x0a, - 0x16, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 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, 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, 0x35, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2d, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x53, - 0x65, 0x74, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 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, 0x22, 0xa7, 0x01, 0x0a, 0x12, - 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 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, 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, 0x29, 0x0a, 0x04, 0x42, 0x6f, - 0x64, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x13, 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, + 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbb, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4e, + 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 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, 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, 0x35, + 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4e, 0x65, 0x74, + 0x6d, 0x61, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 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, 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, 0x22, 0xa7, 0x01, 0x0a, 0x12, 0x44, 0x72, 0x6f, 0x70, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, + 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 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, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, + 0x73, 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, 0x29, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x21, 0x0a, + 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x86, 0x01, 0x0a, 0x13, 0x44, 0x72, 0x6f, 0x70, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 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, 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, 0x22, 0x82, 0x01, 0x0a, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x73, 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, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x82, - 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 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, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 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, 0x06, 0x0a, 0x04, 0x42, - 0x6f, 0x64, 0x79, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xb0, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 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, + 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, 0x32, 0x0a, + 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 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, 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, 0x77, 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, 0x26, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, + 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, + 0x11, 0x72, 0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x65, 0x74, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x88, 0x01, 0x0a, 0x14, + 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 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, 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, 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, 0x32, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x68, - 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x22, 0xf7, 0x01, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x68, - 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 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, 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, 0x77, 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, 0x26, 0x0a, 0x04, 0x6d, 0x6f, - 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, - 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x22, 0x88, 0x01, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 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, 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, 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, 0x22, - 0xe2, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, - 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0x88, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, - 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0x22, - 0xe0, 0x01, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, - 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, - 0x65, 0x65, 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, 0x5a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x21, - 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x74, 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, - 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, - 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, + 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xe2, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 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, 0x06, 0x0a, 0x04, 0x42, - 0x6f, 0x64, 0x79, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, - 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, + 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, + 0x88, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0x22, 0xe0, 0x01, 0x0a, 0x16, 0x53, + 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, + 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 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, 0x5a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, + 0x74, 0x72, 0x65, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x72, 0x65, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x8e, 0x01, + 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, + 0x65, 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, 0x46, 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, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, - 0x6f, 0x72, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xa0, - 0x01, 0x0a, 0x15, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x2e, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 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, 0x1c, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x32, 0x98, 0x06, 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, 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, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, - 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, - 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, - 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, - 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, - 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, - 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 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, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x06, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x22, 0xc8, + 0x01, 0x0a, 0x14, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 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, 0x46, 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, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x67, 0x6e, + 0x6f, 0x72, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x15, 0x45, 0x76, + 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, 0x76, 0x61, 0x63, + 0x75, 0x61, 0x74, 0x65, 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, 0x1c, + 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0xc5, 0x05, 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, 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, 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, 0x12, 0x4b, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, + 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, + 0x65, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, 0x63, + 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x53, 0x79, 0x6e, + 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0d, 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, + 0x45, 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x45, + 0x76, 0x61, 0x63, 0x75, 0x61, 0x74, 0x65, 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 ( @@ -2450,127 +2222,115 @@ 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, 40) +var file_pkg_services_control_service_proto_msgTypes = make([]protoimpl.MessageInfo, 36) var file_pkg_services_control_service_proto_goTypes = []interface{}{ (*HealthCheckRequest)(nil), // 0: control.HealthCheckRequest (*HealthCheckResponse)(nil), // 1: control.HealthCheckResponse - (*NetmapSnapshotRequest)(nil), // 2: control.NetmapSnapshotRequest - (*NetmapSnapshotResponse)(nil), // 3: control.NetmapSnapshotResponse - (*SetNetmapStatusRequest)(nil), // 4: control.SetNetmapStatusRequest - (*SetNetmapStatusResponse)(nil), // 5: control.SetNetmapStatusResponse - (*DropObjectsRequest)(nil), // 6: control.DropObjectsRequest - (*DropObjectsResponse)(nil), // 7: control.DropObjectsResponse - (*ListShardsRequest)(nil), // 8: control.ListShardsRequest - (*ListShardsResponse)(nil), // 9: control.ListShardsResponse - (*SetShardModeRequest)(nil), // 10: control.SetShardModeRequest - (*SetShardModeResponse)(nil), // 11: control.SetShardModeResponse - (*DumpShardRequest)(nil), // 12: control.DumpShardRequest - (*DumpShardResponse)(nil), // 13: control.DumpShardResponse - (*RestoreShardRequest)(nil), // 14: control.RestoreShardRequest - (*RestoreShardResponse)(nil), // 15: control.RestoreShardResponse - (*SynchronizeTreeRequest)(nil), // 16: control.SynchronizeTreeRequest - (*SynchronizeTreeResponse)(nil), // 17: control.SynchronizeTreeResponse - (*EvacuateShardRequest)(nil), // 18: control.EvacuateShardRequest - (*EvacuateShardResponse)(nil), // 19: control.EvacuateShardResponse - (*HealthCheckRequest_Body)(nil), // 20: control.HealthCheckRequest.Body - (*HealthCheckResponse_Body)(nil), // 21: control.HealthCheckResponse.Body - (*NetmapSnapshotRequest_Body)(nil), // 22: control.NetmapSnapshotRequest.Body - (*NetmapSnapshotResponse_Body)(nil), // 23: control.NetmapSnapshotResponse.Body - (*SetNetmapStatusRequest_Body)(nil), // 24: control.SetNetmapStatusRequest.Body - (*SetNetmapStatusResponse_Body)(nil), // 25: control.SetNetmapStatusResponse.Body - (*DropObjectsRequest_Body)(nil), // 26: control.DropObjectsRequest.Body - (*DropObjectsResponse_Body)(nil), // 27: control.DropObjectsResponse.Body - (*ListShardsRequest_Body)(nil), // 28: control.ListShardsRequest.Body - (*ListShardsResponse_Body)(nil), // 29: control.ListShardsResponse.Body - (*SetShardModeRequest_Body)(nil), // 30: control.SetShardModeRequest.Body - (*SetShardModeResponse_Body)(nil), // 31: control.SetShardModeResponse.Body - (*DumpShardRequest_Body)(nil), // 32: control.DumpShardRequest.Body - (*DumpShardResponse_Body)(nil), // 33: control.DumpShardResponse.Body - (*RestoreShardRequest_Body)(nil), // 34: control.RestoreShardRequest.Body - (*RestoreShardResponse_Body)(nil), // 35: control.RestoreShardResponse.Body - (*SynchronizeTreeRequest_Body)(nil), // 36: control.SynchronizeTreeRequest.Body - (*SynchronizeTreeResponse_Body)(nil), // 37: control.SynchronizeTreeResponse.Body - (*EvacuateShardRequest_Body)(nil), // 38: control.EvacuateShardRequest.Body - (*EvacuateShardResponse_Body)(nil), // 39: control.EvacuateShardResponse.Body - (*Signature)(nil), // 40: control.Signature - (NetmapStatus)(0), // 41: control.NetmapStatus - (HealthStatus)(0), // 42: control.HealthStatus - (*Netmap)(nil), // 43: control.Netmap - (*ShardInfo)(nil), // 44: control.ShardInfo - (ShardMode)(0), // 45: control.ShardMode + (*SetNetmapStatusRequest)(nil), // 2: control.SetNetmapStatusRequest + (*SetNetmapStatusResponse)(nil), // 3: control.SetNetmapStatusResponse + (*DropObjectsRequest)(nil), // 4: control.DropObjectsRequest + (*DropObjectsResponse)(nil), // 5: control.DropObjectsResponse + (*ListShardsRequest)(nil), // 6: control.ListShardsRequest + (*ListShardsResponse)(nil), // 7: control.ListShardsResponse + (*SetShardModeRequest)(nil), // 8: control.SetShardModeRequest + (*SetShardModeResponse)(nil), // 9: control.SetShardModeResponse + (*DumpShardRequest)(nil), // 10: control.DumpShardRequest + (*DumpShardResponse)(nil), // 11: control.DumpShardResponse + (*RestoreShardRequest)(nil), // 12: control.RestoreShardRequest + (*RestoreShardResponse)(nil), // 13: control.RestoreShardResponse + (*SynchronizeTreeRequest)(nil), // 14: control.SynchronizeTreeRequest + (*SynchronizeTreeResponse)(nil), // 15: control.SynchronizeTreeResponse + (*EvacuateShardRequest)(nil), // 16: control.EvacuateShardRequest + (*EvacuateShardResponse)(nil), // 17: control.EvacuateShardResponse + (*HealthCheckRequest_Body)(nil), // 18: control.HealthCheckRequest.Body + (*HealthCheckResponse_Body)(nil), // 19: control.HealthCheckResponse.Body + (*SetNetmapStatusRequest_Body)(nil), // 20: control.SetNetmapStatusRequest.Body + (*SetNetmapStatusResponse_Body)(nil), // 21: control.SetNetmapStatusResponse.Body + (*DropObjectsRequest_Body)(nil), // 22: control.DropObjectsRequest.Body + (*DropObjectsResponse_Body)(nil), // 23: control.DropObjectsResponse.Body + (*ListShardsRequest_Body)(nil), // 24: control.ListShardsRequest.Body + (*ListShardsResponse_Body)(nil), // 25: control.ListShardsResponse.Body + (*SetShardModeRequest_Body)(nil), // 26: control.SetShardModeRequest.Body + (*SetShardModeResponse_Body)(nil), // 27: control.SetShardModeResponse.Body + (*DumpShardRequest_Body)(nil), // 28: control.DumpShardRequest.Body + (*DumpShardResponse_Body)(nil), // 29: control.DumpShardResponse.Body + (*RestoreShardRequest_Body)(nil), // 30: control.RestoreShardRequest.Body + (*RestoreShardResponse_Body)(nil), // 31: control.RestoreShardResponse.Body + (*SynchronizeTreeRequest_Body)(nil), // 32: control.SynchronizeTreeRequest.Body + (*SynchronizeTreeResponse_Body)(nil), // 33: control.SynchronizeTreeResponse.Body + (*EvacuateShardRequest_Body)(nil), // 34: control.EvacuateShardRequest.Body + (*EvacuateShardResponse_Body)(nil), // 35: control.EvacuateShardResponse.Body + (*Signature)(nil), // 36: control.Signature + (NetmapStatus)(0), // 37: control.NetmapStatus + (HealthStatus)(0), // 38: control.HealthStatus + (*ShardInfo)(nil), // 39: control.ShardInfo + (ShardMode)(0), // 40: control.ShardMode } var file_pkg_services_control_service_proto_depIdxs = []int32{ - 20, // 0: control.HealthCheckRequest.body:type_name -> control.HealthCheckRequest.Body - 40, // 1: control.HealthCheckRequest.signature:type_name -> control.Signature - 21, // 2: control.HealthCheckResponse.body:type_name -> control.HealthCheckResponse.Body - 40, // 3: control.HealthCheckResponse.signature:type_name -> control.Signature - 22, // 4: control.NetmapSnapshotRequest.body:type_name -> control.NetmapSnapshotRequest.Body - 40, // 5: control.NetmapSnapshotRequest.signature:type_name -> control.Signature - 23, // 6: control.NetmapSnapshotResponse.body:type_name -> control.NetmapSnapshotResponse.Body - 40, // 7: control.NetmapSnapshotResponse.signature:type_name -> control.Signature - 24, // 8: control.SetNetmapStatusRequest.body:type_name -> control.SetNetmapStatusRequest.Body - 40, // 9: control.SetNetmapStatusRequest.signature:type_name -> control.Signature - 25, // 10: control.SetNetmapStatusResponse.body:type_name -> control.SetNetmapStatusResponse.Body - 40, // 11: control.SetNetmapStatusResponse.signature:type_name -> control.Signature - 26, // 12: control.DropObjectsRequest.body:type_name -> control.DropObjectsRequest.Body - 40, // 13: control.DropObjectsRequest.signature:type_name -> control.Signature - 27, // 14: control.DropObjectsResponse.body:type_name -> control.DropObjectsResponse.Body - 40, // 15: control.DropObjectsResponse.signature:type_name -> control.Signature - 28, // 16: control.ListShardsRequest.body:type_name -> control.ListShardsRequest.Body - 40, // 17: control.ListShardsRequest.signature:type_name -> control.Signature - 29, // 18: control.ListShardsResponse.body:type_name -> control.ListShardsResponse.Body - 40, // 19: control.ListShardsResponse.signature:type_name -> control.Signature - 30, // 20: control.SetShardModeRequest.body:type_name -> control.SetShardModeRequest.Body - 40, // 21: control.SetShardModeRequest.signature:type_name -> control.Signature - 31, // 22: control.SetShardModeResponse.body:type_name -> control.SetShardModeResponse.Body - 40, // 23: control.SetShardModeResponse.signature:type_name -> control.Signature - 32, // 24: control.DumpShardRequest.body:type_name -> control.DumpShardRequest.Body - 40, // 25: control.DumpShardRequest.signature:type_name -> control.Signature - 33, // 26: control.DumpShardResponse.body:type_name -> control.DumpShardResponse.Body - 40, // 27: control.DumpShardResponse.signature:type_name -> control.Signature - 34, // 28: control.RestoreShardRequest.body:type_name -> control.RestoreShardRequest.Body - 40, // 29: control.RestoreShardRequest.signature:type_name -> control.Signature - 35, // 30: control.RestoreShardResponse.body:type_name -> control.RestoreShardResponse.Body - 40, // 31: control.RestoreShardResponse.signature:type_name -> control.Signature - 36, // 32: control.SynchronizeTreeRequest.body:type_name -> control.SynchronizeTreeRequest.Body - 40, // 33: control.SynchronizeTreeRequest.signature:type_name -> control.Signature - 37, // 34: control.SynchronizeTreeResponse.body:type_name -> control.SynchronizeTreeResponse.Body - 40, // 35: control.SynchronizeTreeResponse.signature:type_name -> control.Signature - 38, // 36: control.EvacuateShardRequest.body:type_name -> control.EvacuateShardRequest.Body - 40, // 37: control.EvacuateShardRequest.signature:type_name -> control.Signature - 39, // 38: control.EvacuateShardResponse.body:type_name -> control.EvacuateShardResponse.Body - 40, // 39: control.EvacuateShardResponse.signature:type_name -> control.Signature - 41, // 40: control.HealthCheckResponse.Body.netmap_status:type_name -> control.NetmapStatus - 42, // 41: control.HealthCheckResponse.Body.health_status:type_name -> control.HealthStatus - 43, // 42: control.NetmapSnapshotResponse.Body.netmap:type_name -> control.Netmap - 41, // 43: control.SetNetmapStatusRequest.Body.status:type_name -> control.NetmapStatus - 44, // 44: control.ListShardsResponse.Body.shards:type_name -> control.ShardInfo - 45, // 45: control.SetShardModeRequest.Body.mode:type_name -> control.ShardMode - 0, // 46: control.ControlService.HealthCheck:input_type -> control.HealthCheckRequest - 2, // 47: control.ControlService.NetmapSnapshot:input_type -> control.NetmapSnapshotRequest - 4, // 48: control.ControlService.SetNetmapStatus:input_type -> control.SetNetmapStatusRequest - 6, // 49: control.ControlService.DropObjects:input_type -> control.DropObjectsRequest - 8, // 50: control.ControlService.ListShards:input_type -> control.ListShardsRequest - 10, // 51: control.ControlService.SetShardMode:input_type -> control.SetShardModeRequest - 12, // 52: control.ControlService.DumpShard:input_type -> control.DumpShardRequest - 14, // 53: control.ControlService.RestoreShard:input_type -> control.RestoreShardRequest - 16, // 54: control.ControlService.SynchronizeTree:input_type -> control.SynchronizeTreeRequest - 18, // 55: control.ControlService.EvacuateShard:input_type -> control.EvacuateShardRequest - 1, // 56: control.ControlService.HealthCheck:output_type -> control.HealthCheckResponse - 3, // 57: control.ControlService.NetmapSnapshot:output_type -> control.NetmapSnapshotResponse - 5, // 58: control.ControlService.SetNetmapStatus:output_type -> control.SetNetmapStatusResponse - 7, // 59: control.ControlService.DropObjects:output_type -> control.DropObjectsResponse - 9, // 60: control.ControlService.ListShards:output_type -> control.ListShardsResponse - 11, // 61: control.ControlService.SetShardMode:output_type -> control.SetShardModeResponse - 13, // 62: control.ControlService.DumpShard:output_type -> control.DumpShardResponse - 15, // 63: control.ControlService.RestoreShard:output_type -> control.RestoreShardResponse - 17, // 64: control.ControlService.SynchronizeTree:output_type -> control.SynchronizeTreeResponse - 19, // 65: control.ControlService.EvacuateShard:output_type -> control.EvacuateShardResponse - 56, // [56:66] is the sub-list for method output_type - 46, // [46:56] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 18, // 0: control.HealthCheckRequest.body:type_name -> control.HealthCheckRequest.Body + 36, // 1: control.HealthCheckRequest.signature:type_name -> control.Signature + 19, // 2: control.HealthCheckResponse.body:type_name -> control.HealthCheckResponse.Body + 36, // 3: control.HealthCheckResponse.signature:type_name -> control.Signature + 20, // 4: control.SetNetmapStatusRequest.body:type_name -> control.SetNetmapStatusRequest.Body + 36, // 5: control.SetNetmapStatusRequest.signature:type_name -> control.Signature + 21, // 6: control.SetNetmapStatusResponse.body:type_name -> control.SetNetmapStatusResponse.Body + 36, // 7: control.SetNetmapStatusResponse.signature:type_name -> control.Signature + 22, // 8: control.DropObjectsRequest.body:type_name -> control.DropObjectsRequest.Body + 36, // 9: control.DropObjectsRequest.signature:type_name -> control.Signature + 23, // 10: control.DropObjectsResponse.body:type_name -> control.DropObjectsResponse.Body + 36, // 11: control.DropObjectsResponse.signature:type_name -> control.Signature + 24, // 12: control.ListShardsRequest.body:type_name -> control.ListShardsRequest.Body + 36, // 13: control.ListShardsRequest.signature:type_name -> control.Signature + 25, // 14: control.ListShardsResponse.body:type_name -> control.ListShardsResponse.Body + 36, // 15: control.ListShardsResponse.signature:type_name -> control.Signature + 26, // 16: control.SetShardModeRequest.body:type_name -> control.SetShardModeRequest.Body + 36, // 17: control.SetShardModeRequest.signature:type_name -> control.Signature + 27, // 18: control.SetShardModeResponse.body:type_name -> control.SetShardModeResponse.Body + 36, // 19: control.SetShardModeResponse.signature:type_name -> control.Signature + 28, // 20: control.DumpShardRequest.body:type_name -> control.DumpShardRequest.Body + 36, // 21: control.DumpShardRequest.signature:type_name -> control.Signature + 29, // 22: control.DumpShardResponse.body:type_name -> control.DumpShardResponse.Body + 36, // 23: control.DumpShardResponse.signature:type_name -> control.Signature + 30, // 24: control.RestoreShardRequest.body:type_name -> control.RestoreShardRequest.Body + 36, // 25: control.RestoreShardRequest.signature:type_name -> control.Signature + 31, // 26: control.RestoreShardResponse.body:type_name -> control.RestoreShardResponse.Body + 36, // 27: control.RestoreShardResponse.signature:type_name -> control.Signature + 32, // 28: control.SynchronizeTreeRequest.body:type_name -> control.SynchronizeTreeRequest.Body + 36, // 29: control.SynchronizeTreeRequest.signature:type_name -> control.Signature + 33, // 30: control.SynchronizeTreeResponse.body:type_name -> control.SynchronizeTreeResponse.Body + 36, // 31: control.SynchronizeTreeResponse.signature:type_name -> control.Signature + 34, // 32: control.EvacuateShardRequest.body:type_name -> control.EvacuateShardRequest.Body + 36, // 33: control.EvacuateShardRequest.signature:type_name -> control.Signature + 35, // 34: control.EvacuateShardResponse.body:type_name -> control.EvacuateShardResponse.Body + 36, // 35: control.EvacuateShardResponse.signature:type_name -> control.Signature + 37, // 36: control.HealthCheckResponse.Body.netmap_status:type_name -> control.NetmapStatus + 38, // 37: control.HealthCheckResponse.Body.health_status:type_name -> control.HealthStatus + 37, // 38: control.SetNetmapStatusRequest.Body.status:type_name -> control.NetmapStatus + 39, // 39: control.ListShardsResponse.Body.shards:type_name -> control.ShardInfo + 40, // 40: control.SetShardModeRequest.Body.mode:type_name -> control.ShardMode + 0, // 41: control.ControlService.HealthCheck:input_type -> control.HealthCheckRequest + 2, // 42: control.ControlService.SetNetmapStatus:input_type -> control.SetNetmapStatusRequest + 4, // 43: control.ControlService.DropObjects:input_type -> control.DropObjectsRequest + 6, // 44: control.ControlService.ListShards:input_type -> control.ListShardsRequest + 8, // 45: control.ControlService.SetShardMode:input_type -> control.SetShardModeRequest + 10, // 46: control.ControlService.DumpShard:input_type -> control.DumpShardRequest + 12, // 47: control.ControlService.RestoreShard:input_type -> control.RestoreShardRequest + 14, // 48: control.ControlService.SynchronizeTree:input_type -> control.SynchronizeTreeRequest + 16, // 49: control.ControlService.EvacuateShard:input_type -> control.EvacuateShardRequest + 1, // 50: control.ControlService.HealthCheck:output_type -> control.HealthCheckResponse + 3, // 51: control.ControlService.SetNetmapStatus:output_type -> control.SetNetmapStatusResponse + 5, // 52: control.ControlService.DropObjects:output_type -> control.DropObjectsResponse + 7, // 53: control.ControlService.ListShards:output_type -> control.ListShardsResponse + 9, // 54: control.ControlService.SetShardMode:output_type -> control.SetShardModeResponse + 11, // 55: control.ControlService.DumpShard:output_type -> control.DumpShardResponse + 13, // 56: control.ControlService.RestoreShard:output_type -> control.RestoreShardResponse + 15, // 57: control.ControlService.SynchronizeTree:output_type -> control.SynchronizeTreeResponse + 17, // 58: control.ControlService.EvacuateShard:output_type -> control.EvacuateShardResponse + 50, // [50:59] is the sub-list for method output_type + 41, // [41:50] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name } func init() { file_pkg_services_control_service_proto_init() } @@ -2605,30 +2365,6 @@ func file_pkg_services_control_service_proto_init() { } } file_pkg_services_control_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotRequest); 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[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotResponse); 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[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetNetmapStatusRequest); i { case 0: return &v.state @@ -2640,7 +2376,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetNetmapStatusResponse); i { case 0: return &v.state @@ -2652,7 +2388,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropObjectsRequest); i { case 0: return &v.state @@ -2664,7 +2400,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropObjectsResponse); i { case 0: return &v.state @@ -2676,7 +2412,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListShardsRequest); i { case 0: return &v.state @@ -2688,7 +2424,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListShardsResponse); i { case 0: return &v.state @@ -2700,7 +2436,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetShardModeRequest); i { case 0: return &v.state @@ -2712,7 +2448,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetShardModeResponse); i { case 0: return &v.state @@ -2724,7 +2460,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpShardRequest); i { case 0: return &v.state @@ -2736,7 +2472,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpShardResponse); i { case 0: return &v.state @@ -2748,7 +2484,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreShardRequest); i { case 0: return &v.state @@ -2760,7 +2496,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreShardResponse); i { case 0: return &v.state @@ -2772,7 +2508,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SynchronizeTreeRequest); i { case 0: return &v.state @@ -2784,7 +2520,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SynchronizeTreeResponse); i { case 0: return &v.state @@ -2796,7 +2532,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvacuateShardRequest); i { case 0: return &v.state @@ -2808,7 +2544,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvacuateShardResponse); i { case 0: return &v.state @@ -2820,7 +2556,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HealthCheckRequest_Body); i { case 0: return &v.state @@ -2832,7 +2568,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HealthCheckResponse_Body); i { case 0: return &v.state @@ -2844,31 +2580,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotRequest_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[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NetmapSnapshotResponse_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{} { + file_pkg_services_control_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetNetmapStatusRequest_Body); i { case 0: return &v.state @@ -2880,7 +2592,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetNetmapStatusResponse_Body); i { case 0: return &v.state @@ -2892,7 +2604,7 @@ 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{} { + file_pkg_services_control_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropObjectsRequest_Body); i { case 0: return &v.state @@ -2904,7 +2616,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DropObjectsResponse_Body); i { case 0: return &v.state @@ -2916,7 +2628,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListShardsRequest_Body); i { case 0: return &v.state @@ -2928,7 +2640,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListShardsResponse_Body); i { case 0: return &v.state @@ -2940,7 +2652,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetShardModeRequest_Body); i { case 0: return &v.state @@ -2952,7 +2664,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetShardModeResponse_Body); i { case 0: return &v.state @@ -2964,7 +2676,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpShardRequest_Body); i { case 0: return &v.state @@ -2976,7 +2688,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DumpShardResponse_Body); i { case 0: return &v.state @@ -2988,7 +2700,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreShardRequest_Body); i { case 0: return &v.state @@ -3000,7 +2712,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestoreShardResponse_Body); i { case 0: return &v.state @@ -3012,7 +2724,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SynchronizeTreeRequest_Body); i { case 0: return &v.state @@ -3024,7 +2736,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SynchronizeTreeResponse_Body); i { case 0: return &v.state @@ -3036,7 +2748,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvacuateShardRequest_Body); i { case 0: return &v.state @@ -3048,7 +2760,7 @@ func file_pkg_services_control_service_proto_init() { return nil } } - file_pkg_services_control_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + file_pkg_services_control_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EvacuateShardResponse_Body); i { case 0: return &v.state @@ -3067,7 +2779,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: 40, + NumMessages: 36, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/services/control/service.proto b/pkg/services/control/service.proto index 1d377c975..3f55d3ccb 100644 --- a/pkg/services/control/service.proto +++ b/pkg/services/control/service.proto @@ -11,9 +11,6 @@ service ControlService { // Performs health check of the storage node. rpc HealthCheck (HealthCheckRequest) returns (HealthCheckResponse); - // Returns network map snapshot of the current NeoFS epoch. - rpc NetmapSnapshot (NetmapSnapshotRequest) returns (NetmapSnapshotResponse); - // Sets status of the storage node in NeoFS network map. rpc SetNetmapStatus (SetNetmapStatusRequest) returns (SetNetmapStatusResponse); @@ -70,34 +67,6 @@ message HealthCheckResponse { Signature signature = 2; } -// Get netmap snapshot request. -message NetmapSnapshotRequest { - // Get netmap snapshot request body. - message Body { - } - - // Body of get netmap snapshot request message. - Body body = 1; - - // Body signature. - Signature signature = 2; -} - -// Get netmap snapshot request. -message NetmapSnapshotResponse { - // Get netmap snapshot response body - message Body { - // Structure of the requested network map. - Netmap netmap = 1 [json_name = "netmap"]; - } - - // Body of get netmap snapshot response message. - Body body = 1; - - // Body signature. - Signature signature = 2; -} - // Set netmap status request. message SetNetmapStatusRequest { // Set netmap status request body. diff --git a/pkg/services/control/service_grpc.pb.go b/pkg/services/control/service_grpc.pb.go index eeb96a662..f7523b98c 100644 --- a/pkg/services/control/service_grpc.pb.go +++ b/pkg/services/control/service_grpc.pb.go @@ -1,13 +1,14 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.5 +// - protoc v3.21.6 // source: pkg/services/control/service.proto package control import ( context "context" + grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -24,8 +25,6 @@ const _ = grpc.SupportPackageIsVersion7 type ControlServiceClient interface { // Performs health check of the storage node. HealthCheck(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) - // Returns network map snapshot of the current NeoFS epoch. - NetmapSnapshot(ctx context.Context, in *NetmapSnapshotRequest, opts ...grpc.CallOption) (*NetmapSnapshotResponse, error) // Sets status of the storage node in NeoFS network map. SetNetmapStatus(ctx context.Context, in *SetNetmapStatusRequest, opts ...grpc.CallOption) (*SetNetmapStatusResponse, error) // Mark objects to be removed from node's local object storage. @@ -61,15 +60,6 @@ func (c *controlServiceClient) HealthCheck(ctx context.Context, in *HealthCheckR return out, nil } -func (c *controlServiceClient) NetmapSnapshot(ctx context.Context, in *NetmapSnapshotRequest, opts ...grpc.CallOption) (*NetmapSnapshotResponse, error) { - out := new(NetmapSnapshotResponse) - err := c.cc.Invoke(ctx, "/control.ControlService/NetmapSnapshot", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *controlServiceClient) SetNetmapStatus(ctx context.Context, in *SetNetmapStatusRequest, opts ...grpc.CallOption) (*SetNetmapStatusResponse, error) { out := new(SetNetmapStatusResponse) err := c.cc.Invoke(ctx, "/control.ControlService/SetNetmapStatus", in, out, opts...) @@ -148,8 +138,6 @@ func (c *controlServiceClient) EvacuateShard(ctx context.Context, in *EvacuateSh type ControlServiceServer interface { // Performs health check of the storage node. HealthCheck(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) - // Returns network map snapshot of the current NeoFS epoch. - NetmapSnapshot(context.Context, *NetmapSnapshotRequest) (*NetmapSnapshotResponse, error) // Sets status of the storage node in NeoFS network map. SetNetmapStatus(context.Context, *SetNetmapStatusRequest) (*SetNetmapStatusResponse, error) // Mark objects to be removed from node's local object storage. @@ -175,9 +163,6 @@ type UnimplementedControlServiceServer struct { func (UnimplementedControlServiceServer) HealthCheck(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method HealthCheck not implemented") } -func (UnimplementedControlServiceServer) NetmapSnapshot(context.Context, *NetmapSnapshotRequest) (*NetmapSnapshotResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method NetmapSnapshot not implemented") -} func (UnimplementedControlServiceServer) SetNetmapStatus(context.Context, *SetNetmapStatusRequest) (*SetNetmapStatusResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SetNetmapStatus not implemented") } @@ -232,24 +217,6 @@ func _ControlService_HealthCheck_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } -func _ControlService_NetmapSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NetmapSnapshotRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ControlServiceServer).NetmapSnapshot(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/control.ControlService/NetmapSnapshot", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ControlServiceServer).NetmapSnapshot(ctx, req.(*NetmapSnapshotRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _ControlService_SetNetmapStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetNetmapStatusRequest) if err := dec(in); err != nil { @@ -405,10 +372,6 @@ var ControlService_ServiceDesc = grpc.ServiceDesc{ MethodName: "HealthCheck", Handler: _ControlService_HealthCheck_Handler, }, - { - MethodName: "NetmapSnapshot", - Handler: _ControlService_NetmapSnapshot_Handler, - }, { MethodName: "SetNetmapStatus", Handler: _ControlService_SetNetmapStatus_Handler, diff --git a/pkg/services/control/service_neofs.pb.go b/pkg/services/control/service_neofs.pb.go index e5aa50fea..70616a798 100644 --- a/pkg/services/control/service_neofs.pb.go +++ b/pkg/services/control/service_neofs.pb.go @@ -157,157 +157,6 @@ func (x *HealthCheckResponse) SetSignature(sig *Signature) { x.Signature = sig } -// StableSize returns the size of x in protobuf format. -// -// Structures with the same field values have the same binary size. -func (x *NetmapSnapshotRequest_Body) StableSize() (size int) { - return size -} - -// StableMarshal marshals x in protobuf binary format with stable field order. -// -// 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 *NetmapSnapshotRequest_Body) StableMarshal(buf []byte) []byte { - return buf -} - -// StableSize returns the size of x in protobuf format. -// -// Structures with the same field values have the same binary size. -func (x *NetmapSnapshotRequest) StableSize() (size int) { - size += proto.NestedStructureSize(1, x.Body) - size += proto.NestedStructureSize(2, x.Signature) - return size -} - -// StableMarshal marshals x in protobuf binary format with stable field order. -// -// 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 *NetmapSnapshotRequest) StableMarshal(buf []byte) []byte { - if x == nil { - return []byte{} - } - if buf == nil { - buf = make([]byte, x.StableSize()) - } - var offset int - offset += proto.NestedStructureMarshal(1, buf[offset:], x.Body) - offset += proto.NestedStructureMarshal(2, buf[offset:], x.Signature) - return buf -} - -// ReadSignedData fills buf with signed data of x. -// 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 *NetmapSnapshotRequest) SignedDataSize() int { - return x.GetBody().StableSize() -} - -// SignedDataSize returns size of the request signed data in bytes. -// -// Structures with the same field values have the same signed data size. -func (x *NetmapSnapshotRequest) ReadSignedData(buf []byte) ([]byte, error) { - return x.GetBody().StableMarshal(buf), nil -} - -func (x *NetmapSnapshotRequest) SetSignature(sig *Signature) { - x.Signature = sig -} - -// StableSize returns the size of x in protobuf format. -// -// Structures with the same field values have the same binary size. -func (x *NetmapSnapshotResponse_Body) StableSize() (size int) { - size += proto.NestedStructureSize(1, x.Netmap) - return size -} - -// StableMarshal marshals x in protobuf binary format with stable field order. -// -// 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 *NetmapSnapshotResponse_Body) StableMarshal(buf []byte) []byte { - if x == nil { - return []byte{} - } - if buf == nil { - buf = make([]byte, x.StableSize()) - } - var offset int - offset += proto.NestedStructureMarshal(1, buf[offset:], x.Netmap) - return buf -} - -// StableSize returns the size of x in protobuf format. -// -// Structures with the same field values have the same binary size. -func (x *NetmapSnapshotResponse) StableSize() (size int) { - size += proto.NestedStructureSize(1, x.Body) - size += proto.NestedStructureSize(2, x.Signature) - return size -} - -// StableMarshal marshals x in protobuf binary format with stable field order. -// -// 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 *NetmapSnapshotResponse) StableMarshal(buf []byte) []byte { - if x == nil { - return []byte{} - } - if buf == nil { - buf = make([]byte, x.StableSize()) - } - var offset int - offset += proto.NestedStructureMarshal(1, buf[offset:], x.Body) - offset += proto.NestedStructureMarshal(2, buf[offset:], x.Signature) - return buf -} - -// ReadSignedData fills buf with signed data of x. -// 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 *NetmapSnapshotResponse) SignedDataSize() int { - return x.GetBody().StableSize() -} - -// SignedDataSize returns size of the request signed data in bytes. -// -// Structures with the same field values have the same signed data size. -func (x *NetmapSnapshotResponse) ReadSignedData(buf []byte) ([]byte, error) { - return x.GetBody().StableMarshal(buf), nil -} - -func (x *NetmapSnapshotResponse) SetSignature(sig *Signature) { - x.Signature = sig -} - // StableSize returns the size of x in protobuf format. // // Structures with the same field values have the same binary size. diff --git a/pkg/services/control/service_test.go b/pkg/services/control/service_test.go index 8dbfffa4d..b64e67d7b 100644 --- a/pkg/services/control/service_test.go +++ b/pkg/services/control/service_test.go @@ -33,30 +33,6 @@ func equalHealthCheckResponseBodies(b1, b2 *control.HealthCheckResponse_Body) bo b1.GetHealthStatus() == b2.GetHealthStatus() } -func TestNetmapSnapshotResponse_Body_StableMarshal(t *testing.T) { - testStableMarshal(t, - generateNetmapSnapshotResponseBody(), - new(control.NetmapSnapshotResponse_Body), - func(m1, m2 protoMessage) bool { - return equalNetmapSnapshotResponseBodies( - m1.(*control.NetmapSnapshotResponse_Body), - m2.(*control.NetmapSnapshotResponse_Body), - ) - }, - ) -} - -func generateNetmapSnapshotResponseBody() *control.NetmapSnapshotResponse_Body { - body := new(control.NetmapSnapshotResponse_Body) - body.SetNetmap(generateNetmap()) - - return body -} - -func equalNetmapSnapshotResponseBodies(b1, b2 *control.NetmapSnapshotResponse_Body) bool { - return equalNetmaps(b1.GetNetmap(), b2.GetNetmap()) -} - func TestSetNetmapStatusRequest_Body_StableMarshal(t *testing.T) { testStableMarshal(t, generateSetNetmapStatusRequestBody(), diff --git a/pkg/services/control/types.pb.go b/pkg/services/control/types.pb.go index b1962abce..4f95fa12a 100644 --- a/pkg/services/control/types.pb.go +++ b/pkg/services/control/types.pb.go @@ -1,16 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.5 +// protoc v3.21.6 // source: pkg/services/control/types.proto package control import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( diff --git a/pkg/services/netmap/executor.go b/pkg/services/netmap/executor.go index 797478090..c4453327f 100644 --- a/pkg/services/netmap/executor.go +++ b/pkg/services/netmap/executor.go @@ -26,6 +26,10 @@ type NodeState interface { // Must return current node state // in NeoFS API v2 NodeInfo structure. LocalNodeInfo() (*netmap.NodeInfo, error) + + // ProcessCurrentNetMap passes current local network map of the storage node + // into the given handler. + ProcessCurrentNetMap(func(netmapSDK.NetMap)) } // NetworkInfo encapsulates source of the @@ -123,3 +127,19 @@ func (s *executorSvc) NetworkInfo( return resp, nil } + +func (s *executorSvc) Snapshot(_ context.Context, req *netmap.SnapshotRequest) (*netmap.SnapshotResponse, error) { + var nmV2 netmap.NetMap + + s.state.ProcessCurrentNetMap(func(netMap netmapSDK.NetMap) { + netMap.WriteToV2(&nmV2) + }) + + body := new(netmap.SnapshotResponseBody) + body.SetNetMap(&nmV2) + + resp := new(netmap.SnapshotResponse) + resp.SetBody(body) + + return resp, nil +} diff --git a/pkg/services/netmap/response.go b/pkg/services/netmap/response.go index 81d9f52a3..c0e81b7c7 100644 --- a/pkg/services/netmap/response.go +++ b/pkg/services/netmap/response.go @@ -48,3 +48,16 @@ func (s *responseService) NetworkInfo(ctx context.Context, req *netmap.NetworkIn return resp.(*netmap.NetworkInfoResponse), nil } + +func (s *responseService) Snapshot(ctx context.Context, req *netmap.SnapshotRequest) (*netmap.SnapshotResponse, error) { + resp, err := s.respSvc.HandleUnaryRequest(ctx, req, + func(ctx context.Context, req interface{}) (util.ResponseMessage, error) { + return s.svc.Snapshot(ctx, req.(*netmap.SnapshotRequest)) + }, + ) + if err != nil { + return nil, err + } + + return resp.(*netmap.SnapshotResponse), nil +} diff --git a/pkg/services/netmap/server.go b/pkg/services/netmap/server.go index 359d2ac90..cbd668396 100644 --- a/pkg/services/netmap/server.go +++ b/pkg/services/netmap/server.go @@ -10,4 +10,5 @@ import ( type Server interface { LocalNodeInfo(context.Context, *netmap.LocalNodeInfoRequest) (*netmap.LocalNodeInfoResponse, error) NetworkInfo(context.Context, *netmap.NetworkInfoRequest) (*netmap.NetworkInfoResponse, error) + Snapshot(context.Context, *netmap.SnapshotRequest) (*netmap.SnapshotResponse, error) } diff --git a/pkg/services/netmap/sign.go b/pkg/services/netmap/sign.go index 13473c441..73df0528d 100644 --- a/pkg/services/netmap/sign.go +++ b/pkg/services/netmap/sign.go @@ -54,3 +54,19 @@ func (s *signService) NetworkInfo(ctx context.Context, req *netmap.NetworkInfoRe return resp.(*netmap.NetworkInfoResponse), nil } + +func (s *signService) Snapshot(ctx context.Context, req *netmap.SnapshotRequest) (*netmap.SnapshotResponse, error) { + resp, err := s.sigSvc.HandleUnaryRequest(ctx, req, + func(ctx context.Context, req interface{}) (util.ResponseMessage, error) { + return s.svc.Snapshot(ctx, req.(*netmap.SnapshotRequest)) + }, + func() util.ResponseMessage { + return new(netmap.SnapshotResponse) + }, + ) + if err != nil { + return nil, err + } + + return resp.(*netmap.SnapshotResponse), nil +} diff --git a/pkg/services/tree/service.pb.go b/pkg/services/tree/service.pb.go index 3beaf2c9d..2d30dce79 100644 --- a/pkg/services/tree/service.pb.go +++ b/pkg/services/tree/service.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.4 +// protoc v3.21.6 // source: pkg/services/tree/service.proto package tree diff --git a/pkg/services/tree/service_grpc.pb.go b/pkg/services/tree/service_grpc.pb.go index acef88d12..fba0bfc0c 100644 --- a/pkg/services/tree/service_grpc.pb.go +++ b/pkg/services/tree/service_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.4 +// - protoc v3.21.6 // source: pkg/services/tree/service.proto package tree diff --git a/pkg/services/tree/types.pb.go b/pkg/services/tree/types.pb.go index 18075526e..75c56a189 100644 --- a/pkg/services/tree/types.pb.go +++ b/pkg/services/tree/types.pb.go @@ -4,7 +4,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.26.0 -// protoc v3.21.4 +// protoc v3.21.6 // source: pkg/services/tree/types.proto package tree