[#138] v2/netmap: Update to neofs-api jindo release

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
remotes/KirillovDenis/feature/refactor-sig-rpc
Alex Vanin 2020-09-08 13:19:22 +03:00 committed by Stanislav Bogatyrev
parent b19e3a48db
commit c0cc4a4374
6 changed files with 173 additions and 48 deletions

View File

@ -54,6 +54,7 @@ func SelectorToGRPCMessage(s *Selector) *netmap.Selector {
m.SetName(s.GetName())
m.SetCount(s.GetCount())
m.SetClause(ClauseToGRPCMessage(s.GetClause()))
m.SetFilter(s.GetFilter())
m.SetAttribute(s.GetAttribute())
@ -69,6 +70,7 @@ func SelectorFromGRPCMessage(m *netmap.Selector) *Selector {
s.SetName(m.GetName())
s.SetCount(m.GetCount())
s.SetClause(ClauseFromGRPCMessage(m.GetClause()))
s.SetFilter(m.GetFilter())
s.SetAttribute(m.GetAttribute())
@ -160,6 +162,14 @@ func PlacementPolicyFromGRPCMessage(m *netmap.PlacementPolicy) *PlacementPolicy
return p
}
func ClauseToGRPCMessage(n Clause) netmap.Clause {
return netmap.Clause(n)
}
func ClauseFromGRPCMessage(n netmap.Clause) Clause {
return Clause(n)
}
func OperationToGRPCMessage(n Operation) netmap.Operation {
return netmap.Operation(n)
}

View File

@ -92,6 +92,13 @@ func (m *Selector) SetFilter(v string) {
}
}
// SetClause of placement selector.
func (m *Selector) SetClause(v Clause) {
if m != nil {
m.Clause = v
}
}
// SetCount of object replica.
func (m *Replica) SetCount(v uint32) {
if m != nil {

View File

@ -78,6 +78,40 @@ func (Operation) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_91a1332b2376641a, []int{0}
}
// Selector modifier showing how the node set will be formed
// By default selector just groups by attribute into a bucket selecting nodes
// only by their hash distance.
type Clause int32
const (
// No modifier defined. Will select nodes from bucket randomly.
Clause_CLAUSE_UNSPECIFIED Clause = 0
// SAME will select only nodes having the same value of bucket attribute
Clause_SAME Clause = 1
// DISTINCT will select nodes having different values of bucket attribute
Clause_DISTINCT Clause = 2
)
var Clause_name = map[int32]string{
0: "CLAUSE_UNSPECIFIED",
1: "SAME",
2: "DISTINCT",
}
var Clause_value = map[string]int32{
"CLAUSE_UNSPECIFIED": 0,
"SAME": 1,
"DISTINCT": 2,
}
func (x Clause) String() string {
return proto.EnumName(Clause_name, int32(x))
}
func (Clause) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_91a1332b2376641a, []int{1}
}
// Represents the enumeration of various states of the NeoFS node.
type NodeInfo_State int32
@ -204,10 +238,12 @@ type Selector struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// How many nodes to select from bucket
Count uint32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
// Selector modifier showing how to form a bucket
Clause Clause `protobuf:"varint,3,opt,name=clause,proto3,enum=neo.fs.v2.netmap.Clause" json:"clause,omitempty"`
// Attribute bucket to select from
Attribute string `protobuf:"bytes,3,opt,name=attribute,proto3" json:"attribute,omitempty"`
Attribute string `protobuf:"bytes,4,opt,name=attribute,proto3" json:"attribute,omitempty"`
// Filter reference to select from
Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"`
Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -260,6 +296,13 @@ func (m *Selector) GetCount() uint32 {
return 0
}
func (m *Selector) GetClause() Clause {
if m != nil {
return m.Clause
}
return Clause_CLAUSE_UNSPECIFIED
}
func (m *Selector) GetAttribute() string {
if m != nil {
return m.Attribute
@ -555,6 +598,7 @@ func (m *NodeInfo_Attribute) GetParents() []string {
func init() {
proto.RegisterEnum("neo.fs.v2.netmap.Operation", Operation_name, Operation_value)
proto.RegisterEnum("neo.fs.v2.netmap.Clause", Clause_name, Clause_value)
proto.RegisterEnum("neo.fs.v2.netmap.NodeInfo_State", NodeInfo_State_name, NodeInfo_State_value)
proto.RegisterType((*Filter)(nil), "neo.fs.v2.netmap.Filter")
proto.RegisterType((*Selector)(nil), "neo.fs.v2.netmap.Selector")
@ -567,47 +611,50 @@ func init() {
func init() { proto.RegisterFile("v2/netmap/grpc/types.proto", fileDescriptor_91a1332b2376641a) }
var fileDescriptor_91a1332b2376641a = []byte{
// 635 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0xd3, 0x40,
0x10, 0xee, 0x3a, 0xbf, 0x9e, 0xd2, 0xd6, 0x5a, 0x5a, 0x70, 0x03, 0x44, 0x51, 0xc4, 0xa1, 0x02,
0xd5, 0x11, 0x41, 0x14, 0xa4, 0x9e, 0x52, 0xea, 0xa0, 0x88, 0xe2, 0x84, 0x4d, 0xb9, 0x70, 0x89,
0x36, 0xce, 0x26, 0x98, 0x3a, 0xde, 0x95, 0xbd, 0x89, 0x94, 0x37, 0xe1, 0x05, 0xb8, 0xf0, 0x1a,
0x5c, 0x38, 0xf2, 0x08, 0xa8, 0xdc, 0x79, 0x06, 0xe4, 0x75, 0xec, 0xa4, 0x04, 0x21, 0x4e, 0xb3,
0x33, 0xfb, 0xf9, 0xfb, 0xbe, 0x9d, 0x1d, 0x2f, 0x54, 0xe6, 0xcd, 0x46, 0xc0, 0xe4, 0x94, 0x8a,
0xc6, 0x24, 0x14, 0x6e, 0x43, 0x2e, 0x04, 0x8b, 0x2c, 0x11, 0x72, 0xc9, 0xb1, 0x11, 0x30, 0x6e,
0x8d, 0x23, 0x6b, 0xde, 0xb4, 0x12, 0x48, 0xfd, 0x33, 0x82, 0x62, 0xdb, 0xf3, 0x25, 0x0b, 0x31,
0x86, 0x7c, 0x40, 0xa7, 0xcc, 0x44, 0x35, 0x74, 0xa4, 0x13, 0xb5, 0xc6, 0x06, 0xe4, 0xae, 0xd8,
0xc2, 0xd4, 0x54, 0x29, 0x5e, 0xe2, 0xc7, 0xa0, 0x71, 0x61, 0xe6, 0x6a, 0xe8, 0x68, 0xb7, 0x79,
0xcf, 0xfa, 0x93, 0xcf, 0xea, 0x0a, 0x16, 0x52, 0xe9, 0xf1, 0x80, 0x68, 0x5c, 0xe0, 0x7d, 0x28,
0xcc, 0xa9, 0x3f, 0x63, 0x66, 0x5e, 0x11, 0x24, 0x09, 0x6e, 0x42, 0x69, 0xac, 0x24, 0x23, 0xb3,
0x50, 0xcb, 0x1d, 0x6d, 0x37, 0xcd, 0x4d, 0x9e, 0xc4, 0x13, 0x49, 0x81, 0xf5, 0x8f, 0x50, 0xee,
0x33, 0x9f, 0xb9, 0x92, 0xff, 0xdd, 0xe8, 0x3e, 0x14, 0x5c, 0x3e, 0x0b, 0xa4, 0xb2, 0xba, 0x43,
0x92, 0x04, 0xdf, 0x07, 0x9d, 0x4a, 0x19, 0x7a, 0xc3, 0x99, 0x64, 0xca, 0xb3, 0x4e, 0x56, 0x05,
0x7c, 0x07, 0x8a, 0x09, 0xfd, 0xd2, 0xde, 0x32, 0xab, 0x9f, 0x42, 0x89, 0x30, 0xe1, 0x7b, 0x2e,
0x5d, 0xd1, 0xa2, 0x75, 0xda, 0x0a, 0x94, 0xa3, 0xa5, 0x99, 0x65, 0x6b, 0xb2, 0xbc, 0xfe, 0x0b,
0xc1, 0x5e, 0xcf, 0xa7, 0x2e, 0x9b, 0xb2, 0x40, 0xf6, 0xb8, 0xef, 0xb9, 0x0b, 0xfc, 0x0c, 0xca,
0x61, 0x42, 0x18, 0x99, 0x48, 0x9d, 0xf8, 0x70, 0xf3, 0xc4, 0x4b, 0x49, 0x92, 0x41, 0xf1, 0x09,
0xdc, 0x75, 0x79, 0x20, 0xa9, 0x17, 0xb0, 0x70, 0x30, 0xa4, 0xee, 0xd5, 0x4c, 0x0c, 0xc6, 0x34,
0x53, 0xdd, 0x21, 0x07, 0xd9, 0xf6, 0x99, 0xda, 0x6d, 0xab, 0x4d, 0xfc, 0x02, 0xf4, 0xd4, 0x4e,
0x64, 0xe6, 0x94, 0x5e, 0x65, 0x53, 0x2f, 0x6d, 0x27, 0x59, 0x81, 0xd7, 0x6f, 0x26, 0xff, 0xbf,
0x37, 0xf3, 0x55, 0x83, 0xb2, 0xc3, 0x47, 0xac, 0x13, 0x8c, 0x39, 0x7e, 0x00, 0x20, 0x66, 0x43,
0xdf, 0x73, 0x07, 0xf1, 0xd8, 0xc4, 0x4d, 0xbb, 0x45, 0xf4, 0xa4, 0xf2, 0x9a, 0x2d, 0xb0, 0x09,
0x25, 0x3a, 0x1a, 0x85, 0x2c, 0x8a, 0x96, 0x7d, 0x4b, 0x53, 0x7c, 0x0e, 0x90, 0x5d, 0x4c, 0x6a,
0xfa, 0xe1, 0xa6, 0x78, 0x2a, 0x64, 0xb5, 0x52, 0x30, 0x59, 0xfb, 0x0e, 0x9f, 0x40, 0x21, 0x92,
0x54, 0x26, 0xf3, 0xb6, 0xdb, 0xac, 0xfd, 0x83, 0xa0, 0x1f, 0xe3, 0x48, 0x02, 0xaf, 0xbc, 0x01,
0x3d, 0x23, 0x4c, 0x67, 0x1e, 0xad, 0x66, 0x3e, 0x1b, 0x63, 0x6d, 0x7d, 0x8c, 0x4d, 0x28, 0x09,
0x1a, 0xb2, 0x40, 0x26, 0x7e, 0x75, 0x92, 0xa6, 0xf5, 0x27, 0x50, 0x50, 0xf4, 0x78, 0x0f, 0xb6,
0xdf, 0x39, 0xfd, 0x9e, 0xfd, 0xb2, 0xd3, 0xee, 0xd8, 0xe7, 0xc6, 0x16, 0x06, 0x28, 0x76, 0x9d,
0x8b, 0x8e, 0x63, 0x1b, 0x08, 0x6f, 0x43, 0xa9, 0xdb, 0x6e, 0xab, 0x44, 0x7b, 0x34, 0x01, 0x3d,
0xfb, 0x75, 0xf0, 0x21, 0x1c, 0x74, 0x7b, 0x36, 0x69, 0x5d, 0x76, 0xba, 0xce, 0xe0, 0x26, 0x41,
0x11, 0x34, 0xfb, 0xad, 0x81, 0xe2, 0x18, 0x7f, 0x17, 0xc7, 0x57, 0x97, 0x46, 0x4e, 0x45, 0xdb,
0xc8, 0xc7, 0xf1, 0xe2, 0xd2, 0x28, 0xa8, 0x68, 0x1b, 0xc5, 0x38, 0x76, 0x89, 0x51, 0xc2, 0x25,
0xc8, 0xb5, 0x9c, 0x73, 0xa3, 0x7c, 0x36, 0xf8, 0x76, 0x5d, 0x45, 0xdf, 0xaf, 0xab, 0xe8, 0xc7,
0x75, 0x15, 0x7d, 0xfa, 0x59, 0xdd, 0x7a, 0xff, 0x7c, 0xe2, 0xc9, 0x0f, 0xb3, 0xa1, 0xe5, 0xf2,
0x69, 0x23, 0x88, 0x84, 0xeb, 0x1e, 0x8f, 0xd8, 0xbc, 0x11, 0x30, 0x3e, 0x8e, 0x8e, 0xa9, 0xf0,
0x8e, 0x27, 0xbc, 0x71, 0xf3, 0x49, 0x39, 0x4d, 0xd6, 0x5f, 0xb4, 0xdb, 0x0e, 0xe3, 0xed, 0xbe,
0xd5, 0xea, 0x75, 0xe2, 0x0e, 0x3b, 0xaa, 0x3a, 0x2c, 0xaa, 0xa7, 0xe6, 0xe9, 0xef, 0x00, 0x00,
0x00, 0xff, 0xff, 0x04, 0x93, 0x38, 0x2a, 0x88, 0x04, 0x00, 0x00,
// 686 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcd, 0x6e, 0xda, 0x40,
0x10, 0x8e, 0x0d, 0x18, 0x98, 0xfc, 0x59, 0xdb, 0x24, 0x75, 0x68, 0x8b, 0x10, 0xea, 0x21, 0x4a,
0x15, 0xd3, 0x52, 0x35, 0x8d, 0x94, 0x13, 0x01, 0x53, 0x59, 0x4d, 0x0c, 0x35, 0xe4, 0xd2, 0x0b,
0x5a, 0xcc, 0x42, 0xad, 0x18, 0xaf, 0x65, 0x2f, 0x48, 0xbc, 0x49, 0x0f, 0xbd, 0xf6, 0xd2, 0xd7,
0xe8, 0xa5, 0xc7, 0x3e, 0x42, 0x95, 0xde, 0xfb, 0x0c, 0x95, 0xd7, 0x3f, 0x90, 0x10, 0x55, 0x3d,
0xcd, 0xce, 0xce, 0xe7, 0xef, 0xfb, 0x34, 0xb3, 0x63, 0x28, 0xcd, 0xeb, 0x35, 0x97, 0xb0, 0x29,
0xf6, 0x6a, 0x13, 0xdf, 0xb3, 0x6a, 0x6c, 0xe1, 0x91, 0x40, 0xf5, 0x7c, 0xca, 0x28, 0x92, 0x5d,
0x42, 0xd5, 0x71, 0xa0, 0xce, 0xeb, 0x6a, 0x04, 0xa9, 0x7e, 0x15, 0x40, 0x6a, 0xdb, 0x0e, 0x23,
0x3e, 0x42, 0x90, 0x75, 0xf1, 0x94, 0x28, 0x42, 0x45, 0x38, 0x2a, 0x9a, 0xfc, 0x8c, 0x64, 0xc8,
0xdc, 0x90, 0x85, 0x22, 0xf2, 0xab, 0xf0, 0x88, 0x5e, 0x80, 0x48, 0x3d, 0x25, 0x53, 0x11, 0x8e,
0x76, 0xea, 0x4f, 0xd4, 0xfb, 0x7c, 0x6a, 0xc7, 0x23, 0x3e, 0x66, 0x36, 0x75, 0x4d, 0x91, 0x7a,
0x68, 0x0f, 0x72, 0x73, 0xec, 0xcc, 0x88, 0x92, 0xe5, 0x04, 0x51, 0x82, 0xea, 0x90, 0x1f, 0x73,
0xc9, 0x40, 0xc9, 0x55, 0x32, 0x47, 0x9b, 0x75, 0x65, 0x9d, 0x27, 0xf2, 0x64, 0x26, 0xc0, 0xea,
0x17, 0x01, 0x0a, 0x3d, 0xe2, 0x10, 0x8b, 0xd1, 0x87, 0x9d, 0xee, 0x41, 0xce, 0xa2, 0x33, 0x97,
0x71, 0xaf, 0xdb, 0x66, 0x94, 0xa0, 0x97, 0x20, 0x59, 0x0e, 0x9e, 0x05, 0x24, 0x76, 0xfc, 0x80,
0x52, 0x93, 0xd7, 0xcd, 0x18, 0x87, 0x9e, 0x42, 0x11, 0x33, 0xe6, 0xdb, 0xc3, 0x19, 0x4b, 0x6c,
0x2f, 0x2f, 0xd0, 0x01, 0x48, 0x91, 0x23, 0x25, 0xc7, 0x4b, 0x71, 0x56, 0x3d, 0x87, 0xbc, 0x49,
0x3c, 0xc7, 0xb6, 0xf0, 0xd2, 0x88, 0xb0, 0x6a, 0xa4, 0x04, 0x85, 0x20, 0xb6, 0x1f, 0x77, 0x33,
0xcd, 0xab, 0x7f, 0x04, 0xd8, 0xed, 0x3a, 0xd8, 0x22, 0x53, 0xe2, 0xb2, 0x2e, 0x75, 0x6c, 0x6b,
0x81, 0xde, 0x40, 0xc1, 0x8f, 0x08, 0x03, 0x45, 0xe0, 0x4d, 0x3a, 0x5c, 0xb7, 0x1e, 0x4b, 0x9a,
0x29, 0x14, 0x9d, 0xc2, 0x63, 0x8b, 0xba, 0x0c, 0xdb, 0x2e, 0xf1, 0x07, 0x43, 0x6c, 0xdd, 0xcc,
0xbc, 0xc1, 0x18, 0xa7, 0xaa, 0xdb, 0xe6, 0x7e, 0x5a, 0xbe, 0xe0, 0xd5, 0x36, 0x2f, 0xa2, 0x33,
0x28, 0x26, 0x76, 0x02, 0x25, 0xc3, 0xf5, 0x4a, 0xeb, 0x7a, 0xc9, 0x00, 0xcc, 0x25, 0x78, 0x75,
0x98, 0xd9, 0xff, 0x1d, 0xe6, 0x77, 0x11, 0x0a, 0x06, 0x1d, 0x11, 0xdd, 0x1d, 0x53, 0xf4, 0x0c,
0xc0, 0x9b, 0x0d, 0x1d, 0xdb, 0x1a, 0x84, 0x2f, 0x2d, 0x6c, 0xda, 0x96, 0x59, 0x8c, 0x6e, 0xde,
0x93, 0x05, 0x52, 0x20, 0x8f, 0x47, 0x23, 0x9f, 0x04, 0x41, 0xdc, 0xb7, 0x24, 0x45, 0x2d, 0x80,
0x74, 0x30, 0x89, 0xe9, 0xe7, 0xeb, 0xe2, 0x89, 0x90, 0xda, 0x48, 0xc0, 0xe6, 0xca, 0x77, 0xe8,
0x14, 0x72, 0x01, 0xc3, 0xf1, 0xac, 0x77, 0xea, 0x95, 0x7f, 0x10, 0xf4, 0x42, 0x9c, 0x19, 0xc1,
0x4b, 0x57, 0x50, 0x4c, 0x09, 0x93, 0x35, 0x11, 0x96, 0x6b, 0x92, 0xbe, 0x7c, 0x71, 0xf5, 0xe5,
0x2b, 0x90, 0xf7, 0xb0, 0x4f, 0x5c, 0x16, 0xf9, 0x2d, 0x9a, 0x49, 0x5a, 0x7d, 0x05, 0x39, 0x4e,
0x8f, 0x76, 0x61, 0xf3, 0xda, 0xe8, 0x75, 0xb5, 0xa6, 0xde, 0xd6, 0xb5, 0x96, 0xbc, 0x81, 0x00,
0xa4, 0x8e, 0x71, 0xa9, 0x1b, 0x9a, 0x2c, 0xa0, 0x4d, 0xc8, 0x77, 0xda, 0x6d, 0x9e, 0x88, 0xc7,
0x13, 0x28, 0xa6, 0xdb, 0x86, 0x0e, 0x61, 0xbf, 0xd3, 0xd5, 0xcc, 0x46, 0x5f, 0xef, 0x18, 0x83,
0xbb, 0x04, 0x12, 0x88, 0xda, 0x07, 0x59, 0x08, 0x63, 0xf8, 0x5d, 0x18, 0xdf, 0xf5, 0xe5, 0x0c,
0x8f, 0x9a, 0x9c, 0x0d, 0xe3, 0x65, 0x5f, 0xce, 0xf1, 0xa8, 0xc9, 0x52, 0x18, 0x3b, 0xa6, 0x9c,
0x47, 0x79, 0xc8, 0x34, 0x8c, 0x96, 0x5c, 0x38, 0x3e, 0x03, 0x29, 0x5a, 0x12, 0x74, 0x00, 0xa8,
0x79, 0xd9, 0xb8, 0xee, 0x69, 0xf7, 0x24, 0x0a, 0x90, 0xed, 0x35, 0xae, 0x42, 0x87, 0x5b, 0x50,
0x68, 0xe9, 0xbd, 0xbe, 0x6e, 0x34, 0xfb, 0xb2, 0x78, 0x31, 0xf8, 0x71, 0x5b, 0x16, 0x7e, 0xde,
0x96, 0x85, 0x5f, 0xb7, 0x65, 0xe1, 0xf3, 0xef, 0xf2, 0xc6, 0xc7, 0xb7, 0x13, 0x9b, 0x7d, 0x9a,
0x0d, 0x55, 0x8b, 0x4e, 0x6b, 0x6e, 0xe0, 0x59, 0xd6, 0xc9, 0x88, 0xcc, 0x6b, 0x2e, 0xa1, 0xe3,
0xe0, 0x04, 0x7b, 0xf6, 0xc9, 0x84, 0xd6, 0xee, 0xfe, 0xbf, 0xce, 0xa3, 0xf3, 0x37, 0xf1, 0x91,
0x41, 0x68, 0xbb, 0xa7, 0x36, 0xba, 0x7a, 0x38, 0x1b, 0x83, 0xdf, 0x0e, 0x25, 0xfe, 0x5f, 0x7b,
0xfd, 0x37, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x69, 0xba, 0x7f, 0xf5, 0x04, 0x00, 0x00,
}
func (m *Filter) Marshal() (dAtA []byte, err error) {
@ -706,14 +753,19 @@ func (m *Selector) MarshalToSizedBuffer(dAtA []byte) (int, error) {
copy(dAtA[i:], m.Filter)
i = encodeVarintTypes(dAtA, i, uint64(len(m.Filter)))
i--
dAtA[i] = 0x22
dAtA[i] = 0x2a
}
if len(m.Attribute) > 0 {
i -= len(m.Attribute)
copy(dAtA[i:], m.Attribute)
i = encodeVarintTypes(dAtA, i, uint64(len(m.Attribute)))
i--
dAtA[i] = 0x1a
dAtA[i] = 0x22
}
if m.Clause != 0 {
i = encodeVarintTypes(dAtA, i, uint64(m.Clause))
i--
dAtA[i] = 0x18
}
if m.Count != 0 {
i = encodeVarintTypes(dAtA, i, uint64(m.Count))
@ -1010,6 +1062,9 @@ func (m *Selector) Size() (n int) {
if m.Count != 0 {
n += 1 + sovTypes(uint64(m.Count))
}
if m.Clause != 0 {
n += 1 + sovTypes(uint64(m.Clause))
}
l = len(m.Attribute)
if l > 0 {
n += 1 + l + sovTypes(uint64(l))
@ -1421,6 +1476,25 @@ func (m *Selector) Unmarshal(dAtA []byte) error {
}
}
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Clause", wireType)
}
m.Clause = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Clause |= Clause(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Attribute", wireType)
}
@ -1452,7 +1526,7 @@ func (m *Selector) Unmarshal(dAtA []byte) error {
}
m.Attribute = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 4:
case 5:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Filter", wireType)
}

View File

@ -13,8 +13,9 @@ const (
nameSelectorField = 1
countSelectorField = 2
attributeSelectorField = 3
filterSelectorField = 4
clauseSelectorField = 3
attributeSelectorField = 4
filterSelectorField = 5
countReplicaField = 1
selectorReplicaField = 2
@ -128,6 +129,13 @@ func (s *Selector) StableMarshal(buf []byte) ([]byte, error) {
offset += n
n, err = proto.EnumMarshal(clauseSelectorField, buf[offset:], int32(s.clause))
if err != nil {
return nil, err
}
offset += n
n, err = proto.StringMarshal(attributeSelectorField, buf[offset:], s.attribute)
if err != nil {
return nil, err
@ -146,6 +154,7 @@ func (s *Selector) StableMarshal(buf []byte) ([]byte, error) {
func (s *Selector) StableSize() (size int) {
size += proto.StringSize(nameSelectorField, s.name)
size += proto.UInt32Size(countSelectorField, s.count)
size += proto.EnumSize(countSelectorField, int32(s.clause))
size += proto.StringSize(attributeSelectorField, s.attribute)
size += proto.StringSize(filterSelectorField, s.filter)

View File

@ -151,6 +151,7 @@ func generateSelector(name string) *netmap.Selector {
s := new(netmap.Selector)
s.SetName(name)
s.SetAttribute("attribute")
s.SetClause(netmap.Distinct)
s.SetCount(10)
s.SetFilter("filter")

View File

@ -11,6 +11,7 @@ type Filter struct {
type Selector struct {
name string
count uint32
clause Clause
attribute string
filter string
}
@ -47,6 +48,9 @@ type NodeInfo struct {
// NodeState of storage node.
type NodeState uint32
// Clause of placement selector.
type Clause uint32
const (
UnspecifiedState NodeState = iota
Online
@ -65,6 +69,12 @@ const (
AND
)
const (
UnspecifiedClause Clause = iota
Same
Distinct
)
func (f *Filter) GetFilters() []*Filter {
if f != nil {
return f.filters
@ -162,6 +172,20 @@ func (s *Selector) SetAttribute(attribute string) {
}
}
func (s *Selector) GetClause() Clause {
if s != nil {
return s.clause
}
return UnspecifiedClause
}
func (s *Selector) SetClause(clause Clause) {
if s != nil {
s.clause = clause
}
}
func (s *Selector) GetCount() uint32 {
if s != nil {
return s.count