afe53eb862
* Start work on context aware backends * Start work on moving the database plugins to gRPC in order to pass context * Add context to builtin database plugins * use byte slice instead of string * Context all the things * Move proto messages to the dbplugin package * Add a grpc mechanism for running backend plugins * Serve the GRPC plugin * Add backwards compatibility to the database plugins * Remove backend plugin changes * Remove backend plugin changes * Cleanup the transport implementations * If grpc connection is in an unexpected state restart the plugin * Fix tests * Fix tests * Remove context from the request object, replace it with context.TODO * Add a test to verify netRPC plugins still work * Remove unused mapstructure call * Code review fixes * Code review fixes * Code review fixes
23 lines
530 B
Go
23 lines
530 B
Go
package connutil
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"sync"
|
|
)
|
|
|
|
var (
|
|
ErrNotInitialized = errors.New("connection has not been initalized")
|
|
)
|
|
|
|
// ConnectionProducer can be used as an embeded interface in the Database
|
|
// definition. It implements the methods dealing with individual database
|
|
// connections and is used in all the builtin database types.
|
|
type ConnectionProducer interface {
|
|
Close() error
|
|
Initialize(context.Context, map[string]interface{}, bool) error
|
|
Connection(context.Context) (interface{}, error)
|
|
|
|
sync.Locker
|
|
}
|