mirror of
https://github.com/lightningnetwork/lnd.git
synced 2024-11-19 01:43:16 +01:00
1a8f094503
This commits adds the devrpc package which implements a subserver that adds clean separation for RPC calls useful for development and debugging. This subserver is only compiled in if the dev tag is set. Furthermore the commit adds the devrpc.ImportGraph call which can import a graph dump obtained from another node by calling DescribeGraph. Since the graph dump does not include the auth proofs, the imported channels will be considered private.
169 lines
6.3 KiB
Go
169 lines
6.3 KiB
Go
// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT.
|
|
// source: devrpc/dev.proto
|
|
|
|
/*
|
|
Package devrpc is a reverse proxy.
|
|
|
|
It translates gRPC into RESTful JSON APIs.
|
|
*/
|
|
package devrpc
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"net/http"
|
|
|
|
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
|
|
"github.com/grpc-ecosystem/grpc-gateway/v2/utilities"
|
|
"github.com/lightningnetwork/lnd/lnrpc"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/grpclog"
|
|
"google.golang.org/grpc/metadata"
|
|
"google.golang.org/grpc/status"
|
|
"google.golang.org/protobuf/proto"
|
|
)
|
|
|
|
// Suppress "imported and not used" errors
|
|
var _ codes.Code
|
|
var _ io.Reader
|
|
var _ status.Status
|
|
var _ = runtime.String
|
|
var _ = utilities.NewDoubleArray
|
|
var _ = metadata.Join
|
|
|
|
func request_Dev_ImportGraph_0(ctx context.Context, marshaler runtime.Marshaler, client DevClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
|
var protoReq lnrpc.ChannelGraph
|
|
var metadata runtime.ServerMetadata
|
|
|
|
newReader, berr := utilities.IOReaderFactory(req.Body)
|
|
if berr != nil {
|
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
|
|
}
|
|
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
|
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
|
}
|
|
|
|
msg, err := client.ImportGraph(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
|
|
return msg, metadata, err
|
|
|
|
}
|
|
|
|
func local_request_Dev_ImportGraph_0(ctx context.Context, marshaler runtime.Marshaler, server DevServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
|
|
var protoReq lnrpc.ChannelGraph
|
|
var metadata runtime.ServerMetadata
|
|
|
|
newReader, berr := utilities.IOReaderFactory(req.Body)
|
|
if berr != nil {
|
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
|
|
}
|
|
if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
|
|
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
|
|
}
|
|
|
|
msg, err := server.ImportGraph(ctx, &protoReq)
|
|
return msg, metadata, err
|
|
|
|
}
|
|
|
|
// RegisterDevHandlerServer registers the http handlers for service Dev to "mux".
|
|
// UnaryRPC :call DevServer 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 RegisterDevHandlerFromEndpoint instead.
|
|
func RegisterDevHandlerServer(ctx context.Context, mux *runtime.ServeMux, server DevServer) error {
|
|
|
|
mux.Handle("POST", pattern_Dev_ImportGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
|
ctx, cancel := context.WithCancel(req.Context())
|
|
defer cancel()
|
|
var stream runtime.ServerTransportStream
|
|
ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
|
|
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
|
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/devrpc.Dev/ImportGraph", runtime.WithHTTPPathPattern("/v2/dev/importgraph"))
|
|
if err != nil {
|
|
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
|
return
|
|
}
|
|
resp, md, err := local_request_Dev_ImportGraph_0(rctx, inboundMarshaler, server, req, pathParams)
|
|
md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
|
|
ctx = runtime.NewServerMetadataContext(ctx, md)
|
|
if err != nil {
|
|
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
|
return
|
|
}
|
|
|
|
forward_Dev_ImportGraph_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
|
|
|
})
|
|
|
|
return nil
|
|
}
|
|
|
|
// RegisterDevHandlerFromEndpoint is same as RegisterDevHandler but
|
|
// automatically dials to "endpoint" and closes the connection when "ctx" gets done.
|
|
func RegisterDevHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) {
|
|
conn, err := grpc.Dial(endpoint, opts...)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
defer func() {
|
|
if err != nil {
|
|
if cerr := conn.Close(); cerr != nil {
|
|
grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
|
|
}
|
|
return
|
|
}
|
|
go func() {
|
|
<-ctx.Done()
|
|
if cerr := conn.Close(); cerr != nil {
|
|
grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr)
|
|
}
|
|
}()
|
|
}()
|
|
|
|
return RegisterDevHandler(ctx, mux, conn)
|
|
}
|
|
|
|
// RegisterDevHandler registers the http handlers for service Dev to "mux".
|
|
// The handlers forward requests to the grpc endpoint over "conn".
|
|
func RegisterDevHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
|
|
return RegisterDevHandlerClient(ctx, mux, NewDevClient(conn))
|
|
}
|
|
|
|
// RegisterDevHandlerClient registers the http handlers for service Dev
|
|
// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "DevClient".
|
|
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "DevClient"
|
|
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
|
|
// "DevClient" to call the correct interceptors.
|
|
func RegisterDevHandlerClient(ctx context.Context, mux *runtime.ServeMux, client DevClient) error {
|
|
|
|
mux.Handle("POST", pattern_Dev_ImportGraph_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
|
|
ctx, cancel := context.WithCancel(req.Context())
|
|
defer cancel()
|
|
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
|
|
rctx, err := runtime.AnnotateContext(ctx, mux, req, "/devrpc.Dev/ImportGraph", runtime.WithHTTPPathPattern("/v2/dev/importgraph"))
|
|
if err != nil {
|
|
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
|
return
|
|
}
|
|
resp, md, err := request_Dev_ImportGraph_0(rctx, inboundMarshaler, client, req, pathParams)
|
|
ctx = runtime.NewServerMetadataContext(ctx, md)
|
|
if err != nil {
|
|
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
|
|
return
|
|
}
|
|
|
|
forward_Dev_ImportGraph_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
|
|
|
|
})
|
|
|
|
return nil
|
|
}
|
|
|
|
var (
|
|
pattern_Dev_ImportGraph_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v2", "dev", "importgraph"}, ""))
|
|
)
|
|
|
|
var (
|
|
forward_Dev_ImportGraph_0 = runtime.ForwardResponseMessage
|
|
)
|