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

Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
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.SetName(s.GetName())
m.SetCount(s.GetCount()) m.SetCount(s.GetCount())
m.SetClause(ClauseToGRPCMessage(s.GetClause()))
m.SetFilter(s.GetFilter()) m.SetFilter(s.GetFilter())
m.SetAttribute(s.GetAttribute()) m.SetAttribute(s.GetAttribute())
@ -69,6 +70,7 @@ func SelectorFromGRPCMessage(m *netmap.Selector) *Selector {
s.SetName(m.GetName()) s.SetName(m.GetName())
s.SetCount(m.GetCount()) s.SetCount(m.GetCount())
s.SetClause(ClauseFromGRPCMessage(m.GetClause()))
s.SetFilter(m.GetFilter()) s.SetFilter(m.GetFilter())
s.SetAttribute(m.GetAttribute()) s.SetAttribute(m.GetAttribute())
@ -160,6 +162,14 @@ func PlacementPolicyFromGRPCMessage(m *netmap.PlacementPolicy) *PlacementPolicy
return p 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 { func OperationToGRPCMessage(n Operation) netmap.Operation {
return netmap.Operation(n) 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. // SetCount of object replica.
func (m *Replica) SetCount(v uint32) { func (m *Replica) SetCount(v uint32) {
if m != nil { if m != nil {

View file

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

View file

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

View file

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

View file

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