forked from TrueCloudLab/frostfs-node
[#1333] services/control: Return pilorama info in ListShards
RPC
Do not return backend type from the service for now, because memory backend is expected to vanish. Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
8f4ee1aded
commit
5e843a73f9
15 changed files with 43 additions and 0 deletions
|
@ -93,6 +93,7 @@ func prettyPrintShards(cmd *cobra.Command, ii []*control.ShardInfo) {
|
||||||
pathPrinter("Metabase", i.GetMetabasePath())+
|
pathPrinter("Metabase", i.GetMetabasePath())+
|
||||||
pathPrinter("Blobstor", i.GetBlobstorPath())+
|
pathPrinter("Blobstor", i.GetBlobstorPath())+
|
||||||
pathPrinter("Write-cache", i.GetWritecachePath())+
|
pathPrinter("Write-cache", i.GetWritecachePath())+
|
||||||
|
pathPrinter("Pilorama", i.GetPiloramaPath())+
|
||||||
fmt.Sprintf("Error count: %d\n", i.GetErrorCount()),
|
fmt.Sprintf("Error count: %d\n", i.GetErrorCount()),
|
||||||
base58.Encode(i.Shard_ID),
|
base58.Encode(i.Shard_ID),
|
||||||
shardModeToString(i.GetMode()),
|
shardModeToString(i.GetMode()),
|
||||||
|
|
24
pkg/local_object_storage/pilorama/info.go
Normal file
24
pkg/local_object_storage/pilorama/info.go
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
package pilorama
|
||||||
|
|
||||||
|
// Info groups the information about the pilorama.
|
||||||
|
type Info struct {
|
||||||
|
// Path contains path to the root-directory of the pilorama.
|
||||||
|
Path string
|
||||||
|
// Backend is the pilorama storage type. Either "boltdb" or "memory".
|
||||||
|
Backend string
|
||||||
|
}
|
||||||
|
|
||||||
|
// DumpInfo implements the ForestStorage interface.
|
||||||
|
func (t *boltForest) DumpInfo() Info {
|
||||||
|
return Info{
|
||||||
|
Path: t.path,
|
||||||
|
Backend: "boltdb",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// DumpInfo implements the ForestStorage interface.
|
||||||
|
func (f *memoryForest) DumpInfo() Info {
|
||||||
|
return Info{
|
||||||
|
Backend: "memory",
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,6 +36,8 @@ type Forest interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
type ForestStorage interface {
|
type ForestStorage interface {
|
||||||
|
// DumpInfo returns information about the pilorama.
|
||||||
|
DumpInfo() Info
|
||||||
Init() error
|
Init() error
|
||||||
Open() error
|
Open() error
|
||||||
Close() error
|
Close() error
|
||||||
|
|
|
@ -3,6 +3,7 @@ package shard
|
||||||
import (
|
import (
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor"
|
||||||
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
|
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
|
||||||
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/pilorama"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/writecache"
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/writecache"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,6 +29,9 @@ type Info struct {
|
||||||
|
|
||||||
// ErrorCount contains amount of errors occurred in shard operations.
|
// ErrorCount contains amount of errors occurred in shard operations.
|
||||||
ErrorCount uint32
|
ErrorCount uint32
|
||||||
|
|
||||||
|
// PiloramaInfo contains information about trees stored on this shard.
|
||||||
|
PiloramaInfo pilorama.Info
|
||||||
}
|
}
|
||||||
|
|
||||||
// DumpInfo returns information about the Shard.
|
// DumpInfo returns information about the Shard.
|
||||||
|
|
|
@ -255,4 +255,5 @@ func (s *Shard) fillInfo() {
|
||||||
if s.cfg.useWriteCache {
|
if s.cfg.useWriteCache {
|
||||||
s.cfg.info.WriteCacheInfo = s.writeCache.DumpInfo()
|
s.cfg.info.WriteCacheInfo = s.writeCache.DumpInfo()
|
||||||
}
|
}
|
||||||
|
s.cfg.info.PiloramaInfo = s.pilorama.DumpInfo()
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,7 @@ func (s *Server) ListShards(_ context.Context, req *control.ListShardsRequest) (
|
||||||
si.SetMetabasePath(sh.MetaBaseInfo.Path)
|
si.SetMetabasePath(sh.MetaBaseInfo.Path)
|
||||||
si.SetBlobstorPath(sh.BlobStorInfo.RootPath)
|
si.SetBlobstorPath(sh.BlobStorInfo.RootPath)
|
||||||
si.SetWriteCachePath(sh.WriteCacheInfo.Path)
|
si.SetWriteCachePath(sh.WriteCacheInfo.Path)
|
||||||
|
si.SetPiloramaPath(sh.PiloramaInfo.Path)
|
||||||
|
|
||||||
var mode control.ShardMode
|
var mode control.ShardMode
|
||||||
|
|
||||||
|
|
|
@ -103,6 +103,7 @@ func equalListShardResponseBodies(b1, b2 *control.ListShardsResponse_Body) bool
|
||||||
if b1.Shards[i].GetMetabasePath() != b2.Shards[i].GetMetabasePath() ||
|
if b1.Shards[i].GetMetabasePath() != b2.Shards[i].GetMetabasePath() ||
|
||||||
b1.Shards[i].GetBlobstorPath() != b2.Shards[i].GetBlobstorPath() ||
|
b1.Shards[i].GetBlobstorPath() != b2.Shards[i].GetBlobstorPath() ||
|
||||||
b1.Shards[i].GetWritecachePath() != b2.Shards[i].GetWritecachePath() ||
|
b1.Shards[i].GetWritecachePath() != b2.Shards[i].GetWritecachePath() ||
|
||||||
|
b1.Shards[i].GetPiloramaPath() != b2.Shards[i].GetPiloramaPath() ||
|
||||||
!bytes.Equal(b1.Shards[i].GetShard_ID(), b2.Shards[i].GetShard_ID()) {
|
!bytes.Equal(b1.Shards[i].GetShard_ID(), b2.Shards[i].GetShard_ID()) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,6 +107,11 @@ func (x *ShardInfo) SetWriteCachePath(v string) {
|
||||||
x.WritecachePath = v
|
x.WritecachePath = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetPiloramaPath sets path to shard's pilorama.
|
||||||
|
func (x *ShardInfo) SetPiloramaPath(v string) {
|
||||||
|
x.PiloramaPath = v
|
||||||
|
}
|
||||||
|
|
||||||
// SetMode sets path to shard's work mode.
|
// SetMode sets path to shard's work mode.
|
||||||
func (x *ShardInfo) SetMode(v ShardMode) {
|
func (x *ShardInfo) SetMode(v ShardMode) {
|
||||||
x.Mode = v
|
x.Mode = v
|
||||||
|
|
BIN
pkg/services/control/types.pb.go
generated
BIN
pkg/services/control/types.pb.go
generated
Binary file not shown.
|
@ -139,6 +139,9 @@ message ShardInfo {
|
||||||
|
|
||||||
// Amount of errors occured.
|
// Amount of errors occured.
|
||||||
uint32 errorCount = 6;
|
uint32 errorCount = 6;
|
||||||
|
|
||||||
|
// Path to shard's pilorama storage.
|
||||||
|
string pilorama_path = 7 [json_name = "piloramaPath"];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Work mode of the shard.
|
// Work mode of the shard.
|
||||||
|
|
BIN
pkg/services/control/types_neofs.pb.go
generated
BIN
pkg/services/control/types_neofs.pb.go
generated
Binary file not shown.
|
@ -140,6 +140,7 @@ func generateShardInfo(id int) *control.ShardInfo {
|
||||||
si.SetMetabasePath(filepath.Join(path, "meta"))
|
si.SetMetabasePath(filepath.Join(path, "meta"))
|
||||||
si.SetBlobstorPath(filepath.Join(path, "blobstor"))
|
si.SetBlobstorPath(filepath.Join(path, "blobstor"))
|
||||||
si.SetWriteCachePath(filepath.Join(path, "writecache"))
|
si.SetWriteCachePath(filepath.Join(path, "writecache"))
|
||||||
|
si.SetPiloramaPath(filepath.Join(path, "pilorama"))
|
||||||
|
|
||||||
return si
|
return si
|
||||||
}
|
}
|
||||||
|
|
BIN
pkg/services/tree/service.pb.go
generated
BIN
pkg/services/tree/service.pb.go
generated
Binary file not shown.
BIN
pkg/services/tree/service_grpc.pb.go
generated
BIN
pkg/services/tree/service_grpc.pb.go
generated
Binary file not shown.
BIN
pkg/services/tree/types.pb.go
generated
BIN
pkg/services/tree/types.pb.go
generated
Binary file not shown.
Loading…
Reference in a new issue