storj/satellite/overlay/inspector.go
2020-12-05 17:01:42 +01:00

44 lines
1.1 KiB
Go

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package overlay
import (
"context"
"github.com/zeebo/errs"
"storj.io/storj/satellite/internalpb"
)
// Inspector is a RPC service for inspecting overlay internals.
//
// 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 *internalpb.CountNodesRequest) (_ *internalpb.CountNodesResponse, err error) {
defer mon.Task()(&ctx)(&err)
overlayKeys, err := srv.service.Inspect(ctx)
if err != nil {
return nil, err
}
return &internalpb.CountNodesResponse{
Count: int64(len(overlayKeys)),
}, nil
}
// DumpNodes returns all of the nodes in the overlay.
func (srv *Inspector) DumpNodes(ctx context.Context, req *internalpb.DumpNodesRequest) (_ *internalpb.DumpNodesResponse, err error) {
defer mon.Task()(&ctx)(&err)
return &internalpb.DumpNodesResponse{}, errs.New("Not Implemented")
}