package netmap import ( "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap" ) func newFilter(name string, k, v string, op netmap.Operation, fs ...Filter) (f Filter) { f.SetName(name) f.m.SetKey(k) f.m.SetOp(op) f.m.SetValue(v) inner := make([]netmap.Filter, len(fs)) for i := range fs { inner[i] = fs[i].m } f.m.SetFilters(inner) return f } func newSelector(name string, attr string, count uint32, filter string, clause func(*Selector)) (s Selector) { s.SetName(name) s.SelectByBucketAttribute(attr) s.SetNumberOfNodes(count) clause(&s) s.SetFilterName(filter) return s } func newPlacementPolicy(bf uint32, rs []ReplicaDescriptor, ss []Selector, fs []Filter) (p PlacementPolicy) { p.SetContainerBackupFactor(bf) p.AddReplicas(rs...) p.AddSelectors(ss...) p.AddFilters(fs...) return p } func newReplica(c uint32, s string) (r ReplicaDescriptor) { r.SetNumberOfObjects(c) r.SetSelectorName(s) return r } func nodeInfoFromAttributes(props ...string) (n NodeInfo) { for i := 0; i < len(props); i += 2 { n.SetAttribute(props[i], props[i+1]) } return }