storj/pkg/overlay/inspector.go
2019-01-24 15:15:10 -05:00

33 lines
704 B
Go

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package overlay
import (
"context"
"storj.io/storj/pkg/pb"
)
// Inspector is a gRPC service for inspecting overlay cache internals
type Inspector struct {
cache *Cache
}
// NewInspector creates an Inspector
func NewInspector(cache *Cache) *Inspector {
return &Inspector{cache: cache}
}
// CountNodes returns the number of nodes in the cache
func (srv *Inspector) CountNodes(ctx context.Context, req *pb.CountNodesRequest) (*pb.CountNodesResponse, error) {
overlayKeys, err := srv.cache.Inspect(ctx)
if err != nil {
return nil, err
}
return &pb.CountNodesResponse{
Count: int64(len(overlayKeys)),
}, nil
}