forked from TrueCloudLab/frostfs-node
[#108] object/head: Export remote header retrieval utility
Export remote head functionality in headsvc package. Refactor head service to use RemoteHeader. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
5ad0df7794
commit
5017ff0e4a
3 changed files with 65 additions and 35 deletions
|
@ -5,7 +5,6 @@ import (
|
|||
"sync"
|
||||
|
||||
"github.com/nspcc-dev/neofs-node/pkg/core/netmap"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/core/object"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/network"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/services/object/util"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/services/object_manager/placement"
|
||||
|
@ -105,25 +104,24 @@ loop:
|
|||
if err := h.workerPool.Submit(func() {
|
||||
defer wg.Done()
|
||||
|
||||
var header interface {
|
||||
head(context.Context, *Prm, func(*object.Object)) error
|
||||
}
|
||||
|
||||
if network.IsLocalAddress(h.localAddrSrc, addr) {
|
||||
header = &localHeader{
|
||||
storage: h.localStore,
|
||||
}
|
||||
} else {
|
||||
header = &remoteHeader{
|
||||
keyStorage: h.keyStorage,
|
||||
node: addr,
|
||||
if err := h.localHeader.head(ctx, prm, h.w.write); err != nil {
|
||||
// TODO: log error
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
if err := header.head(ctx, prm, h.w.write); err != nil {
|
||||
head, err := h.remoteHeader.Head(ctx, &RemoteHeadPrm{
|
||||
commonHeadPrm: prm,
|
||||
node: addr,
|
||||
})
|
||||
if err != nil {
|
||||
// TODO: log error
|
||||
return
|
||||
}
|
||||
|
||||
h.w.write(head)
|
||||
}); err != nil {
|
||||
wg.Done()
|
||||
// TODO: log error
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue