[#1324] services/tree: Implement Object Tree Service
Object Tree Service allows changing trees assotiated with the container in runtime. Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
46f4ce2773
commit
62154da17c
18 changed files with 4001 additions and 0 deletions
41
cmd/neofs-node/tree.go
Normal file
41
cmd/neofs-node/tree.go
Normal file
|
@ -0,0 +1,41 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net"
|
||||
|
||||
treeconfig "github.com/nspcc-dev/neofs-node/cmd/neofs-node/config/tree"
|
||||
"github.com/nspcc-dev/neofs-node/pkg/services/tree"
|
||||
"google.golang.org/grpc"
|
||||
)
|
||||
|
||||
func initTreeService(c *cfg) {
|
||||
endpoint := treeconfig.GRPC(c.appCfg).Endpoint()
|
||||
if endpoint == treeconfig.GRPCEndpointDefault {
|
||||
return
|
||||
}
|
||||
|
||||
treeSvc := tree.New(
|
||||
tree.WithContainerSource(c.cfgObject.cnrSource),
|
||||
tree.WithNetmapSource(c.netMapSource),
|
||||
tree.WithPrivateKey(&c.key.PrivateKey),
|
||||
tree.WithLogger(c.log),
|
||||
tree.WithStorage(c.cfgObject.cfgLocalStorage.localStorage))
|
||||
|
||||
treeServer := grpc.NewServer()
|
||||
|
||||
c.onShutdown(func() {
|
||||
stopGRPC("NeoFS Tree Service API", treeServer, c.log)
|
||||
treeSvc.Shutdown()
|
||||
})
|
||||
|
||||
lis, err := net.Listen("tcp", endpoint)
|
||||
fatalOnErr(err)
|
||||
|
||||
tree.RegisterTreeServiceServer(treeServer, treeSvc)
|
||||
|
||||
c.workers = append(c.workers, newWorkerFromFunc(func(ctx context.Context) {
|
||||
treeSvc.Start(ctx)
|
||||
fatalOnErr(treeServer.Serve(lis))
|
||||
}))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue