storj/satellite/overlay/inspector.go

44 lines
1.0 KiB
Go
Raw Normal View History

2019-01-24 20:15:10 +00:00
// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package overlay
import (
"context"
"github.com/zeebo/errs"
"storj.io/common/pb"
)
// Inspector is a RPC service for inspecting overlay internals
2019-09-10 14:24:16 +01:00
//
// architecture: Endpoint
type Inspector struct {
service *Service
}
// NewInspector creates an Inspector.
func NewInspector(service *Service) *Inspector {
return &Inspector{service: service}
}
// CountNodes returns the number of nodes in the overlay.
func (srv *Inspector) CountNodes(ctx context.Context, req *pb.CountNodesRequest) (_ *pb.CountNodesResponse, err error) {
defer mon.Task()(&ctx)(&err)
overlayKeys, err := srv.service.Inspect(ctx)
if err != nil {
return nil, err
}
return &pb.CountNodesResponse{
Count: int64(len(overlayKeys)),
}, nil
}
// DumpNodes returns all of the nodes in the overlay.
func (srv *Inspector) DumpNodes(ctx context.Context, req *pb.DumpNodesRequest) (_ *pb.DumpNodesResponse, err error) {
defer mon.Task()(&ctx)(&err)
return &pb.DumpNodesResponse{}, errs.New("Not Implemented")
}