forked from TrueCloudLab/frostfs-api-go
Compare commits
2 commits
master
...
support/v2
Author | SHA1 | Date | |
---|---|---|---|
241a9f1ad0 | |||
c72590d831 |
91 changed files with 1886 additions and 5694 deletions
|
@ -16,6 +16,6 @@ jobs:
|
||||||
go-version: '1.21'
|
go-version: '1.21'
|
||||||
|
|
||||||
- name: Run commit format checker
|
- name: Run commit format checker
|
||||||
uses: https://git.frostfs.info/TrueCloudLab/dco-go@v3
|
uses: https://git.frostfs.info/TrueCloudLab/dco-go@v2
|
||||||
with:
|
with:
|
||||||
from: 'origin/${{ github.event.pull_request.base.ref }}'
|
from: 'origin/${{ github.event.pull_request.base.ref }}'
|
||||||
|
|
10
.gitlint
Normal file
10
.gitlint
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[general]
|
||||||
|
fail-without-commits=true
|
||||||
|
contrib=CC1
|
||||||
|
|
||||||
|
[title-match-regex]
|
||||||
|
regex=^\[\#[0-9Xx]+\]\s
|
||||||
|
|
||||||
|
[ignore-by-title]
|
||||||
|
regex=^Release(.*)
|
||||||
|
ignore=title-match-regex
|
|
@ -18,25 +18,13 @@ repos:
|
||||||
- id: end-of-file-fixer
|
- id: end-of-file-fixer
|
||||||
exclude: ".key$"
|
exclude: ".key$"
|
||||||
|
|
||||||
- repo: local
|
|
||||||
hooks:
|
|
||||||
- id: gofumpt
|
|
||||||
name: gofumpt
|
|
||||||
entry: make fumpt
|
|
||||||
pass_filenames: false
|
|
||||||
types: [go]
|
|
||||||
language: system
|
|
||||||
|
|
||||||
- repo: local
|
|
||||||
hooks:
|
|
||||||
- id: go-unit-tests
|
|
||||||
name: go unit tests
|
|
||||||
entry: make test GOFLAGS=''
|
|
||||||
pass_filenames: false
|
|
||||||
types: [go]
|
|
||||||
language: system
|
|
||||||
|
|
||||||
- repo: https://github.com/golangci/golangci-lint
|
- repo: https://github.com/golangci/golangci-lint
|
||||||
rev: v1.56.2
|
rev: v1.51.2
|
||||||
hooks:
|
hooks:
|
||||||
- id: golangci-lint
|
- id: golangci-lint
|
||||||
|
|
||||||
|
- repo: https://github.com/jorisroovers/gitlint
|
||||||
|
rev: v0.18.0
|
||||||
|
hooks:
|
||||||
|
- id: gitlint
|
||||||
|
stages: [commit-msg]
|
||||||
|
|
24
Makefile
24
Makefile
|
@ -3,35 +3,40 @@ SHELL = bash
|
||||||
|
|
||||||
VERSION ?= $(shell git describe --tags --match "v*" --abbrev=8 --dirty --always)
|
VERSION ?= $(shell git describe --tags --match "v*" --abbrev=8 --dirty --always)
|
||||||
|
|
||||||
.PHONY: dep fmts fumpt imports protoc test lint version help
|
.PHONY: dep fmts fmt imports protoc test lint version help
|
||||||
|
|
||||||
# Pull go dependencies
|
# Pull go dependencies
|
||||||
dep:
|
dep:
|
||||||
@printf "⇒ Tidy requirements : "
|
@printf "⇒ Tidy requirements : "
|
||||||
CGO_ENABLED=0 \
|
CGO_ENABLED=0 \
|
||||||
|
GO111MODULE=on \
|
||||||
go mod tidy -v && echo OK
|
go mod tidy -v && echo OK
|
||||||
@printf "⇒ Download requirements: "
|
@printf "⇒ Download requirements: "
|
||||||
CGO_ENABLED=0 \
|
CGO_ENABLED=0 \
|
||||||
|
GO111MODULE=on \
|
||||||
go mod download && echo OK
|
go mod download && echo OK
|
||||||
@printf "⇒ Install test requirements: "
|
@printf "⇒ Install test requirements: "
|
||||||
CGO_ENABLED=0 \
|
CGO_ENABLED=0 \
|
||||||
|
GO111MODULE=on \
|
||||||
go test ./... && echo OK
|
go test ./... && echo OK
|
||||||
|
|
||||||
# Run all code formatters
|
# Run all code formatters
|
||||||
fmts: fumpt imports
|
fmts: fmt imports
|
||||||
|
|
||||||
|
# Reformat code
|
||||||
|
fmt:
|
||||||
|
@echo "⇒ Processing gofmt check"
|
||||||
|
@for f in `find . -type f -name '*.go' -not -path './vendor/*' -not -name '*.pb.go' -prune`; do \
|
||||||
|
GO111MODULE=on gofmt -s -w $$f; \
|
||||||
|
done
|
||||||
|
|
||||||
# Reformat imports
|
# Reformat imports
|
||||||
imports:
|
imports:
|
||||||
@echo "⇒ Processing goimports check"
|
@echo "⇒ Processing goimports check"
|
||||||
@for f in `find . -type f -name '*.go' -not -path './vendor/*' -not -name '*.pb.go' -prune`; do \
|
@for f in `find . -type f -name '*.go' -not -path './vendor/*' -not -name '*.pb.go' -prune`; do \
|
||||||
goimports -w $$f; \
|
GO111MODULE=on goimports -w $$f; \
|
||||||
done
|
done
|
||||||
|
|
||||||
# Run gofumpt
|
|
||||||
fumpt:
|
|
||||||
@echo "⇒ Processing gofumpt check"
|
|
||||||
@gofumpt -l -w .
|
|
||||||
|
|
||||||
# Regenerate code for proto files
|
# Regenerate code for proto files
|
||||||
protoc:
|
protoc:
|
||||||
@GOPRIVATE=github.com/TrueCloudLab go mod vendor
|
@GOPRIVATE=github.com/TrueCloudLab go mod vendor
|
||||||
|
@ -49,10 +54,9 @@ protoc:
|
||||||
rm -rf vendor
|
rm -rf vendor
|
||||||
|
|
||||||
# Run Unit Test with go test
|
# Run Unit Test with go test
|
||||||
test: GOFLAGS ?= "-count=1"
|
|
||||||
test:
|
test:
|
||||||
@echo "⇒ Running go test"
|
@echo "⇒ Running go test"
|
||||||
@GOFLAGS="$(GOFLAGS)" go test ./...
|
@GO111MODULE=on go test ./...
|
||||||
|
|
||||||
# Run linters
|
# Run linters
|
||||||
lint:
|
lint:
|
||||||
|
|
7
accounting/grpc/service.pb.go
generated
7
accounting/grpc/service.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: accounting/grpc/service.proto
|
// source: accounting/grpc/service.proto
|
||||||
|
|
||||||
package accounting
|
package accounting
|
||||||
|
@ -216,8 +216,7 @@ func (x *BalanceRequest_Body) GetOwnerId() *grpc1.OwnerID {
|
||||||
}
|
}
|
||||||
|
|
||||||
// The amount of funds in GAS token for the `OwnerID`'s account requested.
|
// The amount of funds in GAS token for the `OwnerID`'s account requested.
|
||||||
// Balance is given in the `Decimal` format to avoid precision issues with
|
// Balance is given in the `Decimal` format to avoid precision issues with rounding.
|
||||||
// rounding.
|
|
||||||
type BalanceResponse_Body struct {
|
type BalanceResponse_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
|
2
accounting/grpc/service_grpc.pb.go
generated
2
accounting/grpc/service_grpc.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v4.25.3
|
// - protoc v4.23.4
|
||||||
// source: accounting/grpc/service.proto
|
// source: accounting/grpc/service.proto
|
||||||
|
|
||||||
package accounting
|
package accounting
|
||||||
|
|
4
accounting/grpc/types.pb.go
generated
4
accounting/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: accounting/grpc/types.proto
|
// source: accounting/grpc/types.proto
|
||||||
|
|
||||||
package accounting
|
package accounting
|
||||||
|
|
|
@ -2,8 +2,6 @@ package acl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
acl "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
|
acl "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/grpc"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape"
|
|
||||||
apeGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
refsGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
refsGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
||||||
|
@ -166,7 +164,7 @@ func (f *HeaderFilter) ToGRPCMessage() grpc.Message {
|
||||||
|
|
||||||
m.SetKey(f.key)
|
m.SetKey(f.key)
|
||||||
m.SetValue(f.value)
|
m.SetValue(f.value)
|
||||||
m.SetHeaderType(HeaderTypeToGRPCField(f.hdrType))
|
m.SetHeader(HeaderTypeToGRPCField(f.hdrType))
|
||||||
m.SetMatchType(MatchTypeToGRPCField(f.matchType))
|
m.SetMatchType(MatchTypeToGRPCField(f.matchType))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -420,54 +418,6 @@ func (l *TokenLifetime) FromGRPCMessage(m grpc.Message) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *APEOverride) ToGRPCMessage() grpc.Message {
|
|
||||||
var m *acl.BearerToken_Body_APEOverride
|
|
||||||
|
|
||||||
if c != nil {
|
|
||||||
m = new(acl.BearerToken_Body_APEOverride)
|
|
||||||
|
|
||||||
m.SetTarget(c.target.ToGRPCMessage().(*apeGRPC.ChainTarget))
|
|
||||||
|
|
||||||
if len(c.chains) > 0 {
|
|
||||||
apeChains := make([]*apeGRPC.Chain, len(c.chains))
|
|
||||||
for i := range c.chains {
|
|
||||||
apeChains[i] = c.chains[i].ToGRPCMessage().(*apeGRPC.Chain)
|
|
||||||
}
|
|
||||||
m.SetChains(apeChains)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *APEOverride) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
v, ok := m.(*acl.BearerToken_Body_APEOverride)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
if targetGRPC := v.GetTarget(); targetGRPC != nil {
|
|
||||||
if c.target == nil {
|
|
||||||
c.target = new(ape.ChainTarget)
|
|
||||||
}
|
|
||||||
if err := c.target.FromGRPCMessage(v.GetTarget()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if apeChains := v.GetChains(); len(apeChains) > 0 {
|
|
||||||
c.chains = make([]*ape.Chain, len(apeChains))
|
|
||||||
for i := range apeChains {
|
|
||||||
c.chains[i] = new(ape.Chain)
|
|
||||||
if err := c.chains[i].FromGRPCMessage(apeChains[i]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bt *BearerTokenBody) ToGRPCMessage() grpc.Message {
|
func (bt *BearerTokenBody) ToGRPCMessage() grpc.Message {
|
||||||
var m *acl.BearerToken_Body
|
var m *acl.BearerToken_Body
|
||||||
|
|
||||||
|
@ -477,8 +427,7 @@ func (bt *BearerTokenBody) ToGRPCMessage() grpc.Message {
|
||||||
m.SetOwnerId(bt.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
|
m.SetOwnerId(bt.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
|
||||||
m.SetLifetime(bt.lifetime.ToGRPCMessage().(*acl.BearerToken_Body_TokenLifetime))
|
m.SetLifetime(bt.lifetime.ToGRPCMessage().(*acl.BearerToken_Body_TokenLifetime))
|
||||||
m.SetEaclTable(bt.eacl.ToGRPCMessage().(*acl.EACLTable))
|
m.SetEaclTable(bt.eacl.ToGRPCMessage().(*acl.EACLTable))
|
||||||
m.SetAllowImpersonate(bt.impersonate)
|
m.SetImpersonate(bt.impersonate)
|
||||||
m.SetAPEOverride(bt.apeOverride.ToGRPCMessage().(*acl.BearerToken_Body_APEOverride))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -528,19 +477,7 @@ func (bt *BearerTokenBody) FromGRPCMessage(m grpc.Message) error {
|
||||||
bt.eacl = new(Table)
|
bt.eacl = new(Table)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = bt.eacl.FromGRPCMessage(eacl); err != nil {
|
err = bt.eacl.FromGRPCMessage(eacl)
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if apeOverrideGRPC := v.GetApeOverride(); apeOverrideGRPC != nil {
|
|
||||||
if bt.apeOverride == nil {
|
|
||||||
bt.apeOverride = new(APEOverride)
|
|
||||||
}
|
|
||||||
err = bt.apeOverride.FromGRPCMessage(apeOverrideGRPC)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bt.impersonate = v.GetAllowImpersonate()
|
bt.impersonate = v.GetAllowImpersonate()
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package acl
|
package acl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -40,8 +39,8 @@ func (m *EACLRecord) SetTargets(v []*EACLRecord_Target) {
|
||||||
m.Targets = v
|
m.Targets = v
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetHeaderType sets header type of the eACL filter.
|
// SetHeader sets header type of the eACL filter.
|
||||||
func (m *EACLRecord_Filter) SetHeaderType(v HeaderType) {
|
func (m *EACLRecord_Filter) SetHeader(v HeaderType) {
|
||||||
m.HeaderType = v
|
m.HeaderType = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,18 +74,6 @@ func (m *BearerToken_Body) SetEaclTable(v *EACLTable) {
|
||||||
m.EaclTable = v
|
m.EaclTable = v
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *BearerToken_Body) SetAPEOverride(v *BearerToken_Body_APEOverride) {
|
|
||||||
m.ApeOverride = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *BearerToken_Body_APEOverride) SetChains(v []*ape.Chain) {
|
|
||||||
m.Chains = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *BearerToken_Body_APEOverride) SetTarget(v *ape.ChainTarget) {
|
|
||||||
m.Target = v
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetOwnerId sets identifier of the bearer token owner.
|
// SetOwnerId sets identifier of the bearer token owner.
|
||||||
func (m *BearerToken_Body) SetOwnerId(v *refs.OwnerID) {
|
func (m *BearerToken_Body) SetOwnerId(v *refs.OwnerID) {
|
||||||
m.OwnerId = v
|
m.OwnerId = v
|
||||||
|
@ -97,8 +84,8 @@ func (m *BearerToken_Body) SetLifetime(v *BearerToken_Body_TokenLifetime) {
|
||||||
m.Lifetime = v
|
m.Lifetime = v
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetAllowImpersonate allows impersonate.
|
// SetImpersonate allows impersonate.
|
||||||
func (m *BearerToken_Body) SetAllowImpersonate(v bool) {
|
func (m *BearerToken_Body) SetImpersonate(v bool) {
|
||||||
m.AllowImpersonate = v
|
m.AllowImpersonate = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
357
acl/grpc/types.pb.go
generated
357
acl/grpc/types.pb.go
generated
|
@ -1,13 +1,12 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: acl/grpc/types.proto
|
// source: acl/grpc/types.proto
|
||||||
|
|
||||||
package acl
|
package acl
|
||||||
|
|
||||||
import (
|
import (
|
||||||
grpc1 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
@ -33,8 +32,7 @@ const (
|
||||||
// System target rule is applied if sender is a storage node within the
|
// System target rule is applied if sender is a storage node within the
|
||||||
// container or an inner ring node
|
// container or an inner ring node
|
||||||
Role_SYSTEM Role = 2
|
Role_SYSTEM Role = 2
|
||||||
// Others target rule is applied if sender is neither a user nor a system
|
// Others target rule is applied if sender is neither a user nor a system target
|
||||||
// target
|
|
||||||
Role_OTHERS Role = 3
|
Role_OTHERS Role = 3
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -474,8 +472,8 @@ func (x *EACLTable) GetRecords() []*EACLRecord {
|
||||||
// used in the similar use cases, like providing authorisation to externally
|
// used in the similar use cases, like providing authorisation to externally
|
||||||
// authenticated party.
|
// authenticated party.
|
||||||
//
|
//
|
||||||
// BearerToken can be issued only by the container's owner and must be signed
|
// BearerToken can be issued only by the container's owner and must be signed using
|
||||||
// using the key associated with the container's `OwnerID`.
|
// the key associated with the container's `OwnerID`.
|
||||||
type BearerToken struct {
|
type BearerToken struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -697,8 +695,8 @@ func (x *EACLRecord_Target) GetKeys() [][]byte {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bearer Token body structure contains Extended ACL table issued by the
|
// Bearer Token body structure contains Extended ACL table issued by the container
|
||||||
// container owner with additional information preventing token abuse.
|
// owner with additional information preventing token abuse.
|
||||||
type BearerToken_Body struct {
|
type BearerToken_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -706,10 +704,8 @@ type BearerToken_Body struct {
|
||||||
|
|
||||||
// Table of Extended ACL rules to use instead of the ones attached to the
|
// Table of Extended ACL rules to use instead of the ones attached to the
|
||||||
// container. If it contains `container_id` field, bearer token is only
|
// container. If it contains `container_id` field, bearer token is only
|
||||||
// valid for this specific container. Otherwise, any container of the same
|
// valid for this specific container. Otherwise, any container of the same owner
|
||||||
// owner is allowed.
|
// is allowed.
|
||||||
//
|
|
||||||
// Deprecated: eACL tables are no longer relevant - `APEOverrides` should be used instead.
|
|
||||||
EaclTable *EACLTable `protobuf:"bytes,1,opt,name=eacl_table,json=eaclTable,proto3" json:"eacl_table,omitempty"`
|
EaclTable *EACLTable `protobuf:"bytes,1,opt,name=eacl_table,json=eaclTable,proto3" json:"eacl_table,omitempty"`
|
||||||
// `OwnerID` defines to whom the token was issued. It must match the request
|
// `OwnerID` defines to whom the token was issued. It must match the request
|
||||||
// originator's `OwnerID`. If empty, any token bearer will be accepted.
|
// originator's `OwnerID`. If empty, any token bearer will be accepted.
|
||||||
|
@ -719,8 +715,6 @@ type BearerToken_Body struct {
|
||||||
// AllowImpersonate flag to consider token signer as request owner.
|
// AllowImpersonate flag to consider token signer as request owner.
|
||||||
// If this field is true extended ACL table in token body isn't processed.
|
// If this field is true extended ACL table in token body isn't processed.
|
||||||
AllowImpersonate bool `protobuf:"varint,4,opt,name=allow_impersonate,json=allowImpersonate,proto3" json:"allow_impersonate,omitempty"`
|
AllowImpersonate bool `protobuf:"varint,4,opt,name=allow_impersonate,json=allowImpersonate,proto3" json:"allow_impersonate,omitempty"`
|
||||||
// APE override for the target.
|
|
||||||
ApeOverride *BearerToken_Body_APEOverride `protobuf:"bytes,5,opt,name=ape_override,json=apeOverride,proto3" json:"ape_override,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *BearerToken_Body) Reset() {
|
func (x *BearerToken_Body) Reset() {
|
||||||
|
@ -783,13 +777,6 @@ func (x *BearerToken_Body) GetAllowImpersonate() bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *BearerToken_Body) GetApeOverride() *BearerToken_Body_APEOverride {
|
|
||||||
if x != nil {
|
|
||||||
return x.ApeOverride
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Lifetime parameters of the token. Field names taken from
|
// Lifetime parameters of the token. Field names taken from
|
||||||
// [rfc7519](https://tools.ietf.org/html/rfc7519).
|
// [rfc7519](https://tools.ietf.org/html/rfc7519).
|
||||||
type BearerToken_Body_TokenLifetime struct {
|
type BearerToken_Body_TokenLifetime struct {
|
||||||
|
@ -858,189 +845,113 @@ func (x *BearerToken_Body_TokenLifetime) GetIat() uint64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// APEOverride is the list of APE chains defined for a target.
|
|
||||||
// These chains are meant to serve as overrides to the already defined (or even undefined)
|
|
||||||
// APE chains for the target (see contract `Policy`).
|
|
||||||
//
|
|
||||||
// The server-side processing of the bearer token with set APE overrides must verify if a client is permitted
|
|
||||||
// to override chains for the target, preventing unauthorized access through the APE mechanism.
|
|
||||||
type BearerToken_Body_APEOverride struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
// Target for which chains are applied.
|
|
||||||
Target *grpc1.ChainTarget `protobuf:"bytes,1,opt,name=target,proto3" json:"target,omitempty"`
|
|
||||||
// The list of APE chains.
|
|
||||||
Chains []*grpc1.Chain `protobuf:"bytes,2,rep,name=chains,proto3" json:"chains,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *BearerToken_Body_APEOverride) Reset() {
|
|
||||||
*x = BearerToken_Body_APEOverride{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_acl_grpc_types_proto_msgTypes[7]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *BearerToken_Body_APEOverride) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*BearerToken_Body_APEOverride) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *BearerToken_Body_APEOverride) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_acl_grpc_types_proto_msgTypes[7]
|
|
||||||
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 BearerToken_Body_APEOverride.ProtoReflect.Descriptor instead.
|
|
||||||
func (*BearerToken_Body_APEOverride) Descriptor() ([]byte, []int) {
|
|
||||||
return file_acl_grpc_types_proto_rawDescGZIP(), []int{2, 0, 1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *BearerToken_Body_APEOverride) GetTarget() *grpc1.ChainTarget {
|
|
||||||
if x != nil {
|
|
||||||
return x.Target
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *BearerToken_Body_APEOverride) GetChains() []*grpc1.Chain {
|
|
||||||
if x != nil {
|
|
||||||
return x.Chains
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var File_acl_grpc_types_proto protoreflect.FileDescriptor
|
var File_acl_grpc_types_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_acl_grpc_types_proto_rawDesc = []byte{
|
var file_acl_grpc_types_proto_rawDesc = []byte{
|
||||||
0x0a, 0x14, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
|
0x0a, 0x14, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x32, 0x2e, 0x61, 0x63, 0x6c, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63,
|
0x32, 0x2e, 0x61, 0x63, 0x6c, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f, 0x67, 0x72, 0x70, 0x63,
|
||||||
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x61, 0x70,
|
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x03, 0x0a,
|
||||||
0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f,
|
0x0a, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x6f,
|
||||||
0x74, 0x6f, 0x22, 0xda, 0x03, 0x0a, 0x0a, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72,
|
0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18,
|
||||||
0x64, 0x12, 0x36, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4f,
|
||||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74,
|
||||||
0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09,
|
0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20,
|
||||||
0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x06, 0x61, 0x63, 0x74,
|
0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
0x61, 0x63, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69,
|
||||||
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e,
|
0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20,
|
||||||
0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74,
|
0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x46,
|
||||||
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65,
|
0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3a,
|
||||||
0x63, 0x6f, 0x72, 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c,
|
0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
0x74, 0x65, 0x72, 0x73, 0x12, 0x3a, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18,
|
0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e,
|
||||||
0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65,
|
||||||
0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
|
0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x1a, 0xa5, 0x01, 0x0a, 0x06, 0x46,
|
||||||
0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73,
|
0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f,
|
||||||
0x1a, 0xa5, 0x01, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x68,
|
0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f,
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
|
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||||
0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
|
0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70,
|
||||||
0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x68, 0x65, 0x61,
|
0x65, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
|
||||||
0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68,
|
0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6e, 0x65,
|
0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52,
|
||||||
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x4d, 0x61, 0x74, 0x63,
|
0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
|
||||||
0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65,
|
0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
|
||||||
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
|
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
||||||
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28,
|
0x75, 0x65, 0x1a, 0x45, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x04,
|
||||||
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x45, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67,
|
0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x6e, 0x65, 0x6f,
|
||||||
0x65, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e,
|
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52,
|
||||||
0x32, 0x13, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
|
0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20,
|
||||||
0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6b,
|
0x03, 0x28, 0x0c, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22, 0xb3, 0x01, 0x0a, 0x09, 0x45, 0x41,
|
||||||
0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x22,
|
0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
|
||||||
0xb3, 0x01, 0x0a, 0x09, 0x45, 0x41, 0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x31, 0x0a,
|
0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
||||||
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f,
|
||||||
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
|
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||||
0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64,
|
0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63,
|
||||||
0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
|
0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x07, 0x72, 0x65,
|
||||||
0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
|
0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65,
|
||||||
0x12, 0x33, 0x0a, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28,
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c,
|
||||||
0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63,
|
0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22,
|
||||||
0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x07, 0x72, 0x65,
|
0xb0, 0x03, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12,
|
||||||
0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0xf3, 0x04, 0x0a, 0x0b, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72,
|
0x33, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
|
||||||
0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04,
|
||||||
0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e,
|
0x62, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
|
||||||
0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69,
|
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
|
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
|
||||||
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53,
|
0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0xb2, 0x02,
|
||||||
0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
|
0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x0a, 0x65, 0x61, 0x63, 0x6c, 0x5f, 0x74,
|
||||||
0x75, 0x72, 0x65, 0x1a, 0xf5, 0x03, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x37, 0x0a, 0x0a,
|
0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
|
||||||
0x65, 0x61, 0x63, 0x6c, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x45, 0x41, 0x43, 0x4c, 0x54,
|
||||||
0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c,
|
0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x65, 0x61, 0x63, 0x6c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12,
|
||||||
0x2e, 0x45, 0x41, 0x43, 0x4c, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x65, 0x61, 0x63, 0x6c,
|
0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69,
|
0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
|
||||||
0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65,
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44,
|
0x72, 0x49, 0x44, 0x12, 0x49, 0x0a, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18,
|
||||||
0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x49, 0x0a, 0x08, 0x6c, 0x69, 0x66,
|
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65,
|
0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65,
|
||||||
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72,
|
0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65,
|
||||||
0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x54, 0x6f, 0x6b,
|
0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b,
|
||||||
0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x66, 0x65,
|
0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e,
|
||||||
0x74, 0x69, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x69, 0x6d,
|
0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
|
||||||
0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52,
|
0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x1a, 0x45, 0x0a, 0x0d, 0x54,
|
||||||
0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x74,
|
0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03,
|
||||||
0x65, 0x12, 0x4e, 0x0a, 0x0c, 0x61, 0x70, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
|
0x65, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x10,
|
||||||
0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
0x0a, 0x03, 0x6e, 0x62, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6e, 0x62, 0x66,
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x61, 0x63, 0x6c, 0x2e, 0x42, 0x65, 0x61, 0x72, 0x65, 0x72, 0x54, 0x6f,
|
0x12, 0x10, 0x0a, 0x03, 0x69, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x69,
|
||||||
0x6b, 0x65, 0x6e, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x41, 0x50, 0x45, 0x4f, 0x76, 0x65, 0x72,
|
0x61, 0x74, 0x2a, 0x3e, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f,
|
||||||
0x72, 0x69, 0x64, 0x65, 0x52, 0x0b, 0x61, 0x70, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64,
|
0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
|
||||||
0x65, 0x1a, 0x45, 0x0a, 0x0d, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69,
|
0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59,
|
||||||
0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52,
|
0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x53,
|
||||||
0x03, 0x65, 0x78, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6e, 0x62, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x10, 0x03, 0x2a, 0x4f, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12,
|
||||||
0x04, 0x52, 0x03, 0x6e, 0x62, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x61, 0x74, 0x18, 0x03, 0x20,
|
0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
|
||||||
0x01, 0x28, 0x04, 0x52, 0x03, 0x69, 0x61, 0x74, 0x1a, 0x71, 0x0a, 0x0b, 0x41, 0x50, 0x45, 0x4f,
|
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53,
|
||||||
0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65,
|
0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a,
|
||||||
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
|
0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54, 0x61,
|
0x4c, 0x10, 0x02, 0x2a, 0x7a, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2d, 0x0a, 0x06,
|
0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e,
|
||||||
0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66,
|
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47,
|
||||||
0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x2e, 0x43, 0x68,
|
0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x07,
|
||||||
0x61, 0x69, 0x6e, 0x52, 0x06, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x2a, 0x3e, 0x0a, 0x04, 0x52,
|
0x0a, 0x03, 0x50, 0x55, 0x54, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54,
|
||||||
0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
|
0x45, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x05, 0x12,
|
||||||
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45,
|
0x0c, 0x0a, 0x08, 0x47, 0x45, 0x54, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x06, 0x12, 0x10, 0x0a,
|
||||||
0x52, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x12,
|
0x0c, 0x47, 0x45, 0x54, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x48, 0x41, 0x53, 0x48, 0x10, 0x07, 0x2a,
|
||||||
0x0a, 0x0a, 0x06, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x53, 0x10, 0x03, 0x2a, 0x4f, 0x0a, 0x09, 0x4d,
|
0x35, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54,
|
||||||
0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43,
|
0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
|
||||||
0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
|
0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04,
|
||||||
0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45,
|
0x44, 0x45, 0x4e, 0x59, 0x10, 0x02, 0x2a, 0x4a, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47,
|
0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x55,
|
||||||
0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x2a, 0x7a, 0x0a, 0x09,
|
0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07,
|
||||||
0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45,
|
0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a,
|
||||||
0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
|
0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45,
|
||||||
0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x45, 0x54, 0x10, 0x01, 0x12, 0x08, 0x0a,
|
0x10, 0x03, 0x42, 0x58, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
|
||||||
0x04, 0x48, 0x45, 0x41, 0x44, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x55, 0x54, 0x10, 0x03,
|
0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64,
|
||||||
0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06,
|
0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d,
|
||||||
0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x45, 0x54, 0x52,
|
0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61,
|
||||||
0x41, 0x4e, 0x47, 0x45, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x45, 0x54, 0x52, 0x41, 0x4e,
|
0x63, 0x6c, 0xaa, 0x02, 0x17, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f,
|
||||||
0x47, 0x45, 0x48, 0x41, 0x53, 0x48, 0x10, 0x07, 0x2a, 0x35, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69,
|
0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x41, 0x63, 0x6c, 0x62, 0x06, 0x70, 0x72,
|
||||||
0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53,
|
0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c,
|
|
||||||
0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x4e, 0x59, 0x10, 0x02, 0x2a,
|
|
||||||
0x4a, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
|
|
||||||
0x12, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46,
|
|
||||||
0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54,
|
|
||||||
0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x0b,
|
|
||||||
0x0a, 0x07, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x03, 0x42, 0x58, 0x5a, 0x3c, 0x67,
|
|
||||||
0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f,
|
|
||||||
0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f,
|
|
||||||
0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61,
|
|
||||||
0x63, 0x6c, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x63, 0x6c, 0xaa, 0x02, 0x17, 0x4e, 0x65,
|
|
||||||
0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50,
|
|
||||||
0x49, 0x2e, 0x41, 0x63, 0x6c, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -1056,7 +967,7 @@ func file_acl_grpc_types_proto_rawDescGZIP() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_acl_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
|
var file_acl_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
|
||||||
var file_acl_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 8)
|
var file_acl_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||||
var file_acl_grpc_types_proto_goTypes = []interface{}{
|
var file_acl_grpc_types_proto_goTypes = []interface{}{
|
||||||
(Role)(0), // 0: neo.fs.v2.acl.Role
|
(Role)(0), // 0: neo.fs.v2.acl.Role
|
||||||
(MatchType)(0), // 1: neo.fs.v2.acl.MatchType
|
(MatchType)(0), // 1: neo.fs.v2.acl.MatchType
|
||||||
|
@ -1070,38 +981,32 @@ var file_acl_grpc_types_proto_goTypes = []interface{}{
|
||||||
(*EACLRecord_Target)(nil), // 9: neo.fs.v2.acl.EACLRecord.Target
|
(*EACLRecord_Target)(nil), // 9: neo.fs.v2.acl.EACLRecord.Target
|
||||||
(*BearerToken_Body)(nil), // 10: neo.fs.v2.acl.BearerToken.Body
|
(*BearerToken_Body)(nil), // 10: neo.fs.v2.acl.BearerToken.Body
|
||||||
(*BearerToken_Body_TokenLifetime)(nil), // 11: neo.fs.v2.acl.BearerToken.Body.TokenLifetime
|
(*BearerToken_Body_TokenLifetime)(nil), // 11: neo.fs.v2.acl.BearerToken.Body.TokenLifetime
|
||||||
(*BearerToken_Body_APEOverride)(nil), // 12: neo.fs.v2.acl.BearerToken.Body.APEOverride
|
(*grpc.Version)(nil), // 12: neo.fs.v2.refs.Version
|
||||||
(*grpc.Version)(nil), // 13: neo.fs.v2.refs.Version
|
(*grpc.ContainerID)(nil), // 13: neo.fs.v2.refs.ContainerID
|
||||||
(*grpc.ContainerID)(nil), // 14: neo.fs.v2.refs.ContainerID
|
(*grpc.Signature)(nil), // 14: neo.fs.v2.refs.Signature
|
||||||
(*grpc.Signature)(nil), // 15: neo.fs.v2.refs.Signature
|
(*grpc.OwnerID)(nil), // 15: neo.fs.v2.refs.OwnerID
|
||||||
(*grpc.OwnerID)(nil), // 16: neo.fs.v2.refs.OwnerID
|
|
||||||
(*grpc1.ChainTarget)(nil), // 17: frostfs.v2.ape.ChainTarget
|
|
||||||
(*grpc1.Chain)(nil), // 18: frostfs.v2.ape.Chain
|
|
||||||
}
|
}
|
||||||
var file_acl_grpc_types_proto_depIdxs = []int32{
|
var file_acl_grpc_types_proto_depIdxs = []int32{
|
||||||
2, // 0: neo.fs.v2.acl.EACLRecord.operation:type_name -> neo.fs.v2.acl.Operation
|
2, // 0: neo.fs.v2.acl.EACLRecord.operation:type_name -> neo.fs.v2.acl.Operation
|
||||||
3, // 1: neo.fs.v2.acl.EACLRecord.action:type_name -> neo.fs.v2.acl.Action
|
3, // 1: neo.fs.v2.acl.EACLRecord.action:type_name -> neo.fs.v2.acl.Action
|
||||||
8, // 2: neo.fs.v2.acl.EACLRecord.filters:type_name -> neo.fs.v2.acl.EACLRecord.Filter
|
8, // 2: neo.fs.v2.acl.EACLRecord.filters:type_name -> neo.fs.v2.acl.EACLRecord.Filter
|
||||||
9, // 3: neo.fs.v2.acl.EACLRecord.targets:type_name -> neo.fs.v2.acl.EACLRecord.Target
|
9, // 3: neo.fs.v2.acl.EACLRecord.targets:type_name -> neo.fs.v2.acl.EACLRecord.Target
|
||||||
13, // 4: neo.fs.v2.acl.EACLTable.version:type_name -> neo.fs.v2.refs.Version
|
12, // 4: neo.fs.v2.acl.EACLTable.version:type_name -> neo.fs.v2.refs.Version
|
||||||
14, // 5: neo.fs.v2.acl.EACLTable.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
13, // 5: neo.fs.v2.acl.EACLTable.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
||||||
5, // 6: neo.fs.v2.acl.EACLTable.records:type_name -> neo.fs.v2.acl.EACLRecord
|
5, // 6: neo.fs.v2.acl.EACLTable.records:type_name -> neo.fs.v2.acl.EACLRecord
|
||||||
10, // 7: neo.fs.v2.acl.BearerToken.body:type_name -> neo.fs.v2.acl.BearerToken.Body
|
10, // 7: neo.fs.v2.acl.BearerToken.body:type_name -> neo.fs.v2.acl.BearerToken.Body
|
||||||
15, // 8: neo.fs.v2.acl.BearerToken.signature:type_name -> neo.fs.v2.refs.Signature
|
14, // 8: neo.fs.v2.acl.BearerToken.signature:type_name -> neo.fs.v2.refs.Signature
|
||||||
4, // 9: neo.fs.v2.acl.EACLRecord.Filter.header_type:type_name -> neo.fs.v2.acl.HeaderType
|
4, // 9: neo.fs.v2.acl.EACLRecord.Filter.header_type:type_name -> neo.fs.v2.acl.HeaderType
|
||||||
1, // 10: neo.fs.v2.acl.EACLRecord.Filter.match_type:type_name -> neo.fs.v2.acl.MatchType
|
1, // 10: neo.fs.v2.acl.EACLRecord.Filter.match_type:type_name -> neo.fs.v2.acl.MatchType
|
||||||
0, // 11: neo.fs.v2.acl.EACLRecord.Target.role:type_name -> neo.fs.v2.acl.Role
|
0, // 11: neo.fs.v2.acl.EACLRecord.Target.role:type_name -> neo.fs.v2.acl.Role
|
||||||
6, // 12: neo.fs.v2.acl.BearerToken.Body.eacl_table:type_name -> neo.fs.v2.acl.EACLTable
|
6, // 12: neo.fs.v2.acl.BearerToken.Body.eacl_table:type_name -> neo.fs.v2.acl.EACLTable
|
||||||
16, // 13: neo.fs.v2.acl.BearerToken.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
15, // 13: neo.fs.v2.acl.BearerToken.Body.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
||||||
11, // 14: neo.fs.v2.acl.BearerToken.Body.lifetime:type_name -> neo.fs.v2.acl.BearerToken.Body.TokenLifetime
|
11, // 14: neo.fs.v2.acl.BearerToken.Body.lifetime:type_name -> neo.fs.v2.acl.BearerToken.Body.TokenLifetime
|
||||||
12, // 15: neo.fs.v2.acl.BearerToken.Body.ape_override:type_name -> neo.fs.v2.acl.BearerToken.Body.APEOverride
|
15, // [15:15] is the sub-list for method output_type
|
||||||
17, // 16: neo.fs.v2.acl.BearerToken.Body.APEOverride.target:type_name -> frostfs.v2.ape.ChainTarget
|
15, // [15:15] is the sub-list for method input_type
|
||||||
18, // 17: neo.fs.v2.acl.BearerToken.Body.APEOverride.chains:type_name -> frostfs.v2.ape.Chain
|
15, // [15:15] is the sub-list for extension type_name
|
||||||
18, // [18:18] is the sub-list for method output_type
|
15, // [15:15] is the sub-list for extension extendee
|
||||||
18, // [18:18] is the sub-list for method input_type
|
0, // [0:15] is the sub-list for field type_name
|
||||||
18, // [18:18] is the sub-list for extension type_name
|
|
||||||
18, // [18:18] is the sub-list for extension extendee
|
|
||||||
0, // [0:18] is the sub-list for field type_name
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_acl_grpc_types_proto_init() }
|
func init() { file_acl_grpc_types_proto_init() }
|
||||||
|
@ -1194,18 +1099,6 @@ func file_acl_grpc_types_proto_init() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_acl_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*BearerToken_Body_APEOverride); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
|
@ -1213,7 +1106,7 @@ func file_acl_grpc_types_proto_init() {
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_acl_grpc_types_proto_rawDesc,
|
RawDescriptor: file_acl_grpc_types_proto_rawDesc,
|
||||||
NumEnums: 5,
|
NumEnums: 5,
|
||||||
NumMessages: 8,
|
NumMessages: 7,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
|
|
|
@ -21,14 +21,6 @@ func (t *Target) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(t, data, new(acl.EACLRecord_Target))
|
return message.UnmarshalJSON(t, data, new(acl.EACLRecord_Target))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *APEOverride) MarshalJSON() ([]byte, error) {
|
|
||||||
return message.MarshalJSON(a)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (a *APEOverride) UnmarshalJSON(data []byte) error {
|
|
||||||
return message.UnmarshalJSON(a, data, new(acl.BearerToken_Body_APEOverride))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Record) MarshalJSON() ([]byte, error) {
|
func (r *Record) MarshalJSON() ([]byte, error) {
|
||||||
return message.MarshalJSON(r)
|
return message.MarshalJSON(r)
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,14 +28,10 @@ const (
|
||||||
lifetimeNotValidBeforeField = 2
|
lifetimeNotValidBeforeField = 2
|
||||||
lifetimeIssuedAtField = 3
|
lifetimeIssuedAtField = 3
|
||||||
|
|
||||||
tokenAPEChainsTargetField = 1
|
bearerTokenBodyACLField = 1
|
||||||
tokenAPEChainsChainsField = 2
|
bearerTokenBodyOwnerField = 2
|
||||||
|
bearerTokenBodyLifetimeField = 3
|
||||||
bearerTokenBodyACLField = 1
|
bearerTokenBodyImpersonate = 4
|
||||||
bearerTokenBodyOwnerField = 2
|
|
||||||
bearerTokenBodyLifetimeField = 3
|
|
||||||
bearerTokenBodyImpersonate = 4
|
|
||||||
bearerTokenTokenAPEChainsField = 5
|
|
||||||
|
|
||||||
bearerTokenBodyField = 1
|
bearerTokenBodyField = 1
|
||||||
bearerTokenSignatureField = 2
|
bearerTokenSignatureField = 2
|
||||||
|
@ -243,42 +239,6 @@ func (l *TokenLifetime) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(l, data, new(acl.BearerToken_Body_TokenLifetime))
|
return message.Unmarshal(l, data, new(acl.BearerToken_Body_TokenLifetime))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *APEOverride) StableMarshal(buf []byte) []byte {
|
|
||||||
if c == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, c.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += protoutil.NestedStructureMarshal(tokenAPEChainsTargetField, buf[offset:], c.target)
|
|
||||||
for i := range c.chains {
|
|
||||||
offset += protoutil.NestedStructureMarshal(tokenAPEChainsChainsField, buf[offset:], c.chains[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *APEOverride) StableSize() (size int) {
|
|
||||||
if c == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += protoutil.NestedStructureSize(tokenAPEChainsTargetField, c.target)
|
|
||||||
for i := range c.chains {
|
|
||||||
size += protoutil.NestedStructureSize(tokenAPEChainsChainsField, c.chains[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *APEOverride) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(c, data, new(acl.BearerToken_Body_APEOverride))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bt *BearerTokenBody) StableMarshal(buf []byte) []byte {
|
func (bt *BearerTokenBody) StableMarshal(buf []byte) []byte {
|
||||||
if bt == nil {
|
if bt == nil {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
|
@ -293,8 +253,7 @@ func (bt *BearerTokenBody) StableMarshal(buf []byte) []byte {
|
||||||
offset += protoutil.NestedStructureMarshal(bearerTokenBodyACLField, buf[offset:], bt.eacl)
|
offset += protoutil.NestedStructureMarshal(bearerTokenBodyACLField, buf[offset:], bt.eacl)
|
||||||
offset += protoutil.NestedStructureMarshal(bearerTokenBodyOwnerField, buf[offset:], bt.ownerID)
|
offset += protoutil.NestedStructureMarshal(bearerTokenBodyOwnerField, buf[offset:], bt.ownerID)
|
||||||
offset += protoutil.NestedStructureMarshal(bearerTokenBodyLifetimeField, buf[offset:], bt.lifetime)
|
offset += protoutil.NestedStructureMarshal(bearerTokenBodyLifetimeField, buf[offset:], bt.lifetime)
|
||||||
offset += protoutil.BoolMarshal(bearerTokenBodyImpersonate, buf[offset:], bt.impersonate)
|
protoutil.BoolMarshal(bearerTokenBodyImpersonate, buf[offset:], bt.impersonate)
|
||||||
protoutil.NestedStructureMarshal(bearerTokenTokenAPEChainsField, buf[offset:], bt.apeOverride)
|
|
||||||
|
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
@ -308,7 +267,6 @@ func (bt *BearerTokenBody) StableSize() (size int) {
|
||||||
size += protoutil.NestedStructureSize(bearerTokenBodyOwnerField, bt.ownerID)
|
size += protoutil.NestedStructureSize(bearerTokenBodyOwnerField, bt.ownerID)
|
||||||
size += protoutil.NestedStructureSize(bearerTokenBodyLifetimeField, bt.lifetime)
|
size += protoutil.NestedStructureSize(bearerTokenBodyLifetimeField, bt.lifetime)
|
||||||
size += protoutil.BoolSize(bearerTokenBodyImpersonate, bt.impersonate)
|
size += protoutil.BoolSize(bearerTokenBodyImpersonate, bt.impersonate)
|
||||||
size += protoutil.NestedStructureSize(bearerTokenTokenAPEChainsField, bt.apeOverride)
|
|
||||||
|
|
||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package acltest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl"
|
||||||
apetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/test"
|
|
||||||
accountingtest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
|
accountingtest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -23,20 +22,8 @@ func GenerateBearerTokenBody(empty bool) *acl.BearerTokenBody {
|
||||||
|
|
||||||
if !empty {
|
if !empty {
|
||||||
m.SetOwnerID(accountingtest.GenerateOwnerID(false))
|
m.SetOwnerID(accountingtest.GenerateOwnerID(false))
|
||||||
|
m.SetEACL(GenerateTable(false))
|
||||||
m.SetLifetime(GenerateTokenLifetime(false))
|
m.SetLifetime(GenerateTokenLifetime(false))
|
||||||
m.SetAPEOverride(GenerateAPEOverride(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateAPEOverride(empty bool) *acl.APEOverride {
|
|
||||||
var m *acl.APEOverride
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m = new(acl.APEOverride)
|
|
||||||
m.SetTarget(apetest.GenerateChainTarget(empty))
|
|
||||||
m.SetChains(apetest.GenerateRawChains(false, 3))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
|
41
acl/types.go
41
acl/types.go
|
@ -1,9 +1,6 @@
|
||||||
package acl
|
package acl
|
||||||
|
|
||||||
import (
|
import "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
|
||||||
)
|
|
||||||
|
|
||||||
// HeaderFilter is a unified structure of FilterInfo
|
// HeaderFilter is a unified structure of FilterInfo
|
||||||
// message from proto definition.
|
// message from proto definition.
|
||||||
|
@ -49,12 +46,6 @@ type TokenLifetime struct {
|
||||||
exp, nbf, iat uint64
|
exp, nbf, iat uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type APEOverride struct {
|
|
||||||
target *ape.ChainTarget
|
|
||||||
|
|
||||||
chains []*ape.Chain
|
|
||||||
}
|
|
||||||
|
|
||||||
type BearerTokenBody struct {
|
type BearerTokenBody struct {
|
||||||
eacl *Table
|
eacl *Table
|
||||||
|
|
||||||
|
@ -62,8 +53,6 @@ type BearerTokenBody struct {
|
||||||
|
|
||||||
lifetime *TokenLifetime
|
lifetime *TokenLifetime
|
||||||
|
|
||||||
apeOverride *APEOverride
|
|
||||||
|
|
||||||
impersonate bool
|
impersonate bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -329,34 +318,6 @@ func (bt *BearerTokenBody) SetEACL(v *Table) {
|
||||||
bt.eacl = v
|
bt.eacl = v
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *APEOverride) GetTarget() *ape.ChainTarget {
|
|
||||||
return t.target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *APEOverride) GetChains() []*ape.Chain {
|
|
||||||
return t.chains
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *APEOverride) SetTarget(v *ape.ChainTarget) {
|
|
||||||
t.target = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *APEOverride) SetChains(v []*ape.Chain) {
|
|
||||||
t.chains = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bt *BearerTokenBody) GetAPEOverride() *APEOverride {
|
|
||||||
if bt != nil {
|
|
||||||
return bt.apeOverride
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bt *BearerTokenBody) SetAPEOverride(v *APEOverride) {
|
|
||||||
bt.apeOverride = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (bt *BearerTokenBody) GetOwnerID() *refs.OwnerID {
|
func (bt *BearerTokenBody) GetOwnerID() *refs.OwnerID {
|
||||||
if bt != nil {
|
if bt != nil {
|
||||||
return bt.ownerID
|
return bt.ownerID
|
||||||
|
|
132
ape/convert.go
132
ape/convert.go
|
@ -1,132 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TargetTypeToGRPCField(typ TargetType) ape.TargetType {
|
|
||||||
switch typ {
|
|
||||||
case TargetTypeNamespace:
|
|
||||||
return ape.TargetType_NAMESPACE
|
|
||||||
case TargetTypeContainer:
|
|
||||||
return ape.TargetType_CONTAINER
|
|
||||||
case TargetTypeUser:
|
|
||||||
return ape.TargetType_USER
|
|
||||||
case TargetTypeGroup:
|
|
||||||
return ape.TargetType_GROUP
|
|
||||||
default:
|
|
||||||
return ape.TargetType_UNDEFINED
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TargetTypeFromGRPCField(typ ape.TargetType) TargetType {
|
|
||||||
switch typ {
|
|
||||||
case ape.TargetType_NAMESPACE:
|
|
||||||
return TargetTypeNamespace
|
|
||||||
case ape.TargetType_CONTAINER:
|
|
||||||
return TargetTypeContainer
|
|
||||||
case ape.TargetType_USER:
|
|
||||||
return TargetTypeUser
|
|
||||||
case ape.TargetType_GROUP:
|
|
||||||
return TargetTypeGroup
|
|
||||||
default:
|
|
||||||
return TargetTypeUndefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func TargetTypeToGRPC(typ TargetType) ape.TargetType {
|
|
||||||
return ape.TargetType(typ)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TargetTypeFromGRPC(typ ape.TargetType) TargetType {
|
|
||||||
return TargetType(typ)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *ChainTarget) ToGRPCMessage() grpc.Message {
|
|
||||||
var mgrpc *ape.ChainTarget
|
|
||||||
|
|
||||||
if v2 != nil {
|
|
||||||
mgrpc = new(ape.ChainTarget)
|
|
||||||
|
|
||||||
mgrpc.SetType(TargetTypeToGRPC(v2.GetTargetType()))
|
|
||||||
mgrpc.SetName(v2.GetName())
|
|
||||||
}
|
|
||||||
|
|
||||||
return mgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *ChainTarget) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
mgrpc, ok := m.(*ape.ChainTarget)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, mgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
v2.SetTargetType(TargetTypeFromGRPC(mgrpc.GetType()))
|
|
||||||
v2.SetName(mgrpc.GetName())
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *ChainRaw) ToGRPCMessage() grpc.Message {
|
|
||||||
var mgrpc *ape.Chain_Raw
|
|
||||||
|
|
||||||
if v2 != nil {
|
|
||||||
mgrpc = new(ape.Chain_Raw)
|
|
||||||
|
|
||||||
mgrpc.SetRaw(v2.GetRaw())
|
|
||||||
}
|
|
||||||
|
|
||||||
return mgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *ChainRaw) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
mgrpc, ok := m.(*ape.Chain_Raw)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, mgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
v2.SetRaw(mgrpc.GetRaw())
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *Chain) ToGRPCMessage() grpc.Message {
|
|
||||||
var mgrpc *ape.Chain
|
|
||||||
|
|
||||||
if v2 != nil {
|
|
||||||
mgrpc = new(ape.Chain)
|
|
||||||
|
|
||||||
switch chainKind := v2.GetKind().(type) {
|
|
||||||
default:
|
|
||||||
panic(fmt.Sprintf("unsupported chain kind: %T", chainKind))
|
|
||||||
case *ChainRaw:
|
|
||||||
mgrpc.SetKind(chainKind.ToGRPCMessage().(*ape.Chain_Raw))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return mgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (v2 *Chain) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
mgrpc, ok := m.(*ape.Chain)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, mgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
switch chainKind := mgrpc.GetKind().(type) {
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("unsupported chain kind: %T", chainKind)
|
|
||||||
case *ape.Chain_Raw:
|
|
||||||
chainRaw := new(ChainRaw)
|
|
||||||
if err := chainRaw.FromGRPCMessage(chainKind); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
v2.SetKind(chainRaw)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
func (t *ChainTarget) SetType(typ TargetType) {
|
|
||||||
t.Type = typ
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ChainTarget) SetName(name string) {
|
|
||||||
t.Name = name
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) SetKind(kind isChain_Kind) {
|
|
||||||
c.Kind = kind
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cr *Chain_Raw) SetRaw(raw []byte) {
|
|
||||||
cr.Raw = raw
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cr *Chain_Raw) GetRaw() []byte {
|
|
||||||
return cr.Raw
|
|
||||||
}
|
|
310
ape/grpc/types.pb.go
generated
310
ape/grpc/types.pb.go
generated
|
@ -1,310 +0,0 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// protoc-gen-go v1.33.0
|
|
||||||
// protoc v4.25.3
|
|
||||||
// source: ape/grpc/types.proto
|
|
||||||
|
|
||||||
package ape
|
|
||||||
|
|
||||||
import (
|
|
||||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
|
||||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
|
||||||
reflect "reflect"
|
|
||||||
sync "sync"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// Verify that this generated code is sufficiently up-to-date.
|
|
||||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
|
||||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
|
||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
|
||||||
)
|
|
||||||
|
|
||||||
// TargetType is a type target to which a rule chain is defined.
|
|
||||||
type TargetType int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
TargetType_UNDEFINED TargetType = 0
|
|
||||||
TargetType_NAMESPACE TargetType = 1
|
|
||||||
TargetType_CONTAINER TargetType = 2
|
|
||||||
TargetType_USER TargetType = 3
|
|
||||||
TargetType_GROUP TargetType = 4
|
|
||||||
)
|
|
||||||
|
|
||||||
// Enum value maps for TargetType.
|
|
||||||
var (
|
|
||||||
TargetType_name = map[int32]string{
|
|
||||||
0: "UNDEFINED",
|
|
||||||
1: "NAMESPACE",
|
|
||||||
2: "CONTAINER",
|
|
||||||
3: "USER",
|
|
||||||
4: "GROUP",
|
|
||||||
}
|
|
||||||
TargetType_value = map[string]int32{
|
|
||||||
"UNDEFINED": 0,
|
|
||||||
"NAMESPACE": 1,
|
|
||||||
"CONTAINER": 2,
|
|
||||||
"USER": 3,
|
|
||||||
"GROUP": 4,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func (x TargetType) Enum() *TargetType {
|
|
||||||
p := new(TargetType)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x TargetType) String() string {
|
|
||||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (TargetType) Descriptor() protoreflect.EnumDescriptor {
|
|
||||||
return file_ape_grpc_types_proto_enumTypes[0].Descriptor()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (TargetType) Type() protoreflect.EnumType {
|
|
||||||
return &file_ape_grpc_types_proto_enumTypes[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x TargetType) Number() protoreflect.EnumNumber {
|
|
||||||
return protoreflect.EnumNumber(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use TargetType.Descriptor instead.
|
|
||||||
func (TargetType) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_ape_grpc_types_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ChainTarget is an object to which a rule chain is defined.
|
|
||||||
type ChainTarget struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
Type TargetType `protobuf:"varint,1,opt,name=type,proto3,enum=frostfs.v2.ape.TargetType" json:"type,omitempty"`
|
|
||||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ChainTarget) Reset() {
|
|
||||||
*x = ChainTarget{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_ape_grpc_types_proto_msgTypes[0]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ChainTarget) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ChainTarget) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ChainTarget) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_ape_grpc_types_proto_msgTypes[0]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use ChainTarget.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ChainTarget) Descriptor() ([]byte, []int) {
|
|
||||||
return file_ape_grpc_types_proto_rawDescGZIP(), []int{0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ChainTarget) GetType() TargetType {
|
|
||||||
if x != nil {
|
|
||||||
return x.Type
|
|
||||||
}
|
|
||||||
return TargetType_UNDEFINED
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ChainTarget) GetName() string {
|
|
||||||
if x != nil {
|
|
||||||
return x.Name
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// Chain is a chain of rules defined for a specific target.
|
|
||||||
type Chain struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
// Types that are assignable to Kind:
|
|
||||||
//
|
|
||||||
// *Chain_Raw
|
|
||||||
Kind isChain_Kind `protobuf_oneof:"kind"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Chain) Reset() {
|
|
||||||
*x = Chain{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_ape_grpc_types_proto_msgTypes[1]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Chain) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Chain) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *Chain) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_ape_grpc_types_proto_msgTypes[1]
|
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
if ms.LoadMessageInfo() == nil {
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
return ms
|
|
||||||
}
|
|
||||||
return mi.MessageOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use Chain.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Chain) Descriptor() ([]byte, []int) {
|
|
||||||
return file_ape_grpc_types_proto_rawDescGZIP(), []int{1}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (m *Chain) GetKind() isChain_Kind {
|
|
||||||
if m != nil {
|
|
||||||
return m.Kind
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Chain) GetRaw() []byte {
|
|
||||||
if x, ok := x.GetKind().(*Chain_Raw); ok {
|
|
||||||
return x.Raw
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type isChain_Kind interface {
|
|
||||||
isChain_Kind()
|
|
||||||
}
|
|
||||||
|
|
||||||
type Chain_Raw struct {
|
|
||||||
// Raw representation of a serizalized rule chain.
|
|
||||||
Raw []byte `protobuf:"bytes,1,opt,name=raw,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Chain_Raw) isChain_Kind() {}
|
|
||||||
|
|
||||||
var File_ape_grpc_types_proto protoreflect.FileDescriptor
|
|
||||||
|
|
||||||
var file_ape_grpc_types_proto_rawDesc = []byte{
|
|
||||||
0x0a, 0x14, 0x61, 0x70, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73,
|
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e,
|
|
||||||
0x76, 0x32, 0x2e, 0x61, 0x70, 0x65, 0x22, 0x51, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x54,
|
|
||||||
0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x61, 0x70, 0x65, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
|
|
||||||
0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
|
||||||
0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x23, 0x0a, 0x05, 0x43, 0x68, 0x61,
|
|
||||||
0x69, 0x6e, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48,
|
|
||||||
0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x2a, 0x4e,
|
|
||||||
0x0a, 0x0a, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09,
|
|
||||||
0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e,
|
|
||||||
0x41, 0x4d, 0x45, 0x53, 0x50, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f,
|
|
||||||
0x4e, 0x54, 0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45,
|
|
||||||
0x52, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x04, 0x42, 0x3e,
|
|
||||||
0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e,
|
|
||||||
0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f,
|
|
||||||
0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76,
|
|
||||||
0x32, 0x2f, 0x61, 0x70, 0x65, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x70, 0x65, 0x62, 0x06,
|
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
file_ape_grpc_types_proto_rawDescOnce sync.Once
|
|
||||||
file_ape_grpc_types_proto_rawDescData = file_ape_grpc_types_proto_rawDesc
|
|
||||||
)
|
|
||||||
|
|
||||||
func file_ape_grpc_types_proto_rawDescGZIP() []byte {
|
|
||||||
file_ape_grpc_types_proto_rawDescOnce.Do(func() {
|
|
||||||
file_ape_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_ape_grpc_types_proto_rawDescData)
|
|
||||||
})
|
|
||||||
return file_ape_grpc_types_proto_rawDescData
|
|
||||||
}
|
|
||||||
|
|
||||||
var file_ape_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
|
||||||
var file_ape_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
|
||||||
var file_ape_grpc_types_proto_goTypes = []interface{}{
|
|
||||||
(TargetType)(0), // 0: frostfs.v2.ape.TargetType
|
|
||||||
(*ChainTarget)(nil), // 1: frostfs.v2.ape.ChainTarget
|
|
||||||
(*Chain)(nil), // 2: frostfs.v2.ape.Chain
|
|
||||||
}
|
|
||||||
var file_ape_grpc_types_proto_depIdxs = []int32{
|
|
||||||
0, // 0: frostfs.v2.ape.ChainTarget.type:type_name -> frostfs.v2.ape.TargetType
|
|
||||||
1, // [1:1] is the sub-list for method output_type
|
|
||||||
1, // [1:1] is the sub-list for method input_type
|
|
||||||
1, // [1:1] is the sub-list for extension type_name
|
|
||||||
1, // [1:1] is the sub-list for extension extendee
|
|
||||||
0, // [0:1] is the sub-list for field type_name
|
|
||||||
}
|
|
||||||
|
|
||||||
func init() { file_ape_grpc_types_proto_init() }
|
|
||||||
func file_ape_grpc_types_proto_init() {
|
|
||||||
if File_ape_grpc_types_proto != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !protoimpl.UnsafeEnabled {
|
|
||||||
file_ape_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*ChainTarget); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_ape_grpc_types_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*Chain); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_ape_grpc_types_proto_msgTypes[1].OneofWrappers = []interface{}{
|
|
||||||
(*Chain_Raw)(nil),
|
|
||||||
}
|
|
||||||
type x struct{}
|
|
||||||
out := protoimpl.TypeBuilder{
|
|
||||||
File: protoimpl.DescBuilder{
|
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
|
||||||
RawDescriptor: file_ape_grpc_types_proto_rawDesc,
|
|
||||||
NumEnums: 1,
|
|
||||||
NumMessages: 2,
|
|
||||||
NumExtensions: 0,
|
|
||||||
NumServices: 0,
|
|
||||||
},
|
|
||||||
GoTypes: file_ape_grpc_types_proto_goTypes,
|
|
||||||
DependencyIndexes: file_ape_grpc_types_proto_depIdxs,
|
|
||||||
EnumInfos: file_ape_grpc_types_proto_enumTypes,
|
|
||||||
MessageInfos: file_ape_grpc_types_proto_msgTypes,
|
|
||||||
}.Build()
|
|
||||||
File_ape_grpc_types_proto = out.File
|
|
||||||
file_ape_grpc_types_proto_rawDesc = nil
|
|
||||||
file_ape_grpc_types_proto_goTypes = nil
|
|
||||||
file_ape_grpc_types_proto_depIdxs = nil
|
|
||||||
}
|
|
14
ape/json.go
14
ape/json.go
|
@ -1,14 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
import (
|
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (t *ChainTarget) MarshalJSON() ([]byte, error) {
|
|
||||||
return message.MarshalJSON(t)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ChainTarget) UnmarshalJSON(data []byte) error {
|
|
||||||
return message.UnmarshalJSON(t, data, new(ape.ChainTarget))
|
|
||||||
}
|
|
|
@ -1,92 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
|
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
chainTargetTargetTypeField = 1
|
|
||||||
chainTargetNameField = 2
|
|
||||||
|
|
||||||
chainRawField = 1
|
|
||||||
)
|
|
||||||
|
|
||||||
func (t *ChainTarget) StableSize() (size int) {
|
|
||||||
if t == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.EnumSize(chainTargetTargetTypeField, int32(t.targeType))
|
|
||||||
size += proto.StringSize(chainTargetNameField, t.name)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ChainTarget) StableMarshal(buf []byte) []byte {
|
|
||||||
if t == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, t.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.EnumMarshal(chainTargetTargetTypeField, buf[offset:], int32(t.targeType))
|
|
||||||
proto.StringMarshal(chainTargetNameField, buf[offset:], t.name)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *ChainTarget) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(t, data, new(ape.ChainTarget))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) StableSize() (size int) {
|
|
||||||
if c == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
switch v := c.GetKind().(type) {
|
|
||||||
case *ChainRaw:
|
|
||||||
if v != nil {
|
|
||||||
size += proto.BytesSize(chainRawField, v.GetRaw())
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
panic(fmt.Sprintf("unsupported chain kind: %T", v))
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) StableMarshal(buf []byte) []byte {
|
|
||||||
if c == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, c.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
switch v := c.GetKind().(type) {
|
|
||||||
case *ChainRaw:
|
|
||||||
if v != nil {
|
|
||||||
proto.BytesMarshal(chainRawField, buf[offset:], v.GetRaw())
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
panic(fmt.Sprintf("unsupported chain kind: %T", v))
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(c, data, new(ape.Chain))
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
import (
|
|
||||||
apegrpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (tt TargetType) String() string {
|
|
||||||
return TargetTypeToGRPCField(tt).String()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tt *TargetType) FromString(s string) bool {
|
|
||||||
i, ok := apegrpc.TargetType_value[s]
|
|
||||||
if ok {
|
|
||||||
*tt = TargetType(i)
|
|
||||||
}
|
|
||||||
|
|
||||||
return ok
|
|
||||||
}
|
|
|
@ -1,71 +0,0 @@
|
||||||
package test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GenerateRawChains(empty bool, n int) []*ape.Chain {
|
|
||||||
if empty {
|
|
||||||
return []*ape.Chain{}
|
|
||||||
}
|
|
||||||
|
|
||||||
res := make([]*ape.Chain, n)
|
|
||||||
for i := range res {
|
|
||||||
res[i] = GenerateRawChain(empty)
|
|
||||||
}
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateRawChain(empty bool) *ape.Chain {
|
|
||||||
chRaw := new(ape.ChainRaw)
|
|
||||||
|
|
||||||
if empty {
|
|
||||||
chRaw.SetRaw([]byte("{}"))
|
|
||||||
} else {
|
|
||||||
chRaw.SetRaw([]byte(`{
|
|
||||||
"ID": "",
|
|
||||||
"Rules": [
|
|
||||||
{
|
|
||||||
"Status": "Allow",
|
|
||||||
"Actions": {
|
|
||||||
"Inverted": false,
|
|
||||||
"Names": [
|
|
||||||
"GetObject"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Resources": {
|
|
||||||
"Inverted": false,
|
|
||||||
"Names": [
|
|
||||||
"native:object/*"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"Any": false,
|
|
||||||
"Condition": [
|
|
||||||
{
|
|
||||||
"Op": "StringEquals",
|
|
||||||
"Object": "Resource",
|
|
||||||
"Key": "Department",
|
|
||||||
"Value": "HR"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"MatchType": "DenyPriority"
|
|
||||||
}`))
|
|
||||||
}
|
|
||||||
|
|
||||||
ch := new(ape.Chain)
|
|
||||||
ch.SetKind(chRaw)
|
|
||||||
return ch
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateChainTarget(empty bool) *ape.ChainTarget {
|
|
||||||
m := new(ape.ChainTarget)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetTargetType(ape.TargetTypeContainer)
|
|
||||||
m.SetName("BzQw5HH3feoxFDD5tCT87Y1726qzgLfxEE7wgtoRzB3R")
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
71
ape/types.go
71
ape/types.go
|
@ -1,71 +0,0 @@
|
||||||
package ape
|
|
||||||
|
|
||||||
type TargetType uint32
|
|
||||||
|
|
||||||
const (
|
|
||||||
TargetTypeUndefined TargetType = iota
|
|
||||||
TargetTypeNamespace
|
|
||||||
TargetTypeContainer
|
|
||||||
TargetTypeUser
|
|
||||||
TargetTypeGroup
|
|
||||||
)
|
|
||||||
|
|
||||||
type ChainTarget struct {
|
|
||||||
targeType TargetType
|
|
||||||
|
|
||||||
name string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ct *ChainTarget) SetTargetType(targeType TargetType) {
|
|
||||||
ct.targeType = targeType
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ct *ChainTarget) SetName(name string) {
|
|
||||||
ct.name = name
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ct *ChainTarget) GetTargetType() TargetType {
|
|
||||||
if ct != nil {
|
|
||||||
return ct.targeType
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ct *ChainTarget) GetName() string {
|
|
||||||
if ct != nil {
|
|
||||||
return ct.name
|
|
||||||
}
|
|
||||||
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
type chainKind interface {
|
|
||||||
isChainKind()
|
|
||||||
}
|
|
||||||
|
|
||||||
type Chain struct {
|
|
||||||
kind chainKind
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) SetKind(kind chainKind) {
|
|
||||||
c.kind = kind
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *Chain) GetKind() chainKind {
|
|
||||||
return c.kind
|
|
||||||
}
|
|
||||||
|
|
||||||
type ChainRaw struct {
|
|
||||||
Raw []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ChainRaw) isChainKind() {}
|
|
||||||
|
|
||||||
func (c *ChainRaw) SetRaw(raw []byte) {
|
|
||||||
c.Raw = raw
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ChainRaw) GetRaw() []byte {
|
|
||||||
return c.Raw
|
|
||||||
}
|
|
|
@ -1,358 +0,0 @@
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape"
|
|
||||||
apeGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
apemanager "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (reqBody *AddChainRequestBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqBodygrpc *apemanager.AddChainRequest_Body
|
|
||||||
|
|
||||||
if reqBody != nil {
|
|
||||||
reqBodygrpc = new(apemanager.AddChainRequest_Body)
|
|
||||||
|
|
||||||
reqBodygrpc.SetTarget(reqBody.GetTarget().ToGRPCMessage().(*apeGRPC.ChainTarget))
|
|
||||||
reqBodygrpc.SetChain(reqBody.GetChain().ToGRPCMessage().(*apeGRPC.Chain))
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (reqBody *AddChainRequestBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqBodygrpc, ok := m.(*apemanager.AddChainRequest_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if targetgrpc := reqBodygrpc.GetTarget(); targetgrpc != nil {
|
|
||||||
reqBody.target = new(ape.ChainTarget)
|
|
||||||
if err := reqBody.target.FromGRPCMessage(targetgrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if chaingrpc := reqBodygrpc.GetChain(); chaingrpc != nil {
|
|
||||||
reqBody.chain = new(ape.Chain)
|
|
||||||
if err := reqBody.GetChain().FromGRPCMessage(chaingrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *AddChainRequest) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqgrpc *apemanager.AddChainRequest
|
|
||||||
|
|
||||||
if req != nil {
|
|
||||||
reqgrpc = new(apemanager.AddChainRequest)
|
|
||||||
|
|
||||||
reqgrpc.SetBody(req.GetBody().ToGRPCMessage().(*apemanager.AddChainRequest_Body))
|
|
||||||
req.RequestHeaders.ToMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *AddChainRequest) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqgrpc, ok := m.(*apemanager.AddChainRequest)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if reqBodygrpc := reqgrpc.GetBody(); reqBodygrpc != nil {
|
|
||||||
req.body = new(AddChainRequestBody)
|
|
||||||
if err := req.body.FromGRPCMessage(reqBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return req.RequestHeaders.FromMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *AddChainResponseBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var respBodygrpc *apemanager.AddChainResponse_Body
|
|
||||||
|
|
||||||
if respBody != nil {
|
|
||||||
respBodygrpc = new(apemanager.AddChainResponse_Body)
|
|
||||||
|
|
||||||
respBodygrpc.SetChainId(respBody.GetChainID())
|
|
||||||
}
|
|
||||||
|
|
||||||
return respBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *AddChainResponseBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respBodygrpc, ok := m.(*apemanager.AddChainResponse_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
respBody.SetChainID(respBodygrpc.GetChainId())
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *AddChainResponse) ToGRPCMessage() grpc.Message {
|
|
||||||
var respgrpc *apemanager.AddChainResponse
|
|
||||||
|
|
||||||
if resp != nil {
|
|
||||||
respgrpc = new(apemanager.AddChainResponse)
|
|
||||||
|
|
||||||
respgrpc.SetBody(resp.body.ToGRPCMessage().(*apemanager.AddChainResponse_Body))
|
|
||||||
resp.ResponseHeaders.ToMessage(respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return respgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *AddChainResponse) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respgrpc, ok := m.(*apemanager.AddChainResponse)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if respBodygrpc := respgrpc.GetBody(); respBodygrpc != nil {
|
|
||||||
resp.body = new(AddChainResponseBody)
|
|
||||||
if err := resp.body.FromGRPCMessage(respBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp.ResponseHeaders.FromMessage(respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (reqBody *RemoveChainRequestBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqBodygrpc *apemanager.RemoveChainRequest_Body
|
|
||||||
|
|
||||||
if reqBody != nil {
|
|
||||||
reqBodygrpc = new(apemanager.RemoveChainRequest_Body)
|
|
||||||
|
|
||||||
reqBodygrpc.SetTarget(reqBody.target.ToGRPCMessage().(*apeGRPC.ChainTarget))
|
|
||||||
reqBodygrpc.SetChainId(reqBody.GetChainID())
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (reqBody *RemoveChainRequestBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqBodygrpc, ok := m.(*apemanager.RemoveChainRequest_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if targetgrpc := reqBodygrpc.GetTarget(); targetgrpc != nil {
|
|
||||||
reqBody.target = new(ape.ChainTarget)
|
|
||||||
if err := reqBody.target.FromGRPCMessage(targetgrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
reqBody.SetChainID(reqBodygrpc.GetChainId())
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *RemoveChainRequest) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqgrpc *apemanager.RemoveChainRequest
|
|
||||||
|
|
||||||
if req != nil {
|
|
||||||
reqgrpc = new(apemanager.RemoveChainRequest)
|
|
||||||
|
|
||||||
reqgrpc.SetBody(req.body.ToGRPCMessage().(*apemanager.RemoveChainRequest_Body))
|
|
||||||
req.RequestHeaders.ToMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *RemoveChainRequest) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqgrpc, ok := m.(*apemanager.RemoveChainRequest)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if reqBodygrpc := reqgrpc.GetBody(); reqBodygrpc != nil {
|
|
||||||
req.body = new(RemoveChainRequestBody)
|
|
||||||
if err := req.body.FromGRPCMessage(reqBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return req.RequestHeaders.FromMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *RemoveChainResponseBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var respBodygrpc *apemanager.RemoveChainResponse_Body
|
|
||||||
|
|
||||||
if respBody != nil {
|
|
||||||
respBodygrpc = new(apemanager.RemoveChainResponse_Body)
|
|
||||||
}
|
|
||||||
|
|
||||||
return respBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *RemoveChainResponseBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respBodygrpc, ok := m.(*apemanager.RemoveChainResponse_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *RemoveChainResponse) ToGRPCMessage() grpc.Message {
|
|
||||||
var respgrpc *apemanager.RemoveChainResponse
|
|
||||||
|
|
||||||
if resp != nil {
|
|
||||||
respgrpc = new(apemanager.RemoveChainResponse)
|
|
||||||
|
|
||||||
respgrpc.SetBody(resp.body.ToGRPCMessage().(*apemanager.RemoveChainResponse_Body))
|
|
||||||
resp.ResponseHeaders.ToMessage(respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return respgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *RemoveChainResponse) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respgrpc, ok := m.(*apemanager.RemoveChainResponse)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if respBodygrpc := respgrpc.GetBody(); respBodygrpc != nil {
|
|
||||||
resp.body = new(RemoveChainResponseBody)
|
|
||||||
if err := resp.body.FromGRPCMessage(respBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp.ResponseHeaders.FromMessage(respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (reqBody *ListChainsRequestBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqBodygrpc *apemanager.ListChainsRequest_Body
|
|
||||||
|
|
||||||
if reqBody != nil {
|
|
||||||
reqBodygrpc = new(apemanager.ListChainsRequest_Body)
|
|
||||||
|
|
||||||
reqBodygrpc.SetTarget(reqBody.target.ToGRPCMessage().(*apeGRPC.ChainTarget))
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (reqBody *ListChainsRequestBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqBodygrpc, ok := m.(*apemanager.ListChainsRequest_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if targetgrpc := reqBodygrpc.GetTarget(); targetgrpc != nil {
|
|
||||||
reqBody.target = new(ape.ChainTarget)
|
|
||||||
if err := reqBody.target.FromGRPCMessage(targetgrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *ListChainsRequest) ToGRPCMessage() grpc.Message {
|
|
||||||
var reqgrpc *apemanager.ListChainsRequest
|
|
||||||
|
|
||||||
if req != nil {
|
|
||||||
reqgrpc = new(apemanager.ListChainsRequest)
|
|
||||||
|
|
||||||
reqgrpc.SetBody(req.body.ToGRPCMessage().(*apemanager.ListChainsRequest_Body))
|
|
||||||
req.RequestHeaders.ToMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return reqgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (req *ListChainsRequest) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
reqgrpc, ok := m.(*apemanager.ListChainsRequest)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if reqBodygrpc := reqgrpc.GetBody(); reqBodygrpc != nil {
|
|
||||||
req.body = new(ListChainsRequestBody)
|
|
||||||
if err := req.body.FromGRPCMessage(reqBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return req.RequestHeaders.FromMessage(reqgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *ListChainsResponseBody) ToGRPCMessage() grpc.Message {
|
|
||||||
var respBodygrpc *apemanager.ListChainsResponse_Body
|
|
||||||
|
|
||||||
if respBody != nil {
|
|
||||||
respBodygrpc = new(apemanager.ListChainsResponse_Body)
|
|
||||||
|
|
||||||
chainsgrpc := make([]*apeGRPC.Chain, 0, len(respBody.GetChains()))
|
|
||||||
for _, chain := range respBody.GetChains() {
|
|
||||||
chainsgrpc = append(chainsgrpc, chain.ToGRPCMessage().(*apeGRPC.Chain))
|
|
||||||
}
|
|
||||||
|
|
||||||
respBodygrpc.SetChains(chainsgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return respBodygrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (respBody *ListChainsResponseBody) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respBodygrpc, ok := m.(*apemanager.ListChainsResponse_Body)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respBodygrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
chains := make([]*ape.Chain, 0, len(respBodygrpc.GetChains()))
|
|
||||||
|
|
||||||
for _, chaingrpc := range respBodygrpc.GetChains() {
|
|
||||||
chain := new(ape.Chain)
|
|
||||||
if err := chain.FromGRPCMessage(chaingrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
chains = append(chains, chain)
|
|
||||||
}
|
|
||||||
|
|
||||||
respBody.SetChains(chains)
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *ListChainsResponse) ToGRPCMessage() grpc.Message {
|
|
||||||
var respgrpc *apemanager.ListChainsResponse
|
|
||||||
|
|
||||||
if resp != nil {
|
|
||||||
respgrpc = new(apemanager.ListChainsResponse)
|
|
||||||
|
|
||||||
respgrpc.SetBody(resp.body.ToGRPCMessage().(*apemanager.ListChainsResponse_Body))
|
|
||||||
resp.ResponseHeaders.ToMessage(respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
return respgrpc
|
|
||||||
}
|
|
||||||
|
|
||||||
func (resp *ListChainsResponse) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
respgrpc, ok := m.(*apemanager.ListChainsResponse)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, respgrpc)
|
|
||||||
}
|
|
||||||
|
|
||||||
if respBodygrpc := respgrpc.GetBody(); respBodygrpc != nil {
|
|
||||||
resp.body = new(ListChainsResponseBody)
|
|
||||||
if err := resp.body.FromGRPCMessage(respBodygrpc); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp.ResponseHeaders.FromMessage(respgrpc)
|
|
||||||
}
|
|
|
@ -1,106 +0,0 @@
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
ape "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/grpc"
|
|
||||||
session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (rb *AddChainRequest_Body) SetTarget(t *ape.ChainTarget) {
|
|
||||||
rb.Target = t
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequest_Body) SetChain(chain *ape.Chain) {
|
|
||||||
rb.Chain = chain
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainRequest) SetBody(rb *AddChainRequest_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponse_Body) SetChainId(chainID []byte) {
|
|
||||||
rb.ChainId = chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainResponse) SetBody(rb *AddChainResponse_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequest_Body) SetTarget(t *ape.ChainTarget) {
|
|
||||||
rb.Target = t
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequest_Body) SetChainId(chainID []byte) {
|
|
||||||
rb.ChainId = chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainRequest) SetBody(rb *RemoveChainRequest_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainResponse) SetBody(rb *RemoveChainResponse_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest_Body) SetTarget(t *ape.ChainTarget) {
|
|
||||||
r.Target = t
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest) SetBody(rb *ListChainsRequest_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest) SetMetaHeader(mh *session.RequestMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest) SetVerifyHeader(vh *session.RequestVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsResponse_Body) SetChains(chains []*ape.Chain) {
|
|
||||||
rb.Chains = chains
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponse) SetBody(rb *ListChainsResponse_Body) {
|
|
||||||
r.Body = rb
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponse) SetMetaHeader(mh *session.ResponseMetaHeader) {
|
|
||||||
r.MetaHeader = mh
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponse) SetVerifyHeader(vh *session.ResponseVerificationHeader) {
|
|
||||||
r.VerifyHeader = vh
|
|
||||||
}
|
|
1129
apemanager/grpc/service.pb.go
generated
1129
apemanager/grpc/service.pb.go
generated
File diff suppressed because it is too large
Load diff
245
apemanager/grpc/service_grpc.pb.go
generated
245
apemanager/grpc/service_grpc.pb.go
generated
|
@ -1,245 +0,0 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
|
||||||
// versions:
|
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
|
||||||
// - protoc v4.25.3
|
|
||||||
// source: apemanager/grpc/service.proto
|
|
||||||
|
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
context "context"
|
|
||||||
grpc "google.golang.org/grpc"
|
|
||||||
codes "google.golang.org/grpc/codes"
|
|
||||||
status "google.golang.org/grpc/status"
|
|
||||||
)
|
|
||||||
|
|
||||||
// This is a compile-time assertion to ensure that this generated file
|
|
||||||
// is compatible with the grpc package it is being compiled against.
|
|
||||||
// Requires gRPC-Go v1.32.0 or later.
|
|
||||||
const _ = grpc.SupportPackageIsVersion7
|
|
||||||
|
|
||||||
const (
|
|
||||||
APEManagerService_AddChain_FullMethodName = "/frostfs.v2.apemanager.APEManagerService/AddChain"
|
|
||||||
APEManagerService_RemoveChain_FullMethodName = "/frostfs.v2.apemanager.APEManagerService/RemoveChain"
|
|
||||||
APEManagerService_ListChains_FullMethodName = "/frostfs.v2.apemanager.APEManagerService/ListChains"
|
|
||||||
)
|
|
||||||
|
|
||||||
// APEManagerServiceClient is the client API for APEManagerService service.
|
|
||||||
//
|
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
|
||||||
type APEManagerServiceClient interface {
|
|
||||||
// Add a rule chain for a specific target to `Policy` smart contract.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// the chain has been successfully added;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
AddChain(ctx context.Context, in *AddChainRequest, opts ...grpc.CallOption) (*AddChainResponse, error)
|
|
||||||
// Remove a rule chain for a specific target from `Policy` smart contract.
|
|
||||||
// RemoveChain is an idempotent operation: removal of non-existing rule chain
|
|
||||||
// also means success.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// the chain has been successfully removed;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
RemoveChain(ctx context.Context, in *RemoveChainRequest, opts ...grpc.CallOption) (*RemoveChainResponse, error)
|
|
||||||
// List chains defined for a specific target from `Policy` smart contract.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// chains have been successfully listed;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
ListChains(ctx context.Context, in *ListChainsRequest, opts ...grpc.CallOption) (*ListChainsResponse, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
type aPEManagerServiceClient struct {
|
|
||||||
cc grpc.ClientConnInterface
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewAPEManagerServiceClient(cc grpc.ClientConnInterface) APEManagerServiceClient {
|
|
||||||
return &aPEManagerServiceClient{cc}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aPEManagerServiceClient) AddChain(ctx context.Context, in *AddChainRequest, opts ...grpc.CallOption) (*AddChainResponse, error) {
|
|
||||||
out := new(AddChainResponse)
|
|
||||||
err := c.cc.Invoke(ctx, APEManagerService_AddChain_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aPEManagerServiceClient) RemoveChain(ctx context.Context, in *RemoveChainRequest, opts ...grpc.CallOption) (*RemoveChainResponse, error) {
|
|
||||||
out := new(RemoveChainResponse)
|
|
||||||
err := c.cc.Invoke(ctx, APEManagerService_RemoveChain_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *aPEManagerServiceClient) ListChains(ctx context.Context, in *ListChainsRequest, opts ...grpc.CallOption) (*ListChainsResponse, error) {
|
|
||||||
out := new(ListChainsResponse)
|
|
||||||
err := c.cc.Invoke(ctx, APEManagerService_ListChains_FullMethodName, in, out, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return out, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// APEManagerServiceServer is the server API for APEManagerService service.
|
|
||||||
// All implementations should embed UnimplementedAPEManagerServiceServer
|
|
||||||
// for forward compatibility
|
|
||||||
type APEManagerServiceServer interface {
|
|
||||||
// Add a rule chain for a specific target to `Policy` smart contract.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// the chain has been successfully added;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
AddChain(context.Context, *AddChainRequest) (*AddChainResponse, error)
|
|
||||||
// Remove a rule chain for a specific target from `Policy` smart contract.
|
|
||||||
// RemoveChain is an idempotent operation: removal of non-existing rule chain
|
|
||||||
// also means success.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// the chain has been successfully removed;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
RemoveChain(context.Context, *RemoveChainRequest) (*RemoveChainResponse, error)
|
|
||||||
// List chains defined for a specific target from `Policy` smart contract.
|
|
||||||
//
|
|
||||||
// Statuses:
|
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
|
||||||
// chains have been successfully listed;
|
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
|
||||||
// container (as target) not found;
|
|
||||||
// - **APE_MANAGER_ACCESS_DENIED** (5120, SECTION_APE_MANAGER): \
|
|
||||||
// the operation is denied by the service.
|
|
||||||
ListChains(context.Context, *ListChainsRequest) (*ListChainsResponse, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnimplementedAPEManagerServiceServer should be embedded to have forward compatible implementations.
|
|
||||||
type UnimplementedAPEManagerServiceServer struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (UnimplementedAPEManagerServiceServer) AddChain(context.Context, *AddChainRequest) (*AddChainResponse, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method AddChain not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedAPEManagerServiceServer) RemoveChain(context.Context, *RemoveChainRequest) (*RemoveChainResponse, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method RemoveChain not implemented")
|
|
||||||
}
|
|
||||||
func (UnimplementedAPEManagerServiceServer) ListChains(context.Context, *ListChainsRequest) (*ListChainsResponse, error) {
|
|
||||||
return nil, status.Errorf(codes.Unimplemented, "method ListChains not implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnsafeAPEManagerServiceServer may be embedded to opt out of forward compatibility for this service.
|
|
||||||
// Use of this interface is not recommended, as added methods to APEManagerServiceServer will
|
|
||||||
// result in compilation errors.
|
|
||||||
type UnsafeAPEManagerServiceServer interface {
|
|
||||||
mustEmbedUnimplementedAPEManagerServiceServer()
|
|
||||||
}
|
|
||||||
|
|
||||||
func RegisterAPEManagerServiceServer(s grpc.ServiceRegistrar, srv APEManagerServiceServer) {
|
|
||||||
s.RegisterService(&APEManagerService_ServiceDesc, srv)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _APEManagerService_AddChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(AddChainRequest)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(APEManagerServiceServer).AddChain(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: APEManagerService_AddChain_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(APEManagerServiceServer).AddChain(ctx, req.(*AddChainRequest))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _APEManagerService_RemoveChain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(RemoveChainRequest)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(APEManagerServiceServer).RemoveChain(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: APEManagerService_RemoveChain_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(APEManagerServiceServer).RemoveChain(ctx, req.(*RemoveChainRequest))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
func _APEManagerService_ListChains_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
|
||||||
in := new(ListChainsRequest)
|
|
||||||
if err := dec(in); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if interceptor == nil {
|
|
||||||
return srv.(APEManagerServiceServer).ListChains(ctx, in)
|
|
||||||
}
|
|
||||||
info := &grpc.UnaryServerInfo{
|
|
||||||
Server: srv,
|
|
||||||
FullMethod: APEManagerService_ListChains_FullMethodName,
|
|
||||||
}
|
|
||||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
|
||||||
return srv.(APEManagerServiceServer).ListChains(ctx, req.(*ListChainsRequest))
|
|
||||||
}
|
|
||||||
return interceptor(ctx, in, info, handler)
|
|
||||||
}
|
|
||||||
|
|
||||||
// APEManagerService_ServiceDesc is the grpc.ServiceDesc for APEManagerService service.
|
|
||||||
// It's only intended for direct use with grpc.RegisterService,
|
|
||||||
// and not to be introspected or modified (even as a copy)
|
|
||||||
var APEManagerService_ServiceDesc = grpc.ServiceDesc{
|
|
||||||
ServiceName: "frostfs.v2.apemanager.APEManagerService",
|
|
||||||
HandlerType: (*APEManagerServiceServer)(nil),
|
|
||||||
Methods: []grpc.MethodDesc{
|
|
||||||
{
|
|
||||||
MethodName: "AddChain",
|
|
||||||
Handler: _APEManagerService_AddChain_Handler,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MethodName: "RemoveChain",
|
|
||||||
Handler: _APEManagerService_RemoveChain_Handler,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
MethodName: "ListChains",
|
|
||||||
Handler: _APEManagerService_ListChains_Handler,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
Streams: []grpc.StreamDesc{},
|
|
||||||
Metadata: "apemanager/grpc/service.proto",
|
|
||||||
}
|
|
|
@ -1,205 +0,0 @@
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
apemanager "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/grpc"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
addChainReqBodyTargetField = 1
|
|
||||||
addChainReqBodyChainField = 2
|
|
||||||
|
|
||||||
addChainRespBodyChainIDField = 1
|
|
||||||
|
|
||||||
removeChainReqBodyTargetField = 1
|
|
||||||
removeChainReqBodyChainField = 2
|
|
||||||
|
|
||||||
/*
|
|
||||||
Fields for RemoveResponseBody are missed since RemoveResponseBody is empty.
|
|
||||||
*/
|
|
||||||
|
|
||||||
listChainsReqBodyTargetField = 1
|
|
||||||
|
|
||||||
listChainsRespBodyChainsField = 1
|
|
||||||
)
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.NestedStructureSize(addChainReqBodyTargetField, rb.target)
|
|
||||||
size += proto.NestedStructureSize(addChainReqBodyChainField, rb.chain)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.NestedStructureMarshal(addChainReqBodyTargetField, buf[offset:], rb.target)
|
|
||||||
proto.NestedStructureMarshal(addChainReqBodyChainField, buf[offset:], rb.chain)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.AddChainRequest_Body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponseBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.BytesSize(addChainRespBodyChainIDField, rb.chainID)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponseBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
proto.BytesMarshal(addChainRespBodyChainIDField, buf[offset:], rb.chainID)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponseBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.AddChainResponse_Body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.NestedStructureSize(addChainReqBodyTargetField, rb.target)
|
|
||||||
size += proto.BytesSize(addChainReqBodyChainField, rb.chainID)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.NestedStructureMarshal(removeChainReqBodyTargetField, buf[offset:], rb.target)
|
|
||||||
proto.BytesMarshal(removeChainReqBodyChainField, buf[offset:], rb.chainID)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.RemoveChainRequest_Body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainResponseBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainResponseBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainResponseBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.RemoveChainResponse_Body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsRequestBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.NestedStructureSize(listChainsReqBodyTargetField, rb.target)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsRequestBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
proto.NestedStructureMarshal(addChainReqBodyTargetField, buf[offset:], rb.target)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsRequestBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.ListChainsRequest_Body))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsResponseBody) StableSize() (size int) {
|
|
||||||
if rb == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, chain := range rb.GetChains() {
|
|
||||||
size += proto.NestedStructureSize(listChainsRespBodyChainsField, chain)
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsResponseBody) StableMarshal(buf []byte) []byte {
|
|
||||||
if rb == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, rb.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
for _, chain := range rb.GetChains() {
|
|
||||||
offset += proto.NestedStructureMarshal(listChainsRespBodyChainsField, buf[offset:], chain)
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsResponseBody) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(rb, data, new(apemanager.ListChainsResponse_Body))
|
|
||||||
}
|
|
|
@ -1,26 +0,0 @@
|
||||||
package apemanager_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
apemanagertest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager/test"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
|
||||||
messagetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message/test"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestMessageConvert(t *testing.T) {
|
|
||||||
messagetest.TestRPCMessage(t,
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateAddChainRequestBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateAddChainRequest(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateAddChainResponseBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateAddChainResponse(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateRemoveChainRequestBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateRemoveChainRequest(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateRemoveChainResponseBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateRemoveChainResponse(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateListChainsRequestBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateListChainsRequest(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateListChainsResponseBody(empty) },
|
|
||||||
func(empty bool) message.Message { return apemanagertest.GenerateListChainsResponse(empty) },
|
|
||||||
)
|
|
||||||
}
|
|
|
@ -1,76 +0,0 @@
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status"
|
|
||||||
statusgrpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/grpc"
|
|
||||||
)
|
|
||||||
|
|
||||||
// LocalizeFailStatus checks if passed global status.Code is related to ape manager failure and:
|
|
||||||
//
|
|
||||||
// then localizes the code and returns true,
|
|
||||||
// else leaves the code unchanged and returns false.
|
|
||||||
//
|
|
||||||
// Arg must be non-nil.
|
|
||||||
func LocalizeFailStatus(c *status.Code) bool {
|
|
||||||
return status.LocalizeIfInSection(c, uint32(statusgrpc.Section_SECTION_APE_MANAGER))
|
|
||||||
}
|
|
||||||
|
|
||||||
// GlobalizeFail globalizes local code of ape manager failure.
|
|
||||||
//
|
|
||||||
// Arg must be non-nil.
|
|
||||||
func GlobalizeFail(c *status.Code) {
|
|
||||||
c.GlobalizeSection(uint32(statusgrpc.Section_SECTION_APE_MANAGER))
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
// StatusAPEManagerAccessDenied is a local status.Code value for
|
|
||||||
// ACCESS_DENIED ape manager failure.
|
|
||||||
StatusAPEManagerAccessDenied status.Code = iota
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
// detailAccessDeniedDesc is a StatusAccessDenied detail ID for
|
|
||||||
// human-readable description.
|
|
||||||
detailAccessDeniedDesc = iota
|
|
||||||
)
|
|
||||||
|
|
||||||
// WriteAccessDeniedDesc writes human-readable description of StatusAccessDenied
|
|
||||||
// into status.Status as a detail. The status must not be nil.
|
|
||||||
//
|
|
||||||
// Existing details are expected to be ID-unique, otherwise undefined behavior.
|
|
||||||
func WriteAccessDeniedDesc(st *status.Status, desc string) {
|
|
||||||
var found bool
|
|
||||||
|
|
||||||
st.IterateDetails(func(d *status.Detail) bool {
|
|
||||||
if d.ID() == detailAccessDeniedDesc {
|
|
||||||
found = true
|
|
||||||
d.SetValue([]byte(desc))
|
|
||||||
}
|
|
||||||
|
|
||||||
return found
|
|
||||||
})
|
|
||||||
|
|
||||||
if !found {
|
|
||||||
var d status.Detail
|
|
||||||
|
|
||||||
d.SetID(detailAccessDeniedDesc)
|
|
||||||
d.SetValue([]byte(desc))
|
|
||||||
|
|
||||||
st.AppendDetails(d)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReadAccessDeniedDesc looks up for status detail with human-readable description
|
|
||||||
// of StatusAccessDenied. Returns empty string if detail is missing.
|
|
||||||
func ReadAccessDeniedDesc(st status.Status) (desc string) {
|
|
||||||
st.IterateDetails(func(d *status.Detail) bool {
|
|
||||||
if d.ID() == detailAccessDeniedDesc {
|
|
||||||
desc = string(d.Value())
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
})
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
|
@ -1,30 +0,0 @@
|
||||||
package apemanager_test
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status"
|
|
||||||
statustest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/status/test"
|
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestStatusCodes(t *testing.T) {
|
|
||||||
statustest.TestCodes(t, apemanager.LocalizeFailStatus, apemanager.GlobalizeFail,
|
|
||||||
apemanager.StatusAPEManagerAccessDenied, 5120,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestAccessDeniedDesc(t *testing.T) {
|
|
||||||
var st status.Status
|
|
||||||
|
|
||||||
require.Empty(t, apemanager.ReadAccessDeniedDesc(st))
|
|
||||||
|
|
||||||
const desc = "some description"
|
|
||||||
|
|
||||||
apemanager.WriteAccessDeniedDesc(&st, desc)
|
|
||||||
require.Equal(t, desc, apemanager.ReadAccessDeniedDesc(st))
|
|
||||||
|
|
||||||
apemanager.WriteAccessDeniedDesc(&st, desc+"1")
|
|
||||||
require.Equal(t, desc+"1", apemanager.ReadAccessDeniedDesc(st))
|
|
||||||
}
|
|
|
@ -1,143 +0,0 @@
|
||||||
package apemanagertest
|
|
||||||
|
|
||||||
import (
|
|
||||||
apetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/test"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager"
|
|
||||||
sessiontest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/test"
|
|
||||||
)
|
|
||||||
|
|
||||||
func generateChainID(empty bool) []byte {
|
|
||||||
if empty {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
return []byte("616c6c6f774f626a476574436e72")
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateAddChainRequestBody(empty bool) *apemanager.AddChainRequestBody {
|
|
||||||
m := new(apemanager.AddChainRequestBody)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetTarget(apetest.GenerateChainTarget(empty))
|
|
||||||
m.SetChain(apetest.GenerateRawChain(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateAddChainRequest(empty bool) *apemanager.AddChainRequest {
|
|
||||||
m := new(apemanager.AddChainRequest)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateAddChainRequestBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateAddChainResponseBody(empty bool) *apemanager.AddChainResponseBody {
|
|
||||||
m := new(apemanager.AddChainResponseBody)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetChainID(generateChainID(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateAddChainResponse(empty bool) *apemanager.AddChainResponse {
|
|
||||||
m := new(apemanager.AddChainResponse)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateAddChainResponseBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateRemoveChainRequestBody(empty bool) *apemanager.RemoveChainRequestBody {
|
|
||||||
m := new(apemanager.RemoveChainRequestBody)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetChainID(generateChainID(empty))
|
|
||||||
m.SetTarget(apetest.GenerateChainTarget(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateRemoveChainRequest(empty bool) *apemanager.RemoveChainRequest {
|
|
||||||
m := new(apemanager.RemoveChainRequest)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateRemoveChainRequestBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateRemoveChainResponseBody(_ bool) *apemanager.RemoveChainResponseBody {
|
|
||||||
return new(apemanager.RemoveChainResponseBody)
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateRemoveChainResponse(empty bool) *apemanager.RemoveChainResponse {
|
|
||||||
m := new(apemanager.RemoveChainResponse)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateRemoveChainResponseBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateListChainsRequestBody(empty bool) *apemanager.ListChainsRequestBody {
|
|
||||||
m := new(apemanager.ListChainsRequestBody)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetTarget(apetest.GenerateChainTarget(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateListChainsRequest(empty bool) *apemanager.ListChainsRequest {
|
|
||||||
m := new(apemanager.ListChainsRequest)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateListChainsRequestBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateListChainsResponseBody(empty bool) *apemanager.ListChainsResponseBody {
|
|
||||||
m := new(apemanager.ListChainsResponseBody)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetChains(apetest.GenerateRawChains(empty, 10))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateListChainsResponse(empty bool) *apemanager.ListChainsResponse {
|
|
||||||
m := new(apemanager.ListChainsResponse)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetBody(GenerateListChainsResponseBody(empty))
|
|
||||||
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
||||||
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
|
@ -1,175 +0,0 @@
|
||||||
package apemanager
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session"
|
|
||||||
)
|
|
||||||
|
|
||||||
type AddChainRequest struct {
|
|
||||||
body *AddChainRequestBody
|
|
||||||
|
|
||||||
session.RequestHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainRequest) SetBody(body *AddChainRequestBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainRequest) GetBody() *AddChainRequestBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type AddChainRequestBody struct {
|
|
||||||
target *ape.ChainTarget
|
|
||||||
|
|
||||||
chain *ape.Chain
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) SetTarget(target *ape.ChainTarget) {
|
|
||||||
rb.target = target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) GetTarget() *ape.ChainTarget {
|
|
||||||
return rb.target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) SetChain(chain *ape.Chain) {
|
|
||||||
rb.chain = chain
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainRequestBody) GetChain() *ape.Chain {
|
|
||||||
return rb.chain
|
|
||||||
}
|
|
||||||
|
|
||||||
type AddChainResponse struct {
|
|
||||||
body *AddChainResponseBody
|
|
||||||
|
|
||||||
session.ResponseHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainResponse) SetBody(body *AddChainResponseBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *AddChainResponse) GetBody() *AddChainResponseBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type AddChainResponseBody struct {
|
|
||||||
chainID []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponseBody) SetChainID(chainID []byte) {
|
|
||||||
rb.chainID = chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *AddChainResponseBody) GetChainID() []byte {
|
|
||||||
return rb.chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
type RemoveChainRequest struct {
|
|
||||||
body *RemoveChainRequestBody
|
|
||||||
|
|
||||||
session.RequestHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainRequest) SetBody(body *RemoveChainRequestBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainRequest) GetBody() *RemoveChainRequestBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type RemoveChainRequestBody struct {
|
|
||||||
target *ape.ChainTarget
|
|
||||||
|
|
||||||
chainID []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) SetTarget(target *ape.ChainTarget) {
|
|
||||||
rb.target = target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) GetTarget() *ape.ChainTarget {
|
|
||||||
return rb.target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) SetChainID(chainID []byte) {
|
|
||||||
rb.chainID = chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *RemoveChainRequestBody) GetChainID() []byte {
|
|
||||||
return rb.chainID
|
|
||||||
}
|
|
||||||
|
|
||||||
type RemoveChainResponse struct {
|
|
||||||
body *RemoveChainResponseBody
|
|
||||||
|
|
||||||
session.ResponseHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
type RemoveChainResponseBody struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainResponse) SetBody(body *RemoveChainResponseBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *RemoveChainResponse) GetBody() *RemoveChainResponseBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListChainsRequest struct {
|
|
||||||
body *ListChainsRequestBody
|
|
||||||
|
|
||||||
session.RequestHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest) SetBody(body *ListChainsRequestBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsRequest) GetBody() *ListChainsRequestBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListChainsRequestBody struct {
|
|
||||||
target *ape.ChainTarget
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsRequestBody) SetTarget(target *ape.ChainTarget) {
|
|
||||||
rb.target = target
|
|
||||||
}
|
|
||||||
|
|
||||||
func (rb *ListChainsRequestBody) GetTarget() *ape.ChainTarget {
|
|
||||||
return rb.target
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListChainsResponse struct {
|
|
||||||
body *ListChainsResponseBody
|
|
||||||
|
|
||||||
session.ResponseHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponse) SetBody(body *ListChainsResponseBody) {
|
|
||||||
r.body = body
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponse) GetBody() *ListChainsResponseBody {
|
|
||||||
return r.body
|
|
||||||
}
|
|
||||||
|
|
||||||
type ListChainsResponseBody struct {
|
|
||||||
chains []*ape.Chain
|
|
||||||
|
|
||||||
session.RequestHeaders
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponseBody) SetChains(chains []*ape.Chain) {
|
|
||||||
r.chains = chains
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *ListChainsResponseBody) GetChains() []*ape.Chain {
|
|
||||||
return r.chains
|
|
||||||
}
|
|
94
audit/convert.go
Normal file
94
audit/convert.go
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
audit "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/audit/grpc"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
|
refsGRPC "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/grpc"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (a *DataAuditResult) ToGRPCMessage() grpc.Message {
|
||||||
|
var m *audit.DataAuditResult
|
||||||
|
|
||||||
|
if a != nil {
|
||||||
|
m = new(audit.DataAuditResult)
|
||||||
|
|
||||||
|
m.SetAuditEpoch(a.auditEpoch)
|
||||||
|
m.SetPublicKey(a.pubKey)
|
||||||
|
m.SetContainerId(a.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
|
||||||
|
m.SetComplete(a.complete)
|
||||||
|
m.SetVersion(a.version.ToGRPCMessage().(*refsGRPC.Version))
|
||||||
|
m.SetPassNodes(a.passNodes)
|
||||||
|
m.SetFailNodes(a.failNodes)
|
||||||
|
m.SetRetries(a.retries)
|
||||||
|
m.SetRequests(a.requests)
|
||||||
|
m.SetHit(a.hit)
|
||||||
|
m.SetMiss(a.miss)
|
||||||
|
m.SetFail(a.fail)
|
||||||
|
m.SetPassSg(refs.ObjectIDListToGRPCMessage(a.passSG))
|
||||||
|
m.SetFailSg(refs.ObjectIDListToGRPCMessage(a.failSG))
|
||||||
|
}
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *DataAuditResult) FromGRPCMessage(m grpc.Message) error {
|
||||||
|
v, ok := m.(*audit.DataAuditResult)
|
||||||
|
if !ok {
|
||||||
|
return message.NewUnexpectedMessageType(m, v)
|
||||||
|
}
|
||||||
|
|
||||||
|
var err error
|
||||||
|
|
||||||
|
cid := v.GetContainerId()
|
||||||
|
if cid == nil {
|
||||||
|
a.cid = nil
|
||||||
|
} else {
|
||||||
|
if a.cid == nil {
|
||||||
|
a.cid = new(refs.ContainerID)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = a.cid.FromGRPCMessage(cid)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
version := v.GetVersion()
|
||||||
|
if version == nil {
|
||||||
|
a.version = nil
|
||||||
|
} else {
|
||||||
|
if a.version == nil {
|
||||||
|
a.version = new(refs.Version)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = a.version.FromGRPCMessage(version)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
a.passSG, err = refs.ObjectIDListFromGRPCMessage(v.GetPassSg())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
a.failSG, err = refs.ObjectIDListFromGRPCMessage(v.GetFailSg())
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
a.auditEpoch = v.GetAuditEpoch()
|
||||||
|
a.pubKey = v.GetPublicKey()
|
||||||
|
a.complete = v.GetComplete()
|
||||||
|
a.passNodes = v.GetPassNodes()
|
||||||
|
a.failNodes = v.GetFailNodes()
|
||||||
|
a.retries = v.GetRetries()
|
||||||
|
a.requests = v.GetRequests()
|
||||||
|
a.hit = v.GetHit()
|
||||||
|
a.miss = v.GetMiss()
|
||||||
|
a.fail = v.GetFail()
|
||||||
|
|
||||||
|
return err
|
||||||
|
}
|
75
audit/grpc/types.go
Normal file
75
audit/grpc/types.go
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
refs "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
|
)
|
||||||
|
|
||||||
|
// SetVersion is a Version field setter.
|
||||||
|
func (x *DataAuditResult) SetVersion(v *refs.Version) {
|
||||||
|
x.Version = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetAuditEpoch is an AuditEpoch field setter.
|
||||||
|
func (x *DataAuditResult) SetAuditEpoch(v uint64) {
|
||||||
|
x.AuditEpoch = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContainerId is a ContainerId field setter.
|
||||||
|
func (x *DataAuditResult) SetContainerId(v *refs.ContainerID) {
|
||||||
|
x.ContainerId = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPublicKey is a PublicKey field setter.
|
||||||
|
func (x *DataAuditResult) SetPublicKey(v []byte) {
|
||||||
|
x.PublicKey = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetComplete is a Complete field setter.
|
||||||
|
func (x *DataAuditResult) SetComplete(v bool) {
|
||||||
|
x.Complete = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRequests is a Requests field setter.
|
||||||
|
func (x *DataAuditResult) SetRequests(v uint32) {
|
||||||
|
x.Requests = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRetries is a Retries field setter.
|
||||||
|
func (x *DataAuditResult) SetRetries(v uint32) {
|
||||||
|
x.Retries = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPassSg is a PassSg field setter.
|
||||||
|
func (x *DataAuditResult) SetPassSg(v []*refs.ObjectID) {
|
||||||
|
x.PassSg = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFailSg is a FailSg field setter.
|
||||||
|
func (x *DataAuditResult) SetFailSg(v []*refs.ObjectID) {
|
||||||
|
x.FailSg = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetHit is a Hit field setter.
|
||||||
|
func (x *DataAuditResult) SetHit(v uint32) {
|
||||||
|
x.Hit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetMiss is a Miss field setter.
|
||||||
|
func (x *DataAuditResult) SetMiss(v uint32) {
|
||||||
|
x.Miss = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFail is a Fail field setter.
|
||||||
|
func (x *DataAuditResult) SetFail(v uint32) {
|
||||||
|
x.Fail = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPassNodes is a PassNodes field setter.
|
||||||
|
func (x *DataAuditResult) SetPassNodes(v [][]byte) {
|
||||||
|
x.PassNodes = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFailNodes is a FailNodes field setter.
|
||||||
|
func (x *DataAuditResult) SetFailNodes(v [][]byte) {
|
||||||
|
x.FailNodes = v
|
||||||
|
}
|
311
audit/grpc/types.pb.go
generated
Normal file
311
audit/grpc/types.pb.go
generated
Normal file
|
@ -0,0 +1,311 @@
|
||||||
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
|
// versions:
|
||||||
|
// protoc-gen-go v1.30.0
|
||||||
|
// protoc v4.23.4
|
||||||
|
// source: audit/grpc/types.proto
|
||||||
|
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
grpc "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/grpc"
|
||||||
|
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||||
|
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||||
|
reflect "reflect"
|
||||||
|
sync "sync"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// Verify that this generated code is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||||
|
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||||
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
|
)
|
||||||
|
|
||||||
|
// DataAuditResult keeps record of conducted Data Audits. The detailed report is
|
||||||
|
// generated separately.
|
||||||
|
type DataAuditResult struct {
|
||||||
|
state protoimpl.MessageState
|
||||||
|
sizeCache protoimpl.SizeCache
|
||||||
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
|
// Data Audit Result format version. Effectively, the version of API library
|
||||||
|
// used to report DataAuditResult structure.
|
||||||
|
Version *grpc.Version `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
|
||||||
|
// Epoch number when the Data Audit was conducted
|
||||||
|
AuditEpoch uint64 `protobuf:"fixed64,2,opt,name=audit_epoch,json=auditEpoch,proto3" json:"audit_epoch,omitempty"`
|
||||||
|
// Container under audit
|
||||||
|
ContainerId *grpc.ContainerID `protobuf:"bytes,3,opt,name=container_id,json=containerID,proto3" json:"container_id,omitempty"`
|
||||||
|
// Public key of the auditing InnerRing node in a binary format
|
||||||
|
PublicKey []byte `protobuf:"bytes,4,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
|
||||||
|
// Shows if Data Audit process was complete in time or if it was cancelled
|
||||||
|
Complete bool `protobuf:"varint,5,opt,name=complete,proto3" json:"complete,omitempty"`
|
||||||
|
// Number of request done at PoR stage
|
||||||
|
Requests uint32 `protobuf:"varint,6,opt,name=requests,proto3" json:"requests,omitempty"`
|
||||||
|
// Number of retries done at PoR stage
|
||||||
|
Retries uint32 `protobuf:"varint,7,opt,name=retries,proto3" json:"retries,omitempty"`
|
||||||
|
// List of Storage Groups that passed audit PoR stage
|
||||||
|
PassSg []*grpc.ObjectID `protobuf:"bytes,8,rep,name=pass_sg,json=passSG,proto3" json:"pass_sg,omitempty"`
|
||||||
|
// List of Storage Groups that failed audit PoR stage
|
||||||
|
FailSg []*grpc.ObjectID `protobuf:"bytes,9,rep,name=fail_sg,json=failSG,proto3" json:"fail_sg,omitempty"`
|
||||||
|
// Number of sampled objects under the audit placed in an optimal way according to
|
||||||
|
// the containers placement policy when checking PoP
|
||||||
|
Hit uint32 `protobuf:"varint,10,opt,name=hit,proto3" json:"hit,omitempty"`
|
||||||
|
// Number of sampled objects under the audit placed in suboptimal way according to
|
||||||
|
// the containers placement policy, but still at a satisfactory level when
|
||||||
|
// checking PoP
|
||||||
|
Miss uint32 `protobuf:"varint,11,opt,name=miss,proto3" json:"miss,omitempty"`
|
||||||
|
// Number of sampled objects under the audit stored inconsistently with the
|
||||||
|
// placement policy or not found at all when checking PoP
|
||||||
|
Fail uint32 `protobuf:"varint,12,opt,name=fail,proto3" json:"fail,omitempty"`
|
||||||
|
// List of storage node public keys that passed at least one PDP
|
||||||
|
PassNodes [][]byte `protobuf:"bytes,13,rep,name=pass_nodes,json=passNodes,proto3" json:"pass_nodes,omitempty"`
|
||||||
|
// List of storage node public keys that failed at least one PDP
|
||||||
|
FailNodes [][]byte `protobuf:"bytes,14,rep,name=fail_nodes,json=failNodes,proto3" json:"fail_nodes,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) Reset() {
|
||||||
|
*x = DataAuditResult{}
|
||||||
|
if protoimpl.UnsafeEnabled {
|
||||||
|
mi := &file_audit_grpc_types_proto_msgTypes[0]
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) String() string {
|
||||||
|
return protoimpl.X.MessageStringOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (*DataAuditResult) ProtoMessage() {}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) ProtoReflect() protoreflect.Message {
|
||||||
|
mi := &file_audit_grpc_types_proto_msgTypes[0]
|
||||||
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
ms.StoreMessageInfo(mi)
|
||||||
|
}
|
||||||
|
return ms
|
||||||
|
}
|
||||||
|
return mi.MessageOf(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use DataAuditResult.ProtoReflect.Descriptor instead.
|
||||||
|
func (*DataAuditResult) Descriptor() ([]byte, []int) {
|
||||||
|
return file_audit_grpc_types_proto_rawDescGZIP(), []int{0}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetVersion() *grpc.Version {
|
||||||
|
if x != nil {
|
||||||
|
return x.Version
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetAuditEpoch() uint64 {
|
||||||
|
if x != nil {
|
||||||
|
return x.AuditEpoch
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetContainerId() *grpc.ContainerID {
|
||||||
|
if x != nil {
|
||||||
|
return x.ContainerId
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetPublicKey() []byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.PublicKey
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetComplete() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.Complete
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetRequests() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Requests
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetRetries() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Retries
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetPassSg() []*grpc.ObjectID {
|
||||||
|
if x != nil {
|
||||||
|
return x.PassSg
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetFailSg() []*grpc.ObjectID {
|
||||||
|
if x != nil {
|
||||||
|
return x.FailSg
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetHit() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Hit
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetMiss() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Miss
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetFail() uint32 {
|
||||||
|
if x != nil {
|
||||||
|
return x.Fail
|
||||||
|
}
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetPassNodes() [][]byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.PassNodes
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *DataAuditResult) GetFailNodes() [][]byte {
|
||||||
|
if x != nil {
|
||||||
|
return x.FailNodes
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
var File_audit_grpc_types_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
|
var file_audit_grpc_types_proto_rawDesc = []byte{
|
||||||
|
0x0a, 0x16, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70,
|
||||||
|
0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x1a, 0x15, 0x72, 0x65, 0x66, 0x73, 0x2f,
|
||||||
|
0x67, 0x72, 0x70, 0x63, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
|
0x22, 0xf4, 0x03, 0x0a, 0x0f, 0x44, 0x61, 0x74, 0x61, 0x41, 0x75, 0x64, 0x69, 0x74, 0x52, 0x65,
|
||||||
|
0x73, 0x75, 0x6c, 0x74, 0x12, 0x31, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
|
||||||
|
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
|
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07,
|
||||||
|
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x75, 0x64, 0x69, 0x74,
|
||||||
|
0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x06, 0x52, 0x0a, 0x61, 0x75,
|
||||||
|
0x64, 0x69, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74,
|
||||||
|
0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
|
||||||
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
||||||
|
0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
|
||||||
|
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c,
|
||||||
|
0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75,
|
||||||
|
0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c,
|
||||||
|
0x65, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x6c,
|
||||||
|
0x65, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18,
|
||||||
|
0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12,
|
||||||
|
0x18, 0x0a, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d,
|
||||||
|
0x52, 0x07, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x73,
|
||||||
|
0x73, 0x5f, 0x73, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
|
||||||
|
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65,
|
||||||
|
0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x53, 0x47, 0x12, 0x31, 0x0a, 0x07,
|
||||||
|
0x66, 0x61, 0x69, 0x6c, 0x5f, 0x73, 0x67, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
|
||||||
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f,
|
||||||
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x53, 0x47, 0x12,
|
||||||
|
0x10, 0x0a, 0x03, 0x68, 0x69, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x68, 0x69,
|
||||||
|
0x74, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x69, 0x73, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52,
|
||||||
|
0x04, 0x6d, 0x69, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x0c, 0x20,
|
||||||
|
0x01, 0x28, 0x0d, 0x52, 0x04, 0x66, 0x61, 0x69, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x73,
|
||||||
|
0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x70,
|
||||||
|
0x61, 0x73, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x61, 0x69, 0x6c,
|
||||||
|
0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x66, 0x61,
|
||||||
|
0x69, 0x6c, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0x5e, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x2e, 0x66,
|
||||||
|
0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65,
|
||||||
|
0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73,
|
||||||
|
0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74,
|
||||||
|
0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x61, 0x75, 0x64, 0x69, 0x74, 0xaa, 0x02, 0x19, 0x4e, 0x65,
|
||||||
|
0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50,
|
||||||
|
0x49, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
file_audit_grpc_types_proto_rawDescOnce sync.Once
|
||||||
|
file_audit_grpc_types_proto_rawDescData = file_audit_grpc_types_proto_rawDesc
|
||||||
|
)
|
||||||
|
|
||||||
|
func file_audit_grpc_types_proto_rawDescGZIP() []byte {
|
||||||
|
file_audit_grpc_types_proto_rawDescOnce.Do(func() {
|
||||||
|
file_audit_grpc_types_proto_rawDescData = protoimpl.X.CompressGZIP(file_audit_grpc_types_proto_rawDescData)
|
||||||
|
})
|
||||||
|
return file_audit_grpc_types_proto_rawDescData
|
||||||
|
}
|
||||||
|
|
||||||
|
var file_audit_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
|
||||||
|
var file_audit_grpc_types_proto_goTypes = []interface{}{
|
||||||
|
(*DataAuditResult)(nil), // 0: neo.fs.v2.audit.DataAuditResult
|
||||||
|
(*grpc.Version)(nil), // 1: neo.fs.v2.refs.Version
|
||||||
|
(*grpc.ContainerID)(nil), // 2: neo.fs.v2.refs.ContainerID
|
||||||
|
(*grpc.ObjectID)(nil), // 3: neo.fs.v2.refs.ObjectID
|
||||||
|
}
|
||||||
|
var file_audit_grpc_types_proto_depIdxs = []int32{
|
||||||
|
1, // 0: neo.fs.v2.audit.DataAuditResult.version:type_name -> neo.fs.v2.refs.Version
|
||||||
|
2, // 1: neo.fs.v2.audit.DataAuditResult.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
||||||
|
3, // 2: neo.fs.v2.audit.DataAuditResult.pass_sg:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
|
3, // 3: neo.fs.v2.audit.DataAuditResult.fail_sg:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
|
4, // [4:4] is the sub-list for method output_type
|
||||||
|
4, // [4:4] is the sub-list for method input_type
|
||||||
|
4, // [4:4] is the sub-list for extension type_name
|
||||||
|
4, // [4:4] is the sub-list for extension extendee
|
||||||
|
0, // [0:4] is the sub-list for field type_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() { file_audit_grpc_types_proto_init() }
|
||||||
|
func file_audit_grpc_types_proto_init() {
|
||||||
|
if File_audit_grpc_types_proto != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !protoimpl.UnsafeEnabled {
|
||||||
|
file_audit_grpc_types_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
|
||||||
|
switch v := v.(*DataAuditResult); i {
|
||||||
|
case 0:
|
||||||
|
return &v.state
|
||||||
|
case 1:
|
||||||
|
return &v.sizeCache
|
||||||
|
case 2:
|
||||||
|
return &v.unknownFields
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type x struct{}
|
||||||
|
out := protoimpl.TypeBuilder{
|
||||||
|
File: protoimpl.DescBuilder{
|
||||||
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
|
RawDescriptor: file_audit_grpc_types_proto_rawDesc,
|
||||||
|
NumEnums: 0,
|
||||||
|
NumMessages: 1,
|
||||||
|
NumExtensions: 0,
|
||||||
|
NumServices: 0,
|
||||||
|
},
|
||||||
|
GoTypes: file_audit_grpc_types_proto_goTypes,
|
||||||
|
DependencyIndexes: file_audit_grpc_types_proto_depIdxs,
|
||||||
|
MessageInfos: file_audit_grpc_types_proto_msgTypes,
|
||||||
|
}.Build()
|
||||||
|
File_audit_grpc_types_proto = out.File
|
||||||
|
file_audit_grpc_types_proto_rawDesc = nil
|
||||||
|
file_audit_grpc_types_proto_goTypes = nil
|
||||||
|
file_audit_grpc_types_proto_depIdxs = nil
|
||||||
|
}
|
14
audit/json.go
Normal file
14
audit/json.go
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
audit "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/audit/grpc"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
|
)
|
||||||
|
|
||||||
|
func (a *DataAuditResult) MarshalJSON() ([]byte, error) {
|
||||||
|
return message.MarshalJSON(a)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *DataAuditResult) UnmarshalJSON(data []byte) error {
|
||||||
|
return message.UnmarshalJSON(a, data, new(audit.DataAuditResult))
|
||||||
|
}
|
88
audit/marshal.go
Normal file
88
audit/marshal.go
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
audit "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/audit/grpc"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
_ = iota
|
||||||
|
versionFNum
|
||||||
|
auditEpochFNum
|
||||||
|
cidFNum
|
||||||
|
pubKeyFNum
|
||||||
|
completeFNum
|
||||||
|
requestsFNum
|
||||||
|
retriesFNum
|
||||||
|
passSGFNum
|
||||||
|
failSGFNum
|
||||||
|
hitFNum
|
||||||
|
missFNum
|
||||||
|
failFNum
|
||||||
|
passNodesFNum
|
||||||
|
failNodesFNum
|
||||||
|
)
|
||||||
|
|
||||||
|
// StableMarshal marshals unified DataAuditResult structure into a protobuf
|
||||||
|
// binary format without field order shuffle.
|
||||||
|
func (a *DataAuditResult) StableMarshal(buf []byte) []byte {
|
||||||
|
if a == nil {
|
||||||
|
return []byte{}
|
||||||
|
}
|
||||||
|
|
||||||
|
if buf == nil {
|
||||||
|
buf = make([]byte, a.StableSize())
|
||||||
|
}
|
||||||
|
|
||||||
|
var offset int
|
||||||
|
|
||||||
|
offset += proto.NestedStructureMarshal(versionFNum, buf[offset:], a.version)
|
||||||
|
offset += proto.Fixed64Marshal(auditEpochFNum, buf[offset:], a.auditEpoch)
|
||||||
|
offset += proto.NestedStructureMarshal(cidFNum, buf[offset:], a.cid)
|
||||||
|
offset += proto.BytesMarshal(pubKeyFNum, buf[offset:], a.pubKey)
|
||||||
|
offset += proto.BoolMarshal(completeFNum, buf[offset:], a.complete)
|
||||||
|
offset += proto.UInt32Marshal(requestsFNum, buf[offset:], a.requests)
|
||||||
|
offset += proto.UInt32Marshal(retriesFNum, buf[offset:], a.retries)
|
||||||
|
offset += refs.ObjectIDNestedListMarshal(passSGFNum, buf[offset:], a.passSG)
|
||||||
|
offset += refs.ObjectIDNestedListMarshal(failSGFNum, buf[offset:], a.failSG)
|
||||||
|
offset += proto.UInt32Marshal(hitFNum, buf[offset:], a.hit)
|
||||||
|
offset += proto.UInt32Marshal(missFNum, buf[offset:], a.miss)
|
||||||
|
offset += proto.UInt32Marshal(failFNum, buf[offset:], a.fail)
|
||||||
|
offset += proto.RepeatedBytesMarshal(passNodesFNum, buf[offset:], a.passNodes)
|
||||||
|
proto.RepeatedBytesMarshal(failNodesFNum, buf[offset:], a.failNodes)
|
||||||
|
|
||||||
|
return buf
|
||||||
|
}
|
||||||
|
|
||||||
|
// StableSize returns byte length of DataAuditResult structure
|
||||||
|
// marshaled by StableMarshal function.
|
||||||
|
func (a *DataAuditResult) StableSize() (size int) {
|
||||||
|
if a == nil {
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
size += proto.NestedStructureSize(versionFNum, a.version)
|
||||||
|
size += proto.Fixed64Size(auditEpochFNum, a.auditEpoch)
|
||||||
|
size += proto.NestedStructureSize(cidFNum, a.cid)
|
||||||
|
size += proto.BytesSize(pubKeyFNum, a.pubKey)
|
||||||
|
size += proto.BoolSize(completeFNum, a.complete)
|
||||||
|
size += proto.UInt32Size(requestsFNum, a.requests)
|
||||||
|
size += proto.UInt32Size(retriesFNum, a.retries)
|
||||||
|
size += refs.ObjectIDNestedListSize(passSGFNum, a.passSG)
|
||||||
|
size += refs.ObjectIDNestedListSize(failSGFNum, a.failSG)
|
||||||
|
size += proto.UInt32Size(hitFNum, a.hit)
|
||||||
|
size += proto.UInt32Size(missFNum, a.miss)
|
||||||
|
size += proto.UInt32Size(failFNum, a.fail)
|
||||||
|
size += proto.RepeatedBytesSize(passNodesFNum, a.passNodes)
|
||||||
|
size += proto.RepeatedBytesSize(failNodesFNum, a.failNodes)
|
||||||
|
|
||||||
|
return size
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unmarshal unmarshals DataAuditResult structure from its protobuf
|
||||||
|
// binary representation.
|
||||||
|
func (a *DataAuditResult) Unmarshal(data []byte) error {
|
||||||
|
return message.Unmarshal(a, data, new(audit.DataAuditResult))
|
||||||
|
}
|
|
@ -1,15 +1,15 @@
|
||||||
package ape_test
|
package audit_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
apetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/ape/test"
|
audittest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/audit/test"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
messagetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message/test"
|
messagetest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message/test"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMessageConvert(t *testing.T) {
|
func TestMessageConvert(t *testing.T) {
|
||||||
messagetest.TestRPCMessage(t,
|
messagetest.TestRPCMessage(t,
|
||||||
func(empty bool) message.Message { return apetest.GenerateChainTarget(empty) },
|
func(empty bool) message.Message { return audittest.GenerateDataAuditResult(empty) },
|
||||||
)
|
)
|
||||||
}
|
}
|
29
audit/test/generate.go
Normal file
29
audit/test/generate.go
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
package audittest
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/audit"
|
||||||
|
refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GenerateDataAuditResult(empty bool) *audit.DataAuditResult {
|
||||||
|
m := new(audit.DataAuditResult)
|
||||||
|
|
||||||
|
if !empty {
|
||||||
|
m.SetPublicKey([]byte{1, 2, 3})
|
||||||
|
m.SetAuditEpoch(13)
|
||||||
|
m.SetHit(100)
|
||||||
|
m.SetMiss(200)
|
||||||
|
m.SetFail(300)
|
||||||
|
m.SetComplete(true)
|
||||||
|
m.SetPassNodes([][]byte{{1}, {2}})
|
||||||
|
m.SetFailNodes([][]byte{{3}, {4}})
|
||||||
|
m.SetRequests(666)
|
||||||
|
m.SetRetries(777)
|
||||||
|
m.SetVersion(refstest.GenerateVersion(false))
|
||||||
|
m.SetContainerID(refstest.GenerateContainerID(false))
|
||||||
|
m.SetPassSG(refstest.GenerateObjectIDs(false))
|
||||||
|
m.SetFailSG(refstest.GenerateObjectIDs(false))
|
||||||
|
}
|
||||||
|
|
||||||
|
return m
|
||||||
|
}
|
243
audit/types.go
Normal file
243
audit/types.go
Normal file
|
@ -0,0 +1,243 @@
|
||||||
|
package audit
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
|
)
|
||||||
|
|
||||||
|
// DataAuditResult is a unified structure of
|
||||||
|
// DataAuditResult message from proto definition.
|
||||||
|
type DataAuditResult struct {
|
||||||
|
version *refs.Version
|
||||||
|
|
||||||
|
auditEpoch uint64
|
||||||
|
|
||||||
|
requests, retries uint32
|
||||||
|
|
||||||
|
hit, miss, fail uint32
|
||||||
|
|
||||||
|
cid *refs.ContainerID
|
||||||
|
|
||||||
|
pubKey []byte
|
||||||
|
|
||||||
|
passSG, failSG []refs.ObjectID
|
||||||
|
|
||||||
|
failNodes, passNodes [][]byte
|
||||||
|
|
||||||
|
complete bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetVersion returns version of Data Audit structure.
|
||||||
|
func (a *DataAuditResult) GetVersion() *refs.Version {
|
||||||
|
if a != nil {
|
||||||
|
return a.version
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetVersion sets version of Data Audit structure.
|
||||||
|
func (a *DataAuditResult) SetVersion(v *refs.Version) {
|
||||||
|
a.version = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetAuditEpoch returns epoch number when the Data Audit was conducted.
|
||||||
|
func (a *DataAuditResult) GetAuditEpoch() uint64 {
|
||||||
|
if a != nil {
|
||||||
|
return a.auditEpoch
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetAuditEpoch sets epoch number when the Data Audit was conducted.
|
||||||
|
func (a *DataAuditResult) SetAuditEpoch(v uint64) {
|
||||||
|
a.auditEpoch = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetContainerID returns container under audit.
|
||||||
|
func (a *DataAuditResult) GetContainerID() *refs.ContainerID {
|
||||||
|
if a != nil {
|
||||||
|
return a.cid
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContainerID sets container under audit.
|
||||||
|
func (a *DataAuditResult) SetContainerID(v *refs.ContainerID) {
|
||||||
|
a.cid = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPublicKey returns public key of the auditing InnerRing node in a binary format.
|
||||||
|
func (a *DataAuditResult) GetPublicKey() []byte {
|
||||||
|
if a != nil {
|
||||||
|
return a.pubKey
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPublicKey sets public key of the auditing InnerRing node in a binary format.
|
||||||
|
func (a *DataAuditResult) SetPublicKey(v []byte) {
|
||||||
|
a.pubKey = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPassSG returns list of Storage Groups that passed audit PoR stage.
|
||||||
|
func (a *DataAuditResult) GetPassSG() []refs.ObjectID {
|
||||||
|
if a != nil {
|
||||||
|
return a.passSG
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPassSG sets list of Storage Groups that passed audit PoR stage.
|
||||||
|
func (a *DataAuditResult) SetPassSG(v []refs.ObjectID) {
|
||||||
|
a.passSG = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFailSG returns list of Storage Groups that failed audit PoR stage.
|
||||||
|
func (a *DataAuditResult) GetFailSG() []refs.ObjectID {
|
||||||
|
if a != nil {
|
||||||
|
return a.failSG
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFailSG sets list of Storage Groups that failed audit PoR stage.
|
||||||
|
func (a *DataAuditResult) SetFailSG(v []refs.ObjectID) {
|
||||||
|
a.failSG = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRequests returns number of requests made by PoR audit check to get
|
||||||
|
// all headers of the objects inside storage groups.
|
||||||
|
func (a *DataAuditResult) GetRequests() uint32 {
|
||||||
|
if a != nil {
|
||||||
|
return a.requests
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRequests sets number of requests made by PoR audit check to get
|
||||||
|
// all headers of the objects inside storage groups.
|
||||||
|
func (a *DataAuditResult) SetRequests(v uint32) {
|
||||||
|
a.requests = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetRetries returns number of retries made by PoR audit check to get
|
||||||
|
// all headers of the objects inside storage groups.
|
||||||
|
func (a *DataAuditResult) GetRetries() uint32 {
|
||||||
|
if a != nil {
|
||||||
|
return a.retries
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetRetries sets number of retries made by PoR audit check to get
|
||||||
|
// all headers of the objects inside storage groups.
|
||||||
|
func (a *DataAuditResult) SetRetries(v uint32) {
|
||||||
|
a.retries = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetHit returns number of sampled objects under audit placed
|
||||||
|
// in an optimal way according to the containers placement policy
|
||||||
|
// when checking PoP.
|
||||||
|
func (a *DataAuditResult) GetHit() uint32 {
|
||||||
|
if a != nil {
|
||||||
|
return a.hit
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetHit sets number of sampled objects under audit placed
|
||||||
|
// in an optimal way according to the containers placement policy
|
||||||
|
// when checking PoP.
|
||||||
|
func (a *DataAuditResult) SetHit(v uint32) {
|
||||||
|
a.hit = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetMiss returns number of sampled objects under audit placed
|
||||||
|
// in suboptimal way according to the containers placement policy,
|
||||||
|
// but still at a satisfactory level when checking PoP.
|
||||||
|
func (a *DataAuditResult) GetMiss() uint32 {
|
||||||
|
if a != nil {
|
||||||
|
return a.miss
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetMiss sets number of sampled objects under audit placed
|
||||||
|
// in suboptimal way according to the containers placement policy,
|
||||||
|
// but still at a satisfactory level when checking PoP.
|
||||||
|
func (a *DataAuditResult) SetMiss(v uint32) {
|
||||||
|
a.miss = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFail returns number of sampled objects under audit stored
|
||||||
|
// in a way not confirming placement policy or not found at all
|
||||||
|
// when checking PoP.
|
||||||
|
func (a *DataAuditResult) GetFail() uint32 {
|
||||||
|
if a != nil {
|
||||||
|
return a.fail
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFail sets number of sampled objects under audit stored
|
||||||
|
// in a way not confirming placement policy or not found at all
|
||||||
|
// when checking PoP.
|
||||||
|
func (a *DataAuditResult) SetFail(v uint32) {
|
||||||
|
a.fail = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPassNodes returns list of storage node public keys that
|
||||||
|
// passed at least one PDP.
|
||||||
|
func (a *DataAuditResult) GetPassNodes() [][]byte {
|
||||||
|
if a != nil {
|
||||||
|
return a.passNodes
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetPassNodes sets list of storage node public keys that
|
||||||
|
// passed at least one PDP.
|
||||||
|
func (a *DataAuditResult) SetPassNodes(v [][]byte) {
|
||||||
|
a.passNodes = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetFailNodes returns list of storage node public keys that
|
||||||
|
// failed at least one PDP.
|
||||||
|
func (a *DataAuditResult) GetFailNodes() [][]byte {
|
||||||
|
if a != nil {
|
||||||
|
return a.failNodes
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFailNodes sets list of storage node public keys that
|
||||||
|
// failed at least one PDP.
|
||||||
|
func (a *DataAuditResult) SetFailNodes(v [][]byte) {
|
||||||
|
a.failNodes = v
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetComplete returns boolean completion statement of audit result.
|
||||||
|
func (a *DataAuditResult) GetComplete() bool {
|
||||||
|
if a != nil {
|
||||||
|
return a.complete
|
||||||
|
}
|
||||||
|
|
||||||
|
return false // bool default
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetComplete sets boolean completion statement of audit result.
|
||||||
|
func (a *DataAuditResult) SetComplete(v bool) {
|
||||||
|
a.complete = v
|
||||||
|
}
|
15
container/grpc/service.pb.go
generated
15
container/grpc/service.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: container/grpc/service.proto
|
// source: container/grpc/service.proto
|
||||||
|
|
||||||
package container
|
package container
|
||||||
|
@ -1128,8 +1128,7 @@ type DeleteRequest_Body struct {
|
||||||
|
|
||||||
// Identifier of the container to delete from NeoFS
|
// Identifier of the container to delete from NeoFS
|
||||||
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
|
ContainerId *grpc1.ContainerID `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"`
|
||||||
// `ContainerID` signed with the container owner's key according to
|
// `ContainerID` signed with the container owner's key according to RFC-6979.
|
||||||
// RFC-6979.
|
|
||||||
Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
|
Signature *grpc1.SignatureRFC6979 `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1494,8 +1493,8 @@ func (x *SetExtendedACLRequest_Body) GetSignature() *grpc1.SignatureRFC6979 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// `SetExtendedACLResponse` has an empty body because the operation is
|
// `SetExtendedACLResponse` has an empty body because the operation is
|
||||||
// asynchronous and the update should be reflected in `Container` smart
|
// asynchronous and the update should be reflected in `Container` smart contract's
|
||||||
// contract's storage after next block is issued in sidechain.
|
// storage after next block is issued in sidechain.
|
||||||
type SetExtendedACLResponse_Body struct {
|
type SetExtendedACLResponse_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -1584,8 +1583,8 @@ func (x *GetExtendedACLRequest_Body) GetContainerId() *grpc1.ContainerID {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get Extended ACL Response body can be empty if the requested container does
|
// Get Extended ACL Response body can be empty if the requested container does
|
||||||
// not have Extended ACL Table attached or Extended ACL has not been allowed
|
// not have Extended ACL Table attached or Extended ACL has not been allowed at
|
||||||
// at the time of container creation.
|
// the time of container creation.
|
||||||
type GetExtendedACLResponse_Body struct {
|
type GetExtendedACLResponse_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
|
74
container/grpc/service_grpc.pb.go
generated
74
container/grpc/service_grpc.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v4.25.3
|
// - protoc v4.23.4
|
||||||
// source: container/grpc/service.proto
|
// source: container/grpc/service.proto
|
||||||
|
|
||||||
package container
|
package container
|
||||||
|
@ -34,27 +34,23 @@ const (
|
||||||
type ContainerServiceClient interface {
|
type ContainerServiceClient interface {
|
||||||
// `Put` invokes `Container` smart contract's `Put` method and returns
|
// `Put` invokes `Container` smart contract's `Put` method and returns
|
||||||
// response immediately. After a new block is issued in sidechain, request is
|
// response immediately. After a new block is issued in sidechain, request is
|
||||||
// verified by Inner Ring nodes. After one more block in sidechain, the
|
// verified by Inner Ring nodes. After one more block in sidechain, the container
|
||||||
// container is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save the container has been sent to the sidechain;
|
// request to save the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container create access denied.
|
|
||||||
Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*PutResponse, error)
|
Put(ctx context.Context, in *PutRequest, opts ...grpc.CallOption) (*PutResponse, error)
|
||||||
// `Delete` invokes `Container` smart contract's `Delete` method and returns
|
// `Delete` invokes `Container` smart contract's `Delete` method and returns
|
||||||
// response immediately. After a new block is issued in sidechain, request is
|
// response immediately. After a new block is issued in sidechain, request is
|
||||||
// verified by Inner Ring nodes. After one more block in sidechain, the
|
// verified by Inner Ring nodes. After one more block in sidechain, the container
|
||||||
// container is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to remove the container has been sent to the sidechain;
|
// request to remove the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container delete access denied.
|
|
||||||
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
|
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
|
||||||
// Returns container structure from `Container` smart contract storage.
|
// Returns container structure from `Container` smart contract storage.
|
||||||
//
|
//
|
||||||
|
@ -63,29 +59,23 @@ type ContainerServiceClient interface {
|
||||||
// container has been successfully read;
|
// container has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// requested container not found;
|
// requested container not found.
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied.
|
|
||||||
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
|
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error)
|
||||||
// Returns all owner's containers from 'Container` smart contract' storage.
|
// Returns all owner's containers from 'Container` smart contract' storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// container list has been successfully read;
|
// container list has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container list access denied.
|
|
||||||
List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
|
List(ctx context.Context, in *ListRequest, opts ...grpc.CallOption) (*ListResponse, error)
|
||||||
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
|
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
|
||||||
// immediately. After one more block in sidechain, changes in an Extended ACL
|
// immediately. After one more block in sidechain, changes in an Extended ACL are
|
||||||
// are added into smart contract storage.
|
// added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save container eACL has been sent to the sidechain;
|
// request to save container eACL has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// set container eACL access denied.
|
|
||||||
SetExtendedACL(ctx context.Context, in *SetExtendedACLRequest, opts ...grpc.CallOption) (*SetExtendedACLResponse, error)
|
SetExtendedACL(ctx context.Context, in *SetExtendedACLRequest, opts ...grpc.CallOption) (*SetExtendedACLResponse, error)
|
||||||
// Returns Extended ACL table and signature from `Container` smart contract
|
// Returns Extended ACL table and signature from `Container` smart contract
|
||||||
// storage.
|
// storage.
|
||||||
|
@ -97,9 +87,7 @@ type ContainerServiceClient interface {
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// container not found;
|
// container not found;
|
||||||
// - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
|
// - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
|
||||||
// eACL table not found;
|
// eACL table not found.
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container eACL is denied.
|
|
||||||
GetExtendedACL(ctx context.Context, in *GetExtendedACLRequest, opts ...grpc.CallOption) (*GetExtendedACLResponse, error)
|
GetExtendedACL(ctx context.Context, in *GetExtendedACLRequest, opts ...grpc.CallOption) (*GetExtendedACLResponse, error)
|
||||||
// Announces the space values used by the container for P2P synchronization.
|
// Announces the space values used by the container for P2P synchronization.
|
||||||
//
|
//
|
||||||
|
@ -187,27 +175,23 @@ func (c *containerServiceClient) AnnounceUsedSpace(ctx context.Context, in *Anno
|
||||||
type ContainerServiceServer interface {
|
type ContainerServiceServer interface {
|
||||||
// `Put` invokes `Container` smart contract's `Put` method and returns
|
// `Put` invokes `Container` smart contract's `Put` method and returns
|
||||||
// response immediately. After a new block is issued in sidechain, request is
|
// response immediately. After a new block is issued in sidechain, request is
|
||||||
// verified by Inner Ring nodes. After one more block in sidechain, the
|
// verified by Inner Ring nodes. After one more block in sidechain, the container
|
||||||
// container is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save the container has been sent to the sidechain;
|
// request to save the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container create access denied.
|
|
||||||
Put(context.Context, *PutRequest) (*PutResponse, error)
|
Put(context.Context, *PutRequest) (*PutResponse, error)
|
||||||
// `Delete` invokes `Container` smart contract's `Delete` method and returns
|
// `Delete` invokes `Container` smart contract's `Delete` method and returns
|
||||||
// response immediately. After a new block is issued in sidechain, request is
|
// response immediately. After a new block is issued in sidechain, request is
|
||||||
// verified by Inner Ring nodes. After one more block in sidechain, the
|
// verified by Inner Ring nodes. After one more block in sidechain, the container
|
||||||
// container is added into smart contract storage.
|
// is added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to remove the container has been sent to the sidechain;
|
// request to remove the container has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container delete access denied.
|
|
||||||
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
|
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
|
||||||
// Returns container structure from `Container` smart contract storage.
|
// Returns container structure from `Container` smart contract storage.
|
||||||
//
|
//
|
||||||
|
@ -216,29 +200,23 @@ type ContainerServiceServer interface {
|
||||||
// container has been successfully read;
|
// container has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON);
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// requested container not found;
|
// requested container not found.
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied.
|
|
||||||
Get(context.Context, *GetRequest) (*GetResponse, error)
|
Get(context.Context, *GetRequest) (*GetResponse, error)
|
||||||
// Returns all owner's containers from 'Container` smart contract' storage.
|
// Returns all owner's containers from 'Container` smart contract' storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// container list has been successfully read;
|
// container list has been successfully read;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// container list access denied.
|
|
||||||
List(context.Context, *ListRequest) (*ListResponse, error)
|
List(context.Context, *ListRequest) (*ListResponse, error)
|
||||||
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
|
// Invokes 'SetEACL' method of 'Container` smart contract and returns response
|
||||||
// immediately. After one more block in sidechain, changes in an Extended ACL
|
// immediately. After one more block in sidechain, changes in an Extended ACL are
|
||||||
// are added into smart contract storage.
|
// added into smart contract storage.
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS): \
|
// - **OK** (0, SECTION_SUCCESS): \
|
||||||
// request to save container eACL has been sent to the sidechain;
|
// request to save container eACL has been sent to the sidechain;
|
||||||
// - Common failures (SECTION_FAILURE_COMMON);
|
// - Common failures (SECTION_FAILURE_COMMON).
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// set container eACL access denied.
|
|
||||||
SetExtendedACL(context.Context, *SetExtendedACLRequest) (*SetExtendedACLResponse, error)
|
SetExtendedACL(context.Context, *SetExtendedACLRequest) (*SetExtendedACLResponse, error)
|
||||||
// Returns Extended ACL table and signature from `Container` smart contract
|
// Returns Extended ACL table and signature from `Container` smart contract
|
||||||
// storage.
|
// storage.
|
||||||
|
@ -250,9 +228,7 @@ type ContainerServiceServer interface {
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// container not found;
|
// container not found;
|
||||||
// - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
|
// - **EACL_NOT_FOUND** (3073, SECTION_CONTAINER): \
|
||||||
// eACL table not found;
|
// eACL table not found.
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container eACL is denied.
|
|
||||||
GetExtendedACL(context.Context, *GetExtendedACLRequest) (*GetExtendedACLResponse, error)
|
GetExtendedACL(context.Context, *GetExtendedACLRequest) (*GetExtendedACLResponse, error)
|
||||||
// Announces the space values used by the container for P2P synchronization.
|
// Announces the space values used by the container for P2P synchronization.
|
||||||
//
|
//
|
||||||
|
|
31
container/grpc/types.pb.go
generated
31
container/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: container/grpc/types.proto
|
// source: container/grpc/types.proto
|
||||||
|
|
||||||
package container
|
package container
|
||||||
|
@ -24,8 +24,8 @@ const (
|
||||||
|
|
||||||
// Container is a structure that defines object placement behaviour. Objects can
|
// Container is a structure that defines object placement behaviour. Objects can
|
||||||
// be stored only within containers. They define placement rule, attributes and
|
// be stored only within containers. They define placement rule, attributes and
|
||||||
// access control information. An ID of a container is a 32 byte long SHA256
|
// access control information. An ID of a container is a 32 byte long SHA256 hash
|
||||||
// hash of stable-marshalled container message.
|
// of stable-marshalled container message.
|
||||||
type Container struct {
|
type Container struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -38,8 +38,8 @@ type Container struct {
|
||||||
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
|
OwnerId *grpc.OwnerID `protobuf:"bytes,2,opt,name=owner_id,json=ownerID,proto3" json:"owner_id,omitempty"`
|
||||||
// Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
|
// Nonce is a 16 byte UUIDv4, used to avoid collisions of `ContainerID`s
|
||||||
Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
Nonce []byte `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"`
|
||||||
// `BasicACL` contains access control rules for the owner, system and others
|
// `BasicACL` contains access control rules for the owner, system and others groups,
|
||||||
// groups, as well as permission bits for `BearerToken` and `Extended ACL`
|
// as well as permission bits for `BearerToken` and `Extended ACL`
|
||||||
BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicACL,proto3" json:"basic_acl,omitempty"`
|
BasicAcl uint32 `protobuf:"varint,4,opt,name=basic_acl,json=basicACL,proto3" json:"basic_acl,omitempty"`
|
||||||
// Attributes represent immutable container's meta data
|
// Attributes represent immutable container's meta data
|
||||||
Attributes []*Container_Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty"`
|
Attributes []*Container_Attribute `protobuf:"bytes,5,rep,name=attributes,proto3" json:"attributes,omitempty"`
|
||||||
|
@ -122,8 +122,8 @@ func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
|
||||||
}
|
}
|
||||||
|
|
||||||
// `Attribute` is a user-defined Key-Value metadata pair attached to the
|
// `Attribute` is a user-defined Key-Value metadata pair attached to the
|
||||||
// container. Container attributes are immutable. They are set at the moment
|
// container. Container attributes are immutable. They are set at the moment of
|
||||||
// of container creation and can never be added or updated.
|
// container creation and can never be added or updated.
|
||||||
//
|
//
|
||||||
// Key name must be a container-unique valid UTF-8 string. Value can't be
|
// Key name must be a container-unique valid UTF-8 string. Value can't be
|
||||||
// empty. Containers with duplicated attribute names or attributes with empty
|
// empty. Containers with duplicated attribute names or attributes with empty
|
||||||
|
@ -137,16 +137,15 @@ func (x *Container) GetPlacementPolicy() *grpc1.PlacementPolicy {
|
||||||
// NNS contract.
|
// NNS contract.
|
||||||
// - [ __SYSTEM__ZONE ] \
|
// - [ __SYSTEM__ZONE ] \
|
||||||
// (`__NEOFS__ZONE` is deprecated) \
|
// (`__NEOFS__ZONE` is deprecated) \
|
||||||
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated).
|
// String of a zone for `__SYSTEM__NAME` (`__NEOFS__NAME` is deprecated). Used as a TLD of a domain name in NNS
|
||||||
// Used as a TLD of a domain name in NNS contract. If no zone is specified,
|
// contract. If no zone is specified, use default zone: `container`.
|
||||||
// use default zone: `container`.
|
|
||||||
// - [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
|
// - [ __SYSTEM__DISABLE_HOMOMORPHIC_HASHING ] \
|
||||||
// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
|
// (`__NEOFS__DISABLE_HOMOMORPHIC_HASHING` is deprecated) \
|
||||||
// Disables homomorphic hashing for the container if the value equals "true"
|
// Disables homomorphic hashing for the container if the value equals "true" string.
|
||||||
// string. Any other values are interpreted as missing attribute. Container
|
// Any other values are interpreted as missing attribute. Container could be
|
||||||
// could be accepted in a NeoFS network only if the global network hashing
|
// accepted in a NeoFS network only if the global network hashing configuration
|
||||||
// configuration value corresponds with that attribute's value. After
|
// value corresponds with that attribute's value. After container inclusion, network
|
||||||
// container inclusion, network setting is ignored.
|
// setting is ignored.
|
||||||
//
|
//
|
||||||
// And some well-known attributes used by applications only:
|
// And some well-known attributes used by applications only:
|
||||||
//
|
//
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -7,7 +7,7 @@ require (
|
||||||
github.com/stretchr/testify v1.8.3
|
github.com/stretchr/testify v1.8.3
|
||||||
golang.org/x/sync v0.2.0
|
golang.org/x/sync v0.2.0
|
||||||
google.golang.org/grpc v1.55.0
|
google.golang.org/grpc v1.55.0
|
||||||
google.golang.org/protobuf v1.33.0
|
google.golang.org/protobuf v1.30.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -38,8 +38,8 @@ google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag=
|
||||||
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
|
google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8=
|
||||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||||
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
|
google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng=
|
||||||
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
|
google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
|
||||||
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
|
9
lock/grpc/types.pb.go
generated
9
lock/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: lock/grpc/types.proto
|
// source: lock/grpc/types.proto
|
||||||
|
|
||||||
package lock
|
package lock
|
||||||
|
@ -23,9 +23,8 @@ const (
|
||||||
|
|
||||||
// Lock objects protects a list of objects from being deleted. The lifetime of a
|
// Lock objects protects a list of objects from being deleted. The lifetime of a
|
||||||
// lock object is limited similar to regular objects in
|
// lock object is limited similar to regular objects in
|
||||||
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated) attribute. Lock object MUST have expiration epoch.
|
||||||
// attribute. Lock object MUST have expiration epoch. It is impossible to delete
|
// It is impossible to delete a lock object via ObjectService.Delete RPC call.
|
||||||
// a lock object via ObjectService.Delete RPC call.
|
|
||||||
type Lock struct {
|
type Lock struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
|
|
@ -142,8 +142,6 @@ func (r *Replica) ToGRPCMessage() grpc.Message {
|
||||||
|
|
||||||
m.SetSelector(r.selector)
|
m.SetSelector(r.selector)
|
||||||
m.SetCount(r.count)
|
m.SetCount(r.count)
|
||||||
m.EcDataCount = r.ecDataCount
|
|
||||||
m.EcParityCount = r.ecParityCount
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -157,8 +155,6 @@ func (r *Replica) FromGRPCMessage(m grpc.Message) error {
|
||||||
|
|
||||||
r.selector = v.GetSelector()
|
r.selector = v.GetSelector()
|
||||||
r.count = v.GetCount()
|
r.count = v.GetCount()
|
||||||
r.ecDataCount = v.GetEcDataCount()
|
|
||||||
r.ecParityCount = v.GetEcParityCount()
|
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
4
netmap/grpc/service.pb.go
generated
4
netmap/grpc/service.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: netmap/grpc/service.proto
|
// source: netmap/grpc/service.proto
|
||||||
|
|
||||||
package netmap
|
package netmap
|
||||||
|
|
20
netmap/grpc/service_grpc.pb.go
generated
20
netmap/grpc/service_grpc.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v4.25.3
|
// - protoc v4.23.4
|
||||||
// source: netmap/grpc/service.proto
|
// source: netmap/grpc/service.proto
|
||||||
|
|
||||||
package netmap
|
package netmap
|
||||||
|
@ -29,11 +29,10 @@ const (
|
||||||
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
|
||||||
type NetmapServiceClient interface {
|
type NetmapServiceClient interface {
|
||||||
// Get NodeInfo structure from the particular node directly.
|
// Get NodeInfo structure from the particular node directly.
|
||||||
// Node information can be taken from `Netmap` smart contract. In some cases,
|
// Node information can be taken from `Netmap` smart contract. In some cases, though,
|
||||||
// though, one may want to get recent information directly or to talk to the
|
// one may want to get recent information directly or to talk to the node not yet
|
||||||
// node not yet present in the `Network Map` to find out what API version can
|
// present in the `Network Map` to find out what API version can be used for
|
||||||
// be used for further communication. This can be also used to check if a node
|
// further communication. This can be also used to check if a node is up and running.
|
||||||
// is up and running.
|
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS):
|
||||||
|
@ -96,11 +95,10 @@ func (c *netmapServiceClient) NetmapSnapshot(ctx context.Context, in *NetmapSnap
|
||||||
// for forward compatibility
|
// for forward compatibility
|
||||||
type NetmapServiceServer interface {
|
type NetmapServiceServer interface {
|
||||||
// Get NodeInfo structure from the particular node directly.
|
// Get NodeInfo structure from the particular node directly.
|
||||||
// Node information can be taken from `Netmap` smart contract. In some cases,
|
// Node information can be taken from `Netmap` smart contract. In some cases, though,
|
||||||
// though, one may want to get recent information directly or to talk to the
|
// one may want to get recent information directly or to talk to the node not yet
|
||||||
// node not yet present in the `Network Map` to find out what API version can
|
// present in the `Network Map` to find out what API version can be used for
|
||||||
// be used for further communication. This can be also used to check if a node
|
// further communication. This can be also used to check if a node is up and running.
|
||||||
// is up and running.
|
|
||||||
//
|
//
|
||||||
// Statuses:
|
// Statuses:
|
||||||
// - **OK** (0, SECTION_SUCCESS):
|
// - **OK** (0, SECTION_SUCCESS):
|
||||||
|
|
222
netmap/grpc/types.pb.go
generated
222
netmap/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: netmap/grpc/types.proto
|
// source: netmap/grpc/types.proto
|
||||||
|
|
||||||
package netmap
|
package netmap
|
||||||
|
@ -213,8 +213,8 @@ func (NodeInfo_State) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
|
return file_netmap_grpc_types_proto_rawDescGZIP(), []int{4, 0}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This filter will return the subset of nodes from `NetworkMap` or another
|
// This filter will return the subset of nodes from `NetworkMap` or another filter's
|
||||||
// filter's results that will satisfy filter's conditions.
|
// results that will satisfy filter's conditions.
|
||||||
type Filter struct {
|
type Filter struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -401,10 +401,6 @@ type Replica struct {
|
||||||
Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
|
Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"`
|
||||||
// Named selector bucket to put replicas
|
// Named selector bucket to put replicas
|
||||||
Selector string `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
|
Selector string `protobuf:"bytes,2,opt,name=selector,proto3" json:"selector,omitempty"`
|
||||||
// Data shards count
|
|
||||||
EcDataCount uint32 `protobuf:"varint,3,opt,name=ec_data_count,json=ecDataCount,proto3" json:"ec_data_count,omitempty"`
|
|
||||||
// Parity shards count
|
|
||||||
EcParityCount uint32 `protobuf:"varint,4,opt,name=ec_parity_count,json=ecParityCount,proto3" json:"ec_parity_count,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Replica) Reset() {
|
func (x *Replica) Reset() {
|
||||||
|
@ -453,20 +449,6 @@ func (x *Replica) GetSelector() string {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Replica) GetEcDataCount() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.EcDataCount
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Replica) GetEcParityCount() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.EcParityCount
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set of rules to select a subset of nodes from `NetworkMap` able to store
|
// Set of rules to select a subset of nodes from `NetworkMap` able to store
|
||||||
// container's objects. The format is simple enough to transpile from different
|
// container's objects. The format is simple enough to transpile from different
|
||||||
// storage policy definition languages.
|
// storage policy definition languages.
|
||||||
|
@ -752,8 +734,7 @@ type NetworkInfo struct {
|
||||||
CurrentEpoch uint64 `protobuf:"varint,1,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"`
|
CurrentEpoch uint64 `protobuf:"varint,1,opt,name=current_epoch,json=currentEpoch,proto3" json:"current_epoch,omitempty"`
|
||||||
// Magic number of the sidechain of the NeoFS network
|
// Magic number of the sidechain of the NeoFS network
|
||||||
MagicNumber uint64 `protobuf:"varint,2,opt,name=magic_number,json=magicNumber,proto3" json:"magic_number,omitempty"`
|
MagicNumber uint64 `protobuf:"varint,2,opt,name=magic_number,json=magicNumber,proto3" json:"magic_number,omitempty"`
|
||||||
// MillisecondsPerBlock network parameter of the sidechain of the NeoFS
|
// MillisecondsPerBlock network parameter of the sidechain of the NeoFS network
|
||||||
// network
|
|
||||||
MsPerBlock int64 `protobuf:"varint,3,opt,name=ms_per_block,json=msPerBlock,proto3" json:"ms_per_block,omitempty"`
|
MsPerBlock int64 `protobuf:"varint,3,opt,name=ms_per_block,json=msPerBlock,proto3" json:"ms_per_block,omitempty"`
|
||||||
// NeoFS network configuration
|
// NeoFS network configuration
|
||||||
NetworkConfig *NetworkConfig `protobuf:"bytes,4,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"`
|
NetworkConfig *NetworkConfig `protobuf:"bytes,4,opt,name=network_config,json=networkConfig,proto3" json:"network_config,omitempty"`
|
||||||
|
@ -825,15 +806,15 @@ func (x *NetworkInfo) GetNetworkConfig() *NetworkConfig {
|
||||||
// string. Value can't be empty.
|
// string. Value can't be empty.
|
||||||
//
|
//
|
||||||
// Attributes can be constructed into a chain of attributes: any attribute can
|
// Attributes can be constructed into a chain of attributes: any attribute can
|
||||||
// have a parent attribute and a child attribute (except the first and the
|
// have a parent attribute and a child attribute (except the first and the last
|
||||||
// last one). A string representation of the chain of attributes in NeoFS
|
// one). A string representation of the chain of attributes in NeoFS Storage
|
||||||
// Storage Node configuration uses ":" and "/" symbols, e.g.:
|
// Node configuration uses ":" and "/" symbols, e.g.:
|
||||||
//
|
//
|
||||||
// `NEOFS_NODE_ATTRIBUTE_1=key1:val1/key2:val2`
|
// `NEOFS_NODE_ATTRIBUTE_1=key1:val1/key2:val2`
|
||||||
//
|
//
|
||||||
// Therefore the string attribute representation in the Node configuration
|
// Therefore the string attribute representation in the Node configuration must
|
||||||
// must use "\:", "\/" and "\\" escaped symbols if any of them appears in an
|
// use "\:", "\/" and "\\" escaped symbols if any of them appears in an attribute's
|
||||||
// attribute's key or value.
|
// key or value.
|
||||||
//
|
//
|
||||||
// Node's attributes are mostly used during Storage Policy evaluation to
|
// Node's attributes are mostly used during Storage Policy evaluation to
|
||||||
// calculate object's placement and find a set of nodes satisfying policy
|
// calculate object's placement and find a set of nodes satisfying policy
|
||||||
|
@ -987,12 +968,6 @@ func (x *NodeInfo_Attribute) GetParents() []string {
|
||||||
// - **WithdrawFee** \
|
// - **WithdrawFee** \
|
||||||
// Fee paid for withdrawal of funds paid by the account owner.
|
// Fee paid for withdrawal of funds paid by the account owner.
|
||||||
// Value: little-endian integer. Default: 0.
|
// Value: little-endian integer. Default: 0.
|
||||||
// - **MaxECDataCount** \
|
|
||||||
// Maximum number of data shards for EC placement policy.
|
|
||||||
// Value: little-endian integer. Default: 0.
|
|
||||||
// - **MaxECParityCount** \
|
|
||||||
// Maximum number of parity shards for EC placement policy.
|
|
||||||
// Value: little-endian integer. Default: 0.
|
|
||||||
type NetworkConfig_Parameter struct {
|
type NetworkConfig_Parameter struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
@ -1076,97 +1051,92 @@ var file_netmap_grpc_types_proto_rawDesc = []byte{
|
||||||
0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
|
0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69,
|
||||||
0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
|
0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74,
|
||||||
0x65, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x14,
|
0x65, 0x72, 0x22, 0x3b, 0x0a, 0x07, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x14, 0x0a,
|
||||||
0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63,
|
0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f,
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
|
0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18,
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x22,
|
||||||
0x12, 0x22, 0x0a, 0x0d, 0x65, 0x63, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e,
|
0x86, 0x02, 0x0a, 0x0f, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c,
|
||||||
0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x63, 0x44, 0x61, 0x74, 0x61, 0x43,
|
0x69, 0x63, 0x79, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18,
|
||||||
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x63, 0x5f, 0x70, 0x61, 0x72, 0x69, 0x74,
|
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x65,
|
0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61,
|
||||||
0x63, 0x50, 0x61, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x86, 0x02, 0x0a,
|
0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f,
|
||||||
0x0f, 0x50, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79,
|
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66,
|
||||||
0x12, 0x35, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03,
|
0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6e,
|
||||||
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
|
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x61, 0x63, 0x74,
|
||||||
0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72,
|
0x6f, 0x72, 0x12, 0x38, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18,
|
||||||
0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x61,
|
0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x69, 0x6e, 0x65, 0x72, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x66, 0x61, 0x63, 0x74,
|
0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f,
|
||||||
0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69,
|
0x72, 0x52, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x07,
|
||||||
0x6e, 0x65, 0x72, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12,
|
0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
|
||||||
0x38, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03,
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70,
|
||||||
|
0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
|
||||||
|
0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08,
|
||||||
|
0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x08, 0x4e, 0x6f, 0x64,
|
||||||
|
0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f,
|
||||||
|
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69,
|
||||||
|
0x63, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65,
|
||||||
|
0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||||
|
0x65, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
|
||||||
|
0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
||||||
|
0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
|
||||||
|
0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74,
|
||||||
|
0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74,
|
||||||
|
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49,
|
||||||
|
0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
|
||||||
|
0x1a, 0x4d, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a,
|
||||||
|
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
|
||||||
|
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
|
||||||
|
0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73,
|
||||||
|
0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22,
|
||||||
|
0x42, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50,
|
||||||
|
0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c,
|
||||||
|
0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45,
|
||||||
|
0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43,
|
||||||
|
0x45, 0x10, 0x03, 0x22, 0x50, 0x0a, 0x06, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a,
|
||||||
|
0x05, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70,
|
||||||
|
0x6f, 0x63, 0x68, 0x12, 0x30, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03,
|
||||||
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
|
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e,
|
||||||
0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x09,
|
0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05,
|
||||||
0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c,
|
0x6e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
|
||||||
0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
|
0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d,
|
||||||
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x46, 0x69,
|
0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65,
|
||||||
0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a,
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e,
|
||||||
0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75,
|
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72,
|
||||||
0x6e, 0x69, 0x71, 0x75, 0x65, 0x22, 0xd8, 0x02, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
|
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
|
||||||
0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79,
|
0x72, 0x73, 0x1a, 0x33, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65,
|
0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65,
|
||||||
0x79, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02,
|
0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c,
|
||||||
0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12,
|
0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77,
|
||||||
0x44, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20,
|
0x6f, 0x72, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65,
|
||||||
0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
0x6e, 0x74, 0x5f, 0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c,
|
||||||
0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
|
0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c,
|
||||||
0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
|
0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
|
||||||
0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04,
|
0x28, 0x04, 0x52, 0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12,
|
||||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
0x20, 0x0a, 0x0c, 0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18,
|
||||||
0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f,
|
0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6d, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63,
|
||||||
0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4d, 0x0a,
|
0x6b, 0x12, 0x46, 0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e,
|
||||||
0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
|
0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77,
|
||||||
0x75, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20,
|
0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2a, 0x70, 0x0a, 0x09, 0x4f, 0x70, 0x65,
|
||||||
0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x42, 0x0a, 0x05,
|
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54,
|
||||||
0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49,
|
0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
|
||||||
0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45,
|
0x00, 0x12, 0x06, 0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10,
|
||||||
0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x12,
|
0x02, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10,
|
||||||
0x0f, 0x0a, 0x0b, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03,
|
0x04, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10,
|
||||||
0x22, 0x50, 0x0a, 0x06, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x70,
|
0x06, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44,
|
||||||
0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x65, 0x70, 0x6f, 0x63, 0x68,
|
0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x54, 0x10, 0x09, 0x2a, 0x38, 0x0a, 0x06, 0x43,
|
||||||
0x12, 0x30, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
0x6c, 0x61, 0x75, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4c, 0x41, 0x55, 0x53, 0x45, 0x5f,
|
||||||
0x1a, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d,
|
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a,
|
||||||
0x61, 0x70, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x6e, 0x6f, 0x64,
|
0x04, 0x53, 0x41, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x54, 0x49,
|
||||||
0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f,
|
0x4e, 0x43, 0x54, 0x10, 0x02, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f,
|
||||||
0x6e, 0x66, 0x69, 0x67, 0x12, 0x49, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
|
0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c,
|
||||||
0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77,
|
0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f,
|
||||||
0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
|
0x67, 0x72, 0x70, 0x63, 0x3b, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0xaa, 0x02, 0x1a, 0x4e, 0x65,
|
||||||
0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a,
|
0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50,
|
||||||
0x33, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03,
|
0x49, 0x2e, 0x4e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
|
|
||||||
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76,
|
|
||||||
0x61, 0x6c, 0x75, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
|
|
||||||
0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f,
|
|
||||||
0x65, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0c, 0x63, 0x75, 0x72,
|
|
||||||
0x72, 0x65, 0x6e, 0x74, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x67,
|
|
||||||
0x69, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52,
|
|
||||||
0x0b, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0c,
|
|
||||||
0x6d, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01,
|
|
||||||
0x28, 0x03, 0x52, 0x0a, 0x6d, 0x73, 0x50, 0x65, 0x72, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x46,
|
|
||||||
0x0a, 0x0e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
|
||||||
0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
|
||||||
0x76, 0x32, 0x2e, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72,
|
|
||||||
0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b,
|
|
||||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2a, 0x70, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
|
|
||||||
0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e,
|
|
||||||
0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x06,
|
|
||||||
0x0a, 0x02, 0x45, 0x51, 0x10, 0x01, 0x12, 0x06, 0x0a, 0x02, 0x4e, 0x45, 0x10, 0x02, 0x12, 0x06,
|
|
||||||
0x0a, 0x02, 0x47, 0x54, 0x10, 0x03, 0x12, 0x06, 0x0a, 0x02, 0x47, 0x45, 0x10, 0x04, 0x12, 0x06,
|
|
||||||
0x0a, 0x02, 0x4c, 0x54, 0x10, 0x05, 0x12, 0x06, 0x0a, 0x02, 0x4c, 0x45, 0x10, 0x06, 0x12, 0x06,
|
|
||||||
0x0a, 0x02, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4e, 0x44, 0x10, 0x08, 0x12,
|
|
||||||
0x07, 0x0a, 0x03, 0x4e, 0x4f, 0x54, 0x10, 0x09, 0x2a, 0x38, 0x0a, 0x06, 0x43, 0x6c, 0x61, 0x75,
|
|
||||||
0x73, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x4c, 0x41, 0x55, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53,
|
|
||||||
0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x41,
|
|
||||||
0x4d, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x54, 0x49, 0x4e, 0x43, 0x54,
|
|
||||||
0x10, 0x02, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
|
|
||||||
0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64,
|
|
||||||
0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d,
|
|
||||||
0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0x2f, 0x67, 0x72, 0x70,
|
|
||||||
0x63, 0x3b, 0x6e, 0x65, 0x74, 0x6d, 0x61, 0x70, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46,
|
|
||||||
0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4e,
|
|
||||||
0x65, 0x74, 0x6d, 0x61, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
|
|
@ -19,10 +19,8 @@ const (
|
||||||
attributeSelectorField = 4
|
attributeSelectorField = 4
|
||||||
filterSelectorField = 5
|
filterSelectorField = 5
|
||||||
|
|
||||||
countReplicaField = 1
|
countReplicaField = 1
|
||||||
selectorReplicaField = 2
|
selectorReplicaField = 2
|
||||||
ecDataCountReplicaField = 3
|
|
||||||
ecParityCountReplicaField = 4
|
|
||||||
|
|
||||||
replicasPolicyField = 1
|
replicasPolicyField = 1
|
||||||
backupPolicyField = 2
|
backupPolicyField = 2
|
||||||
|
@ -136,9 +134,7 @@ func (r *Replica) StableMarshal(buf []byte) []byte {
|
||||||
var offset int
|
var offset int
|
||||||
|
|
||||||
offset += protoutil.UInt32Marshal(countReplicaField, buf[offset:], r.count)
|
offset += protoutil.UInt32Marshal(countReplicaField, buf[offset:], r.count)
|
||||||
offset += protoutil.StringMarshal(selectorReplicaField, buf[offset:], r.selector)
|
protoutil.StringMarshal(selectorReplicaField, buf[offset:], r.selector)
|
||||||
offset += protoutil.UInt32Marshal(ecDataCountReplicaField, buf[offset:], r.ecDataCount)
|
|
||||||
protoutil.UInt32Marshal(ecParityCountReplicaField, buf[offset:], r.ecParityCount)
|
|
||||||
|
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
@ -150,8 +146,6 @@ func (r *Replica) StableSize() (size int) {
|
||||||
|
|
||||||
size += protoutil.UInt32Size(countReplicaField, r.count)
|
size += protoutil.UInt32Size(countReplicaField, r.count)
|
||||||
size += protoutil.StringSize(selectorReplicaField, r.selector)
|
size += protoutil.StringSize(selectorReplicaField, r.selector)
|
||||||
size += protoutil.UInt32Size(ecDataCountReplicaField, r.ecDataCount)
|
|
||||||
size += protoutil.UInt32Size(ecParityCountReplicaField, r.ecParityCount)
|
|
||||||
|
|
||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,17 +81,6 @@ func GenerateReplica(empty bool) *netmap.Replica {
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateEC(empty bool) *netmap.Replica {
|
|
||||||
m := new(netmap.Replica)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.SetECDataCount(4)
|
|
||||||
m.SetECParityCount(2)
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateReplicas(empty bool) []netmap.Replica {
|
func GenerateReplicas(empty bool) []netmap.Replica {
|
||||||
var res []netmap.Replica
|
var res []netmap.Replica
|
||||||
|
|
||||||
|
@ -99,7 +88,6 @@ func GenerateReplicas(empty bool) []netmap.Replica {
|
||||||
res = append(res,
|
res = append(res,
|
||||||
*GenerateReplica(false),
|
*GenerateReplica(false),
|
||||||
*GenerateReplica(false),
|
*GenerateReplica(false),
|
||||||
*GenerateEC(false),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,9 +50,6 @@ type Selector struct {
|
||||||
type Replica struct {
|
type Replica struct {
|
||||||
count uint32
|
count uint32
|
||||||
selector string
|
selector string
|
||||||
|
|
||||||
ecDataCount uint32
|
|
||||||
ecParityCount uint32
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type Operation uint32
|
type Operation uint32
|
||||||
|
@ -262,30 +259,6 @@ func (r *Replica) SetCount(count uint32) {
|
||||||
r.count = count
|
r.count = count
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Replica) GetECDataCount() uint32 {
|
|
||||||
if r != nil {
|
|
||||||
return r.ecDataCount
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Replica) SetECDataCount(count uint32) {
|
|
||||||
r.ecDataCount = count
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Replica) GetECParityCount() uint32 {
|
|
||||||
if r != nil {
|
|
||||||
return r.ecParityCount
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Replica) SetECParityCount(count uint32) {
|
|
||||||
r.ecParityCount = count
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PlacementPolicy) GetUnique() bool {
|
func (p *PlacementPolicy) GetUnique() bool {
|
||||||
if p != nil {
|
if p != nil {
|
||||||
return p.unique
|
return p.unique
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
func TestSetNotification(t *testing.T) {
|
func TestSetNotification(t *testing.T) {
|
||||||
o := new(Object)
|
o := new(Object)
|
||||||
|
|
||||||
ni := NotificationInfo{
|
var ni = NotificationInfo{
|
||||||
epoch: 10,
|
epoch: 10,
|
||||||
topic: "test",
|
topic: "test",
|
||||||
}
|
}
|
||||||
|
|
|
@ -262,74 +262,6 @@ func (h *SplitHeader) FromGRPCMessage(m grpc.Message) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *ECHeader) ToGRPCMessage() grpc.Message {
|
|
||||||
var m *object.Header_EC
|
|
||||||
|
|
||||||
if h != nil {
|
|
||||||
m = new(object.Header_EC)
|
|
||||||
|
|
||||||
m.Parent = h.Parent.ToGRPCMessage().(*refsGRPC.ObjectID)
|
|
||||||
m.ParentSplitId = h.ParentSplitID
|
|
||||||
m.ParentSplitParentId = h.ParentSplitParentID.ToGRPCMessage().(*refsGRPC.ObjectID)
|
|
||||||
m.ParentAttributes = AttributesToGRPC(h.ParentAttributes)
|
|
||||||
m.Index = h.Index
|
|
||||||
m.Total = h.Total
|
|
||||||
m.Header = h.Header
|
|
||||||
m.HeaderLength = h.HeaderLength
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *ECHeader) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
v, ok := m.(*object.Header_EC)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
var err error
|
|
||||||
|
|
||||||
par := v.GetParent()
|
|
||||||
if par == nil {
|
|
||||||
h.Parent = nil
|
|
||||||
} else {
|
|
||||||
if h.Parent == nil {
|
|
||||||
h.Parent = new(refs.ObjectID)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = h.Parent.FromGRPCMessage(par)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h.ParentSplitID = v.GetParentSplitId()
|
|
||||||
|
|
||||||
parSplitParentID := v.GetParentSplitParentId()
|
|
||||||
if parSplitParentID == nil {
|
|
||||||
h.ParentSplitParentID = nil
|
|
||||||
} else {
|
|
||||||
if h.ParentSplitParentID == nil {
|
|
||||||
h.ParentSplitParentID = new(refs.ObjectID)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = h.ParentSplitParentID.FromGRPCMessage(parSplitParentID)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if h.ParentAttributes, err = AttributesFromGRPC(v.GetParentAttributes()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
h.Index = v.GetIndex()
|
|
||||||
h.Total = v.GetTotal()
|
|
||||||
h.Header = v.GetHeader()
|
|
||||||
h.HeaderLength = v.GetHeaderLength()
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Header) ToGRPCMessage() grpc.Message {
|
func (h *Header) ToGRPCMessage() grpc.Message {
|
||||||
var m *object.Header
|
var m *object.Header
|
||||||
|
|
||||||
|
@ -343,7 +275,6 @@ func (h *Header) ToGRPCMessage() grpc.Message {
|
||||||
m.SetContainerId(h.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
|
m.SetContainerId(h.cid.ToGRPCMessage().(*refsGRPC.ContainerID))
|
||||||
m.SetSessionToken(h.sessionToken.ToGRPCMessage().(*sessionGRPC.SessionToken))
|
m.SetSessionToken(h.sessionToken.ToGRPCMessage().(*sessionGRPC.SessionToken))
|
||||||
m.SetSplit(h.split.ToGRPCMessage().(*object.Header_Split))
|
m.SetSplit(h.split.ToGRPCMessage().(*object.Header_Split))
|
||||||
m.Ec = h.ec.ToGRPCMessage().(*object.Header_EC)
|
|
||||||
m.SetAttributes(AttributesToGRPC(h.attr))
|
m.SetAttributes(AttributesToGRPC(h.attr))
|
||||||
m.SetPayloadLength(h.payloadLen)
|
m.SetPayloadLength(h.payloadLen)
|
||||||
m.SetCreationEpoch(h.creatEpoch)
|
m.SetCreationEpoch(h.creatEpoch)
|
||||||
|
@ -382,9 +313,6 @@ func (h *Header) FromGRPCMessage(m grpc.Message) error {
|
||||||
if err := h.fillSplitHeader(v); err != nil {
|
if err := h.fillSplitHeader(v); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := h.fillECHeader(v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
h.attr, err = AttributesFromGRPC(v.GetAttributes())
|
h.attr, err = AttributesFromGRPC(v.GetAttributes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -489,19 +417,6 @@ func (h *Header) fillSplitHeader(v *object.Header) error {
|
||||||
return h.split.FromGRPCMessage(split)
|
return h.split.FromGRPCMessage(split)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Header) fillECHeader(v *object.Header) error {
|
|
||||||
ec := v.GetEc()
|
|
||||||
if ec == nil {
|
|
||||||
h.ec = nil
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if h.ec == nil {
|
|
||||||
h.ec = new(ECHeader)
|
|
||||||
}
|
|
||||||
return h.ec.FromGRPCMessage(ec)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *HeaderWithSignature) ToGRPCMessage() grpc.Message {
|
func (h *HeaderWithSignature) ToGRPCMessage() grpc.Message {
|
||||||
var m *object.HeaderWithSignature
|
var m *object.HeaderWithSignature
|
||||||
|
|
||||||
|
@ -676,73 +591,6 @@ func (s *SplitInfo) FromGRPCMessage(m grpc.Message) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ECInfo) ToGRPCMessage() grpc.Message {
|
|
||||||
var m *object.ECInfo
|
|
||||||
|
|
||||||
if s != nil {
|
|
||||||
m = new(object.ECInfo)
|
|
||||||
|
|
||||||
if s.Chunks != nil {
|
|
||||||
chunks := make([]*object.ECInfo_Chunk, len(s.Chunks))
|
|
||||||
for i := range chunks {
|
|
||||||
chunks[i] = s.Chunks[i].ToGRPCMessage().(*object.ECInfo_Chunk)
|
|
||||||
}
|
|
||||||
m.Chunks = chunks
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *ECInfo) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
v, ok := m.(*object.ECInfo)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
chunks := v.GetChunks()
|
|
||||||
if chunks == nil {
|
|
||||||
s.Chunks = nil
|
|
||||||
} else {
|
|
||||||
s.Chunks = make([]ECChunk, len(chunks))
|
|
||||||
for i := range chunks {
|
|
||||||
if err := s.Chunks[i].FromGRPCMessage(chunks[i]); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ECChunk) ToGRPCMessage() grpc.Message {
|
|
||||||
var m *object.ECInfo_Chunk
|
|
||||||
|
|
||||||
if c != nil {
|
|
||||||
m = new(object.ECInfo_Chunk)
|
|
||||||
|
|
||||||
m.Total = c.Total
|
|
||||||
m.Index = c.Index
|
|
||||||
m.Id = c.ID.ToGRPCMessage().(*refsGRPC.ObjectID)
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ECChunk) FromGRPCMessage(m grpc.Message) error {
|
|
||||||
v, ok := m.(*object.ECInfo_Chunk)
|
|
||||||
if !ok {
|
|
||||||
return message.NewUnexpectedMessageType(m, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := c.ID.FromGRPCMessage(v.GetId()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
c.Index = v.Index
|
|
||||||
c.Total = v.Total
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *GetRequestBody) ToGRPCMessage() grpc.Message {
|
func (r *GetRequestBody) ToGRPCMessage() grpc.Message {
|
||||||
var m *object.GetRequest_Body
|
var m *object.GetRequest_Body
|
||||||
|
|
||||||
|
@ -923,8 +771,6 @@ func (r *GetResponseBody) ToGRPCMessage() grpc.Message {
|
||||||
m.SetChunk(t.ToGRPCMessage().(*object.GetResponse_Body_Chunk))
|
m.SetChunk(t.ToGRPCMessage().(*object.GetResponse_Body_Chunk))
|
||||||
case *SplitInfo:
|
case *SplitInfo:
|
||||||
m.SetSplitInfo(t.ToGRPCMessage().(*object.SplitInfo))
|
m.SetSplitInfo(t.ToGRPCMessage().(*object.SplitInfo))
|
||||||
case *ECInfo:
|
|
||||||
m.SetEcInfo(t.ToGRPCMessage().(*object.ECInfo))
|
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unknown get object part %T", t))
|
panic(fmt.Sprintf("unknown get object part %T", t))
|
||||||
}
|
}
|
||||||
|
@ -963,12 +809,6 @@ func (r *GetResponseBody) FromGRPCMessage(m grpc.Message) error {
|
||||||
r.objPart = partSplit
|
r.objPart = partSplit
|
||||||
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
||||||
}
|
}
|
||||||
case *object.GetResponse_Body_EcInfo:
|
|
||||||
if pt != nil {
|
|
||||||
partEC := new(ECInfo)
|
|
||||||
r.objPart = partEC
|
|
||||||
err = partEC.FromGRPCMessage(pt.EcInfo)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("unknown get object part %T", pt)
|
err = fmt.Errorf("unknown get object part %T", pt)
|
||||||
}
|
}
|
||||||
|
@ -1508,8 +1348,6 @@ func (r *HeadResponseBody) ToGRPCMessage() grpc.Message {
|
||||||
m.SetShortHeader(v.ToGRPCMessage().(*object.ShortHeader))
|
m.SetShortHeader(v.ToGRPCMessage().(*object.ShortHeader))
|
||||||
case *SplitInfo:
|
case *SplitInfo:
|
||||||
m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
|
m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
|
||||||
case *ECInfo:
|
|
||||||
m.SetEcInfo(v.ToGRPCMessage().(*object.ECInfo))
|
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unknown head part %T", v))
|
panic(fmt.Sprintf("unknown head part %T", v))
|
||||||
}
|
}
|
||||||
|
@ -1548,12 +1386,6 @@ func (r *HeadResponseBody) FromGRPCMessage(m grpc.Message) error {
|
||||||
r.hdrPart = partSplit
|
r.hdrPart = partSplit
|
||||||
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
||||||
}
|
}
|
||||||
case *object.HeadResponse_Body_EcInfo:
|
|
||||||
if pt != nil {
|
|
||||||
partEC := new(ECInfo)
|
|
||||||
r.hdrPart = partEC
|
|
||||||
err = partEC.FromGRPCMessage(pt.EcInfo)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("unknown head part %T", pt)
|
err = fmt.Errorf("unknown head part %T", pt)
|
||||||
}
|
}
|
||||||
|
@ -1985,8 +1817,6 @@ func (r *GetRangeResponseBody) ToGRPCMessage() grpc.Message {
|
||||||
m.SetChunk(v.ToGRPCMessage().(*object.GetRangeResponse_Body_Chunk))
|
m.SetChunk(v.ToGRPCMessage().(*object.GetRangeResponse_Body_Chunk))
|
||||||
case *SplitInfo:
|
case *SplitInfo:
|
||||||
m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
|
m.SetSplitInfo(v.ToGRPCMessage().(*object.SplitInfo))
|
||||||
case *ECInfo:
|
|
||||||
m.SetEcInfo(v.ToGRPCMessage().(*object.ECInfo))
|
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unknown get range part %T", v))
|
panic(fmt.Sprintf("unknown get range part %T", v))
|
||||||
}
|
}
|
||||||
|
@ -2019,12 +1849,6 @@ func (r *GetRangeResponseBody) FromGRPCMessage(m grpc.Message) error {
|
||||||
r.rngPart = partSplit
|
r.rngPart = partSplit
|
||||||
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
err = partSplit.FromGRPCMessage(pt.SplitInfo)
|
||||||
}
|
}
|
||||||
case *object.GetRangeResponse_Body_EcInfo:
|
|
||||||
if pt != nil {
|
|
||||||
partEC := new(ECInfo)
|
|
||||||
r.rngPart = partEC
|
|
||||||
err = partEC.FromGRPCMessage(pt.EcInfo)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
err = fmt.Errorf("unknown get range part %T", pt)
|
err = fmt.Errorf("unknown get range part %T", pt)
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,6 @@ const (
|
||||||
|
|
||||||
// FilterHeaderSplitID is a filter key to "split.splitID" field of the object header.
|
// FilterHeaderSplitID is a filter key to "split.splitID" field of the object header.
|
||||||
FilterHeaderSplitID = ReservedFilterPrefix + "split.splitID"
|
FilterHeaderSplitID = ReservedFilterPrefix + "split.splitID"
|
||||||
|
|
||||||
// FilterHeaderECParent is a filter key to "ec.parent" field of the object header.
|
|
||||||
FilterHeaderECParent = ReservedFilterPrefix + "ec.parent"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
|
|
@ -78,13 +78,6 @@ func (m *GetResponse_Body) SetSplitInfo(v *SplitInfo) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetEcInfo sets part of the object payload.
|
|
||||||
func (m *GetResponse_Body) SetEcInfo(v *ECInfo) {
|
|
||||||
m.ObjectPart = &GetResponse_Body_EcInfo{
|
|
||||||
EcInfo: v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetBody sets body of the response.
|
// SetBody sets body of the response.
|
||||||
func (m *GetResponse) SetBody(v *GetResponse_Body) {
|
func (m *GetResponse) SetBody(v *GetResponse_Body) {
|
||||||
m.Body = v
|
m.Body = v
|
||||||
|
@ -282,13 +275,6 @@ func (m *HeadResponse_Body) SetSplitInfo(v *SplitInfo) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetEcInfo sets meta info about the erasure coded object.
|
|
||||||
func (m *HeadResponse_Body) SetEcInfo(v *ECInfo) {
|
|
||||||
m.Head = &HeadResponse_Body_EcInfo{
|
|
||||||
EcInfo: v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetBody sets body of the response.
|
// SetBody sets body of the response.
|
||||||
func (m *HeadResponse) SetBody(v *HeadResponse_Body) {
|
func (m *HeadResponse) SetBody(v *HeadResponse_Body) {
|
||||||
m.Body = v
|
m.Body = v
|
||||||
|
@ -435,13 +421,6 @@ func (m *GetRangeResponse_Body) SetSplitInfo(v *SplitInfo) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetEcInfo sets meta info about the erasure-coded object.
|
|
||||||
func (m *GetRangeResponse_Body) SetEcInfo(v *ECInfo) {
|
|
||||||
m.RangePart = &GetRangeResponse_Body_EcInfo{
|
|
||||||
EcInfo: v,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetBody sets body of the response.
|
// SetBody sets body of the response.
|
||||||
func (m *GetRangeResponse) SetBody(v *GetRangeResponse_Body) {
|
func (m *GetRangeResponse) SetBody(v *GetRangeResponse_Body) {
|
||||||
m.Body = v
|
m.Body = v
|
||||||
|
|
669
object/grpc/service.pb.go
generated
669
object/grpc/service.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: object/grpc/service.proto
|
// source: object/grpc/service.proto
|
||||||
|
|
||||||
package object
|
package object
|
||||||
|
@ -1337,7 +1337,6 @@ type GetResponse_Body struct {
|
||||||
// *GetResponse_Body_Init_
|
// *GetResponse_Body_Init_
|
||||||
// *GetResponse_Body_Chunk
|
// *GetResponse_Body_Chunk
|
||||||
// *GetResponse_Body_SplitInfo
|
// *GetResponse_Body_SplitInfo
|
||||||
// *GetResponse_Body_EcInfo
|
|
||||||
ObjectPart isGetResponse_Body_ObjectPart `protobuf_oneof:"object_part"`
|
ObjectPart isGetResponse_Body_ObjectPart `protobuf_oneof:"object_part"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1401,13 +1400,6 @@ func (x *GetResponse_Body) GetSplitInfo() *SplitInfo {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetResponse_Body) GetEcInfo() *ECInfo {
|
|
||||||
if x, ok := x.GetObjectPart().(*GetResponse_Body_EcInfo); ok {
|
|
||||||
return x.EcInfo
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type isGetResponse_Body_ObjectPart interface {
|
type isGetResponse_Body_ObjectPart interface {
|
||||||
isGetResponse_Body_ObjectPart()
|
isGetResponse_Body_ObjectPart()
|
||||||
}
|
}
|
||||||
|
@ -1427,19 +1419,12 @@ type GetResponse_Body_SplitInfo struct {
|
||||||
SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetResponse_Body_EcInfo struct {
|
|
||||||
// Meta information for EC object assembly.
|
|
||||||
EcInfo *ECInfo `protobuf:"bytes,4,opt,name=ec_info,json=ecInfo,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GetResponse_Body_Init_) isGetResponse_Body_ObjectPart() {}
|
func (*GetResponse_Body_Init_) isGetResponse_Body_ObjectPart() {}
|
||||||
|
|
||||||
func (*GetResponse_Body_Chunk) isGetResponse_Body_ObjectPart() {}
|
func (*GetResponse_Body_Chunk) isGetResponse_Body_ObjectPart() {}
|
||||||
|
|
||||||
func (*GetResponse_Body_SplitInfo) isGetResponse_Body_ObjectPart() {}
|
func (*GetResponse_Body_SplitInfo) isGetResponse_Body_ObjectPart() {}
|
||||||
|
|
||||||
func (*GetResponse_Body_EcInfo) isGetResponse_Body_ObjectPart() {}
|
|
||||||
|
|
||||||
// Initial part of the `Object` structure stream. Technically it's a
|
// Initial part of the `Object` structure stream. Technically it's a
|
||||||
// set of all `Object` structure's fields except `payload`.
|
// set of all `Object` structure's fields except `payload`.
|
||||||
type GetResponse_Body_Init struct {
|
type GetResponse_Body_Init struct {
|
||||||
|
@ -1909,7 +1894,6 @@ type HeadResponse_Body struct {
|
||||||
// *HeadResponse_Body_Header
|
// *HeadResponse_Body_Header
|
||||||
// *HeadResponse_Body_ShortHeader
|
// *HeadResponse_Body_ShortHeader
|
||||||
// *HeadResponse_Body_SplitInfo
|
// *HeadResponse_Body_SplitInfo
|
||||||
// *HeadResponse_Body_EcInfo
|
|
||||||
Head isHeadResponse_Body_Head `protobuf_oneof:"head"`
|
Head isHeadResponse_Body_Head `protobuf_oneof:"head"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1973,13 +1957,6 @@ func (x *HeadResponse_Body) GetSplitInfo() *SplitInfo {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *HeadResponse_Body) GetEcInfo() *ECInfo {
|
|
||||||
if x, ok := x.GetHead().(*HeadResponse_Body_EcInfo); ok {
|
|
||||||
return x.EcInfo
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type isHeadResponse_Body_Head interface {
|
type isHeadResponse_Body_Head interface {
|
||||||
isHeadResponse_Body_Head()
|
isHeadResponse_Body_Head()
|
||||||
}
|
}
|
||||||
|
@ -1999,19 +1976,12 @@ type HeadResponse_Body_SplitInfo struct {
|
||||||
SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
SplitInfo *SplitInfo `protobuf:"bytes,3,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type HeadResponse_Body_EcInfo struct {
|
|
||||||
// Meta information for EC object assembly.
|
|
||||||
EcInfo *ECInfo `protobuf:"bytes,4,opt,name=ec_info,json=ecInfo,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*HeadResponse_Body_Header) isHeadResponse_Body_Head() {}
|
func (*HeadResponse_Body_Header) isHeadResponse_Body_Head() {}
|
||||||
|
|
||||||
func (*HeadResponse_Body_ShortHeader) isHeadResponse_Body_Head() {}
|
func (*HeadResponse_Body_ShortHeader) isHeadResponse_Body_Head() {}
|
||||||
|
|
||||||
func (*HeadResponse_Body_SplitInfo) isHeadResponse_Body_Head() {}
|
func (*HeadResponse_Body_SplitInfo) isHeadResponse_Body_Head() {}
|
||||||
|
|
||||||
func (*HeadResponse_Body_EcInfo) isHeadResponse_Body_Head() {}
|
|
||||||
|
|
||||||
// Object Search request body
|
// Object Search request body
|
||||||
type SearchRequest_Body struct {
|
type SearchRequest_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -2113,9 +2083,6 @@ func (x *SearchRequest_Body) GetFilters() []*SearchRequest_Body_Filter {
|
||||||
// object_id of parent
|
// object_id of parent
|
||||||
// - $Object:split.splitID \
|
// - $Object:split.splitID \
|
||||||
// 16 byte UUIDv4 used to identify the split object hierarchy parts
|
// 16 byte UUIDv4 used to identify the split object hierarchy parts
|
||||||
// - $Object:ec.parent \
|
|
||||||
// If the object is stored according to EC policy, then ec_parent attribute
|
|
||||||
// is set to return an id list of all related EC chunks.
|
|
||||||
//
|
//
|
||||||
// There are some well-known filter aliases to match objects by certain
|
// There are some well-known filter aliases to match objects by certain
|
||||||
// properties:
|
// properties:
|
||||||
|
@ -2334,7 +2301,6 @@ type GetRangeResponse_Body struct {
|
||||||
//
|
//
|
||||||
// *GetRangeResponse_Body_Chunk
|
// *GetRangeResponse_Body_Chunk
|
||||||
// *GetRangeResponse_Body_SplitInfo
|
// *GetRangeResponse_Body_SplitInfo
|
||||||
// *GetRangeResponse_Body_EcInfo
|
|
||||||
RangePart isGetRangeResponse_Body_RangePart `protobuf_oneof:"range_part"`
|
RangePart isGetRangeResponse_Body_RangePart `protobuf_oneof:"range_part"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2391,13 +2357,6 @@ func (x *GetRangeResponse_Body) GetSplitInfo() *SplitInfo {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *GetRangeResponse_Body) GetEcInfo() *ECInfo {
|
|
||||||
if x, ok := x.GetRangePart().(*GetRangeResponse_Body_EcInfo); ok {
|
|
||||||
return x.EcInfo
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type isGetRangeResponse_Body_RangePart interface {
|
type isGetRangeResponse_Body_RangePart interface {
|
||||||
isGetRangeResponse_Body_RangePart()
|
isGetRangeResponse_Body_RangePart()
|
||||||
}
|
}
|
||||||
|
@ -2412,17 +2371,10 @@ type GetRangeResponse_Body_SplitInfo struct {
|
||||||
SplitInfo *SplitInfo `protobuf:"bytes,2,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
SplitInfo *SplitInfo `protobuf:"bytes,2,opt,name=split_info,json=splitInfo,proto3,oneof"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GetRangeResponse_Body_EcInfo struct {
|
|
||||||
// Meta information for EC object assembly.
|
|
||||||
EcInfo *ECInfo `protobuf:"bytes,3,opt,name=ec_info,json=ecInfo,proto3,oneof"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*GetRangeResponse_Body_Chunk) isGetRangeResponse_Body_RangePart() {}
|
func (*GetRangeResponse_Body_Chunk) isGetRangeResponse_Body_RangePart() {}
|
||||||
|
|
||||||
func (*GetRangeResponse_Body_SplitInfo) isGetRangeResponse_Body_RangePart() {}
|
func (*GetRangeResponse_Body_SplitInfo) isGetRangeResponse_Body_RangePart() {}
|
||||||
|
|
||||||
func (*GetRangeResponse_Body_EcInfo) isGetRangeResponse_Body_RangePart() {}
|
|
||||||
|
|
||||||
// Get hash of object's payload part request body.
|
// Get hash of object's payload part request body.
|
||||||
type GetRangeHashRequest_Body struct {
|
type GetRangeHashRequest_Body struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
|
@ -2688,7 +2640,7 @@ var file_object_grpc_service_proto_rawDesc = []byte{
|
||||||
0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
|
0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
|
||||||
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
|
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
|
||||||
0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
|
0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
|
||||||
0x03, 0x72, 0x61, 0x77, 0x22, 0xee, 0x04, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
|
0x03, 0x72, 0x61, 0x77, 0x22, 0xb9, 0x04, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70,
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
|
0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
||||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||||
|
@ -2702,7 +2654,7 @@ var file_object_grpc_service_proto_rawDesc = []byte{
|
||||||
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
|
||||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61,
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61,
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69,
|
0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69,
|
||||||
0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x8a, 0x03, 0x0a, 0x04, 0x42, 0x6f, 0x64,
|
0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xd5, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64,
|
||||||
0x79, 0x12, 0x3d, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x79, 0x12, 0x3d, 0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
|
0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
|
||||||
0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42,
|
0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42,
|
||||||
|
@ -2712,270 +2664,260 @@ var file_object_grpc_service_proto_rawDesc = []byte{
|
||||||
0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e,
|
0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
||||||
0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c,
|
0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c,
|
||||||
0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a, 0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66,
|
0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xa8, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12,
|
||||||
0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66,
|
|
||||||
0x6f, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0xa8, 0x01, 0x0a, 0x04,
|
|
||||||
0x49, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69,
|
|
||||||
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
|
|
||||||
0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x73,
|
|
||||||
0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19,
|
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
|
||||||
0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61,
|
|
||||||
0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
|
|
||||||
0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
|
||||||
0x5f, 0x70, 0x61, 0x72, 0x74, 0x22, 0x9b, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71,
|
|
||||||
0x75, 0x65, 0x73, 0x74, 0x12, 0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
|
|
||||||
0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
|
||||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d,
|
|
||||||
0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
|
|
||||||
0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61,
|
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
|
|
||||||
0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61,
|
|
||||||
0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
|
||||||
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
|
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
|
|
||||||
0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48,
|
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0xbb, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3c,
|
|
||||||
0x0a, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e,
|
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
|
||||||
0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e,
|
|
||||||
0x49, 0x6e, 0x69, 0x74, 0x48, 0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x05,
|
|
||||||
0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63,
|
|
||||||
0x68, 0x75, 0x6e, 0x6b, 0x1a, 0xcd, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a,
|
|
||||||
0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
|
|
||||||
0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65,
|
|
||||||
0x63, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72,
|
|
||||||
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
|
|
||||||
0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a,
|
|
||||||
0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
|
|
||||||
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
|
||||||
0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
|
|
||||||
0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72,
|
|
||||||
0x18, 0x04, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x4e, 0x75,
|
|
||||||
0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70,
|
|
||||||
0x61, 0x72, 0x74, 0x22, 0xa0, 0x02, 0x0a, 0x0b, 0x50, 0x75, 0x74, 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, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
|
|
||||||
0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
|
||||||
0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d,
|
|
||||||
0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
|
|
||||||
0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74,
|
|
||||||
0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
|
|
||||||
0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65,
|
|
||||||
0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f,
|
|
||||||
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
|
|
||||||
0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
|
|
||||||
0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
|
|
||||||
0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
|
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
|
||||||
0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62,
|
0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62,
|
||||||
0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x9e, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74,
|
0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
|
||||||
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, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
|
||||||
0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
|
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
|
|
||||||
0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
|
|
||||||
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75,
|
|
||||||
0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d,
|
|
||||||
0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72,
|
|
||||||
0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b,
|
|
||||||
0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73,
|
|
||||||
0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69,
|
|
||||||
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
|
|
||||||
0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04,
|
|
||||||
0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18,
|
|
||||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
|
||||||
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07,
|
|
||||||
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65,
|
|
||||||
0x74, 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, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65,
|
|
||||||
0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52,
|
|
||||||
0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65,
|
|
||||||
0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f,
|
|
||||||
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
|
|
||||||
0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a,
|
|
||||||
0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
|
||||||
0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61,
|
|
||||||
0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65,
|
|
||||||
0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x74, 0x6f, 0x6d,
|
|
||||||
0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e,
|
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64,
|
|
||||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65,
|
|
||||||
0x22, 0xc9, 0x02, 0x0a, 0x0b, 0x48, 0x65, 0x61, 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, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
|
||||||
0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f,
|
|
||||||
0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61,
|
|
||||||
0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e,
|
|
||||||
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
|
|
||||||
0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61,
|
|
||||||
0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
|
|
||||||
0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72,
|
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
|
||||||
0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
|
|
||||||
0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
|
|
||||||
0x65, 0x72, 0x1a, 0x68, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64,
|
|
||||||
0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65,
|
|
||||||
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64,
|
|
||||||
0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a,
|
|
||||||
0x09, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
|
|
||||||
0x52, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61,
|
|
||||||
0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0x80, 0x01, 0x0a,
|
|
||||||
0x13, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61,
|
|
||||||
0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06,
|
|
||||||
0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74,
|
|
||||||
0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
|
||||||
0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22,
|
0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
|
||||||
0xec, 0x03, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x12, 0x37, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
|
0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
|
||||||
0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42,
|
0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74,
|
||||||
0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74,
|
0x22, 0x9b, 0x04, 0x0a, 0x0a, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
|
||||||
0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
|
0x35, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e,
|
||||||
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
||||||
|
0x2e, 0x50, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79,
|
||||||
|
0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68,
|
||||||
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65,
|
||||||
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
|
||||||
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||||
|
0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a,
|
||||||
|
0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03,
|
||||||
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||||
|
0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
|
0x1a, 0xbb, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3c, 0x0a, 0x04, 0x69, 0x6e, 0x69,
|
||||||
|
0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x50, 0x75, 0x74, 0x52, 0x65,
|
||||||
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x48,
|
||||||
|
0x00, 0x52, 0x04, 0x69, 0x6e, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b,
|
||||||
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x1a,
|
||||||
|
0xcd, 0x01, 0x0a, 0x04, 0x49, 0x6e, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65,
|
||||||
|
0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65,
|
||||||
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a,
|
||||||
|
0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12,
|
||||||
|
0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||||
|
0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
|
||||||
|
0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73,
|
||||||
|
0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
||||||
|
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f,
|
||||||
|
0x70, 0x69, 0x65, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x03, 0x28,
|
||||||
|
0x0d, 0x52, 0x0c, 0x63, 0x6f, 0x70, 0x69, 0x65, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42,
|
||||||
|
0x0d, 0x0a, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x22, 0xa0,
|
||||||
|
0x02, 0x0a, 0x0b, 0x50, 0x75, 0x74, 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, 0x6e,
|
||||||
|
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
||||||
|
0x50, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79,
|
||||||
|
0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68,
|
||||||
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65,
|
||||||
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
|
||||||
|
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52,
|
||||||
|
0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
||||||
|
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
|
0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
|
0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65,
|
||||||
|
0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62,
|
||||||
|
0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
|
||||||
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f,
|
||||||
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
|
||||||
|
0x64, 0x22, 0x9e, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
|
||||||
|
0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
|
0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a,
|
||||||
|
0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
|
||||||
|
0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73,
|
||||||
|
0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65,
|
||||||
|
0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65,
|
||||||
|
0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68,
|
||||||
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65,
|
||||||
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e,
|
||||||
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
|
||||||
|
0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66,
|
||||||
|
0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12,
|
||||||
|
0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||||
|
0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66,
|
||||||
|
0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65,
|
||||||
|
0x73, 0x73, 0x22, 0xa6, 0x02, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 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, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
|
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
||||||
|
0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
||||||
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
|
0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
|
0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65,
|
||||||
|
0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69,
|
||||||
|
0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
|
0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
|
||||||
|
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69,
|
||||||
|
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
|
||||||
|
0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x3d, 0x0a, 0x04,
|
||||||
|
0x42, 0x6f, 0x64, 0x79, 0x12, 0x35, 0x0a, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e,
|
||||||
|
0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
|
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||||
|
0x52, 0x09, 0x74, 0x6f, 0x6d, 0x62, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x0b,
|
||||||
|
0x48, 0x65, 0x61, 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, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61,
|
||||||
|
0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62,
|
||||||
|
0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
||||||
|
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
|
||||||
|
0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a,
|
||||||
|
0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65,
|
||||||
|
0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
|
0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
|
||||||
|
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72,
|
||||||
|
0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52,
|
||||||
|
0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x68, 0x0a,
|
||||||
|
0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
|
||||||
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
||||||
|
0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52,
|
||||||
|
0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x69, 0x6e,
|
||||||
|
0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x69,
|
||||||
|
0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01,
|
||||||
|
0x28, 0x08, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0x80, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12,
|
||||||
|
0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
|
0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
|
||||||
|
0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
|
||||||
|
0x72, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02,
|
||||||
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
|
||||||
|
0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 0x48,
|
||||||
|
0x65, 0x61, 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, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61,
|
||||||
|
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04,
|
||||||
|
0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61,
|
||||||
|
0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
|
||||||
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
|
0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d,
|
||||||
|
0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20,
|
||||||
|
0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
|
0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
|
0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64,
|
||||||
|
0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
|
0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3f, 0x0a, 0x06, 0x68, 0x65, 0x61,
|
||||||
|
0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61,
|
||||||
|
0x64, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
|
||||||
|
0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0c, 0x73, 0x68,
|
||||||
|
0x6f, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
|
||||||
|
0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a,
|
||||||
|
0x65, 0x63, 0x74, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48,
|
||||||
|
0x00, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x3c,
|
||||||
|
0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01,
|
||||||
|
0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
||||||
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48,
|
||||||
|
0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04,
|
||||||
|
0x68, 0x65, 0x61, 0x64, 0x22, 0xfb, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01,
|
||||||
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
||||||
|
0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65,
|
||||||
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
||||||
|
0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
||||||
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
|
0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
|
0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
|
||||||
|
0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
|
||||||
|
0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
|
||||||
0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48,
|
0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
|
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65,
|
||||||
0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
|
0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x95, 0x02, 0x0a, 0x04, 0x42,
|
||||||
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
0x6f, 0x64, 0x79, 0x12, 0x3e, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73,
|
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61,
|
||||||
0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48,
|
0x69, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65,
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x86, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3f,
|
0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
|
||||||
0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25,
|
0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
|
||||||
0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x69, 0x67, 0x6e,
|
|
||||||
0x61, 0x74, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
|
|
||||||
0x42, 0x0a, 0x0c, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
|
||||||
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
|
||||||
0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65,
|
|
||||||
0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x48, 0x65, 0x61,
|
|
||||||
0x64, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66,
|
|
||||||
0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74,
|
|
||||||
0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66,
|
|
||||||
0x6f, 0x12, 0x33, 0x0a, 0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01,
|
|
||||||
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
|
||||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06,
|
|
||||||
0x65, 0x63, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x06, 0x0a, 0x04, 0x68, 0x65, 0x61, 0x64, 0x22, 0xfb,
|
|
||||||
0x03, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
|
||||||
0x12, 0x38, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24,
|
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
||||||
0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
|
0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
|
||||||
0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65,
|
0x42, 0x6f, 0x64, 0x79, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c,
|
||||||
0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x74, 0x65, 0x72, 0x73, 0x1a, 0x6c, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a,
|
||||||
0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
|
0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48,
|
0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52,
|
||||||
0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
|
0x09, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
|
||||||
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
|
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
0x75, 0x65, 0x22, 0xa2, 0x02, 0x0a, 0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65,
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
|
||||||
0x61, 0x64, 0x65, 0x72, 0x1a, 0x95, 0x02, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x3e, 0x0a,
|
0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
|
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
||||||
0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x44,
|
0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
||||||
0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a,
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
|
0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65,
|
0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65,
|
||||||
0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x65, 0x61, 0x72,
|
0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
||||||
0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x2e, 0x46,
|
0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
|
||||||
0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x6c,
|
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69,
|
||||||
0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, 0x61, 0x74, 0x63,
|
0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
|
||||||
0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6e,
|
0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18,
|
||||||
0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x61, 0x74, 0x63, 0x68,
|
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28,
|
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52,
|
||||||
0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
|
0x06, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x37, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65,
|
||||||
0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xa2, 0x02, 0x0a,
|
0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04,
|
||||||
0x0e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
|
0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67,
|
||||||
0x39, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
|
0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68,
|
||||||
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
0x22, 0xe3, 0x02, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71,
|
||||||
0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
|
0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65,
|
0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
||||||
0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
|
||||||
0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
|
0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
||||||
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61,
|
0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64,
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61,
|
0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||||
0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
0x74, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74,
|
||||||
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65,
|
0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66,
|
||||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
|
0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
|
||||||
0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x39, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31,
|
0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
|
||||||
0x0a, 0x07, 0x69, 0x64, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65,
|
||||||
0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73,
|
0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x7a, 0x0a, 0x04, 0x42, 0x6f,
|
||||||
0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x69, 0x64, 0x4c, 0x69, 0x73,
|
0x64, 0x79, 0x12, 0x31, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20,
|
||||||
0x74, 0x22, 0x37, 0x0a, 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66,
|
0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
0x72, 0x65, 0x66, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64,
|
||||||
0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
|
0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02,
|
||||||
0x28, 0x04, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xe3, 0x02, 0x0a, 0x0f, 0x47,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
||||||
0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a,
|
0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72,
|
||||||
0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6e,
|
0x61, 0x6e, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
0x08, 0x52, 0x03, 0x72, 0x61, 0x77, 0x22, 0xd7, 0x02, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61,
|
||||||
0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
|
0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x62,
|
||||||
0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65,
|
0x6f, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e,
|
||||||
0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74,
|
||||||
0x24, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73,
|
0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f,
|
||||||
0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x48,
|
0x64, 0x79, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61,
|
||||||
0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65,
|
0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e,
|
||||||
0x72, 0x12, 0x51, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64,
|
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f,
|
||||||
0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65,
|
||||||
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x71,
|
0x61, 0x64, 0x65, 0x72, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65,
|
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
0x61, 0x64, 0x65, 0x72, 0x1a, 0x7a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x31, 0x0a, 0x07,
|
|
||||||
0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e,
|
|
||||||
0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x41,
|
|
||||||
0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12,
|
|
||||||
0x2d, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
|
||||||
0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x10,
|
|
||||||
0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x72, 0x61, 0x77,
|
|
||||||
0x22, 0x8d, 0x03, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73,
|
|
||||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x01, 0x20,
|
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
|
||||||
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52,
|
|
||||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x62, 0x6f,
|
|
||||||
0x64, 0x79, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
|
|
||||||
0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70,
|
0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70,
|
||||||
0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0a,
|
0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
|
||||||
0x6d, 0x65, 0x74, 0x61, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x0d, 0x76, 0x65,
|
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65,
|
||||||
0x72, 0x69, 0x66, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
|
0x61, 0x64, 0x65, 0x72, 0x1a, 0x6a, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x05,
|
||||||
0x0b, 0x32, 0x2d, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x73, 0x65,
|
0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63,
|
||||||
0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x56, 0x65,
|
0x68, 0x75, 0x6e, 0x6b, 0x12, 0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e,
|
||||||
0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72,
|
0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66,
|
||||||
0x52, 0x0c, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x1a, 0x9f,
|
0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69,
|
||||||
0x01, 0x0a, 0x04, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b,
|
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x12,
|
|
||||||
0x3c, 0x0a, 0x0a, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20,
|
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
|
||||||
0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f,
|
|
||||||
0x48, 0x00, 0x52, 0x09, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x33, 0x0a,
|
|
||||||
0x07, 0x65, 0x63, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
|
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
|
||||||
0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00, 0x52, 0x06, 0x65, 0x63, 0x49, 0x6e,
|
|
||||||
0x66, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74,
|
0x66, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74,
|
||||||
0x22, 0xa2, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73,
|
0x22, 0xa2, 0x03, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x61, 0x73,
|
||||||
0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79,
|
||||||
|
@ -3169,13 +3111,12 @@ var file_object_grpc_service_proto_goTypes = []interface{}{
|
||||||
(*grpc1.Signature)(nil), // 42: neo.fs.v2.refs.Signature
|
(*grpc1.Signature)(nil), // 42: neo.fs.v2.refs.Signature
|
||||||
(*grpc1.Address)(nil), // 43: neo.fs.v2.refs.Address
|
(*grpc1.Address)(nil), // 43: neo.fs.v2.refs.Address
|
||||||
(*SplitInfo)(nil), // 44: neo.fs.v2.object.SplitInfo
|
(*SplitInfo)(nil), // 44: neo.fs.v2.object.SplitInfo
|
||||||
(*ECInfo)(nil), // 45: neo.fs.v2.object.ECInfo
|
(*grpc1.ObjectID)(nil), // 45: neo.fs.v2.refs.ObjectID
|
||||||
(*grpc1.ObjectID)(nil), // 46: neo.fs.v2.refs.ObjectID
|
(*ShortHeader)(nil), // 46: neo.fs.v2.object.ShortHeader
|
||||||
(*ShortHeader)(nil), // 47: neo.fs.v2.object.ShortHeader
|
(*grpc1.ContainerID)(nil), // 47: neo.fs.v2.refs.ContainerID
|
||||||
(*grpc1.ContainerID)(nil), // 48: neo.fs.v2.refs.ContainerID
|
(MatchType)(0), // 48: neo.fs.v2.object.MatchType
|
||||||
(MatchType)(0), // 49: neo.fs.v2.object.MatchType
|
(grpc1.ChecksumType)(0), // 49: neo.fs.v2.refs.ChecksumType
|
||||||
(grpc1.ChecksumType)(0), // 50: neo.fs.v2.refs.ChecksumType
|
(*Object)(nil), // 50: neo.fs.v2.object.Object
|
||||||
(*Object)(nil), // 51: neo.fs.v2.object.Object
|
|
||||||
}
|
}
|
||||||
var file_object_grpc_service_proto_depIdxs = []int32{
|
var file_object_grpc_service_proto_depIdxs = []int32{
|
||||||
18, // 0: neo.fs.v2.object.GetRequest.body:type_name -> neo.fs.v2.object.GetRequest.Body
|
18, // 0: neo.fs.v2.object.GetRequest.body:type_name -> neo.fs.v2.object.GetRequest.Body
|
||||||
|
@ -3231,56 +3172,53 @@ var file_object_grpc_service_proto_depIdxs = []int32{
|
||||||
43, // 50: neo.fs.v2.object.GetRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
43, // 50: neo.fs.v2.object.GetRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
||||||
20, // 51: neo.fs.v2.object.GetResponse.Body.init:type_name -> neo.fs.v2.object.GetResponse.Body.Init
|
20, // 51: neo.fs.v2.object.GetResponse.Body.init:type_name -> neo.fs.v2.object.GetResponse.Body.Init
|
||||||
44, // 52: neo.fs.v2.object.GetResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
44, // 52: neo.fs.v2.object.GetResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
||||||
45, // 53: neo.fs.v2.object.GetResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
|
45, // 53: neo.fs.v2.object.GetResponse.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
46, // 54: neo.fs.v2.object.GetResponse.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
42, // 54: neo.fs.v2.object.GetResponse.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
|
||||||
42, // 55: neo.fs.v2.object.GetResponse.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
|
41, // 55: neo.fs.v2.object.GetResponse.Body.Init.header:type_name -> neo.fs.v2.object.Header
|
||||||
41, // 56: neo.fs.v2.object.GetResponse.Body.Init.header:type_name -> neo.fs.v2.object.Header
|
22, // 56: neo.fs.v2.object.PutRequest.Body.init:type_name -> neo.fs.v2.object.PutRequest.Body.Init
|
||||||
22, // 57: neo.fs.v2.object.PutRequest.Body.init:type_name -> neo.fs.v2.object.PutRequest.Body.Init
|
45, // 57: neo.fs.v2.object.PutRequest.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
46, // 58: neo.fs.v2.object.PutRequest.Body.Init.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
42, // 58: neo.fs.v2.object.PutRequest.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
|
||||||
42, // 59: neo.fs.v2.object.PutRequest.Body.Init.signature:type_name -> neo.fs.v2.refs.Signature
|
41, // 59: neo.fs.v2.object.PutRequest.Body.Init.header:type_name -> neo.fs.v2.object.Header
|
||||||
41, // 60: neo.fs.v2.object.PutRequest.Body.Init.header:type_name -> neo.fs.v2.object.Header
|
45, // 60: neo.fs.v2.object.PutResponse.Body.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
46, // 61: neo.fs.v2.object.PutResponse.Body.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
43, // 61: neo.fs.v2.object.DeleteRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
||||||
43, // 62: neo.fs.v2.object.DeleteRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
43, // 62: neo.fs.v2.object.DeleteResponse.Body.tombstone:type_name -> neo.fs.v2.refs.Address
|
||||||
43, // 63: neo.fs.v2.object.DeleteResponse.Body.tombstone:type_name -> neo.fs.v2.refs.Address
|
43, // 63: neo.fs.v2.object.HeadRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
||||||
43, // 64: neo.fs.v2.object.HeadRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
7, // 64: neo.fs.v2.object.HeadResponse.Body.header:type_name -> neo.fs.v2.object.HeaderWithSignature
|
||||||
7, // 65: neo.fs.v2.object.HeadResponse.Body.header:type_name -> neo.fs.v2.object.HeaderWithSignature
|
46, // 65: neo.fs.v2.object.HeadResponse.Body.short_header:type_name -> neo.fs.v2.object.ShortHeader
|
||||||
47, // 66: neo.fs.v2.object.HeadResponse.Body.short_header:type_name -> neo.fs.v2.object.ShortHeader
|
44, // 66: neo.fs.v2.object.HeadResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
||||||
44, // 67: neo.fs.v2.object.HeadResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
47, // 67: neo.fs.v2.object.SearchRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
||||||
45, // 68: neo.fs.v2.object.HeadResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
|
29, // 68: neo.fs.v2.object.SearchRequest.Body.filters:type_name -> neo.fs.v2.object.SearchRequest.Body.Filter
|
||||||
48, // 69: neo.fs.v2.object.SearchRequest.Body.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
48, // 69: neo.fs.v2.object.SearchRequest.Body.Filter.match_type:type_name -> neo.fs.v2.object.MatchType
|
||||||
29, // 70: neo.fs.v2.object.SearchRequest.Body.filters:type_name -> neo.fs.v2.object.SearchRequest.Body.Filter
|
45, // 70: neo.fs.v2.object.SearchResponse.Body.id_list:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
49, // 71: neo.fs.v2.object.SearchRequest.Body.Filter.match_type:type_name -> neo.fs.v2.object.MatchType
|
43, // 71: neo.fs.v2.object.GetRangeRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
||||||
46, // 72: neo.fs.v2.object.SearchResponse.Body.id_list:type_name -> neo.fs.v2.refs.ObjectID
|
11, // 72: neo.fs.v2.object.GetRangeRequest.Body.range:type_name -> neo.fs.v2.object.Range
|
||||||
43, // 73: neo.fs.v2.object.GetRangeRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
44, // 73: neo.fs.v2.object.GetRangeResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
||||||
11, // 74: neo.fs.v2.object.GetRangeRequest.Body.range:type_name -> neo.fs.v2.object.Range
|
43, // 74: neo.fs.v2.object.GetRangeHashRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
||||||
44, // 75: neo.fs.v2.object.GetRangeResponse.Body.split_info:type_name -> neo.fs.v2.object.SplitInfo
|
11, // 75: neo.fs.v2.object.GetRangeHashRequest.Body.ranges:type_name -> neo.fs.v2.object.Range
|
||||||
45, // 76: neo.fs.v2.object.GetRangeResponse.Body.ec_info:type_name -> neo.fs.v2.object.ECInfo
|
49, // 76: neo.fs.v2.object.GetRangeHashRequest.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
|
||||||
43, // 77: neo.fs.v2.object.GetRangeHashRequest.Body.address:type_name -> neo.fs.v2.refs.Address
|
49, // 77: neo.fs.v2.object.GetRangeHashResponse.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
|
||||||
11, // 78: neo.fs.v2.object.GetRangeHashRequest.Body.ranges:type_name -> neo.fs.v2.object.Range
|
50, // 78: neo.fs.v2.object.PutSingleRequest.Body.object:type_name -> neo.fs.v2.object.Object
|
||||||
50, // 79: neo.fs.v2.object.GetRangeHashRequest.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
|
0, // 79: neo.fs.v2.object.ObjectService.Get:input_type -> neo.fs.v2.object.GetRequest
|
||||||
50, // 80: neo.fs.v2.object.GetRangeHashResponse.Body.type:type_name -> neo.fs.v2.refs.ChecksumType
|
2, // 80: neo.fs.v2.object.ObjectService.Put:input_type -> neo.fs.v2.object.PutRequest
|
||||||
51, // 81: neo.fs.v2.object.PutSingleRequest.Body.object:type_name -> neo.fs.v2.object.Object
|
4, // 81: neo.fs.v2.object.ObjectService.Delete:input_type -> neo.fs.v2.object.DeleteRequest
|
||||||
0, // 82: neo.fs.v2.object.ObjectService.Get:input_type -> neo.fs.v2.object.GetRequest
|
6, // 82: neo.fs.v2.object.ObjectService.Head:input_type -> neo.fs.v2.object.HeadRequest
|
||||||
2, // 83: neo.fs.v2.object.ObjectService.Put:input_type -> neo.fs.v2.object.PutRequest
|
9, // 83: neo.fs.v2.object.ObjectService.Search:input_type -> neo.fs.v2.object.SearchRequest
|
||||||
4, // 84: neo.fs.v2.object.ObjectService.Delete:input_type -> neo.fs.v2.object.DeleteRequest
|
12, // 84: neo.fs.v2.object.ObjectService.GetRange:input_type -> neo.fs.v2.object.GetRangeRequest
|
||||||
6, // 85: neo.fs.v2.object.ObjectService.Head:input_type -> neo.fs.v2.object.HeadRequest
|
14, // 85: neo.fs.v2.object.ObjectService.GetRangeHash:input_type -> neo.fs.v2.object.GetRangeHashRequest
|
||||||
9, // 86: neo.fs.v2.object.ObjectService.Search:input_type -> neo.fs.v2.object.SearchRequest
|
16, // 86: neo.fs.v2.object.ObjectService.PutSingle:input_type -> neo.fs.v2.object.PutSingleRequest
|
||||||
12, // 87: neo.fs.v2.object.ObjectService.GetRange:input_type -> neo.fs.v2.object.GetRangeRequest
|
1, // 87: neo.fs.v2.object.ObjectService.Get:output_type -> neo.fs.v2.object.GetResponse
|
||||||
14, // 88: neo.fs.v2.object.ObjectService.GetRangeHash:input_type -> neo.fs.v2.object.GetRangeHashRequest
|
3, // 88: neo.fs.v2.object.ObjectService.Put:output_type -> neo.fs.v2.object.PutResponse
|
||||||
16, // 89: neo.fs.v2.object.ObjectService.PutSingle:input_type -> neo.fs.v2.object.PutSingleRequest
|
5, // 89: neo.fs.v2.object.ObjectService.Delete:output_type -> neo.fs.v2.object.DeleteResponse
|
||||||
1, // 90: neo.fs.v2.object.ObjectService.Get:output_type -> neo.fs.v2.object.GetResponse
|
8, // 90: neo.fs.v2.object.ObjectService.Head:output_type -> neo.fs.v2.object.HeadResponse
|
||||||
3, // 91: neo.fs.v2.object.ObjectService.Put:output_type -> neo.fs.v2.object.PutResponse
|
10, // 91: neo.fs.v2.object.ObjectService.Search:output_type -> neo.fs.v2.object.SearchResponse
|
||||||
5, // 92: neo.fs.v2.object.ObjectService.Delete:output_type -> neo.fs.v2.object.DeleteResponse
|
13, // 92: neo.fs.v2.object.ObjectService.GetRange:output_type -> neo.fs.v2.object.GetRangeResponse
|
||||||
8, // 93: neo.fs.v2.object.ObjectService.Head:output_type -> neo.fs.v2.object.HeadResponse
|
15, // 93: neo.fs.v2.object.ObjectService.GetRangeHash:output_type -> neo.fs.v2.object.GetRangeHashResponse
|
||||||
10, // 94: neo.fs.v2.object.ObjectService.Search:output_type -> neo.fs.v2.object.SearchResponse
|
17, // 94: neo.fs.v2.object.ObjectService.PutSingle:output_type -> neo.fs.v2.object.PutSingleResponse
|
||||||
13, // 95: neo.fs.v2.object.ObjectService.GetRange:output_type -> neo.fs.v2.object.GetRangeResponse
|
87, // [87:95] is the sub-list for method output_type
|
||||||
15, // 96: neo.fs.v2.object.ObjectService.GetRangeHash:output_type -> neo.fs.v2.object.GetRangeHashResponse
|
79, // [79:87] is the sub-list for method input_type
|
||||||
17, // 97: neo.fs.v2.object.ObjectService.PutSingle:output_type -> neo.fs.v2.object.PutSingleResponse
|
79, // [79:79] is the sub-list for extension type_name
|
||||||
90, // [90:98] is the sub-list for method output_type
|
79, // [79:79] is the sub-list for extension extendee
|
||||||
82, // [82:90] is the sub-list for method input_type
|
0, // [0:79] is the sub-list for field type_name
|
||||||
82, // [82:82] is the sub-list for extension type_name
|
|
||||||
82, // [82:82] is the sub-list for extension extendee
|
|
||||||
0, // [0:82] is the sub-list for field type_name
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_object_grpc_service_proto_init() }
|
func init() { file_object_grpc_service_proto_init() }
|
||||||
|
@ -3739,7 +3677,6 @@ func file_object_grpc_service_proto_init() {
|
||||||
(*GetResponse_Body_Init_)(nil),
|
(*GetResponse_Body_Init_)(nil),
|
||||||
(*GetResponse_Body_Chunk)(nil),
|
(*GetResponse_Body_Chunk)(nil),
|
||||||
(*GetResponse_Body_SplitInfo)(nil),
|
(*GetResponse_Body_SplitInfo)(nil),
|
||||||
(*GetResponse_Body_EcInfo)(nil),
|
|
||||||
}
|
}
|
||||||
file_object_grpc_service_proto_msgTypes[21].OneofWrappers = []interface{}{
|
file_object_grpc_service_proto_msgTypes[21].OneofWrappers = []interface{}{
|
||||||
(*PutRequest_Body_Init_)(nil),
|
(*PutRequest_Body_Init_)(nil),
|
||||||
|
@ -3749,12 +3686,10 @@ func file_object_grpc_service_proto_init() {
|
||||||
(*HeadResponse_Body_Header)(nil),
|
(*HeadResponse_Body_Header)(nil),
|
||||||
(*HeadResponse_Body_ShortHeader)(nil),
|
(*HeadResponse_Body_ShortHeader)(nil),
|
||||||
(*HeadResponse_Body_SplitInfo)(nil),
|
(*HeadResponse_Body_SplitInfo)(nil),
|
||||||
(*HeadResponse_Body_EcInfo)(nil),
|
|
||||||
}
|
}
|
||||||
file_object_grpc_service_proto_msgTypes[32].OneofWrappers = []interface{}{
|
file_object_grpc_service_proto_msgTypes[32].OneofWrappers = []interface{}{
|
||||||
(*GetRangeResponse_Body_Chunk)(nil),
|
(*GetRangeResponse_Body_Chunk)(nil),
|
||||||
(*GetRangeResponse_Body_SplitInfo)(nil),
|
(*GetRangeResponse_Body_SplitInfo)(nil),
|
||||||
(*GetRangeResponse_Body_EcInfo)(nil),
|
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
|
|
34
object/grpc/service_grpc.pb.go
generated
34
object/grpc/service_grpc.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v4.25.3
|
// - protoc v4.23.4
|
||||||
// source: object/grpc/service.proto
|
// source: object/grpc/service.proto
|
||||||
|
|
||||||
package object
|
package object
|
||||||
|
@ -66,8 +66,6 @@ type ObjectServiceClient interface {
|
||||||
// the requested object has been marked as deleted;
|
// the requested object has been marked as deleted;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (ObjectService_GetClient, error)
|
Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (ObjectService_GetClient, error)
|
||||||
|
@ -100,8 +98,6 @@ type ObjectServiceClient interface {
|
||||||
// type other than REGULAR is prohibited;
|
// type other than REGULAR is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object storage container not found;
|
// object storage container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
// (for trusted object preparation) session private key does not exist or
|
// (for trusted object preparation) session private key does not exist or
|
||||||
// has
|
// has
|
||||||
|
@ -134,8 +130,6 @@ type ObjectServiceClient interface {
|
||||||
// deleting a locked object is prohibited;
|
// deleting a locked object is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
|
Delete(ctx context.Context, in *DeleteRequest, opts ...grpc.CallOption) (*DeleteResponse, error)
|
||||||
|
@ -163,8 +157,6 @@ type ObjectServiceClient interface {
|
||||||
// the requested object has been marked as deleted;
|
// the requested object has been marked as deleted;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error)
|
Head(ctx context.Context, in *HeadRequest, opts ...grpc.CallOption) (*HeadResponse, error)
|
||||||
|
@ -188,8 +180,6 @@ type ObjectServiceClient interface {
|
||||||
// access to operation SEARCH of the object is denied;
|
// access to operation SEARCH of the object is denied;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// search container not found;
|
// search container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (ObjectService_SearchClient, error)
|
Search(ctx context.Context, in *SearchRequest, opts ...grpc.CallOption) (ObjectService_SearchClient, error)
|
||||||
|
@ -224,8 +214,6 @@ type ObjectServiceClient interface {
|
||||||
// the requested range is out of bounds;
|
// the requested range is out of bounds;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (ObjectService_GetRangeClient, error)
|
GetRange(ctx context.Context, in *GetRangeRequest, opts ...grpc.CallOption) (ObjectService_GetRangeClient, error)
|
||||||
|
@ -258,8 +246,6 @@ type ObjectServiceClient interface {
|
||||||
// the requested range is out of bounds;
|
// the requested range is out of bounds;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc.CallOption) (*GetRangeHashResponse, error)
|
GetRangeHash(ctx context.Context, in *GetRangeHashRequest, opts ...grpc.CallOption) (*GetRangeHashResponse, error)
|
||||||
|
@ -289,8 +275,6 @@ type ObjectServiceClient interface {
|
||||||
// type other than REGULAR is prohibited;
|
// type other than REGULAR is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object storage container not found;
|
// object storage container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
// (for trusted object preparation) session private key does not exist or
|
// (for trusted object preparation) session private key does not exist or
|
||||||
// has
|
// has
|
||||||
|
@ -512,8 +496,6 @@ type ObjectServiceServer interface {
|
||||||
// the requested object has been marked as deleted;
|
// the requested object has been marked as deleted;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Get(*GetRequest, ObjectService_GetServer) error
|
Get(*GetRequest, ObjectService_GetServer) error
|
||||||
|
@ -546,8 +528,6 @@ type ObjectServiceServer interface {
|
||||||
// type other than REGULAR is prohibited;
|
// type other than REGULAR is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object storage container not found;
|
// object storage container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
// (for trusted object preparation) session private key does not exist or
|
// (for trusted object preparation) session private key does not exist or
|
||||||
// has
|
// has
|
||||||
|
@ -580,8 +560,6 @@ type ObjectServiceServer interface {
|
||||||
// deleting a locked object is prohibited;
|
// deleting a locked object is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
|
Delete(context.Context, *DeleteRequest) (*DeleteResponse, error)
|
||||||
|
@ -609,8 +587,6 @@ type ObjectServiceServer interface {
|
||||||
// the requested object has been marked as deleted;
|
// the requested object has been marked as deleted;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Head(context.Context, *HeadRequest) (*HeadResponse, error)
|
Head(context.Context, *HeadRequest) (*HeadResponse, error)
|
||||||
|
@ -634,8 +610,6 @@ type ObjectServiceServer interface {
|
||||||
// access to operation SEARCH of the object is denied;
|
// access to operation SEARCH of the object is denied;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// search container not found;
|
// search container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
Search(*SearchRequest, ObjectService_SearchServer) error
|
Search(*SearchRequest, ObjectService_SearchServer) error
|
||||||
|
@ -670,8 +644,6 @@ type ObjectServiceServer interface {
|
||||||
// the requested range is out of bounds;
|
// the requested range is out of bounds;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
GetRange(*GetRangeRequest, ObjectService_GetRangeServer) error
|
GetRange(*GetRangeRequest, ObjectService_GetRangeServer) error
|
||||||
|
@ -704,8 +676,6 @@ type ObjectServiceServer interface {
|
||||||
// the requested range is out of bounds;
|
// the requested range is out of bounds;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object container not found;
|
// object container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
// - **TOKEN_EXPIRED** (4097, SECTION_SESSION): \
|
||||||
// provided session token has expired.
|
// provided session token has expired.
|
||||||
GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error)
|
GetRangeHash(context.Context, *GetRangeHashRequest) (*GetRangeHashResponse, error)
|
||||||
|
@ -735,8 +705,6 @@ type ObjectServiceServer interface {
|
||||||
// type other than REGULAR is prohibited;
|
// type other than REGULAR is prohibited;
|
||||||
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
// - **CONTAINER_NOT_FOUND** (3072, SECTION_CONTAINER): \
|
||||||
// object storage container not found;
|
// object storage container not found;
|
||||||
// - **CONTAINER_ACCESS_DENIED** (3074, SECTION_CONTAINER): \
|
|
||||||
// access to container is denied;
|
|
||||||
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
// - **TOKEN_NOT_FOUND** (4096, SECTION_SESSION): \
|
||||||
// (for trusted object preparation) session private key does not exist or
|
// (for trusted object preparation) session private key does not exist or
|
||||||
// has
|
// has
|
||||||
|
|
540
object/grpc/types.pb.go
generated
540
object/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: object/grpc/types.proto
|
// source: object/grpc/types.proto
|
||||||
|
|
||||||
package object
|
package object
|
||||||
|
@ -279,8 +279,6 @@ type Header struct {
|
||||||
Attributes []*Header_Attribute `protobuf:"bytes,10,rep,name=attributes,proto3" json:"attributes,omitempty"`
|
Attributes []*Header_Attribute `protobuf:"bytes,10,rep,name=attributes,proto3" json:"attributes,omitempty"`
|
||||||
// Position of the object in the split hierarchy
|
// Position of the object in the split hierarchy
|
||||||
Split *Header_Split `protobuf:"bytes,11,opt,name=split,proto3" json:"split,omitempty"`
|
Split *Header_Split `protobuf:"bytes,11,opt,name=split,proto3" json:"split,omitempty"`
|
||||||
// Erasure code chunk information.
|
|
||||||
Ec *Header_EC `protobuf:"bytes,12,opt,name=ec,proto3" json:"ec,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Header) Reset() {
|
func (x *Header) Reset() {
|
||||||
|
@ -392,13 +390,6 @@ func (x *Header) GetSplit() *Header_Split {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *Header) GetEc() *Header_EC {
|
|
||||||
if x != nil {
|
|
||||||
return x.Ec
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Object structure. Object is immutable and content-addressed. It means
|
// Object structure. Object is immutable and content-addressed. It means
|
||||||
// `ObjectID` will change if the header or the payload changes. It's calculated
|
// `ObjectID` will change if the header or the payload changes. It's calculated
|
||||||
// as a hash of header field which contains hash of the object's payload.
|
// as a hash of header field which contains hash of the object's payload.
|
||||||
|
@ -553,55 +544,6 @@ func (x *SplitInfo) GetLink() *grpc.ObjectID {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Meta information for the erasure-encoded object.
|
|
||||||
type ECInfo struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
// Chunk stored on the node.
|
|
||||||
Chunks []*ECInfo_Chunk `protobuf:"bytes,1,rep,name=chunks,proto3" json:"chunks,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo) Reset() {
|
|
||||||
*x = ECInfo{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[4]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ECInfo) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ECInfo) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[4]
|
|
||||||
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 ECInfo.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ECInfo) Descriptor() ([]byte, []int) {
|
|
||||||
return file_object_grpc_types_proto_rawDescGZIP(), []int{4}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo) GetChunks() []*ECInfo_Chunk {
|
|
||||||
if x != nil {
|
|
||||||
return x.Chunks
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// `Attribute` is a user-defined Key-Value metadata pair attached to an
|
// `Attribute` is a user-defined Key-Value metadata pair attached to an
|
||||||
// object.
|
// object.
|
||||||
//
|
//
|
||||||
|
@ -617,8 +559,7 @@ func (x *ECInfo) GetChunks() []*ECInfo_Chunk {
|
||||||
// Marks smaller parts of a split bigger object
|
// Marks smaller parts of a split bigger object
|
||||||
// - [ __SYSTEM__EXPIRATION_EPOCH ] \
|
// - [ __SYSTEM__EXPIRATION_EPOCH ] \
|
||||||
// (`__NEOFS__EXPIRATION_EPOCH` is deprecated) \
|
// (`__NEOFS__EXPIRATION_EPOCH` is deprecated) \
|
||||||
// The epoch after which object with no LOCKs on it becomes unavailable.
|
// Tells GC to delete object after that epoch
|
||||||
// Locked object continues to be available until each of the LOCKs expire.
|
|
||||||
// - [ __SYSTEM__TICK_EPOCH ] \
|
// - [ __SYSTEM__TICK_EPOCH ] \
|
||||||
// (`__NEOFS__TICK_EPOCH` is deprecated) \
|
// (`__NEOFS__TICK_EPOCH` is deprecated) \
|
||||||
// Decimal number that defines what epoch must produce
|
// Decimal number that defines what epoch must produce
|
||||||
|
@ -663,7 +604,7 @@ type Header_Attribute struct {
|
||||||
func (x *Header_Attribute) Reset() {
|
func (x *Header_Attribute) Reset() {
|
||||||
*x = Header_Attribute{}
|
*x = Header_Attribute{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[5]
|
mi := &file_object_grpc_types_proto_msgTypes[4]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -676,7 +617,7 @@ func (x *Header_Attribute) String() string {
|
||||||
func (*Header_Attribute) ProtoMessage() {}
|
func (*Header_Attribute) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *Header_Attribute) ProtoReflect() protoreflect.Message {
|
func (x *Header_Attribute) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[5]
|
mi := &file_object_grpc_types_proto_msgTypes[4]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -734,7 +675,7 @@ type Header_Split struct {
|
||||||
func (x *Header_Split) Reset() {
|
func (x *Header_Split) Reset() {
|
||||||
*x = Header_Split{}
|
*x = Header_Split{}
|
||||||
if protoimpl.UnsafeEnabled {
|
if protoimpl.UnsafeEnabled {
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[6]
|
mi := &file_object_grpc_types_proto_msgTypes[5]
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
ms.StoreMessageInfo(mi)
|
ms.StoreMessageInfo(mi)
|
||||||
}
|
}
|
||||||
|
@ -747,7 +688,7 @@ func (x *Header_Split) String() string {
|
||||||
func (*Header_Split) ProtoMessage() {}
|
func (*Header_Split) ProtoMessage() {}
|
||||||
|
|
||||||
func (x *Header_Split) ProtoReflect() protoreflect.Message {
|
func (x *Header_Split) ProtoReflect() protoreflect.Message {
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[6]
|
mi := &file_object_grpc_types_proto_msgTypes[5]
|
||||||
if protoimpl.UnsafeEnabled && x != nil {
|
if protoimpl.UnsafeEnabled && x != nil {
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||||
if ms.LoadMessageInfo() == nil {
|
if ms.LoadMessageInfo() == nil {
|
||||||
|
@ -805,190 +746,6 @@ func (x *Header_Split) GetSplitId() []byte {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erasure code can be applied to any object.
|
|
||||||
// Information about encoded object structure is stored in `EC` header.
|
|
||||||
// All objects belonging to a single EC group have the same `parent` field.
|
|
||||||
type Header_EC struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
// Identifier of the origin object. Known to all chunks.
|
|
||||||
Parent *grpc.ObjectID `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
|
|
||||||
// Index of this chunk.
|
|
||||||
Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
|
|
||||||
// Total number of chunks in this split.
|
|
||||||
Total uint32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
|
|
||||||
// Total length of a parent header. Used to trim padding zeroes.
|
|
||||||
HeaderLength uint32 `protobuf:"varint,4,opt,name=header_length,json=headerLength,proto3" json:"header_length,omitempty"`
|
|
||||||
// Chunk of a parent header.
|
|
||||||
Header []byte `protobuf:"bytes,5,opt,name=header,proto3" json:"header,omitempty"`
|
|
||||||
// As the origin object is EC-splitted its identifier is known to all
|
|
||||||
// chunks as parent. But parent itself can be a part of Split (does not relate to EC-split).
|
|
||||||
// In this case parent_split_id should be set.
|
|
||||||
ParentSplitId []byte `protobuf:"bytes,6,opt,name=parent_split_id,json=parentSplitID,proto3" json:"parent_split_id,omitempty"`
|
|
||||||
// EC-parent's parent ID. parent_split_parent_id is set if EC-parent, itself, is a part of Split and
|
|
||||||
// if an object ID of its parent is presented. The field allows to determine how EC-chunk is placed
|
|
||||||
// in Split hierarchy.
|
|
||||||
ParentSplitParentId *grpc.ObjectID `protobuf:"bytes,7,opt,name=parent_split_parent_id,json=parentSplitParentID,proto3" json:"parent_split_parent_id,omitempty"`
|
|
||||||
// EC parent's attributes.
|
|
||||||
ParentAttributes []*Header_Attribute `protobuf:"bytes,8,rep,name=parent_attributes,json=parentAttributes,proto3" json:"parent_attributes,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) Reset() {
|
|
||||||
*x = Header_EC{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[7]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*Header_EC) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *Header_EC) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[7]
|
|
||||||
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 Header_EC.ProtoReflect.Descriptor instead.
|
|
||||||
func (*Header_EC) Descriptor() ([]byte, []int) {
|
|
||||||
return file_object_grpc_types_proto_rawDescGZIP(), []int{1, 2}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetParent() *grpc.ObjectID {
|
|
||||||
if x != nil {
|
|
||||||
return x.Parent
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetIndex() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Index
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetTotal() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Total
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetHeaderLength() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.HeaderLength
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetHeader() []byte {
|
|
||||||
if x != nil {
|
|
||||||
return x.Header
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetParentSplitId() []byte {
|
|
||||||
if x != nil {
|
|
||||||
return x.ParentSplitId
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetParentSplitParentId() *grpc.ObjectID {
|
|
||||||
if x != nil {
|
|
||||||
return x.ParentSplitParentId
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *Header_EC) GetParentAttributes() []*Header_Attribute {
|
|
||||||
if x != nil {
|
|
||||||
return x.ParentAttributes
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
type ECInfo_Chunk struct {
|
|
||||||
state protoimpl.MessageState
|
|
||||||
sizeCache protoimpl.SizeCache
|
|
||||||
unknownFields protoimpl.UnknownFields
|
|
||||||
|
|
||||||
// Object ID of the chunk.
|
|
||||||
Id *grpc.ObjectID `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
|
||||||
// Index of the chunk.
|
|
||||||
Index uint32 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
|
|
||||||
// Total number of chunks in this split.
|
|
||||||
Total uint32 `protobuf:"varint,3,opt,name=total,proto3" json:"total,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) Reset() {
|
|
||||||
*x = ECInfo_Chunk{}
|
|
||||||
if protoimpl.UnsafeEnabled {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[8]
|
|
||||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
|
||||||
ms.StoreMessageInfo(mi)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) String() string {
|
|
||||||
return protoimpl.X.MessageStringOf(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (*ECInfo_Chunk) ProtoMessage() {}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) ProtoReflect() protoreflect.Message {
|
|
||||||
mi := &file_object_grpc_types_proto_msgTypes[8]
|
|
||||||
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 ECInfo_Chunk.ProtoReflect.Descriptor instead.
|
|
||||||
func (*ECInfo_Chunk) Descriptor() ([]byte, []int) {
|
|
||||||
return file_object_grpc_types_proto_rawDescGZIP(), []int{4, 0}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) GetId() *grpc.ObjectID {
|
|
||||||
if x != nil {
|
|
||||||
return x.Id
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) GetIndex() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Index
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x *ECInfo_Chunk) GetTotal() uint32 {
|
|
||||||
if x != nil {
|
|
||||||
return x.Total
|
|
||||||
}
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
var File_object_grpc_types_proto protoreflect.FileDescriptor
|
var File_object_grpc_types_proto protoreflect.FileDescriptor
|
||||||
|
|
||||||
var file_object_grpc_types_proto_rawDesc = []byte{
|
var file_object_grpc_types_proto_rawDesc = []byte{
|
||||||
|
@ -1022,7 +779,7 @@ var file_object_grpc_types_proto_rawDesc = []byte{
|
||||||
0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75,
|
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75,
|
||||||
0x6d, 0x52, 0x0f, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x48, 0x61,
|
0x6d, 0x52, 0x0f, 0x68, 0x6f, 0x6d, 0x6f, 0x6d, 0x6f, 0x72, 0x70, 0x68, 0x69, 0x63, 0x48, 0x61,
|
||||||
0x73, 0x68, 0x22, 0x92, 0x0b, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a,
|
0x73, 0x68, 0x22, 0xfb, 0x07, 0x0a, 0x06, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x31, 0x0a,
|
||||||
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
||||||
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
|
0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
|
||||||
|
@ -1062,105 +819,69 @@ var file_object_grpc_types_proto_rawDesc = []byte{
|
||||||
0x05, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e,
|
0x05, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e,
|
||||||
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x52, 0x05, 0x73, 0x70,
|
0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x52, 0x05, 0x73, 0x70,
|
||||||
0x6c, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x02, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x6c, 0x69, 0x74, 0x1a, 0x33, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
|
||||||
0x1b, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65,
|
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
|
||||||
0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x45, 0x43, 0x52, 0x02, 0x65, 0x63,
|
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x1a, 0x33, 0x0a, 0x09, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, 0x10, 0x0a,
|
0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc5, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x6c,
|
||||||
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
|
0x69, 0x74, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
|
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72,
|
||||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xc5, 0x02, 0x0a, 0x05, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12,
|
0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x70, 0x61,
|
||||||
0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
|
0x72, 0x65, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73,
|
||||||
0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73,
|
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e,
|
||||||
0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e,
|
0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44,
|
||||||
0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x18, 0x02, 0x20,
|
0x52, 0x08, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x61,
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03,
|
||||||
0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x70,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
||||||
0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x12, 0x44, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e,
|
0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52,
|
||||||
0x74, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
|
||||||
0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
|
0x12, 0x3d, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65,
|
||||||
0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0f, 0x70, 0x61,
|
0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
||||||
0x72, 0x65, 0x6e, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3d, 0x0a,
|
0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65,
|
||||||
0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x04,
|
0x72, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
0x34, 0x0a, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28,
|
||||||
0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c,
|
0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65,
|
||||||
0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x08,
|
0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x63, 0x68, 0x69,
|
||||||
0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18,
|
0x6c, 0x64, 0x72, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69,
|
||||||
|
0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44,
|
||||||
|
0x22, 0xc4, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f,
|
||||||
|
0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18,
|
||||||
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e,
|
||||||
0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72,
|
0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74,
|
||||||
0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06,
|
0x49, 0x44, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18,
|
||||||
0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44, 0x1a, 0xe7, 0x02,
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x0a, 0x02, 0x45, 0x43, 0x12, 0x30, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01,
|
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68,
|
||||||
0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x06,
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65,
|
||||||
0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18,
|
0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48,
|
||||||
0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05,
|
0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a,
|
||||||
0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74,
|
0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
|
||||||
0x61, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e,
|
0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x6c, 0x69,
|
||||||
0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65,
|
0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69,
|
||||||
0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65,
|
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x64,
|
||||||
0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12,
|
0x12, 0x35, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20,
|
||||||
0x26, 0x0a, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f,
|
0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e,
|
||||||
0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
|
0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6c,
|
||||||
0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x44, 0x12, 0x4d, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e,
|
0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18,
|
||||||
0x74, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69,
|
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
||||||
0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49,
|
|
||||||
0x44, 0x52, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x50, 0x61,
|
|
||||||
0x72, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x4f, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
|
|
||||||
0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28,
|
|
||||||
0x0b, 0x32, 0x22, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62,
|
|
||||||
0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x41, 0x74, 0x74, 0x72,
|
|
||||||
0x69, 0x62, 0x75, 0x74, 0x65, 0x52, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x74,
|
|
||||||
0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0xc4, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65,
|
|
||||||
0x63, 0x74, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18,
|
|
||||||
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76,
|
|
||||||
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52,
|
0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52,
|
||||||
0x08, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x12, 0x37, 0x0a, 0x09, 0x73, 0x69, 0x67,
|
0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x2a, 0x32, 0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54,
|
||||||
0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6e,
|
0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x00,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x53, 0x69,
|
0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4d, 0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12,
|
||||||
0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75,
|
0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x43, 0x4b, 0x10, 0x03, 0x2a, 0x73, 0x0a, 0x09, 0x4d, 0x61, 0x74,
|
||||||
0x72, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01,
|
0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f,
|
||||||
0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x6f,
|
0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
|
||||||
0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65,
|
0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x51, 0x55,
|
||||||
0x61, 0x64, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18,
|
0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e,
|
||||||
0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x8b,
|
0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f,
|
||||||
0x01, 0x0a, 0x09, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08,
|
0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43,
|
||||||
0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07,
|
0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x04, 0x42, 0x61,
|
||||||
0x73, 0x70, 0x6c, 0x69, 0x74, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x5f,
|
0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e,
|
||||||
0x70, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f,
|
0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f,
|
||||||
0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65,
|
0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76,
|
||||||
0x63, 0x74, 0x49, 0x44, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x50, 0x61, 0x72, 0x74, 0x12, 0x2c,
|
0x32, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6f, 0x62,
|
||||||
0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e,
|
0x6a, 0x65, 0x63, 0x74, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53,
|
||||||
0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32, 0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62,
|
0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63,
|
||||||
0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x22, 0x9f, 0x01, 0x0a,
|
0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||||
0x06, 0x45, 0x43, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b,
|
|
||||||
0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73,
|
|
||||||
0x2e, 0x76, 0x32, 0x2e, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x45, 0x43, 0x49, 0x6e, 0x66,
|
|
||||||
0x6f, 0x2e, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x52, 0x06, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x73, 0x1a,
|
|
||||||
0x5d, 0x0a, 0x05, 0x43, 0x68, 0x75, 0x6e, 0x6b, 0x12, 0x28, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6e, 0x65, 0x6f, 0x2e, 0x66, 0x73, 0x2e, 0x76, 0x32,
|
|
||||||
0x2e, 0x72, 0x65, 0x66, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x44, 0x52, 0x02,
|
|
||||||
0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61,
|
|
||||||
0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x2a, 0x32,
|
|
||||||
0x0a, 0x0a, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07,
|
|
||||||
0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x4f, 0x4d,
|
|
||||||
0x42, 0x53, 0x54, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x4f, 0x43, 0x4b,
|
|
||||||
0x10, 0x03, 0x2a, 0x73, 0x0a, 0x09, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12,
|
|
||||||
0x1a, 0x0a, 0x16, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
|
|
||||||
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53,
|
|
||||||
0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x14, 0x0a,
|
|
||||||
0x10, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x45, 0x51, 0x55, 0x41,
|
|
||||||
0x4c, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45,
|
|
||||||
0x4e, 0x54, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x5f, 0x50,
|
|
||||||
0x52, 0x45, 0x46, 0x49, 0x58, 0x10, 0x04, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66,
|
|
||||||
0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65,
|
|
||||||
0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73,
|
|
||||||
0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x6f, 0x62, 0x6a, 0x65, 0x63,
|
|
||||||
0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0xaa, 0x02, 0x1a,
|
|
||||||
0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
|
|
||||||
0x41, 0x50, 0x49, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
|
||||||
0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -1176,7 +897,7 @@ func file_object_grpc_types_proto_rawDescGZIP() []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_object_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
var file_object_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
var file_object_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 9)
|
var file_object_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
|
||||||
var file_object_grpc_types_proto_goTypes = []interface{}{
|
var file_object_grpc_types_proto_goTypes = []interface{}{
|
||||||
(ObjectType)(0), // 0: neo.fs.v2.object.ObjectType
|
(ObjectType)(0), // 0: neo.fs.v2.object.ObjectType
|
||||||
(MatchType)(0), // 1: neo.fs.v2.object.MatchType
|
(MatchType)(0), // 1: neo.fs.v2.object.MatchType
|
||||||
|
@ -1184,55 +905,46 @@ var file_object_grpc_types_proto_goTypes = []interface{}{
|
||||||
(*Header)(nil), // 3: neo.fs.v2.object.Header
|
(*Header)(nil), // 3: neo.fs.v2.object.Header
|
||||||
(*Object)(nil), // 4: neo.fs.v2.object.Object
|
(*Object)(nil), // 4: neo.fs.v2.object.Object
|
||||||
(*SplitInfo)(nil), // 5: neo.fs.v2.object.SplitInfo
|
(*SplitInfo)(nil), // 5: neo.fs.v2.object.SplitInfo
|
||||||
(*ECInfo)(nil), // 6: neo.fs.v2.object.ECInfo
|
(*Header_Attribute)(nil), // 6: neo.fs.v2.object.Header.Attribute
|
||||||
(*Header_Attribute)(nil), // 7: neo.fs.v2.object.Header.Attribute
|
(*Header_Split)(nil), // 7: neo.fs.v2.object.Header.Split
|
||||||
(*Header_Split)(nil), // 8: neo.fs.v2.object.Header.Split
|
(*grpc.Version)(nil), // 8: neo.fs.v2.refs.Version
|
||||||
(*Header_EC)(nil), // 9: neo.fs.v2.object.Header.EC
|
(*grpc.OwnerID)(nil), // 9: neo.fs.v2.refs.OwnerID
|
||||||
(*ECInfo_Chunk)(nil), // 10: neo.fs.v2.object.ECInfo.Chunk
|
(*grpc.Checksum)(nil), // 10: neo.fs.v2.refs.Checksum
|
||||||
(*grpc.Version)(nil), // 11: neo.fs.v2.refs.Version
|
(*grpc.ContainerID)(nil), // 11: neo.fs.v2.refs.ContainerID
|
||||||
(*grpc.OwnerID)(nil), // 12: neo.fs.v2.refs.OwnerID
|
(*grpc1.SessionToken)(nil), // 12: neo.fs.v2.session.SessionToken
|
||||||
(*grpc.Checksum)(nil), // 13: neo.fs.v2.refs.Checksum
|
(*grpc.ObjectID)(nil), // 13: neo.fs.v2.refs.ObjectID
|
||||||
(*grpc.ContainerID)(nil), // 14: neo.fs.v2.refs.ContainerID
|
(*grpc.Signature)(nil), // 14: neo.fs.v2.refs.Signature
|
||||||
(*grpc1.SessionToken)(nil), // 15: neo.fs.v2.session.SessionToken
|
|
||||||
(*grpc.ObjectID)(nil), // 16: neo.fs.v2.refs.ObjectID
|
|
||||||
(*grpc.Signature)(nil), // 17: neo.fs.v2.refs.Signature
|
|
||||||
}
|
}
|
||||||
var file_object_grpc_types_proto_depIdxs = []int32{
|
var file_object_grpc_types_proto_depIdxs = []int32{
|
||||||
11, // 0: neo.fs.v2.object.ShortHeader.version:type_name -> neo.fs.v2.refs.Version
|
8, // 0: neo.fs.v2.object.ShortHeader.version:type_name -> neo.fs.v2.refs.Version
|
||||||
12, // 1: neo.fs.v2.object.ShortHeader.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
9, // 1: neo.fs.v2.object.ShortHeader.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
||||||
0, // 2: neo.fs.v2.object.ShortHeader.object_type:type_name -> neo.fs.v2.object.ObjectType
|
0, // 2: neo.fs.v2.object.ShortHeader.object_type:type_name -> neo.fs.v2.object.ObjectType
|
||||||
13, // 3: neo.fs.v2.object.ShortHeader.payload_hash:type_name -> neo.fs.v2.refs.Checksum
|
10, // 3: neo.fs.v2.object.ShortHeader.payload_hash:type_name -> neo.fs.v2.refs.Checksum
|
||||||
13, // 4: neo.fs.v2.object.ShortHeader.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
|
10, // 4: neo.fs.v2.object.ShortHeader.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
|
||||||
11, // 5: neo.fs.v2.object.Header.version:type_name -> neo.fs.v2.refs.Version
|
8, // 5: neo.fs.v2.object.Header.version:type_name -> neo.fs.v2.refs.Version
|
||||||
14, // 6: neo.fs.v2.object.Header.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
11, // 6: neo.fs.v2.object.Header.container_id:type_name -> neo.fs.v2.refs.ContainerID
|
||||||
12, // 7: neo.fs.v2.object.Header.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
9, // 7: neo.fs.v2.object.Header.owner_id:type_name -> neo.fs.v2.refs.OwnerID
|
||||||
13, // 8: neo.fs.v2.object.Header.payload_hash:type_name -> neo.fs.v2.refs.Checksum
|
10, // 8: neo.fs.v2.object.Header.payload_hash:type_name -> neo.fs.v2.refs.Checksum
|
||||||
0, // 9: neo.fs.v2.object.Header.object_type:type_name -> neo.fs.v2.object.ObjectType
|
0, // 9: neo.fs.v2.object.Header.object_type:type_name -> neo.fs.v2.object.ObjectType
|
||||||
13, // 10: neo.fs.v2.object.Header.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
|
10, // 10: neo.fs.v2.object.Header.homomorphic_hash:type_name -> neo.fs.v2.refs.Checksum
|
||||||
15, // 11: neo.fs.v2.object.Header.session_token:type_name -> neo.fs.v2.session.SessionToken
|
12, // 11: neo.fs.v2.object.Header.session_token:type_name -> neo.fs.v2.session.SessionToken
|
||||||
7, // 12: neo.fs.v2.object.Header.attributes:type_name -> neo.fs.v2.object.Header.Attribute
|
6, // 12: neo.fs.v2.object.Header.attributes:type_name -> neo.fs.v2.object.Header.Attribute
|
||||||
8, // 13: neo.fs.v2.object.Header.split:type_name -> neo.fs.v2.object.Header.Split
|
7, // 13: neo.fs.v2.object.Header.split:type_name -> neo.fs.v2.object.Header.Split
|
||||||
9, // 14: neo.fs.v2.object.Header.ec:type_name -> neo.fs.v2.object.Header.EC
|
13, // 14: neo.fs.v2.object.Object.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
16, // 15: neo.fs.v2.object.Object.object_id:type_name -> neo.fs.v2.refs.ObjectID
|
14, // 15: neo.fs.v2.object.Object.signature:type_name -> neo.fs.v2.refs.Signature
|
||||||
17, // 16: neo.fs.v2.object.Object.signature:type_name -> neo.fs.v2.refs.Signature
|
3, // 16: neo.fs.v2.object.Object.header:type_name -> neo.fs.v2.object.Header
|
||||||
3, // 17: neo.fs.v2.object.Object.header:type_name -> neo.fs.v2.object.Header
|
13, // 17: neo.fs.v2.object.SplitInfo.last_part:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
16, // 18: neo.fs.v2.object.SplitInfo.last_part:type_name -> neo.fs.v2.refs.ObjectID
|
13, // 18: neo.fs.v2.object.SplitInfo.link:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
16, // 19: neo.fs.v2.object.SplitInfo.link:type_name -> neo.fs.v2.refs.ObjectID
|
13, // 19: neo.fs.v2.object.Header.Split.parent:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
10, // 20: neo.fs.v2.object.ECInfo.chunks:type_name -> neo.fs.v2.object.ECInfo.Chunk
|
13, // 20: neo.fs.v2.object.Header.Split.previous:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
16, // 21: neo.fs.v2.object.Header.Split.parent:type_name -> neo.fs.v2.refs.ObjectID
|
14, // 21: neo.fs.v2.object.Header.Split.parent_signature:type_name -> neo.fs.v2.refs.Signature
|
||||||
16, // 22: neo.fs.v2.object.Header.Split.previous:type_name -> neo.fs.v2.refs.ObjectID
|
3, // 22: neo.fs.v2.object.Header.Split.parent_header:type_name -> neo.fs.v2.object.Header
|
||||||
17, // 23: neo.fs.v2.object.Header.Split.parent_signature:type_name -> neo.fs.v2.refs.Signature
|
13, // 23: neo.fs.v2.object.Header.Split.children:type_name -> neo.fs.v2.refs.ObjectID
|
||||||
3, // 24: neo.fs.v2.object.Header.Split.parent_header:type_name -> neo.fs.v2.object.Header
|
24, // [24:24] is the sub-list for method output_type
|
||||||
16, // 25: neo.fs.v2.object.Header.Split.children:type_name -> neo.fs.v2.refs.ObjectID
|
24, // [24:24] is the sub-list for method input_type
|
||||||
16, // 26: neo.fs.v2.object.Header.EC.parent:type_name -> neo.fs.v2.refs.ObjectID
|
24, // [24:24] is the sub-list for extension type_name
|
||||||
16, // 27: neo.fs.v2.object.Header.EC.parent_split_parent_id:type_name -> neo.fs.v2.refs.ObjectID
|
24, // [24:24] is the sub-list for extension extendee
|
||||||
7, // 28: neo.fs.v2.object.Header.EC.parent_attributes:type_name -> neo.fs.v2.object.Header.Attribute
|
0, // [0:24] is the sub-list for field type_name
|
||||||
16, // 29: neo.fs.v2.object.ECInfo.Chunk.id:type_name -> neo.fs.v2.refs.ObjectID
|
|
||||||
30, // [30:30] is the sub-list for method output_type
|
|
||||||
30, // [30:30] is the sub-list for method input_type
|
|
||||||
30, // [30:30] is the sub-list for extension type_name
|
|
||||||
30, // [30:30] is the sub-list for extension extendee
|
|
||||||
0, // [0:30] is the sub-list for field type_name
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_object_grpc_types_proto_init() }
|
func init() { file_object_grpc_types_proto_init() }
|
||||||
|
@ -1290,18 +1002,6 @@ func file_object_grpc_types_proto_init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_object_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
file_object_grpc_types_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*ECInfo); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_object_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*Header_Attribute); i {
|
switch v := v.(*Header_Attribute); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
|
@ -1313,7 +1013,7 @@ func file_object_grpc_types_proto_init() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_object_grpc_types_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
|
file_object_grpc_types_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
|
||||||
switch v := v.(*Header_Split); i {
|
switch v := v.(*Header_Split); i {
|
||||||
case 0:
|
case 0:
|
||||||
return &v.state
|
return &v.state
|
||||||
|
@ -1325,30 +1025,6 @@ func file_object_grpc_types_proto_init() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_object_grpc_types_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*Header_EC); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
file_object_grpc_types_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
|
|
||||||
switch v := v.(*ECInfo_Chunk); i {
|
|
||||||
case 0:
|
|
||||||
return &v.state
|
|
||||||
case 1:
|
|
||||||
return &v.sizeCache
|
|
||||||
case 2:
|
|
||||||
return &v.unknownFields
|
|
||||||
default:
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
type x struct{}
|
type x struct{}
|
||||||
out := protoimpl.TypeBuilder{
|
out := protoimpl.TypeBuilder{
|
||||||
|
@ -1356,7 +1032,7 @@ func file_object_grpc_types_proto_init() {
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_object_grpc_types_proto_rawDesc,
|
RawDescriptor: file_object_grpc_types_proto_rawDesc,
|
||||||
NumEnums: 2,
|
NumEnums: 2,
|
||||||
NumMessages: 9,
|
NumMessages: 6,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
},
|
},
|
||||||
|
|
|
@ -61,22 +61,6 @@ func (s *SplitInfo) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(s, data, new(object.SplitInfo))
|
return message.UnmarshalJSON(s, data, new(object.SplitInfo))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ECInfo) MarshalJSON() ([]byte, error) {
|
|
||||||
return message.MarshalJSON(e)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ECInfo) UnmarshalJSON(data []byte) error {
|
|
||||||
return message.UnmarshalJSON(e, data, new(object.ECInfo))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ECChunk) MarshalJSON() ([]byte, error) {
|
|
||||||
return message.MarshalJSON(e)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ECChunk) UnmarshalJSON(data []byte) error {
|
|
||||||
return message.UnmarshalJSON(e, data, new(object.ECInfo_Chunk))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (f *SearchFilter) MarshalJSON() ([]byte, error) {
|
func (f *SearchFilter) MarshalJSON() ([]byte, error) {
|
||||||
return message.MarshalJSON(f)
|
return message.MarshalJSON(f)
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,15 +26,6 @@ const (
|
||||||
splitHdrChildrenField = 5
|
splitHdrChildrenField = 5
|
||||||
splitHdrSplitIDField = 6
|
splitHdrSplitIDField = 6
|
||||||
|
|
||||||
ecHdrParentField = 1
|
|
||||||
ecHdrIndexField = 2
|
|
||||||
ecHdrTotalField = 3
|
|
||||||
ecHdrHeaderLengthField = 4
|
|
||||||
ecHdrHeaderField = 5
|
|
||||||
ecHdrParentSplitID = 6
|
|
||||||
ecHdrParentSplitParentID = 7
|
|
||||||
ecHdrParentAttributes = 8
|
|
||||||
|
|
||||||
hdrVersionField = 1
|
hdrVersionField = 1
|
||||||
hdrContainerIDField = 2
|
hdrContainerIDField = 2
|
||||||
hdrOwnerIDField = 3
|
hdrOwnerIDField = 3
|
||||||
|
@ -46,7 +37,6 @@ const (
|
||||||
hdrSessionTokenField = 9
|
hdrSessionTokenField = 9
|
||||||
hdrAttributesField = 10
|
hdrAttributesField = 10
|
||||||
hdrSplitField = 11
|
hdrSplitField = 11
|
||||||
hdrECField = 12
|
|
||||||
|
|
||||||
hdrWithSigHeaderField = 1
|
hdrWithSigHeaderField = 1
|
||||||
hdrWithSigSignatureField = 2
|
hdrWithSigSignatureField = 2
|
||||||
|
@ -60,12 +50,6 @@ const (
|
||||||
splitInfoLastPartField = 2
|
splitInfoLastPartField = 2
|
||||||
splitInfoLinkField = 3
|
splitInfoLinkField = 3
|
||||||
|
|
||||||
ecInfoChunksField = 1
|
|
||||||
|
|
||||||
ecChunkIDField = 1
|
|
||||||
ecChunkIndexField = 2
|
|
||||||
ecChunkTotalField = 3
|
|
||||||
|
|
||||||
getReqBodyAddressField = 1
|
getReqBodyAddressField = 1
|
||||||
getReqBodyRawFlagField = 2
|
getReqBodyRawFlagField = 2
|
||||||
|
|
||||||
|
@ -76,7 +60,6 @@ const (
|
||||||
getRespBodyInitField = 1
|
getRespBodyInitField = 1
|
||||||
getRespBodyChunkField = 2
|
getRespBodyChunkField = 2
|
||||||
getRespBodySplitInfoField = 3
|
getRespBodySplitInfoField = 3
|
||||||
getRespBodyECInfoField = 4
|
|
||||||
|
|
||||||
putReqInitObjectIDField = 1
|
putReqInitObjectIDField = 1
|
||||||
putReqInitSignatureField = 2
|
putReqInitSignatureField = 2
|
||||||
|
@ -99,7 +82,6 @@ const (
|
||||||
headRespBodyHeaderField = 1
|
headRespBodyHeaderField = 1
|
||||||
headRespBodyShortHeaderField = 2
|
headRespBodyShortHeaderField = 2
|
||||||
headRespBodySplitInfoField = 3
|
headRespBodySplitInfoField = 3
|
||||||
headRespBodyECInfoField = 4
|
|
||||||
|
|
||||||
searchFilterMatchField = 1
|
searchFilterMatchField = 1
|
||||||
searchFilterNameField = 2
|
searchFilterNameField = 2
|
||||||
|
@ -120,7 +102,6 @@ const (
|
||||||
|
|
||||||
getRangeRespChunkField = 1
|
getRangeRespChunkField = 1
|
||||||
getRangeRespSplitInfoField = 2
|
getRangeRespSplitInfoField = 2
|
||||||
getRangeRespECInfoField = 3
|
|
||||||
|
|
||||||
getRangeHashReqBodyAddressField = 1
|
getRangeHashReqBodyAddressField = 1
|
||||||
getRangeHashReqBodyRangesField = 2
|
getRangeHashReqBodyRangesField = 2
|
||||||
|
@ -248,53 +229,6 @@ func (h *SplitHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(h, data, new(object.Header_Split))
|
return message.Unmarshal(h, data, new(object.Header_Split))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *ECHeader) StableMarshal(buf []byte) []byte {
|
|
||||||
if h == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, h.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.NestedStructureMarshal(ecHdrParentField, buf[offset:], h.Parent)
|
|
||||||
offset += proto.UInt32Marshal(ecHdrIndexField, buf[offset:], h.Index)
|
|
||||||
offset += proto.UInt32Marshal(ecHdrTotalField, buf[offset:], h.Total)
|
|
||||||
offset += proto.UInt32Marshal(ecHdrHeaderLengthField, buf[offset:], h.HeaderLength)
|
|
||||||
offset += proto.BytesMarshal(ecHdrHeaderField, buf[offset:], h.Header)
|
|
||||||
offset += proto.BytesMarshal(ecHdrParentSplitID, buf[offset:], h.ParentSplitID)
|
|
||||||
offset += proto.NestedStructureMarshal(ecHdrParentSplitParentID, buf[offset:], h.ParentSplitParentID)
|
|
||||||
for i := range h.ParentAttributes {
|
|
||||||
offset += proto.NestedStructureMarshal(ecHdrParentAttributes, buf[offset:], &h.ParentAttributes[i])
|
|
||||||
}
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *ECHeader) StableSize() (size int) {
|
|
||||||
if h == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.NestedStructureSize(ecHdrParentField, h.Parent)
|
|
||||||
size += proto.UInt32Size(ecHdrIndexField, h.Index)
|
|
||||||
size += proto.UInt32Size(ecHdrTotalField, h.Total)
|
|
||||||
size += proto.UInt32Size(ecHdrHeaderLengthField, h.HeaderLength)
|
|
||||||
size += proto.BytesSize(ecHdrHeaderField, h.Header)
|
|
||||||
size += proto.BytesSize(ecHdrParentSplitID, h.ParentSplitID)
|
|
||||||
size += proto.NestedStructureSize(ecHdrParentSplitParentID, h.ParentSplitParentID)
|
|
||||||
for i := range h.ParentAttributes {
|
|
||||||
size += proto.NestedStructureSize(ecHdrParentAttributes, &h.ParentAttributes[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *ECHeader) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(h, data, new(object.Header_EC))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Header) StableMarshal(buf []byte) []byte {
|
func (h *Header) StableMarshal(buf []byte) []byte {
|
||||||
if h == nil {
|
if h == nil {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
|
@ -321,7 +255,6 @@ func (h *Header) StableMarshal(buf []byte) []byte {
|
||||||
}
|
}
|
||||||
|
|
||||||
proto.NestedStructureMarshal(hdrSplitField, buf[offset:], h.split)
|
proto.NestedStructureMarshal(hdrSplitField, buf[offset:], h.split)
|
||||||
proto.NestedStructureMarshal(hdrECField, buf[offset:], h.ec)
|
|
||||||
|
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
@ -344,7 +277,6 @@ func (h *Header) StableSize() (size int) {
|
||||||
size += proto.NestedStructureSize(hdrAttributesField, &h.attr[i])
|
size += proto.NestedStructureSize(hdrAttributesField, &h.attr[i])
|
||||||
}
|
}
|
||||||
size += proto.NestedStructureSize(hdrSplitField, h.split)
|
size += proto.NestedStructureSize(hdrSplitField, h.split)
|
||||||
size += proto.NestedStructureSize(hdrECField, h.ec)
|
|
||||||
|
|
||||||
return size
|
return size
|
||||||
}
|
}
|
||||||
|
@ -390,14 +322,6 @@ func (o *Object) StableMarshal(buf []byte) []byte {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
}
|
}
|
||||||
|
|
||||||
if o.marshalData != nil {
|
|
||||||
if buf == nil {
|
|
||||||
return o.marshalData
|
|
||||||
}
|
|
||||||
copy(buf, o.marshalData)
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
if buf == nil {
|
||||||
buf = make([]byte, o.StableSize())
|
buf = make([]byte, o.StableSize())
|
||||||
}
|
}
|
||||||
|
@ -412,16 +336,6 @@ func (o *Object) StableMarshal(buf []byte) []byte {
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetMarshalData sets marshal data to reduce memory allocations.
|
|
||||||
//
|
|
||||||
// It is unsafe to modify/copy object data after setting marshal data.
|
|
||||||
func (o *Object) SetMarshalData(data []byte) {
|
|
||||||
if o == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
o.marshalData = data
|
|
||||||
}
|
|
||||||
|
|
||||||
func (o *Object) StableSize() (size int) {
|
func (o *Object) StableSize() (size int) {
|
||||||
if o == nil {
|
if o == nil {
|
||||||
return 0
|
return 0
|
||||||
|
@ -473,74 +387,6 @@ func (s *SplitInfo) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(s, data, new(object.SplitInfo))
|
return message.Unmarshal(s, data, new(object.SplitInfo))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *ECInfo) StableMarshal(buf []byte) []byte {
|
|
||||||
if e == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, e.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
for i := range e.Chunks {
|
|
||||||
offset += proto.NestedStructureMarshal(ecInfoChunksField, buf[offset:], &e.Chunks[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ECInfo) StableSize() (size int) {
|
|
||||||
if e == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range e.Chunks {
|
|
||||||
size += proto.NestedStructureSize(ecInfoChunksField, &e.Chunks[i])
|
|
||||||
}
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *ECInfo) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(e, data, new(object.ECInfo))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ECChunk) StableMarshal(buf []byte) []byte {
|
|
||||||
if c == nil {
|
|
||||||
return []byte{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
|
||||||
buf = make([]byte, c.StableSize())
|
|
||||||
}
|
|
||||||
|
|
||||||
var offset int
|
|
||||||
|
|
||||||
offset += proto.NestedStructureMarshal(ecChunkIDField, buf[offset:], &c.ID)
|
|
||||||
offset += proto.UInt32Marshal(ecChunkIndexField, buf[offset:], c.Index)
|
|
||||||
proto.UInt32Marshal(ecChunkTotalField, buf[offset:], c.Total)
|
|
||||||
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ECChunk) StableSize() (size int) {
|
|
||||||
if c == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
size += proto.NestedStructureSize(ecChunkIDField, &c.ID)
|
|
||||||
size += proto.UInt32Size(ecChunkIndexField, c.Index)
|
|
||||||
size += proto.UInt32Size(ecChunkTotalField, c.Total)
|
|
||||||
|
|
||||||
return size
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *ECChunk) Unmarshal(data []byte) error {
|
|
||||||
return message.Unmarshal(c, data, new(object.ECInfo_Chunk))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *GetRequestBody) StableMarshal(buf []byte) []byte {
|
func (r *GetRequestBody) StableMarshal(buf []byte) []byte {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
|
@ -626,8 +472,6 @@ func (r *GetResponseBody) StableMarshal(buf []byte) []byte {
|
||||||
}
|
}
|
||||||
case *SplitInfo:
|
case *SplitInfo:
|
||||||
proto.NestedStructureMarshal(getRespBodySplitInfoField, buf, v)
|
proto.NestedStructureMarshal(getRespBodySplitInfoField, buf, v)
|
||||||
case *ECInfo:
|
|
||||||
proto.NestedStructureMarshal(getRespBodyECInfoField, buf, v)
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object get response body type")
|
panic("unknown one of object get response body type")
|
||||||
}
|
}
|
||||||
|
@ -650,8 +494,6 @@ func (r *GetResponseBody) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
case *SplitInfo:
|
case *SplitInfo:
|
||||||
size += proto.NestedStructureSize(getRespBodySplitInfoField, v)
|
size += proto.NestedStructureSize(getRespBodySplitInfoField, v)
|
||||||
case *ECInfo:
|
|
||||||
size += proto.NestedStructureSize(getRespBodyECInfoField, v)
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object get response body type")
|
panic("unknown one of object get response body type")
|
||||||
}
|
}
|
||||||
|
@ -890,10 +732,6 @@ func (r *HeadResponseBody) StableMarshal(buf []byte) []byte {
|
||||||
if v != nil {
|
if v != nil {
|
||||||
proto.NestedStructureMarshal(headRespBodySplitInfoField, buf, v)
|
proto.NestedStructureMarshal(headRespBodySplitInfoField, buf, v)
|
||||||
}
|
}
|
||||||
case *ECInfo:
|
|
||||||
if v != nil {
|
|
||||||
proto.NestedStructureMarshal(headRespBodyECInfoField, buf, v)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object put request body type")
|
panic("unknown one of object put request body type")
|
||||||
}
|
}
|
||||||
|
@ -920,10 +758,6 @@ func (r *HeadResponseBody) StableSize() (size int) {
|
||||||
if v != nil {
|
if v != nil {
|
||||||
size += proto.NestedStructureSize(headRespBodySplitInfoField, v)
|
size += proto.NestedStructureSize(headRespBodySplitInfoField, v)
|
||||||
}
|
}
|
||||||
case *ECInfo:
|
|
||||||
if v != nil {
|
|
||||||
size += proto.NestedStructureSize(headRespBodyECInfoField, v)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object put request body type")
|
panic("unknown one of object put request body type")
|
||||||
}
|
}
|
||||||
|
@ -1124,10 +958,6 @@ func (r *GetRangeResponseBody) StableMarshal(buf []byte) []byte {
|
||||||
if v != nil {
|
if v != nil {
|
||||||
proto.NestedStructureMarshal(getRangeRespSplitInfoField, buf, v)
|
proto.NestedStructureMarshal(getRangeRespSplitInfoField, buf, v)
|
||||||
}
|
}
|
||||||
case *ECInfo:
|
|
||||||
if v != nil {
|
|
||||||
proto.NestedStructureMarshal(getRangeRespECInfoField, buf, v)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object get range request body type")
|
panic("unknown one of object get range request body type")
|
||||||
}
|
}
|
||||||
|
@ -1150,10 +980,6 @@ func (r *GetRangeResponseBody) StableSize() (size int) {
|
||||||
if v != nil {
|
if v != nil {
|
||||||
size = proto.NestedStructureSize(getRangeRespSplitInfoField, v)
|
size = proto.NestedStructureSize(getRangeRespSplitInfoField, v)
|
||||||
}
|
}
|
||||||
case *ECInfo:
|
|
||||||
if v != nil {
|
|
||||||
size = proto.NestedStructureSize(getRangeRespECInfoField, v)
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
panic("unknown one of object get range request body type")
|
panic("unknown one of object get range request body type")
|
||||||
}
|
}
|
||||||
|
@ -1245,15 +1071,6 @@ func (r *PutSingleRequestBody) StableMarshal(buf []byte) []byte {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return []byte{}
|
return []byte{}
|
||||||
}
|
}
|
||||||
|
|
||||||
if r.marshalData != nil {
|
|
||||||
if buf == nil {
|
|
||||||
return r.marshalData
|
|
||||||
}
|
|
||||||
copy(buf, r.marshalData)
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
if buf == nil {
|
if buf == nil {
|
||||||
buf = make([]byte, r.StableSize())
|
buf = make([]byte, r.StableSize())
|
||||||
}
|
}
|
||||||
|
@ -1265,19 +1082,6 @@ func (r *PutSingleRequestBody) StableMarshal(buf []byte) []byte {
|
||||||
return buf
|
return buf
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetMarshalData sets marshal data to reduce memory allocations.
|
|
||||||
//
|
|
||||||
// It is unsafe to modify/copy request data after setting marshal data.
|
|
||||||
func (r *PutSingleRequestBody) SetMarshalData(data []byte) {
|
|
||||||
if r == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
r.marshalData = data
|
|
||||||
|
|
||||||
proto.NestedStructureSetMarshalData(putSingleReqObjectField, r.marshalData, r.object)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *PutSingleRequestBody) StableSize() int {
|
func (r *PutSingleRequestBody) StableSize() int {
|
||||||
if r == nil {
|
if r == nil {
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -13,12 +13,9 @@ func TestMessageConvert(t *testing.T) {
|
||||||
func(empty bool) message.Message { return objecttest.GenerateShortHeader(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateShortHeader(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateAttribute(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateAttribute(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateSplitHeader(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateSplitHeader(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateHeaderWithSplitHeader(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateHeader(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateHeaderWithECHeader(empty) },
|
|
||||||
func(empty bool) message.Message { return objecttest.GenerateECHeader(empty) },
|
|
||||||
func(empty bool) message.Message { return objecttest.GenerateObject(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateObject(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateSplitInfo(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateSplitInfo(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateECInfo(empty) },
|
|
||||||
func(empty bool) message.Message { return objecttest.GenerateGetRequestBody(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateGetRequestBody(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateGetRequest(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateGetRequest(empty) },
|
||||||
func(empty bool) message.Message { return objecttest.GenerateGetObjectPartInit(empty) },
|
func(empty bool) message.Message { return objecttest.GenerateGetObjectPartInit(empty) },
|
||||||
|
|
|
@ -68,42 +68,17 @@ func generateSplitHeader(empty, withPar bool) *object.SplitHeader {
|
||||||
m.SetParentSignature(refstest.GenerateSignature(empty))
|
m.SetParentSignature(refstest.GenerateSignature(empty))
|
||||||
|
|
||||||
if withPar {
|
if withPar {
|
||||||
m.SetParentHeader(GenerateHeaderWithSplitHeader(empty))
|
m.SetParentHeader(generateHeader(empty, false))
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateHeaderWithSplitHeader(empty bool) *object.Header {
|
func GenerateHeader(empty bool) *object.Header {
|
||||||
m := generateHeader(empty)
|
return generateHeader(empty, true)
|
||||||
m.SetSplit(generateSplitHeader(empty, false))
|
|
||||||
return m
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateHeaderWithECHeader(empty bool) *object.Header {
|
func generateHeader(empty, withSplit bool) *object.Header {
|
||||||
m := generateHeader(empty)
|
|
||||||
m.SetEC(GenerateECHeader(empty))
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateECHeader(empty bool) *object.ECHeader {
|
|
||||||
ech := new(object.ECHeader)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
ech.Parent = refstest.GenerateObjectID(empty)
|
|
||||||
ech.ParentSplitID = []byte{1, 2, 3}
|
|
||||||
ech.ParentSplitParentID = refstest.GenerateObjectID(empty)
|
|
||||||
ech.ParentAttributes = GenerateAttributes(empty)
|
|
||||||
ech.Index = 0
|
|
||||||
ech.Total = 2
|
|
||||||
ech.Header = []byte("chunk of ec-encoded parent header")
|
|
||||||
ech.HeaderLength = uint32(2 * len(ech.Header))
|
|
||||||
}
|
|
||||||
|
|
||||||
return ech
|
|
||||||
}
|
|
||||||
|
|
||||||
func generateHeader(empty bool) *object.Header {
|
|
||||||
m := new(object.Header)
|
m := new(object.Header)
|
||||||
|
|
||||||
if !empty {
|
if !empty {
|
||||||
|
@ -120,6 +95,10 @@ func generateHeader(empty bool) *object.Header {
|
||||||
m.SetHomomorphicHash(refstest.GenerateChecksum(empty))
|
m.SetHomomorphicHash(refstest.GenerateChecksum(empty))
|
||||||
m.SetSessionToken(sessiontest.GenerateSessionToken(empty))
|
m.SetSessionToken(sessiontest.GenerateSessionToken(empty))
|
||||||
|
|
||||||
|
if withSplit {
|
||||||
|
m.SetSplit(generateSplitHeader(empty, false))
|
||||||
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +106,7 @@ func GenerateHeaderWithSignature(empty bool) *object.HeaderWithSignature {
|
||||||
m := new(object.HeaderWithSignature)
|
m := new(object.HeaderWithSignature)
|
||||||
|
|
||||||
m.SetSignature(refstest.GenerateSignature(empty))
|
m.SetSignature(refstest.GenerateSignature(empty))
|
||||||
m.SetHeader(GenerateHeaderWithSplitHeader(empty))
|
m.SetHeader(GenerateHeader(empty))
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
@ -141,7 +120,7 @@ func GenerateObject(empty bool) *object.Object {
|
||||||
}
|
}
|
||||||
|
|
||||||
m.SetSignature(refstest.GenerateSignature(empty))
|
m.SetSignature(refstest.GenerateSignature(empty))
|
||||||
m.SetHeader(GenerateHeaderWithSplitHeader(empty))
|
m.SetHeader(GenerateHeader(empty))
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
@ -158,31 +137,6 @@ func GenerateSplitInfo(empty bool) *object.SplitInfo {
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
||||||
func GenerateECInfo(empty bool) *object.ECInfo {
|
|
||||||
m := new(object.ECInfo)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.Chunks = make([]object.ECChunk, 2)
|
|
||||||
for i := range m.Chunks {
|
|
||||||
m.Chunks[i] = *GenerateECChunk(false)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateECChunk(empty bool) *object.ECChunk {
|
|
||||||
m := new(object.ECChunk)
|
|
||||||
|
|
||||||
if !empty {
|
|
||||||
m.ID = *refstest.GenerateObjectID(false)
|
|
||||||
m.Index = 4
|
|
||||||
m.Total = 7
|
|
||||||
}
|
|
||||||
|
|
||||||
return m
|
|
||||||
}
|
|
||||||
|
|
||||||
func GenerateGetRequestBody(empty bool) *object.GetRequestBody {
|
func GenerateGetRequestBody(empty bool) *object.GetRequestBody {
|
||||||
m := new(object.GetRequestBody)
|
m := new(object.GetRequestBody)
|
||||||
|
|
||||||
|
@ -215,7 +169,7 @@ func GenerateGetObjectPartInit(empty bool) *object.GetObjectPartInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
m.SetSignature(refstest.GenerateSignature(empty))
|
m.SetSignature(refstest.GenerateSignature(empty))
|
||||||
m.SetHeader(GenerateHeaderWithSplitHeader(empty))
|
m.SetHeader(GenerateHeader(empty))
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
@ -269,7 +223,7 @@ func GeneratePutObjectPartInit(empty bool) *object.PutObjectPartInit {
|
||||||
}
|
}
|
||||||
|
|
||||||
m.SetSignature(refstest.GenerateSignature(empty))
|
m.SetSignature(refstest.GenerateSignature(empty))
|
||||||
m.SetHeader(GenerateHeaderWithSplitHeader(empty))
|
m.SetHeader(GenerateHeader(empty))
|
||||||
|
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,17 +39,6 @@ type SplitHeader struct {
|
||||||
splitID []byte
|
splitID []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
type ECHeader struct {
|
|
||||||
Parent *refs.ObjectID
|
|
||||||
ParentSplitID []byte
|
|
||||||
ParentSplitParentID *refs.ObjectID
|
|
||||||
ParentAttributes []Attribute
|
|
||||||
Index uint32
|
|
||||||
Total uint32
|
|
||||||
Header []byte
|
|
||||||
HeaderLength uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
type Header struct {
|
type Header struct {
|
||||||
version *refs.Version
|
version *refs.Version
|
||||||
|
|
||||||
|
@ -70,8 +59,6 @@ type Header struct {
|
||||||
attr []Attribute
|
attr []Attribute
|
||||||
|
|
||||||
split *SplitHeader
|
split *SplitHeader
|
||||||
|
|
||||||
ec *ECHeader
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type HeaderWithSignature struct {
|
type HeaderWithSignature struct {
|
||||||
|
@ -88,9 +75,6 @@ type Object struct {
|
||||||
header *Header
|
header *Header
|
||||||
|
|
||||||
payload []byte
|
payload []byte
|
||||||
|
|
||||||
// marshalData holds marshaled data, must not be marshaled by StableMarshal
|
|
||||||
marshalData []byte
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type SplitInfo struct {
|
type SplitInfo struct {
|
||||||
|
@ -101,16 +85,6 @@ type SplitInfo struct {
|
||||||
link *refs.ObjectID
|
link *refs.ObjectID
|
||||||
}
|
}
|
||||||
|
|
||||||
type ECChunk struct {
|
|
||||||
ID refs.ObjectID
|
|
||||||
Index uint32
|
|
||||||
Total uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
type ECInfo struct {
|
|
||||||
Chunks []ECChunk
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetRequestBody struct {
|
type GetRequestBody struct {
|
||||||
addr *refs.Address
|
addr *refs.Address
|
||||||
|
|
||||||
|
@ -330,9 +304,6 @@ type GetRangeHashResponse struct {
|
||||||
type PutSingleRequestBody struct {
|
type PutSingleRequestBody struct {
|
||||||
object *Object
|
object *Object
|
||||||
copyNum []uint32
|
copyNum []uint32
|
||||||
|
|
||||||
// marshalData holds marshaled data, must not be marshaled by StableMarshal
|
|
||||||
marshalData []byte
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type PutSingleRequest struct {
|
type PutSingleRequest struct {
|
||||||
|
@ -341,7 +312,8 @@ type PutSingleRequest struct {
|
||||||
session.RequestHeaders
|
session.RequestHeaders
|
||||||
}
|
}
|
||||||
|
|
||||||
type PutSingleResponseBody struct{}
|
type PutSingleResponseBody struct {
|
||||||
|
}
|
||||||
|
|
||||||
type PutSingleResponse struct {
|
type PutSingleResponse struct {
|
||||||
body *PutSingleResponseBody
|
body *PutSingleResponseBody
|
||||||
|
@ -678,17 +650,6 @@ func (h *Header) SetSplit(v *SplitHeader) {
|
||||||
h.split = v
|
h.split = v
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *Header) GetEC() *ECHeader {
|
|
||||||
if h != nil {
|
|
||||||
return h.ec
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Header) SetEC(v *ECHeader) {
|
|
||||||
h.ec = v
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *HeaderWithSignature) GetHeader() *Header {
|
func (h *HeaderWithSignature) GetHeader() *Header {
|
||||||
if h != nil {
|
if h != nil {
|
||||||
return h.header
|
return h.header
|
||||||
|
@ -1510,9 +1471,3 @@ func (r *PutSingleResponse) GetBody() *PutSingleResponseBody {
|
||||||
func (r *PutSingleResponse) SetBody(v *PutSingleResponseBody) {
|
func (r *PutSingleResponse) SetBody(v *PutSingleResponseBody) {
|
||||||
r.body = v
|
r.body = v
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ECInfo) getObjectPart() {}
|
|
||||||
|
|
||||||
func (s *ECInfo) getHeaderPart() {}
|
|
||||||
|
|
||||||
func (s *ECInfo) getRangePart() {}
|
|
||||||
|
|
|
@ -196,7 +196,7 @@ func (c *Checksum) ToGRPCMessage() grpc.Message {
|
||||||
if c != nil {
|
if c != nil {
|
||||||
m = new(refs.Checksum)
|
m = new(refs.Checksum)
|
||||||
|
|
||||||
m.SetType(ChecksumTypeToGRPC(c.typ))
|
m.SetChecksumType(ChecksumTypeToGRPC(c.typ))
|
||||||
m.SetSum(c.sum)
|
m.SetSum(c.sum)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,8 +25,8 @@ func (x *Address) SetObjectId(v *ObjectID) {
|
||||||
x.ObjectId = v
|
x.ObjectId = v
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetType in generic checksum structure.
|
// SetChecksumType in generic checksum structure.
|
||||||
func (x *Checksum) SetType(v ChecksumType) {
|
func (x *Checksum) SetChecksumType(v ChecksumType) {
|
||||||
x.Type = v
|
x.Type = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
refs/grpc/types.pb.go
generated
14
refs/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: refs/grpc/types.proto
|
// source: refs/grpc/types.proto
|
||||||
|
|
||||||
package refs
|
package refs
|
||||||
|
@ -20,8 +20,7 @@ const (
|
||||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||||
)
|
)
|
||||||
|
|
||||||
// Signature scheme describes digital signing scheme used for (key, signature)
|
// Signature scheme describes digital signing scheme used for (key, signature) pair.
|
||||||
// pair.
|
|
||||||
type SignatureScheme int32
|
type SignatureScheme int32
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -194,8 +193,8 @@ func (x *Address) GetObjectId() *ObjectID {
|
||||||
//
|
//
|
||||||
// `ObjectID` is a 32 byte long
|
// `ObjectID` is a 32 byte long
|
||||||
// [SHA256](https://csrc.nist.gov/publications/detail/fips/180/4/final) hash of
|
// [SHA256](https://csrc.nist.gov/publications/detail/fips/180/4/final) hash of
|
||||||
// the object's `header` field, which, in it's turn, contains the hash of the
|
// the object's `header` field, which, in it's turn, contains the hash of the object's
|
||||||
// object's payload.
|
// payload.
|
||||||
//
|
//
|
||||||
// String presentation is a
|
// String presentation is a
|
||||||
// [base58](https://tools.ietf.org/html/draft-msporny-base58-02) encoded string.
|
// [base58](https://tools.ietf.org/html/draft-msporny-base58-02) encoded string.
|
||||||
|
@ -382,8 +381,7 @@ func (x *OwnerID) GetValue() []byte {
|
||||||
// API version used by a node.
|
// API version used by a node.
|
||||||
//
|
//
|
||||||
// String presentation is a Semantic Versioning 2.0.0 compatible version string
|
// String presentation is a Semantic Versioning 2.0.0 compatible version string
|
||||||
// with 'v' prefix. i.e. `vX.Y`, where `X` is the major number, `Y` is the minor
|
// with 'v' prefix. i.e. `vX.Y`, where `X` is the major number, `Y` is the minor number.
|
||||||
// number.
|
|
||||||
type Version struct {
|
type Version struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
package rpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/client"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/common"
|
|
||||||
)
|
|
||||||
|
|
||||||
const serviceAPEManager = frostfsServiceNamePrefix + "apemanager.APEManagerService"
|
|
||||||
|
|
||||||
const (
|
|
||||||
rpcAPEManagerAddChain = "AddChain"
|
|
||||||
rpcAPEManagerRemoveChain = "RemoveChain"
|
|
||||||
rpcAPEManagerListChains = "ListChains"
|
|
||||||
)
|
|
||||||
|
|
||||||
func AddChain(
|
|
||||||
cli *client.Client,
|
|
||||||
req *apemanager.AddChainRequest,
|
|
||||||
opts ...client.CallOption,
|
|
||||||
) (*apemanager.AddChainResponse, error) {
|
|
||||||
resp := new(apemanager.AddChainResponse)
|
|
||||||
|
|
||||||
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceAPEManager, rpcAPEManagerAddChain), req, resp, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func RemoveChain(
|
|
||||||
cli *client.Client,
|
|
||||||
req *apemanager.RemoveChainRequest,
|
|
||||||
opts ...client.CallOption,
|
|
||||||
) (*apemanager.RemoveChainResponse, error) {
|
|
||||||
resp := new(apemanager.RemoveChainResponse)
|
|
||||||
|
|
||||||
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceAPEManager, rpcAPEManagerRemoveChain), req, resp, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func ListChains(
|
|
||||||
cli *client.Client,
|
|
||||||
req *apemanager.ListChainsRequest,
|
|
||||||
opts ...client.CallOption,
|
|
||||||
) (*apemanager.ListChainsResponse, error) {
|
|
||||||
resp := new(apemanager.ListChainsResponse)
|
|
||||||
|
|
||||||
err := client.SendUnary(cli, common.CallMethodInfoUnary(serviceAPEManager, rpcAPEManagerListChains), req, resp, opts...)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return resp, nil
|
|
||||||
}
|
|
|
@ -1,10 +1,3 @@
|
||||||
package rpc
|
package rpc
|
||||||
|
|
||||||
const (
|
const serviceNamePrefix = "neo.fs.v2."
|
||||||
// serviceNamePrefix is still used in "old" services but should be
|
|
||||||
// considered as deprecated. Since new services use "frostfs" root,
|
|
||||||
// `frostfsServiceNamePrefix` must be used for their rpc interface.
|
|
||||||
serviceNamePrefix = "neo.fs.v2."
|
|
||||||
|
|
||||||
frostfsServiceNamePrefix = "frostfs.v2."
|
|
||||||
)
|
|
||||||
|
|
|
@ -383,7 +383,7 @@ func (r *RequestMetaHeader) ToGRPCMessage() grpc.Message {
|
||||||
m.SetEpoch(r.epoch)
|
m.SetEpoch(r.epoch)
|
||||||
m.SetTtl(r.ttl)
|
m.SetTtl(r.ttl)
|
||||||
m.SetOrigin(r.origin.ToGRPCMessage().(*session.RequestMetaHeader))
|
m.SetOrigin(r.origin.ToGRPCMessage().(*session.RequestMetaHeader))
|
||||||
m.SetMagicNumber(r.netMagic)
|
m.SetNetworkMagic(r.netMagic)
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -674,10 +674,7 @@ func (c *ObjectSessionContext) ToGRPCMessage() grpc.Message {
|
||||||
m = new(session.ObjectSessionContext)
|
m = new(session.ObjectSessionContext)
|
||||||
|
|
||||||
m.SetVerb(ObjectSessionVerbToGRPCField(c.verb))
|
m.SetVerb(ObjectSessionVerbToGRPCField(c.verb))
|
||||||
m.SetTarget(&session.ObjectSessionContext_Target{
|
m.SetTarget(c.cnr.ToGRPCMessage().(*refsGRPC.ContainerID), refs.ObjectIDListToGRPCMessage(c.objs))
|
||||||
Container: c.cnr.ToGRPCMessage().(*refsGRPC.ContainerID),
|
|
||||||
Objects: refs.ObjectIDListToGRPCMessage(c.objs),
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return m
|
return m
|
||||||
|
@ -727,9 +724,9 @@ func (t *TokenBody) ToGRPCMessage() grpc.Message {
|
||||||
case nil:
|
case nil:
|
||||||
m.Context = nil
|
m.Context = nil
|
||||||
case *ObjectSessionContext:
|
case *ObjectSessionContext:
|
||||||
m.SetObject(typ.ToGRPCMessage().(*session.ObjectSessionContext))
|
m.SetObjectSessionContext(typ.ToGRPCMessage().(*session.ObjectSessionContext))
|
||||||
case *ContainerSessionContext:
|
case *ContainerSessionContext:
|
||||||
m.SetContainer(typ.ToGRPCMessage().(*session.ContainerSessionContext))
|
m.SetContainerSessionContext(typ.ToGRPCMessage().(*session.ContainerSessionContext))
|
||||||
}
|
}
|
||||||
|
|
||||||
m.SetOwnerId(t.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
|
m.SetOwnerId(t.ownerID.ToGRPCMessage().(*refsGRPC.OwnerID))
|
||||||
|
|
4
session/grpc/service.pb.go
generated
4
session/grpc/service.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: session/grpc/service.proto
|
// source: session/grpc/service.proto
|
||||||
|
|
||||||
package session
|
package session
|
||||||
|
|
2
session/grpc/service_grpc.pb.go
generated
2
session/grpc/service_grpc.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// - protoc-gen-go-grpc v1.3.0
|
// - protoc-gen-go-grpc v1.3.0
|
||||||
// - protoc v4.25.3
|
// - protoc v4.23.4
|
||||||
// source: session/grpc/service.proto
|
// source: session/grpc/service.proto
|
||||||
|
|
||||||
package session
|
package session
|
||||||
|
|
|
@ -52,22 +52,25 @@ func (m *SessionToken_Body) SetSessionKey(v []byte) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetObjectAddressContext sets object context of the session token.
|
// SetObjectAddressContext sets object context of the session token.
|
||||||
func (m *SessionToken_Body) SetObject(v *ObjectSessionContext) {
|
func (m *SessionToken_Body) SetObjectSessionContext(v *ObjectSessionContext) {
|
||||||
m.Context = &SessionToken_Body_Object{
|
m.Context = &SessionToken_Body_Object{
|
||||||
Object: v,
|
Object: v,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetContainer sets container context of the session token.
|
// SetContainerSessionContext sets container context of the session token.
|
||||||
func (m *SessionToken_Body) SetContainer(v *ContainerSessionContext) {
|
func (m *SessionToken_Body) SetContainerSessionContext(v *ContainerSessionContext) {
|
||||||
m.Context = &SessionToken_Body_Container{
|
m.Context = &SessionToken_Body_Container{
|
||||||
Container: v,
|
Container: v,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetTarget specifies objects involved in the object session.
|
// SetTarget specifies objects involved in the object session.
|
||||||
func (m *ObjectSessionContext) SetTarget(tgt *ObjectSessionContext_Target) {
|
func (m *ObjectSessionContext) SetTarget(cnr *refs.ContainerID, objs []*refs.ObjectID) {
|
||||||
m.Target = tgt
|
m.Target = &ObjectSessionContext_Target{
|
||||||
|
Container: cnr,
|
||||||
|
Objects: objs,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetVerb sets type of request for which the token is issued.
|
// SetVerb sets type of request for which the token is issued.
|
||||||
|
@ -144,8 +147,8 @@ func (m *RequestMetaHeader) GetNetworkMagic() uint64 {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetMagicNumber sets NeoFS network magic.
|
// SetNetworkMagic sets NeoFS network magic.
|
||||||
func (m *RequestMetaHeader) SetMagicNumber(v uint64) {
|
func (m *RequestMetaHeader) SetNetworkMagic(v uint64) {
|
||||||
m.MagicNumber = v
|
m.MagicNumber = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
22
session/grpc/types.pb.go
generated
22
session/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: session/grpc/types.proto
|
// source: session/grpc/types.proto
|
||||||
|
|
||||||
package session
|
package session
|
||||||
|
@ -342,15 +342,15 @@ func (x *SessionToken) GetSignature() *grpc.Signature {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extended headers for Request/Response. They may contain any user-defined
|
// Extended headers for Request/Response. They may contain any user-defined headers
|
||||||
// headers to be interpreted on application level.
|
// to be interpreted on application level.
|
||||||
//
|
//
|
||||||
// Key name must be a unique valid UTF-8 string. Value can't be empty. Requests
|
// Key name must be a unique valid UTF-8 string. Value can't be empty. Requests or
|
||||||
// or Responses with duplicated header names or headers with empty values will
|
// Responses with duplicated header names or headers with empty values will be
|
||||||
// be considered invalid.
|
// considered invalid.
|
||||||
//
|
//
|
||||||
// There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__`
|
// There are some "well-known" headers starting with `__SYSTEM__` (`__NEOFS__` is deprecated) prefix that
|
||||||
// is deprecated) prefix that affect system behaviour:
|
// affect system behaviour:
|
||||||
//
|
//
|
||||||
// - [ __SYSTEM__NETMAP_EPOCH ] \
|
// - [ __SYSTEM__NETMAP_EPOCH ] \
|
||||||
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
// (`__NEOFS__NETMAP_EPOCH` is deprecated) \
|
||||||
|
@ -361,8 +361,8 @@ func (x *SessionToken) GetSignature() *grpc.Signature {
|
||||||
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
// (`__NEOFS__NETMAP_LOOKUP_DEPTH` is deprecated) \
|
||||||
// If object can't be found using current epoch's netmap, this header limits
|
// If object can't be found using current epoch's netmap, this header limits
|
||||||
// how many past epochs the node can look up through. The `value` is string
|
// how many past epochs the node can look up through. The `value` is string
|
||||||
// encoded `uint64` in decimal presentation. If set to '0' or not set, only
|
// encoded `uint64` in decimal presentation. If set to '0' or not set, only the
|
||||||
// the current epoch will be used.
|
// current epoch will be used.
|
||||||
type XHeader struct {
|
type XHeader struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
|
|
|
@ -3,6 +3,7 @@ package session
|
||||||
import (
|
import (
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
|
session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
|
||||||
|
"google.golang.org/protobuf/encoding/protojson"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (c *ObjectSessionContext) MarshalJSON() ([]byte, error) {
|
func (c *ObjectSessionContext) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -26,7 +27,13 @@ func (t *TokenBody) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TokenBody) UnmarshalJSON(data []byte) error {
|
func (t *TokenBody) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(t, data, new(session.SessionToken_Body))
|
msg := new(session.SessionToken_Body)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Token) MarshalJSON() ([]byte, error) {
|
func (t *Token) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -34,7 +41,13 @@ func (t *Token) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Token) UnmarshalJSON(data []byte) error {
|
func (t *Token) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(t, data, new(session.SessionToken))
|
msg := new(session.SessionToken)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *XHeader) MarshalJSON() ([]byte, error) {
|
func (x *XHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -42,7 +55,13 @@ func (x *XHeader) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *XHeader) UnmarshalJSON(data []byte) error {
|
func (x *XHeader) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(x, data, new(session.XHeader))
|
msg := new(session.XHeader)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return x.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestMetaHeader) MarshalJSON() ([]byte, error) {
|
func (r *RequestMetaHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -50,7 +69,13 @@ func (r *RequestMetaHeader) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestMetaHeader) UnmarshalJSON(data []byte) error {
|
func (r *RequestMetaHeader) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(r, data, new(session.RequestMetaHeader))
|
msg := new(session.RequestMetaHeader)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestVerificationHeader) MarshalJSON() ([]byte, error) {
|
func (r *RequestVerificationHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -58,7 +83,13 @@ func (r *RequestVerificationHeader) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestVerificationHeader) UnmarshalJSON(data []byte) error {
|
func (r *RequestVerificationHeader) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(r, data, new(session.RequestVerificationHeader))
|
msg := new(session.RequestVerificationHeader)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseMetaHeader) MarshalJSON() ([]byte, error) {
|
func (r *ResponseMetaHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -66,7 +97,13 @@ func (r *ResponseMetaHeader) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseMetaHeader) UnmarshalJSON(data []byte) error {
|
func (r *ResponseMetaHeader) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(r, data, new(session.ResponseMetaHeader))
|
msg := new(session.ResponseMetaHeader)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseVerificationHeader) MarshalJSON() ([]byte, error) {
|
func (r *ResponseVerificationHeader) MarshalJSON() ([]byte, error) {
|
||||||
|
@ -74,7 +111,13 @@ func (r *ResponseVerificationHeader) MarshalJSON() ([]byte, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseVerificationHeader) UnmarshalJSON(data []byte) error {
|
func (r *ResponseVerificationHeader) UnmarshalJSON(data []byte) error {
|
||||||
return message.UnmarshalJSON(r, data, new(session.ResponseVerificationHeader))
|
msg := new(session.ResponseVerificationHeader)
|
||||||
|
|
||||||
|
if err := protojson.Unmarshal(data, msg); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ContainerSessionContext) MarshalJSON() ([]byte, error) {
|
func (x *ContainerSessionContext) MarshalJSON() ([]byte, error) {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/rpc/message"
|
||||||
session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
|
session "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/grpc"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/proto"
|
||||||
|
goproto "google.golang.org/protobuf/proto"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -153,7 +154,12 @@ func (x *XHeader) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *XHeader) Unmarshal(data []byte) error {
|
func (x *XHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(x, data, new(session.XHeader))
|
m := new(session.XHeader)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return x.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *TokenLifetime) StableMarshal(buf []byte) []byte {
|
func (l *TokenLifetime) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -187,7 +193,12 @@ func (l *TokenLifetime) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *TokenLifetime) Unmarshal(data []byte) error {
|
func (l *TokenLifetime) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(l, data, new(session.SessionToken_Body_TokenLifetime))
|
m := new(session.SessionToken_Body_TokenLifetime)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return l.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ObjectSessionContext) StableMarshal(buf []byte) []byte {
|
func (c *ObjectSessionContext) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -223,7 +234,12 @@ func (c *ObjectSessionContext) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *ObjectSessionContext) Unmarshal(data []byte) error {
|
func (c *ObjectSessionContext) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(c, data, new(session.ObjectSessionContext))
|
m := new(session.ObjectSessionContext)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -322,7 +338,12 @@ func (t *TokenBody) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *TokenBody) Unmarshal(data []byte) error {
|
func (t *TokenBody) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(t, data, new(session.SessionToken_Body))
|
m := new(session.SessionToken_Body)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Token) StableMarshal(buf []byte) []byte {
|
func (t *Token) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -354,7 +375,12 @@ func (t *Token) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *Token) Unmarshal(data []byte) error {
|
func (t *Token) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(t, data, new(session.SessionToken))
|
m := new(session.SessionToken)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return t.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestMetaHeader) StableMarshal(buf []byte) []byte {
|
func (r *RequestMetaHeader) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -409,7 +435,12 @@ func (r *RequestMetaHeader) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestMetaHeader) Unmarshal(data []byte) error {
|
func (r *RequestMetaHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(r, data, new(session.RequestMetaHeader))
|
m := new(session.RequestMetaHeader)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestVerificationHeader) StableMarshal(buf []byte) []byte {
|
func (r *RequestVerificationHeader) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -445,7 +476,12 @@ func (r *RequestVerificationHeader) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RequestVerificationHeader) Unmarshal(data []byte) error {
|
func (r *RequestVerificationHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(r, data, new(session.RequestVerificationHeader))
|
m := new(session.RequestVerificationHeader)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseMetaHeader) StableMarshal(buf []byte) []byte {
|
func (r *ResponseMetaHeader) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -496,7 +532,12 @@ func (r *ResponseMetaHeader) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseMetaHeader) Unmarshal(data []byte) error {
|
func (r *ResponseMetaHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(r, data, new(session.ResponseMetaHeader))
|
m := new(session.ResponseMetaHeader)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseVerificationHeader) StableMarshal(buf []byte) []byte {
|
func (r *ResponseVerificationHeader) StableMarshal(buf []byte) []byte {
|
||||||
|
@ -532,5 +573,10 @@ func (r *ResponseVerificationHeader) StableSize() (size int) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *ResponseVerificationHeader) Unmarshal(data []byte) error {
|
func (r *ResponseVerificationHeader) Unmarshal(data []byte) error {
|
||||||
return message.Unmarshal(r, data, new(session.ResponseVerificationHeader))
|
m := new(session.ResponseVerificationHeader)
|
||||||
|
if err := goproto.Unmarshal(data, m); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return r.FromGRPCMessage(m)
|
||||||
}
|
}
|
||||||
|
|
|
@ -632,8 +632,7 @@ func (r *ResponseMetaHeader) SetStatus(v *status.Status) {
|
||||||
func SetStatus(msg interface {
|
func SetStatus(msg interface {
|
||||||
GetMetaHeader() *ResponseMetaHeader
|
GetMetaHeader() *ResponseMetaHeader
|
||||||
SetMetaHeader(*ResponseMetaHeader)
|
SetMetaHeader(*ResponseMetaHeader)
|
||||||
}, st *status.Status,
|
}, st *status.Status) {
|
||||||
) {
|
|
||||||
meta := msg.GetMetaHeader()
|
meta := msg.GetMetaHeader()
|
||||||
if meta == nil {
|
if meta == nil {
|
||||||
meta = new(ResponseMetaHeader)
|
meta = new(ResponseMetaHeader)
|
||||||
|
|
|
@ -43,8 +43,7 @@ func (c *RequestHeaders) SetVerificationHeader(v *RequestVerificationHeader) {
|
||||||
func (c *RequestHeaders) ToMessage(m interface {
|
func (c *RequestHeaders) ToMessage(m interface {
|
||||||
SetMetaHeader(*session.RequestMetaHeader)
|
SetMetaHeader(*session.RequestMetaHeader)
|
||||||
SetVerifyHeader(*session.RequestVerificationHeader)
|
SetVerifyHeader(*session.RequestVerificationHeader)
|
||||||
},
|
}) {
|
||||||
) {
|
|
||||||
m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.RequestMetaHeader))
|
m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.RequestMetaHeader))
|
||||||
m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.RequestVerificationHeader))
|
m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.RequestVerificationHeader))
|
||||||
}
|
}
|
||||||
|
@ -52,8 +51,7 @@ func (c *RequestHeaders) ToMessage(m interface {
|
||||||
func (c *RequestHeaders) FromMessage(m interface {
|
func (c *RequestHeaders) FromMessage(m interface {
|
||||||
GetMetaHeader() *session.RequestMetaHeader
|
GetMetaHeader() *session.RequestMetaHeader
|
||||||
GetVerifyHeader() *session.RequestVerificationHeader
|
GetVerifyHeader() *session.RequestVerificationHeader
|
||||||
},
|
}) error {
|
||||||
) error {
|
|
||||||
metaHdr := m.GetMetaHeader()
|
metaHdr := m.GetMetaHeader()
|
||||||
if metaHdr == nil {
|
if metaHdr == nil {
|
||||||
c.metaHeader = nil
|
c.metaHeader = nil
|
||||||
|
@ -124,8 +122,7 @@ func (c *ResponseHeaders) SetVerificationHeader(v *ResponseVerificationHeader) {
|
||||||
func (c *ResponseHeaders) ToMessage(m interface {
|
func (c *ResponseHeaders) ToMessage(m interface {
|
||||||
SetMetaHeader(*session.ResponseMetaHeader)
|
SetMetaHeader(*session.ResponseMetaHeader)
|
||||||
SetVerifyHeader(*session.ResponseVerificationHeader)
|
SetVerifyHeader(*session.ResponseVerificationHeader)
|
||||||
},
|
}) {
|
||||||
) {
|
|
||||||
m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.ResponseMetaHeader))
|
m.SetMetaHeader(c.metaHeader.ToGRPCMessage().(*session.ResponseMetaHeader))
|
||||||
m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.ResponseVerificationHeader))
|
m.SetVerifyHeader(c.verifyHeader.ToGRPCMessage().(*session.ResponseVerificationHeader))
|
||||||
}
|
}
|
||||||
|
@ -133,8 +130,7 @@ func (c *ResponseHeaders) ToMessage(m interface {
|
||||||
func (c *ResponseHeaders) FromMessage(m interface {
|
func (c *ResponseHeaders) FromMessage(m interface {
|
||||||
GetMetaHeader() *session.ResponseMetaHeader
|
GetMetaHeader() *session.ResponseMetaHeader
|
||||||
GetVerifyHeader() *session.ResponseVerificationHeader
|
GetVerifyHeader() *session.ResponseVerificationHeader
|
||||||
},
|
}) error {
|
||||||
) error {
|
|
||||||
metaHdr := m.GetMetaHeader()
|
metaHdr := m.GetMetaHeader()
|
||||||
if metaHdr == nil {
|
if metaHdr == nil {
|
||||||
c.metaHeader = nil
|
c.metaHeader = nil
|
||||||
|
|
|
@ -4,7 +4,6 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/accounting"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/apemanager"
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
||||||
|
@ -106,19 +105,5 @@ func serviceMessageBody(req any) stableMarshaler {
|
||||||
return v.GetBody()
|
return v.GetBody()
|
||||||
case *netmap.SnapshotResponse:
|
case *netmap.SnapshotResponse:
|
||||||
return v.GetBody()
|
return v.GetBody()
|
||||||
|
|
||||||
/* APEManager */
|
|
||||||
case *apemanager.AddChainRequest:
|
|
||||||
return v.GetBody()
|
|
||||||
case *apemanager.AddChainResponse:
|
|
||||||
return v.GetBody()
|
|
||||||
case *apemanager.RemoveChainRequest:
|
|
||||||
return v.GetBody()
|
|
||||||
case *apemanager.RemoveChainResponse:
|
|
||||||
return v.GetBody()
|
|
||||||
case *apemanager.ListChainsRequest:
|
|
||||||
return v.GetBody()
|
|
||||||
case *apemanager.ListChainsResponse:
|
|
||||||
return v.GetBody()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
162
status/grpc/types.pb.go
generated
162
status/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: status/grpc/types.proto
|
// source: status/grpc/types.proto
|
||||||
|
|
||||||
package status
|
package status
|
||||||
|
@ -34,8 +34,6 @@ const (
|
||||||
Section_SECTION_CONTAINER Section = 3
|
Section_SECTION_CONTAINER Section = 3
|
||||||
// Session service-specific errors.
|
// Session service-specific errors.
|
||||||
Section_SECTION_SESSION Section = 4
|
Section_SECTION_SESSION Section = 4
|
||||||
// Session service-specific errors.
|
|
||||||
Section_SECTION_APE_MANAGER Section = 5
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for Section.
|
// Enum value maps for Section.
|
||||||
|
@ -46,7 +44,6 @@ var (
|
||||||
2: "SECTION_OBJECT",
|
2: "SECTION_OBJECT",
|
||||||
3: "SECTION_CONTAINER",
|
3: "SECTION_CONTAINER",
|
||||||
4: "SECTION_SESSION",
|
4: "SECTION_SESSION",
|
||||||
5: "SECTION_APE_MANAGER",
|
|
||||||
}
|
}
|
||||||
Section_value = map[string]int32{
|
Section_value = map[string]int32{
|
||||||
"SECTION_SUCCESS": 0,
|
"SECTION_SUCCESS": 0,
|
||||||
|
@ -54,7 +51,6 @@ var (
|
||||||
"SECTION_OBJECT": 2,
|
"SECTION_OBJECT": 2,
|
||||||
"SECTION_CONTAINER": 3,
|
"SECTION_CONTAINER": 3,
|
||||||
"SECTION_SESSION": 4,
|
"SECTION_SESSION": 4,
|
||||||
"SECTION_APE_MANAGER": 5,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -149,9 +145,6 @@ const (
|
||||||
CommonFail_SIGNATURE_VERIFICATION_FAIL CommonFail = 2
|
CommonFail_SIGNATURE_VERIFICATION_FAIL CommonFail = 2
|
||||||
// [**1027**] Node is under maintenance.
|
// [**1027**] Node is under maintenance.
|
||||||
CommonFail_NODE_UNDER_MAINTENANCE CommonFail = 3
|
CommonFail_NODE_UNDER_MAINTENANCE CommonFail = 3
|
||||||
// [**1028**] Invalid argument error. If the server fails on validation of a
|
|
||||||
// request parameter as the client sent it incorrectly, then this code should be used.
|
|
||||||
CommonFail_INVALID_ARGUMENT CommonFail = 4
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for CommonFail.
|
// Enum value maps for CommonFail.
|
||||||
|
@ -161,14 +154,12 @@ var (
|
||||||
1: "WRONG_MAGIC_NUMBER",
|
1: "WRONG_MAGIC_NUMBER",
|
||||||
2: "SIGNATURE_VERIFICATION_FAIL",
|
2: "SIGNATURE_VERIFICATION_FAIL",
|
||||||
3: "NODE_UNDER_MAINTENANCE",
|
3: "NODE_UNDER_MAINTENANCE",
|
||||||
4: "INVALID_ARGUMENT",
|
|
||||||
}
|
}
|
||||||
CommonFail_value = map[string]int32{
|
CommonFail_value = map[string]int32{
|
||||||
"INTERNAL": 0,
|
"INTERNAL": 0,
|
||||||
"WRONG_MAGIC_NUMBER": 1,
|
"WRONG_MAGIC_NUMBER": 1,
|
||||||
"SIGNATURE_VERIFICATION_FAIL": 2,
|
"SIGNATURE_VERIFICATION_FAIL": 2,
|
||||||
"NODE_UNDER_MAINTENANCE": 3,
|
"NODE_UNDER_MAINTENANCE": 3,
|
||||||
"INVALID_ARGUMENT": 4,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -274,8 +265,6 @@ const (
|
||||||
Container_CONTAINER_NOT_FOUND Container = 0
|
Container_CONTAINER_NOT_FOUND Container = 0
|
||||||
// [**3073**] eACL table not found.
|
// [**3073**] eACL table not found.
|
||||||
Container_EACL_NOT_FOUND Container = 1
|
Container_EACL_NOT_FOUND Container = 1
|
||||||
// [**3074**] Container access denied.
|
|
||||||
Container_CONTAINER_ACCESS_DENIED Container = 2
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Enum value maps for Container.
|
// Enum value maps for Container.
|
||||||
|
@ -283,12 +272,10 @@ var (
|
||||||
Container_name = map[int32]string{
|
Container_name = map[int32]string{
|
||||||
0: "CONTAINER_NOT_FOUND",
|
0: "CONTAINER_NOT_FOUND",
|
||||||
1: "EACL_NOT_FOUND",
|
1: "EACL_NOT_FOUND",
|
||||||
2: "CONTAINER_ACCESS_DENIED",
|
|
||||||
}
|
}
|
||||||
Container_value = map[string]int32{
|
Container_value = map[string]int32{
|
||||||
"CONTAINER_NOT_FOUND": 0,
|
"CONTAINER_NOT_FOUND": 0,
|
||||||
"EACL_NOT_FOUND": 1,
|
"EACL_NOT_FOUND": 1,
|
||||||
"CONTAINER_ACCESS_DENIED": 2,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -368,51 +355,6 @@ func (Session) EnumDescriptor() ([]byte, []int) {
|
||||||
return file_status_grpc_types_proto_rawDescGZIP(), []int{5}
|
return file_status_grpc_types_proto_rawDescGZIP(), []int{5}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Section of status for APE manager related operations.
|
|
||||||
type APEManager int32
|
|
||||||
|
|
||||||
const (
|
|
||||||
// [**5120**] The operation is denied by APE manager.
|
|
||||||
APEManager_APE_MANAGER_ACCESS_DENIED APEManager = 0
|
|
||||||
)
|
|
||||||
|
|
||||||
// Enum value maps for APEManager.
|
|
||||||
var (
|
|
||||||
APEManager_name = map[int32]string{
|
|
||||||
0: "APE_MANAGER_ACCESS_DENIED",
|
|
||||||
}
|
|
||||||
APEManager_value = map[string]int32{
|
|
||||||
"APE_MANAGER_ACCESS_DENIED": 0,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
func (x APEManager) Enum() *APEManager {
|
|
||||||
p := new(APEManager)
|
|
||||||
*p = x
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x APEManager) String() string {
|
|
||||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
|
||||||
}
|
|
||||||
|
|
||||||
func (APEManager) Descriptor() protoreflect.EnumDescriptor {
|
|
||||||
return file_status_grpc_types_proto_enumTypes[6].Descriptor()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (APEManager) Type() protoreflect.EnumType {
|
|
||||||
return &file_status_grpc_types_proto_enumTypes[6]
|
|
||||||
}
|
|
||||||
|
|
||||||
func (x APEManager) Number() protoreflect.EnumNumber {
|
|
||||||
return protoreflect.EnumNumber(x)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecated: Use APEManager.Descriptor instead.
|
|
||||||
func (APEManager) EnumDescriptor() ([]byte, []int) {
|
|
||||||
return file_status_grpc_types_proto_rawDescGZIP(), []int{6}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Declares the general format of the status returns of the NeoFS RPC protocol.
|
// Declares the general format of the status returns of the NeoFS RPC protocol.
|
||||||
// Status is present in all response messages. Each RPC of NeoFS protocol
|
// Status is present in all response messages. Each RPC of NeoFS protocol
|
||||||
// describes the possible outcomes and details of the operation.
|
// describes the possible outcomes and details of the operation.
|
||||||
|
@ -585,52 +527,45 @@ var file_status_grpc_types_proto_rawDesc = []byte{
|
||||||
0x2e, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
0x2e, 0x0a, 0x06, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
|
||||||
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
|
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
|
||||||
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a,
|
0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a,
|
||||||
0x93, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x53,
|
0x7a, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45,
|
||||||
0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00,
|
0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12,
|
||||||
0x12, 0x1a, 0x0a, 0x16, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c,
|
0x1a, 0x0a, 0x16, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55,
|
||||||
0x55, 0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e,
|
0x52, 0x45, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x53,
|
||||||
0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02,
|
0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12,
|
||||||
0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54,
|
0x15, 0x0a, 0x11, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x41,
|
||||||
0x41, 0x49, 0x4e, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x43, 0x54, 0x49,
|
0x49, 0x4e, 0x45, 0x52, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x43, 0x54, 0x49, 0x4f,
|
||||||
0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13,
|
0x4e, 0x5f, 0x53, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x2a, 0x11, 0x0a, 0x07, 0x53,
|
||||||
0x53, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41,
|
0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x2a, 0x6f,
|
||||||
0x47, 0x45, 0x52, 0x10, 0x05, 0x2a, 0x11, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
|
0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x0c, 0x0a, 0x08,
|
||||||
0x12, 0x06, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0x00, 0x2a, 0x85, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6d,
|
0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x52,
|
||||||
0x6d, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52,
|
0x4f, 0x4e, 0x47, 0x5f, 0x4d, 0x41, 0x47, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52,
|
||||||
0x4e, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x52, 0x4f, 0x4e, 0x47, 0x5f, 0x4d,
|
0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f,
|
||||||
0x41, 0x47, 0x49, 0x43, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1f, 0x0a,
|
0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49,
|
||||||
0x1b, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46,
|
0x4c, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45,
|
||||||
0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x02, 0x12, 0x1a,
|
0x52, 0x5f, 0x4d, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x2a,
|
||||||
0x0a, 0x16, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x52, 0x5f, 0x4d, 0x41, 0x49,
|
0x88, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x41, 0x43,
|
||||||
0x4e, 0x54, 0x45, 0x4e, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e,
|
0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a,
|
||||||
0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x04,
|
0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e,
|
||||||
0x2a, 0x88, 0x01, 0x0a, 0x06, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x11, 0x0a, 0x0d, 0x41,
|
0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02, 0x12,
|
||||||
0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14,
|
0x1b, 0x0a, 0x17, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x55,
|
||||||
0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55,
|
0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16,
|
||||||
0x4e, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x4f, 0x43, 0x4b, 0x45, 0x44, 0x10, 0x02,
|
0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x52,
|
||||||
0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x4f, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x47,
|
0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54, 0x5f,
|
||||||
0x55, 0x4c, 0x41, 0x52, 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, 0x1a, 0x0a,
|
0x4f, 0x46, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x2a, 0x38, 0x0a, 0x09, 0x43, 0x6f,
|
||||||
0x16, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f,
|
0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54, 0x41,
|
||||||
0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x44, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x55, 0x54,
|
0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x00,
|
||||||
0x5f, 0x4f, 0x46, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x05, 0x2a, 0x55, 0x0a, 0x09, 0x43,
|
0x12, 0x12, 0x0a, 0x0e, 0x45, 0x41, 0x43, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55,
|
||||||
0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4e, 0x54,
|
0x4e, 0x44, 0x10, 0x01, 0x2a, 0x31, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12,
|
||||||
0x41, 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10,
|
0x13, 0x0a, 0x0f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55,
|
||||||
0x00, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x41, 0x43, 0x4c, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f,
|
0x4e, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x45, 0x58,
|
||||||
0x55, 0x4e, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e,
|
0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x01, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66,
|
||||||
0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44,
|
0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65,
|
||||||
0x10, 0x02, 0x2a, 0x31, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a,
|
0x43, 0x6c, 0x6f, 0x75, 0x64, 0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73,
|
||||||
0x0f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44,
|
0x2d, 0x61, 0x70, 0x69, 0x2d, 0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75,
|
||||||
0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x45, 0x58, 0x50, 0x49,
|
0x73, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0xaa, 0x02, 0x1a,
|
||||||
0x52, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x2b, 0x0a, 0x0a, 0x41, 0x50, 0x45, 0x4d, 0x61, 0x6e, 0x61,
|
0x4e, 0x65, 0x6f, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e,
|
||||||
0x67, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x50, 0x45, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47,
|
0x41, 0x50, 0x49, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
|
||||||
0x45, 0x52, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x44, 0x45, 0x4e, 0x49, 0x45, 0x44,
|
0x6f, 0x33,
|
||||||
0x10, 0x00, 0x42, 0x61, 0x5a, 0x42, 0x67, 0x69, 0x74, 0x2e, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66,
|
|
||||||
0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x54, 0x72, 0x75, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64,
|
|
||||||
0x4c, 0x61, 0x62, 0x2f, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x66, 0x73, 0x2d, 0x61, 0x70, 0x69, 0x2d,
|
|
||||||
0x67, 0x6f, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2f, 0x67, 0x72, 0x70,
|
|
||||||
0x63, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0xaa, 0x02, 0x1a, 0x4e, 0x65, 0x6f, 0x2e, 0x46,
|
|
||||||
0x69, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x53,
|
|
||||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -645,7 +580,7 @@ func file_status_grpc_types_proto_rawDescGZIP() []byte {
|
||||||
return file_status_grpc_types_proto_rawDescData
|
return file_status_grpc_types_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_status_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 7)
|
var file_status_grpc_types_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
|
||||||
var file_status_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
var file_status_grpc_types_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
|
||||||
var file_status_grpc_types_proto_goTypes = []interface{}{
|
var file_status_grpc_types_proto_goTypes = []interface{}{
|
||||||
(Section)(0), // 0: neo.fs.v2.status.Section
|
(Section)(0), // 0: neo.fs.v2.status.Section
|
||||||
|
@ -654,12 +589,11 @@ var file_status_grpc_types_proto_goTypes = []interface{}{
|
||||||
(Object)(0), // 3: neo.fs.v2.status.Object
|
(Object)(0), // 3: neo.fs.v2.status.Object
|
||||||
(Container)(0), // 4: neo.fs.v2.status.Container
|
(Container)(0), // 4: neo.fs.v2.status.Container
|
||||||
(Session)(0), // 5: neo.fs.v2.status.Session
|
(Session)(0), // 5: neo.fs.v2.status.Session
|
||||||
(APEManager)(0), // 6: neo.fs.v2.status.APEManager
|
(*Status)(nil), // 6: neo.fs.v2.status.Status
|
||||||
(*Status)(nil), // 7: neo.fs.v2.status.Status
|
(*Status_Detail)(nil), // 7: neo.fs.v2.status.Status.Detail
|
||||||
(*Status_Detail)(nil), // 8: neo.fs.v2.status.Status.Detail
|
|
||||||
}
|
}
|
||||||
var file_status_grpc_types_proto_depIdxs = []int32{
|
var file_status_grpc_types_proto_depIdxs = []int32{
|
||||||
8, // 0: neo.fs.v2.status.Status.details:type_name -> neo.fs.v2.status.Status.Detail
|
7, // 0: neo.fs.v2.status.Status.details:type_name -> neo.fs.v2.status.Status.Detail
|
||||||
1, // [1:1] is the sub-list for method output_type
|
1, // [1:1] is the sub-list for method output_type
|
||||||
1, // [1:1] is the sub-list for method input_type
|
1, // [1:1] is the sub-list for method input_type
|
||||||
1, // [1:1] is the sub-list for extension type_name
|
1, // [1:1] is the sub-list for extension type_name
|
||||||
|
@ -703,7 +637,7 @@ func file_status_grpc_types_proto_init() {
|
||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_status_grpc_types_proto_rawDesc,
|
RawDescriptor: file_status_grpc_types_proto_rawDesc,
|
||||||
NumEnums: 7,
|
NumEnums: 6,
|
||||||
NumMessages: 2,
|
NumMessages: 2,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 0,
|
NumServices: 0,
|
||||||
|
|
11
tombstone/grpc/types.pb.go
generated
11
tombstone/grpc/types.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: tombstone/grpc/types.proto
|
// source: tombstone/grpc/types.proto
|
||||||
|
|
||||||
package tombstone
|
package tombstone
|
||||||
|
@ -28,10 +28,9 @@ type Tombstone struct {
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
// Last NeoFS epoch number of the tombstone lifetime. It's set by the
|
// Last NeoFS epoch number of the tombstone lifetime. It's set by the tombstone
|
||||||
// tombstone creator depending on the current NeoFS network settings. A
|
// creator depending on the current NeoFS network settings. A tombstone object
|
||||||
// tombstone object must have the same expiration epoch value in
|
// must have the same expiration epoch value in `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
||||||
// `__SYSTEM__EXPIRATION_EPOCH` (`__NEOFS__EXPIRATION_EPOCH` is deprecated)
|
|
||||||
// attribute. Otherwise, the tombstone will be rejected by a storage node.
|
// attribute. Otherwise, the tombstone will be rejected by a storage node.
|
||||||
ExpirationEpoch uint64 `protobuf:"varint,1,opt,name=expiration_epoch,json=expirationEpoch,proto3" json:"expiration_epoch,omitempty"`
|
ExpirationEpoch uint64 `protobuf:"varint,1,opt,name=expiration_epoch,json=expirationEpoch,proto3" json:"expiration_epoch,omitempty"`
|
||||||
// 16 byte UUID used to identify the split object hierarchy parts. Must be
|
// 16 byte UUID used to identify the split object hierarchy parts. Must be
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
package pool
|
|
||||||
|
|
||||||
import (
|
|
||||||
"sync"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Buffer contains a byte slice.
|
|
||||||
type Buffer struct {
|
|
||||||
Data []byte
|
|
||||||
}
|
|
||||||
|
|
||||||
// BufferPool manages a pool of Buffers.
|
|
||||||
type BufferPool struct {
|
|
||||||
poolSliceSize uint32 // Size for the buffer slices in the pool.
|
|
||||||
buffersPool *sync.Pool
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewBufferPool creates a BufferPool with a specified size.
|
|
||||||
func NewBufferPool(poolSliceSize uint32) BufferPool {
|
|
||||||
pool := sync.Pool{
|
|
||||||
New: func() any {
|
|
||||||
return new(Buffer)
|
|
||||||
},
|
|
||||||
}
|
|
||||||
return BufferPool{poolSliceSize: poolSliceSize, buffersPool: &pool}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves a Buffer from the pool or creates a new one if necessary.
|
|
||||||
// It ensures the buffer's capacity is at least the specified size.
|
|
||||||
func (pool BufferPool) Get(size uint32) *Buffer {
|
|
||||||
result := pool.buffersPool.Get().(*Buffer)
|
|
||||||
|
|
||||||
if cap(result.Data) < int(size) {
|
|
||||||
result.Data = make([]byte, size)
|
|
||||||
} else {
|
|
||||||
result.Data = result.Data[:size]
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
// Put returns a Buffer to the pool if its capacity does not exceed poolSliceSize.
|
|
||||||
func (pool BufferPool) Put(buf *Buffer) {
|
|
||||||
if cap(buf.Data) > int(pool.poolSliceSize) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
buf.Data = buf.Data[:0]
|
|
||||||
pool.buffersPool.Put(buf)
|
|
||||||
}
|
|
||||||
|
|
||||||
// PoolSliceSize returns the size for buffer slices in the pool.
|
|
||||||
func (pool BufferPool) PoolSliceSize() uint32 {
|
|
||||||
return uint32(pool.poolSliceSize)
|
|
||||||
}
|
|
|
@ -19,12 +19,6 @@ type (
|
||||||
StableMarshal([]byte) []byte
|
StableMarshal([]byte) []byte
|
||||||
StableSize() int
|
StableSize() int
|
||||||
}
|
}
|
||||||
|
|
||||||
setMarshalData[T any] interface {
|
|
||||||
SetMarshalData([]byte)
|
|
||||||
StableSize() int
|
|
||||||
~*T
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func BytesMarshal(field int, buf, v []byte) int {
|
func BytesMarshal(field int, buf, v []byte) int {
|
||||||
|
@ -278,31 +272,6 @@ func NestedStructureMarshalUnchecked[T stableMarshaler](field int64, buf []byte,
|
||||||
return offset + n
|
return offset + n
|
||||||
}
|
}
|
||||||
|
|
||||||
// NestedStructureSetMarshalData calculates offset for field in parentData
|
|
||||||
// and calls SetMarshalData for nested structure.
|
|
||||||
//
|
|
||||||
// Returns marshalled data length of nested structure.
|
|
||||||
func NestedStructureSetMarshalData[T any, M setMarshalData[T]](field int64, parentData []byte, v M) int {
|
|
||||||
if v == nil {
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
if parentData == nil {
|
|
||||||
v.SetMarshalData(nil)
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
n := v.StableSize()
|
|
||||||
buf := make([]byte, binary.MaxVarintLen64)
|
|
||||||
prefix := protowire.EncodeTag(protowire.Number(field), protowire.BytesType)
|
|
||||||
offset := binary.PutUvarint(buf, prefix)
|
|
||||||
offset += binary.PutUvarint(buf, uint64(n))
|
|
||||||
|
|
||||||
v.SetMarshalData(parentData[offset : offset+n])
|
|
||||||
|
|
||||||
return offset + n
|
|
||||||
}
|
|
||||||
|
|
||||||
func NestedStructureSize[T any, M ptrStableMarshaler[T]](field int64, v M) (size int) {
|
func NestedStructureSize[T any, M ptrStableMarshaler[T]](field int64, v M) (size int) {
|
||||||
if v == nil {
|
if v == nil {
|
||||||
return 0
|
return 0
|
||||||
|
|
|
@ -50,7 +50,9 @@ func (s *stablePrimitives) stableMarshal(buf []byte, wrongField bool) ([]byte, e
|
||||||
buf = make([]byte, s.stableSize())
|
buf = make([]byte, s.stableSize())
|
||||||
}
|
}
|
||||||
|
|
||||||
var i, offset, fieldNum int
|
var (
|
||||||
|
i, offset, fieldNum int
|
||||||
|
)
|
||||||
|
|
||||||
fieldNum = 1
|
fieldNum = 1
|
||||||
if wrongField {
|
if wrongField {
|
||||||
|
|
4
util/proto/test/test.pb.go
generated
4
util/proto/test/test.pb.go
generated
|
@ -1,7 +1,7 @@
|
||||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||||
// versions:
|
// versions:
|
||||||
// protoc-gen-go v1.33.0
|
// protoc-gen-go v1.30.0
|
||||||
// protoc v4.25.3
|
// protoc v4.23.4
|
||||||
// source: util/proto/test/test.proto
|
// source: util/proto/test/test.proto
|
||||||
|
|
||||||
package test
|
package test
|
||||||
|
|
|
@ -205,22 +205,22 @@ type marshalerDesc struct {
|
||||||
var marshalers = map[protoreflect.Kind]marshalerDesc{
|
var marshalers = map[protoreflect.Kind]marshalerDesc{
|
||||||
protoreflect.BoolKind: {Prefix: "Bool"},
|
protoreflect.BoolKind: {Prefix: "Bool"},
|
||||||
protoreflect.EnumKind: {Prefix: "Enum"},
|
protoreflect.EnumKind: {Prefix: "Enum"},
|
||||||
// protoreflect.Int32Kind: "",
|
//protoreflect.Int32Kind: "",
|
||||||
// protoreflect.Sint32Kind: "",
|
//protoreflect.Sint32Kind: "",
|
||||||
protoreflect.Uint32Kind: {Prefix: "UInt32", RepeatedDouble: true},
|
protoreflect.Uint32Kind: {Prefix: "UInt32", RepeatedDouble: true},
|
||||||
protoreflect.Int64Kind: {Prefix: "Int64", RepeatedDouble: true},
|
protoreflect.Int64Kind: {Prefix: "Int64", RepeatedDouble: true},
|
||||||
// protoreflect.Sint64Kind: "",
|
//protoreflect.Sint64Kind: "",
|
||||||
protoreflect.Uint64Kind: {Prefix: "UInt64", RepeatedDouble: true},
|
protoreflect.Uint64Kind: {Prefix: "UInt64", RepeatedDouble: true},
|
||||||
// protoreflect.Sfixed32Kind: "",
|
//protoreflect.Sfixed32Kind: "",
|
||||||
protoreflect.Fixed32Kind: {Prefix: "Fixed32", RepeatedDouble: true},
|
protoreflect.Fixed32Kind: {Prefix: "Fixed32", RepeatedDouble: true},
|
||||||
// protoreflect.FloatKind: "",
|
//protoreflect.FloatKind: "",
|
||||||
// protoreflect.Sfixed64Kind: "",
|
//protoreflect.Sfixed64Kind: "",
|
||||||
protoreflect.Fixed64Kind: {Prefix: "Fixed64", RepeatedDouble: true},
|
protoreflect.Fixed64Kind: {Prefix: "Fixed64", RepeatedDouble: true},
|
||||||
protoreflect.DoubleKind: {Prefix: "Float64"},
|
protoreflect.DoubleKind: {Prefix: "Float64"},
|
||||||
protoreflect.StringKind: {Prefix: "String"},
|
protoreflect.StringKind: {Prefix: "String"},
|
||||||
protoreflect.BytesKind: {Prefix: "Bytes"},
|
protoreflect.BytesKind: {Prefix: "Bytes"},
|
||||||
protoreflect.MessageKind: {Prefix: "NestedStructure"},
|
protoreflect.MessageKind: {Prefix: "NestedStructure"},
|
||||||
// protoreflect.GroupKind: "",
|
//protoreflect.GroupKind: "",
|
||||||
}
|
}
|
||||||
|
|
||||||
func sortFields(fs []*protogen.Field) []*protogen.Field {
|
func sortFields(fs []*protogen.Field) []*protogen.Field {
|
||||||
|
|
33
util/signature/buffer.go
Normal file
33
util/signature/buffer.go
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
package signature
|
||||||
|
|
||||||
|
import "sync"
|
||||||
|
|
||||||
|
const poolSliceMaxSize = 128 * 1024
|
||||||
|
|
||||||
|
type buffer struct {
|
||||||
|
data []byte
|
||||||
|
}
|
||||||
|
|
||||||
|
var buffersPool = sync.Pool{
|
||||||
|
New: func() any {
|
||||||
|
return new(buffer)
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
func newBufferFromPool(size int) *buffer {
|
||||||
|
result := buffersPool.Get().(*buffer)
|
||||||
|
if cap(result.data) < size {
|
||||||
|
result.data = make([]byte, size)
|
||||||
|
} else {
|
||||||
|
result.data = result.data[:size]
|
||||||
|
}
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func returnBufferToPool(buf *buffer) {
|
||||||
|
if cap(buf.data) > poolSliceMaxSize {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
buf.data = buf.data[:0]
|
||||||
|
buffersPool.Put(buf)
|
||||||
|
}
|
|
@ -4,14 +4,9 @@ import (
|
||||||
"crypto/ecdsa"
|
"crypto/ecdsa"
|
||||||
|
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
|
||||||
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/pool"
|
|
||||||
crypto "git.frostfs.info/TrueCloudLab/frostfs-crypto"
|
crypto "git.frostfs.info/TrueCloudLab/frostfs-crypto"
|
||||||
)
|
)
|
||||||
|
|
||||||
const poolSliceMaxSize = 128 * 1024
|
|
||||||
|
|
||||||
var buffersPool = pool.NewBufferPool(poolSliceMaxSize)
|
|
||||||
|
|
||||||
type DataSource interface {
|
type DataSource interface {
|
||||||
ReadSignedData([]byte) ([]byte, error)
|
ReadSignedData([]byte) ([]byte, error)
|
||||||
SignedDataSize() int
|
SignedDataSize() int
|
||||||
|
@ -40,10 +35,10 @@ func SignDataWithHandler(key *ecdsa.PrivateKey, src DataSource, handler KeySigna
|
||||||
opts[i](cfg)
|
opts[i](cfg)
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer := buffersPool.Get(uint32(src.SignedDataSize()))
|
buffer := newBufferFromPool(src.SignedDataSize())
|
||||||
defer buffersPool.Put(buffer)
|
defer returnBufferToPool(buffer)
|
||||||
|
|
||||||
data, err := src.ReadSignedData(buffer.Data)
|
data, err := src.ReadSignedData(buffer.data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -69,10 +64,10 @@ func VerifyDataWithSource(dataSrc DataSource, sigSrc KeySignatureSource, opts ..
|
||||||
opts[i](cfg)
|
opts[i](cfg)
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer := buffersPool.Get(uint32(dataSrc.SignedDataSize()))
|
buffer := newBufferFromPool(dataSrc.SignedDataSize())
|
||||||
defer buffersPool.Put(buffer)
|
defer returnBufferToPool(buffer)
|
||||||
|
|
||||||
data, err := dataSrc.ReadSignedData(buffer.Data)
|
data, err := dataSrc.ReadSignedData(buffer.data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,10 +35,10 @@ func verify(cfg *cfg, data []byte, sig *refs.Signature) error {
|
||||||
case refs.ECDSA_RFC6979_SHA256:
|
case refs.ECDSA_RFC6979_SHA256:
|
||||||
return crypto.VerifyRFC6979(pub, data, sig.GetSign())
|
return crypto.VerifyRFC6979(pub, data, sig.GetSign())
|
||||||
case refs.ECDSA_RFC6979_SHA256_WALLET_CONNECT:
|
case refs.ECDSA_RFC6979_SHA256_WALLET_CONNECT:
|
||||||
buffer := buffersPool.Get(uint32(base64.StdEncoding.EncodedLen(len(data))))
|
buffer := newBufferFromPool(base64.StdEncoding.EncodedLen(len(data)))
|
||||||
defer buffersPool.Put(buffer)
|
defer returnBufferToPool(buffer)
|
||||||
base64.StdEncoding.Encode(buffer.Data, data)
|
base64.StdEncoding.Encode(buffer.data, data)
|
||||||
if !walletconnect.Verify(pub, buffer.Data, sig.GetSign()) {
|
if !walletconnect.Verify(pub, buffer.data, sig.GetSign()) {
|
||||||
return crypto.ErrInvalidSignature
|
return crypto.ErrInvalidSignature
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -54,10 +54,10 @@ func sign(cfg *cfg, key *ecdsa.PrivateKey, data []byte) ([]byte, error) {
|
||||||
case refs.ECDSA_RFC6979_SHA256:
|
case refs.ECDSA_RFC6979_SHA256:
|
||||||
return crypto.SignRFC6979(key, data)
|
return crypto.SignRFC6979(key, data)
|
||||||
case refs.ECDSA_RFC6979_SHA256_WALLET_CONNECT:
|
case refs.ECDSA_RFC6979_SHA256_WALLET_CONNECT:
|
||||||
buffer := buffersPool.Get(uint32(base64.StdEncoding.EncodedLen(len(data))))
|
buffer := newBufferFromPool(base64.StdEncoding.EncodedLen(len(data)))
|
||||||
defer buffersPool.Put(buffer)
|
defer returnBufferToPool(buffer)
|
||||||
base64.StdEncoding.Encode(buffer.Data, data)
|
base64.StdEncoding.Encode(buffer.data, data)
|
||||||
return walletconnect.Sign(key, buffer.Data)
|
return walletconnect.Sign(key, buffer.data)
|
||||||
default:
|
default:
|
||||||
panic(fmt.Sprintf("unsupported scheme %s", cfg.scheme))
|
panic(fmt.Sprintf("unsupported scheme %s", cfg.scheme))
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,4 +109,5 @@ func TestVerifyNeonWallet(t *testing.T) {
|
||||||
}
|
}
|
||||||
require.True(t, VerifyMessage(nil, sm))
|
require.True(t, VerifyMessage(nil, sm))
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue