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  }