forked from TrueCloudLab/frostfs-node
[#1817] network: Allow to use network addresses from the iterator
Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
This commit is contained in:
parent
76893bdc50
commit
236414df49
21 changed files with 203 additions and 17 deletions
|
@ -537,6 +537,7 @@ func initCfg(appCfg *config.Config) *cfg {
|
|||
DialTimeout: apiclientconfig.DialTimeout(appCfg),
|
||||
StreamTimeout: apiclientconfig.StreamTimeout(appCfg),
|
||||
Key: &key.PrivateKey,
|
||||
AllowExternal: apiclientconfig.AllowExternal(appCfg),
|
||||
}),
|
||||
persistate: persistate,
|
||||
}
|
||||
|
|
|
@ -41,3 +41,11 @@ func StreamTimeout(c *config.Config) time.Duration {
|
|||
|
||||
return StreamTimeoutDefault
|
||||
}
|
||||
|
||||
// AllowExternal returns the value of "allow_external" config parameter
|
||||
// from "apiclient" section.
|
||||
//
|
||||
// Returns false if the value is missing or invalid.
|
||||
func AllowExternal(c *config.Config) bool {
|
||||
return config.BoolSafe(c.Sub(subsection), "allow_external")
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ func TestApiclientSection(t *testing.T) {
|
|||
|
||||
require.Equal(t, apiclientconfig.DialTimeoutDefault, apiclientconfig.DialTimeout(empty))
|
||||
require.Equal(t, apiclientconfig.StreamTimeoutDefault, apiclientconfig.StreamTimeout(empty))
|
||||
require.False(t, apiclientconfig.AllowExternal(empty))
|
||||
})
|
||||
|
||||
const path = "../../../../config/example/node"
|
||||
|
@ -23,6 +24,7 @@ func TestApiclientSection(t *testing.T) {
|
|||
var fileConfigTest = func(c *config.Config) {
|
||||
require.Equal(t, 15*time.Second, apiclientconfig.DialTimeout(c))
|
||||
require.Equal(t, 20*time.Second, apiclientconfig.StreamTimeout(c))
|
||||
require.True(t, apiclientconfig.AllowExternal(c))
|
||||
}
|
||||
|
||||
configtest.ForEachFileType(path, fileConfigTest)
|
||||
|
|
|
@ -507,6 +507,10 @@ func (c *cfg) NumberOfAddresses() int {
|
|||
return c.addressNum()
|
||||
}
|
||||
|
||||
func (c *cfg) ExternalAddresses() []string {
|
||||
return c.cfgNodeInfo.localInfo.ExternalAddresses()
|
||||
}
|
||||
|
||||
func (c *usedSpaceService) PublicKey() []byte {
|
||||
return nodeKeyFromNetmap(c.cfg)
|
||||
}
|
||||
|
@ -519,6 +523,10 @@ func (c *usedSpaceService) NumberOfAddresses() int {
|
|||
return c.cfg.addressNum()
|
||||
}
|
||||
|
||||
func (c *usedSpaceService) ExternalAddresses() []string {
|
||||
return c.cfg.ExternalAddresses()
|
||||
}
|
||||
|
||||
func (c *usedSpaceService) AnnounceUsedSpace(ctx context.Context, req *containerV2.AnnounceUsedSpaceRequest) (*containerV2.AnnounceUsedSpaceResponse, error) {
|
||||
var passedRoute []loadroute.ServerInfo
|
||||
|
||||
|
@ -577,6 +585,10 @@ func (*containerOnlyKeyRemoteServerInfo) NumberOfAddresses() int {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (*containerOnlyKeyRemoteServerInfo) ExternalAddresses() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *loadPlacementBuilder) isNodeFromContainerKey(epoch uint64, cnr cid.ID, key []byte) (bool, error) {
|
||||
cnrNodes, _, err := l.buildPlacement(epoch, cnr)
|
||||
if err != nil {
|
||||
|
|
|
@ -44,6 +44,10 @@ func (*OnlyKeyRemoteServerInfo) NumberOfAddresses() int {
|
|||
return 0
|
||||
}
|
||||
|
||||
func (*OnlyKeyRemoteServerInfo) ExternalAddresses() []string {
|
||||
return nil
|
||||
}
|
||||
|
||||
const invalidPrmValFmt = "invalid parameter %s (%T):%v"
|
||||
|
||||
func PanicOnPrmValue(n string, v interface{}) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue