go-control-plane: github.com/envoyproxy/go-control-plane/pkg/server/v2 Index | Files

package server

import "github.com/envoyproxy/go-control-plane/pkg/server/v2"

Package server provides an implementation of a streaming xDS server.

Index

Package Files

gateway.go server.go

type CallbackFuncs Uses

type CallbackFuncs struct {
    StreamOpenFunc     func(context.Context, int64, string) error
    StreamClosedFunc   func(int64)
    StreamRequestFunc  func(int64, *discovery.DiscoveryRequest) error
    StreamResponseFunc func(int64, *discovery.DiscoveryRequest, *discovery.DiscoveryResponse)
    FetchRequestFunc   func(context.Context, *discovery.DiscoveryRequest) error
    FetchResponseFunc  func(*discovery.DiscoveryRequest, *discovery.DiscoveryResponse)
}

CallbackFuncs is a convenience type for implementing the Callbacks interface.

func (CallbackFuncs) OnFetchRequest Uses

func (c CallbackFuncs) OnFetchRequest(ctx context.Context, req *discovery.DiscoveryRequest) error

OnFetchRequest invokes FetchRequestFunc.

func (CallbackFuncs) OnFetchResponse Uses

func (c CallbackFuncs) OnFetchResponse(req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)

OnFetchResponse invoked FetchResponseFunc.

func (CallbackFuncs) OnStreamClosed Uses

func (c CallbackFuncs) OnStreamClosed(streamID int64)

OnStreamClosed invokes StreamClosedFunc.

func (CallbackFuncs) OnStreamOpen Uses

func (c CallbackFuncs) OnStreamOpen(ctx context.Context, streamID int64, typeURL string) error

OnStreamOpen invokes StreamOpenFunc.

func (CallbackFuncs) OnStreamRequest Uses

func (c CallbackFuncs) OnStreamRequest(streamID int64, req *discovery.DiscoveryRequest) error

OnStreamRequest invokes StreamRequestFunc.

func (CallbackFuncs) OnStreamResponse Uses

func (c CallbackFuncs) OnStreamResponse(streamID int64, req *discovery.DiscoveryRequest, resp *discovery.DiscoveryResponse)

OnStreamResponse invokes StreamResponseFunc.

type Callbacks Uses

type Callbacks interface {
    // OnStreamOpen is called once an xDS stream is open with a stream ID and the type URL (or "" for ADS).
    // Returning an error will end processing and close the stream. OnStreamClosed will still be called.
    OnStreamOpen(context.Context, int64, string) error
    // OnStreamClosed is called immediately prior to closing an xDS stream with a stream ID.
    OnStreamClosed(int64)
    // OnStreamRequest is called once a request is received on a stream.
    // Returning an error will end processing and close the stream. OnStreamClosed will still be called.
    OnStreamRequest(int64, *discovery.DiscoveryRequest) error
    // OnStreamResponse is called immediately prior to sending a response on a stream.
    OnStreamResponse(int64, *discovery.DiscoveryRequest, *discovery.DiscoveryResponse)
    // OnFetchRequest is called for each Fetch request. Returning an error will end processing of the
    // request and respond with an error.
    OnFetchRequest(context.Context, *discovery.DiscoveryRequest) error
    // OnFetchResponse is called immediately prior to sending a response.
    OnFetchResponse(*discovery.DiscoveryRequest, *discovery.DiscoveryResponse)
}

Callbacks is a collection of callbacks inserted into the server operation. The callbacks are invoked synchronously.

type HTTPGateway Uses

type HTTPGateway struct {
    // Log is an optional log for errors in response write
    Log log.Logger

    // Server is the underlying gRPC server
    Server Server
}

HTTPGateway is a custom implementation of [gRPC gateway](https://github.com/grpc-ecosystem/grpc-gateway) specialized to Envoy xDS API.

func (*HTTPGateway) ServeHTTP Uses

func (h *HTTPGateway) ServeHTTP(req *http.Request) ([]byte, int, error)

type Server Uses

type Server interface {
    endpointservice.EndpointDiscoveryServiceServer
    clusterservice.ClusterDiscoveryServiceServer
    routeservice.RouteDiscoveryServiceServer
    listenerservice.ListenerDiscoveryServiceServer
    discoverygrpc.AggregatedDiscoveryServiceServer
    secretservice.SecretDiscoveryServiceServer
    runtimeservice.RuntimeDiscoveryServiceServer

    // Fetch is the universal fetch method.
    Fetch(context.Context, *discovery.DiscoveryRequest) (*discovery.DiscoveryResponse, error)
    // StreamHandler is the universal stream method.
    StreamHandler(stream Stream, typeURL string) error
}

Server is a collection of handlers for streaming discovery requests.

func NewServer Uses

func NewServer(ctx context.Context, config cache.Cache, callbacks Callbacks) Server

NewServer creates handlers from a config watcher and callbacks.

type Stream Uses

type Stream interface {
    grpc.ServerStream

    Send(*discovery.DiscoveryResponse) error
    Recv() (*discovery.DiscoveryRequest, error)
}

Generic RPC stream.

Package server imports 20 packages (graph) and is imported by 12 packages. Updated 2020-08-05. Refresh now. Tools for package owners.