Documentation ¶
Index ¶
- Constants
- Variables
- func NewBackend(ctx context.Context, pluginName string, pluginType consts.PluginType, ...) (logical.Backend, error)
- func NewPluginClient(ctx context.Context, sys pluginutil.RunnerUtil, ...) (logical.Backend, error)
- func Serve(opts *ServeOpts) error
- type BackendPluginClient
- type GRPCBackendPlugin
- type GRPCStorageClient
- func (s *GRPCStorageClient) Delete(ctx context.Context, key string) error
- func (s *GRPCStorageClient) Get(ctx context.Context, key string) (*logical.StorageEntry, error)
- func (s *GRPCStorageClient) List(ctx context.Context, prefix string) ([]string, error)
- func (s *GRPCStorageClient) Put(ctx context.Context, entry *logical.StorageEntry) error
- type GRPCStorageServer
- func (s *GRPCStorageServer) Delete(ctx context.Context, args *pb.StorageDeleteArgs) (*pb.StorageDeleteReply, error)
- func (s *GRPCStorageServer) Get(ctx context.Context, args *pb.StorageGetArgs) (*pb.StorageGetReply, error)
- func (s *GRPCStorageServer) List(ctx context.Context, args *pb.StorageListArgs) (*pb.StorageListReply, error)
- func (s *GRPCStorageServer) Put(ctx context.Context, args *pb.StoragePutArgs) (*pb.StoragePutReply, error)
- type LoggerArgs
- type LoggerReply
- type LoggerServer
- func (l *LoggerServer) Debug(args *LoggerArgs, _ *struct{}) error
- func (l *LoggerServer) Error(args *LoggerArgs, reply *LoggerReply) error
- func (l *LoggerServer) Info(args *LoggerArgs, _ *struct{}) error
- func (l *LoggerServer) IsDebug(args interface{}, reply *LoggerReply) error
- func (l *LoggerServer) IsInfo(args interface{}, reply *LoggerReply) error
- func (l *LoggerServer) IsTrace(args interface{}, reply *LoggerReply) error
- func (l *LoggerServer) IsWarn(args interface{}, reply *LoggerReply) error
- func (l *LoggerServer) Log(args *LoggerArgs, _ *struct{}) error
- func (l *LoggerServer) SetLevel(args int, _ *struct{}) error
- func (l *LoggerServer) Trace(args *LoggerArgs, _ *struct{}) error
- func (l *LoggerServer) Warn(args *LoggerArgs, reply *LoggerReply) error
- type NOOPStorage
- func (s *NOOPStorage) Delete(_ context.Context, key string) error
- func (s *NOOPStorage) Get(_ context.Context, key string) (*logical.StorageEntry, error)
- func (s *NOOPStorage) List(_ context.Context, prefix string) ([]string, error)
- func (s *NOOPStorage) Put(_ context.Context, entry *logical.StorageEntry) error
- type ServeOpts
- type TLSProviderFunc
Constants ¶
const BackendPluginName = "backend"
BackendPluginName is the name of the plugin that can be dispensed from the plugin server.
Variables ¶
var ( ErrPluginShutdown = errors.New("plugin is shut down") ErrClientInMetadataMode = errors.New("plugin client can not perform action while in metadata mode") )
var ErrServerInMetadataMode = errors.New("plugin server can not perform action while in metadata mode")
Functions ¶
func NewBackend ¶
func NewBackend(ctx context.Context, pluginName string, pluginType consts.PluginType, sys pluginutil.LookRunnerUtil, conf *logical.BackendConfig, isMetadataMode bool) (logical.Backend, error)
NewBackend will return an instance of an RPC-based client implementation of the backend for external plugins, or a concrete implementation of the backend if it is a builtin backend. The backend is returned as a logical.Backend interface. The isMetadataMode param determines whether the plugin should run in metadata mode.
func NewPluginClient ¶
func NewPluginClient(ctx context.Context, sys pluginutil.RunnerUtil, pluginRunner *pluginutil.PluginRunner, logger log.Logger, isMetadataMode bool) (logical.Backend, error)
Types ¶
type BackendPluginClient ¶
type BackendPluginClient struct { sync.Mutex logical.Backend // contains filtered or unexported fields }
BackendPluginClient is a wrapper around backendPluginClient that also contains its plugin.Client instance. It's primarily used to cleanly kill the client on Cleanup()
func (*BackendPluginClient) Cleanup ¶
func (b *BackendPluginClient) Cleanup(ctx context.Context)
Cleanup calls the RPC client's Cleanup() func and also calls the go-plugin's client Kill() func
type GRPCBackendPlugin ¶
type GRPCBackendPlugin struct { Factory logical.Factory MetadataMode bool Logger log.Logger // Embeding this will disable the netRPC protocol plugin.NetRPCUnsupportedPlugin }
GRPCBackendPlugin is the plugin.Plugin implementation that only supports GRPC transport
func (*GRPCBackendPlugin) GRPCClient ¶
func (b *GRPCBackendPlugin) GRPCClient(ctx context.Context, broker *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error)
func (GRPCBackendPlugin) GRPCServer ¶
func (b GRPCBackendPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
type GRPCStorageClient ¶
type GRPCStorageClient struct {
// contains filtered or unexported fields
}
GRPCStorageClient is an implementation of logical.Storage that communicates over RPC.
func (*GRPCStorageClient) Delete ¶
func (s *GRPCStorageClient) Delete(ctx context.Context, key string) error
func (*GRPCStorageClient) Get ¶
func (s *GRPCStorageClient) Get(ctx context.Context, key string) (*logical.StorageEntry, error)
func (*GRPCStorageClient) Put ¶
func (s *GRPCStorageClient) Put(ctx context.Context, entry *logical.StorageEntry) error
type GRPCStorageServer ¶
type GRPCStorageServer struct { pb.UnimplementedStorageServer // contains filtered or unexported fields }
StorageServer is a net/rpc compatible structure for serving
func (*GRPCStorageServer) Delete ¶
func (s *GRPCStorageServer) Delete(ctx context.Context, args *pb.StorageDeleteArgs) (*pb.StorageDeleteReply, error)
func (*GRPCStorageServer) Get ¶
func (s *GRPCStorageServer) Get(ctx context.Context, args *pb.StorageGetArgs) (*pb.StorageGetReply, error)
func (*GRPCStorageServer) List ¶
func (s *GRPCStorageServer) List(ctx context.Context, args *pb.StorageListArgs) (*pb.StorageListReply, error)
func (*GRPCStorageServer) Put ¶
func (s *GRPCStorageServer) Put(ctx context.Context, args *pb.StoragePutArgs) (*pb.StoragePutReply, error)
type LoggerArgs ¶
type LoggerReply ¶
LoggerReply contains the RPC reply. Not all fields may be used for a particular RPC call.
type LoggerServer ¶
type LoggerServer struct {
// contains filtered or unexported fields
}
func (*LoggerServer) Debug ¶
func (l *LoggerServer) Debug(args *LoggerArgs, _ *struct{}) error
func (*LoggerServer) Error ¶
func (l *LoggerServer) Error(args *LoggerArgs, reply *LoggerReply) error
func (*LoggerServer) Info ¶
func (l *LoggerServer) Info(args *LoggerArgs, _ *struct{}) error
func (*LoggerServer) IsDebug ¶
func (l *LoggerServer) IsDebug(args interface{}, reply *LoggerReply) error
func (*LoggerServer) IsInfo ¶
func (l *LoggerServer) IsInfo(args interface{}, reply *LoggerReply) error
func (*LoggerServer) IsTrace ¶
func (l *LoggerServer) IsTrace(args interface{}, reply *LoggerReply) error
func (*LoggerServer) IsWarn ¶
func (l *LoggerServer) IsWarn(args interface{}, reply *LoggerReply) error
func (*LoggerServer) Log ¶
func (l *LoggerServer) Log(args *LoggerArgs, _ *struct{}) error
func (*LoggerServer) SetLevel ¶
func (l *LoggerServer) SetLevel(args int, _ *struct{}) error
func (*LoggerServer) Trace ¶
func (l *LoggerServer) Trace(args *LoggerArgs, _ *struct{}) error
func (*LoggerServer) Warn ¶
func (l *LoggerServer) Warn(args *LoggerArgs, reply *LoggerReply) error
type NOOPStorage ¶
type NOOPStorage struct{}
NOOPStorage is used to deny access to the storage interface while running a backend plugin in metadata mode.
func (*NOOPStorage) Get ¶
func (s *NOOPStorage) Get(_ context.Context, key string) (*logical.StorageEntry, error)
func (*NOOPStorage) Put ¶
func (s *NOOPStorage) Put(_ context.Context, entry *logical.StorageEntry) error
type ServeOpts ¶
type ServeOpts struct { BackendFactoryFunc logical.Factory TLSProviderFunc TLSProviderFunc Logger log.Logger }