forked from TrueCloudLab/frostfs-node
[#607] network: Implement WriteToNodeInfo method on Address
Implement `Address.WriteToNodeInfo` method which sets address of `NodeInfo` structure. Use it in storage node application. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>support/v0.27
parent
e5504c7130
commit
5de074f24c
|
@ -73,7 +73,7 @@ func nodeAddressFromNetmap(c *cfg) string {
|
|||
}
|
||||
|
||||
func initNetmapService(c *cfg) {
|
||||
c.cfgNodeInfo.localInfo.SetAddress(c.localAddr.String())
|
||||
c.localAddr.WriteToNodeInfo(&c.cfgNodeInfo.localInfo)
|
||||
c.cfgNodeInfo.localInfo.SetPublicKey(c.key.PublicKey().Bytes())
|
||||
c.cfgNodeInfo.localInfo.SetAttributes(parseAttributes(c.appCfg)...)
|
||||
c.cfgNodeInfo.localInfo.SetState(netmapSDK.NodeStateOffline)
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
manet "github.com/multiformats/go-multiaddr/net"
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/netmap"
|
||||
)
|
||||
|
||||
/*
|
||||
|
@ -37,6 +38,11 @@ func (a Address) Equal(addr Address) bool {
|
|||
return a.ma.Equal(addr.ma)
|
||||
}
|
||||
|
||||
// WriteToNodeInfo writes Address to netmap.NodeInfo structure.
|
||||
func (a Address) WriteToNodeInfo(ni *netmap.NodeInfo) {
|
||||
ni.SetAddress(a.ma.String())
|
||||
}
|
||||
|
||||
// HostAddr returns host address in string format.
|
||||
//
|
||||
// Panics if host address cannot be fetched from Address.
|
||||
|
|
|
@ -4,6 +4,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/netmap"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
|
@ -63,3 +64,18 @@ func buildMultiaddr(s string, t *testing.T) multiaddr.Multiaddr {
|
|||
require.NoError(t, err)
|
||||
return ma
|
||||
}
|
||||
|
||||
func TestAddress_WriteToNodeInfo(t *testing.T) {
|
||||
a := "127.0.0.1:8080"
|
||||
|
||||
addr, err := AddressFromString(a)
|
||||
require.NoError(t, err)
|
||||
|
||||
var ni netmap.NodeInfo
|
||||
|
||||
addr.WriteToNodeInfo(&ni)
|
||||
|
||||
restored, err := AddressFromString(ni.Address())
|
||||
require.NoError(t, err)
|
||||
require.True(t, restored.Equal(*addr))
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue