diff --git a/pkg/services/object_manager/placement/traverser.go b/pkg/services/object_manager/placement/traverser.go index 2bf184332..a1be3d876 100644 --- a/pkg/services/object_manager/placement/traverser.go +++ b/pkg/services/object_manager/placement/traverser.go @@ -122,6 +122,8 @@ func flatNodes(ns []netmap.Nodes) []netmap.Nodes { // Node is a descriptor of storage node with information required for intra-container communication. type Node struct { addresses network.AddressGroup + + key []byte } // Addresses returns group of network addresses. @@ -129,6 +131,11 @@ func (x Node) Addresses() network.AddressGroup { return x.addresses } +// Key returns public key in a binary format. Should not be mutated. +func (x Node) Key() []byte { + return x.key +} + // Next returns next unprocessed address of the object placement. // // Returns nil if no nodes left or traversal operation succeeded. @@ -157,6 +164,8 @@ func (t *Traverser) Next() []Node { // TODO: log error return nil } + + nodes[i].key = t.vectors[0][i].PublicKey() } t.vectors[0] = t.vectors[0][count:]