github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/admin/server.go (about)

     1  package admin
     2  
     3  import (
     4  	"context"
     5  
     6  	"google.golang.org/grpc/codes"
     7  	"google.golang.org/grpc/status"
     8  	"google.golang.org/protobuf/types/known/structpb"
     9  
    10  	pb "github.com/onflow/flow-go/admin/admin"
    11  )
    12  
    13  type adminServer struct {
    14  	pb.UnimplementedAdminServer
    15  	cr *CommandRunner
    16  }
    17  
    18  func (s *adminServer) RunCommand(ctx context.Context, in *pb.RunCommandRequest) (*pb.RunCommandResponse, error) {
    19  	result, err := s.cr.runCommand(ctx, in.GetCommandName(), in.GetData().AsInterface())
    20  	if err != nil {
    21  		return nil, err
    22  	}
    23  
    24  	value, err := structpb.NewValue(result)
    25  	if err != nil {
    26  		return nil, status.Error(codes.Internal, err.Error())
    27  	}
    28  
    29  	return &pb.RunCommandResponse{
    30  		Output: value,
    31  	}, nil
    32  }
    33  
    34  func NewAdminServer(cr *CommandRunner) *adminServer {
    35  	return &adminServer{cr: cr}
    36  }