interface.go 866 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package shared
  2. import (
  3. "golang.org/x/net/context"
  4. proto "github.com/grafana/grafana/pkg/tsdb/plugins/proto"
  5. plugin "github.com/hashicorp/go-plugin"
  6. "google.golang.org/grpc"
  7. )
  8. var PluginMap = map[string]plugin.Plugin{
  9. "tsdb_mock": &TsdbPluginImpl{},
  10. }
  11. var Handshake = plugin.HandshakeConfig{
  12. ProtocolVersion: 1,
  13. MagicCookieKey: "BASIC_PLUGIN",
  14. MagicCookieValue: "hello",
  15. }
  16. type TsdbPlugin interface {
  17. Get(ctx context.Context, req *proto.TsdbRequest) (*proto.TsdbResponse, error)
  18. }
  19. type TsdbPluginImpl struct { //LOL IMPL LOL
  20. plugin.NetRPCUnsupportedPlugin
  21. Plugin TsdbPlugin
  22. }
  23. func (p *TsdbPluginImpl) GRPCServer(s *grpc.Server) error {
  24. proto.RegisterTsdbPluginServer(s, &GRPCServer{p.Plugin})
  25. return nil
  26. }
  27. func (p *TsdbPluginImpl) GRPCClient(c *grpc.ClientConn) (interface{}, error) {
  28. return &GRPCClient{proto.NewTsdbPluginClient(c)}, nil
  29. }