[#1086] services/control: implement DumpShard RPC

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-01-24 13:13:37 +03:00 committed by Alex Vanin
parent aa53418119
commit 0e60b1d6c9
9 changed files with 783 additions and 141 deletions

View file

@ -0,0 +1,19 @@
package engine
import "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/shard"
// DumpShard dumps objects from the shard with provided identifier.
//
// Returns an error if shard is not read-only.
func (e *StorageEngine) DumpShard(id *shard.ID, prm *shard.DumpPrm) error {
e.mtx.RLock()
defer e.mtx.RUnlock()
sh, ok := e.shards[id.String()]
if !ok {
return errShardNotFound
}
_, err := sh.Dump(prm)
return err
}