verrpc

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 22, 2024 License: MIT Imports: 21 Imported by: 0

Documentation

Overview

Package verrpc is a reverse proxy.

It translates gRPC into RESTful JSON APIs.

Index

Constants

View Source
const Subsystem = "VRPC"

Subsystem defines the logging code for this subsystem.

Variables

View Source
var File_verrpc_verrpc_proto protoreflect.FileDescriptor

Functions

func DisableLog

func DisableLog()

DisableLog disables all library log output. Logging output is disabled by default until UseLogger is called.

func RegisterVersionerHandler

func RegisterVersionerHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error

RegisterVersionerHandler registers the http handlers for service Versioner to "mux". The handlers forward requests to the grpc endpoint over "conn".

func RegisterVersionerHandlerClient

func RegisterVersionerHandlerClient(ctx context.Context, mux *runtime.ServeMux, client VersionerClient) error

RegisterVersionerHandlerClient registers the http handlers for service Versioner to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "VersionerClient". Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "VersionerClient" doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in "VersionerClient" to call the correct interceptors.

func RegisterVersionerHandlerFromEndpoint

func RegisterVersionerHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error)

RegisterVersionerHandlerFromEndpoint is same as RegisterVersionerHandler but automatically dials to "endpoint" and closes the connection when "ctx" gets done.

func RegisterVersionerHandlerServer

func RegisterVersionerHandlerServer(ctx context.Context, mux *runtime.ServeMux, server VersionerServer) error

RegisterVersionerHandlerServer registers the http handlers for service Versioner to "mux". UnaryRPC :call VersionerServer directly. StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterVersionerHandlerFromEndpoint instead.

func RegisterVersionerServer

func RegisterVersionerServer(s *grpc.Server, srv VersionerServer)

func UseLogger

func UseLogger(logger slog.Logger)

UseLogger uses a specified Logger to output package logging info. This should be used in preference to SetLogWriter if the caller is also using slog.

Types

type Server

type Server struct{}

Server is an rpc server that supports querying for information about the running binary.

func (*Server) GetVersion

func (s *Server) GetVersion(_ context.Context,
	_ *VersionRequest) (*Version, error)

GetVersion returns information about the compiled binary.

func (*Server) Name

func (s *Server) Name() string

Name returns a unique string representation of the sub-server. This can be used to identify the sub-server and also de-duplicate them.

NOTE: This is part of the lnrpc.SubServer interface.

func (*Server) Start

func (s *Server) Start() error

Start launches any helper goroutines required for the rpcServer to function.

NOTE: This is part of the lnrpc.SubServer interface.

func (*Server) Stop

func (s *Server) Stop() error

Stop signals any active goroutines for a graceful closure.

NOTE: This is part of the lnrpc.SubServer interface.

type ServerShell added in v0.5.0

type ServerShell struct {
	VersionerServer
}

ServerShell is a shell struct holding a reference to the actual sub-server. It is used to register the gRPC sub-server with the root server before we have the necessary dependencies to populate the actual sub-server.

func (*ServerShell) CreateSubServer added in v0.5.0

CreateSubServer populates the subserver's dependencies using the passed SubServerConfigDispatcher. This method should fully initialize the sub-server instance, making it ready for action. It returns the macaroon permissions that the sub-server wishes to pass on to the root server for all methods routed towards it.

NOTE: This is part of the lnrpc.GrpcHandler interface.

func (*ServerShell) RegisterWithRestServer added in v0.5.0

func (r *ServerShell) RegisterWithRestServer(ctx context.Context,
	mux *runtime.ServeMux, dest string, opts []grpc.DialOption) error

RegisterWithRestServer will be called by the root REST mux to direct a sub RPC server to register itself with the main REST mux server. Until this is called, each sub-server won't be able to have requests routed towards it.

NOTE: This is part of the lnrpc.GrpcHandler interface.

func (*ServerShell) RegisterWithRootServer added in v0.5.0

func (r *ServerShell) RegisterWithRootServer(grpcServer *grpc.Server) error

RegisterWithRootServer will be called by the root gRPC server to direct a sub RPC server to register itself with the main gRPC root server. Until this is called, each sub-server won't be able to have requests routed towards it.

NOTE: This is part of the lnrpc.GrpcHandler interface.

type UnimplementedVersionerServer

type UnimplementedVersionerServer struct {
}

UnimplementedVersionerServer can be embedded to have forward compatible implementations.

func (*UnimplementedVersionerServer) GetVersion

type Version

type Version struct {

	// A verbose description of the daemon's commit.
	Commit string `protobuf:"bytes,1,opt,name=commit,proto3" json:"commit,omitempty"`
	// The SHA1 commit hash that the daemon is compiled with.
	CommitHash string `protobuf:"bytes,2,opt,name=commit_hash,json=commitHash,proto3" json:"commit_hash,omitempty"`
	// The semantic version.
	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	// The major application version.
	AppMajor uint32 `protobuf:"varint,4,opt,name=app_major,json=appMajor,proto3" json:"app_major,omitempty"`
	// The minor application version.
	AppMinor uint32 `protobuf:"varint,5,opt,name=app_minor,json=appMinor,proto3" json:"app_minor,omitempty"`
	// The application patch number.
	AppPatch uint32 `protobuf:"varint,6,opt,name=app_patch,json=appPatch,proto3" json:"app_patch,omitempty"`
	// The application pre-release modifier, possibly empty.
	AppPreRelease string `protobuf:"bytes,7,opt,name=app_pre_release,json=appPreRelease,proto3" json:"app_pre_release,omitempty"`
	// The list of build tags that were supplied during compilation.
	BuildTags []string `protobuf:"bytes,8,rep,name=build_tags,json=buildTags,proto3" json:"build_tags,omitempty"`
	// The version of go that compiled the executable.
	GoVersion string `protobuf:"bytes,9,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"`
	// contains filtered or unexported fields
}

func (*Version) Descriptor deprecated

func (*Version) Descriptor() ([]byte, []int)

Deprecated: Use Version.ProtoReflect.Descriptor instead.

func (*Version) GetAppMajor

func (x *Version) GetAppMajor() uint32

func (*Version) GetAppMinor

func (x *Version) GetAppMinor() uint32

func (*Version) GetAppPatch

func (x *Version) GetAppPatch() uint32

func (*Version) GetAppPreRelease

func (x *Version) GetAppPreRelease() string

func (*Version) GetBuildTags

func (x *Version) GetBuildTags() []string

func (*Version) GetCommit

func (x *Version) GetCommit() string

func (*Version) GetCommitHash

func (x *Version) GetCommitHash() string

func (*Version) GetGoVersion

func (x *Version) GetGoVersion() string

func (*Version) GetVersion

func (x *Version) GetVersion() string

func (*Version) ProtoMessage

func (*Version) ProtoMessage()

func (*Version) ProtoReflect

func (x *Version) ProtoReflect() protoreflect.Message

func (*Version) Reset

func (x *Version) Reset()

func (*Version) String

func (x *Version) String() string

type VersionRequest

type VersionRequest struct {
	// contains filtered or unexported fields
}

func (*VersionRequest) Descriptor deprecated

func (*VersionRequest) Descriptor() ([]byte, []int)

Deprecated: Use VersionRequest.ProtoReflect.Descriptor instead.

func (*VersionRequest) ProtoMessage

func (*VersionRequest) ProtoMessage()

func (*VersionRequest) ProtoReflect

func (x *VersionRequest) ProtoReflect() protoreflect.Message

func (*VersionRequest) Reset

func (x *VersionRequest) Reset()

func (*VersionRequest) String

func (x *VersionRequest) String() string

type VersionerClient

type VersionerClient interface {
	// lncli: `version`
	// GetVersion returns the current version and build information of the running
	// daemon.
	GetVersion(ctx context.Context, in *VersionRequest, opts ...grpc.CallOption) (*Version, error)
}

VersionerClient is the client API for Versioner service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewVersionerClient

func NewVersionerClient(cc grpc.ClientConnInterface) VersionerClient

type VersionerServer

type VersionerServer interface {
	// lncli: `version`
	// GetVersion returns the current version and build information of the running
	// daemon.
	GetVersion(context.Context, *VersionRequest) (*Version, error)
}

VersionerServer is the server API for Versioner service.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL