git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/netmap/helper_test.go (about) 1 package netmap 2 3 import ( 4 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap" 5 ) 6 7 func newFilter(name string, k, v string, op netmap.Operation, fs ...Filter) (f Filter) { 8 f.SetName(name) 9 f.m.SetKey(k) 10 f.m.SetOp(op) 11 f.m.SetValue(v) 12 inner := make([]netmap.Filter, len(fs)) 13 for i := range fs { 14 inner[i] = fs[i].m 15 } 16 f.m.SetFilters(inner) 17 return f 18 } 19 20 func newSelector(name string, attr string, count uint32, filter string, clause func(*Selector)) (s Selector) { 21 s.SetName(name) 22 s.SelectByBucketAttribute(attr) 23 s.SetNumberOfNodes(count) 24 clause(&s) 25 s.SetFilterName(filter) 26 return s 27 } 28 29 func newPlacementPolicy(bf uint32, rs []ReplicaDescriptor, ss []Selector, fs []Filter) (p PlacementPolicy) { 30 p.SetContainerBackupFactor(bf) 31 p.AddReplicas(rs...) 32 p.AddSelectors(ss...) 33 p.AddFilters(fs...) 34 return p 35 } 36 37 func newReplica(c uint32, s string) (r ReplicaDescriptor) { 38 r.SetNumberOfObjects(c) 39 r.SetSelectorName(s) 40 return r 41 } 42 43 func nodeInfoFromAttributes(props ...string) (n NodeInfo) { 44 for i := 0; i < len(props); i += 2 { 45 n.SetAttribute(props[i], props[i+1]) 46 } 47 48 return 49 }