storj/satellite/overlay/inspector.go
Egon Elbre 7ce372c686 satellite/internalpb: add inspectors
Change-Id: Ib688e43d05135c0c31ae95df533f1e4535ea396a
2020-10-30 13:28:17 +02: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")
}