923f84722a
Signed-off-by: Pavel Karpy <p.karpy@yadro.com>
41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package netmap
|
|
|
|
import "github.com/TrueCloudLab/frostfs-sdk-go/netmap"
|
|
|
|
// Node is a named type of netmap.NodeInfo which provides interface needed
|
|
// in the current repository. Node is expected to be used everywhere instead
|
|
// of direct usage of netmap.NodeInfo, so it represents a type mediator.
|
|
type Node netmap.NodeInfo
|
|
|
|
// PublicKey returns public key bound to the storage node.
|
|
//
|
|
// Return value MUST NOT be mutated, make a copy first.
|
|
func (x Node) PublicKey() []byte {
|
|
return (netmap.NodeInfo)(x).PublicKey()
|
|
}
|
|
|
|
// IterateAddresses iterates over all announced network addresses
|
|
// and passes them into f. Handler MUST NOT be nil.
|
|
func (x Node) IterateAddresses(f func(string) bool) {
|
|
for _, addr := range (netmap.NodeInfo)(x).ExternalAddresses() {
|
|
if f(addr) {
|
|
return
|
|
}
|
|
}
|
|
(netmap.NodeInfo)(x).IterateNetworkEndpoints(f)
|
|
}
|
|
|
|
// NumberOfAddresses returns number of announced network addresses.
|
|
func (x Node) NumberOfAddresses() int {
|
|
return (netmap.NodeInfo)(x).NumberOfNetworkEndpoints()
|
|
}
|
|
|
|
// ExternalAddresses returns external addresses of a node.
|
|
func (x Node) ExternalAddresses() []string {
|
|
return (netmap.NodeInfo)(x).ExternalAddresses()
|
|
}
|
|
|
|
// Nodes is a named type of []netmap.NodeInfo which provides interface needed
|
|
// in the current repository. Nodes is expected to be used everywhere instead
|
|
// of direct usage of []netmap.NodeInfo, so it represents a type mediator.
|
|
type Nodes []netmap.NodeInfo
|