| 1234567891011121314151617181920212223242526272829303132333435 |
- package plugin
- import (
- "context"
- "github.com/hashicorp/go-plugin"
- "github.com/opencost/opencost/core/pkg/model/pb"
- grpc "google.golang.org/grpc"
- )
- // plugin interface
- type CustomCostSource interface {
- GetCustomCosts(req *pb.CustomCostRequest) []*pb.CustomCostResponse
- }
- type CustomCostPlugin struct {
- plugin.Plugin
- // Impl Injection
- Impl CustomCostSource
- }
- // this method is called for as part of the reference plugin implementation
- // see https://github.com/hashicorp/go-plugin/blob/main/examples/basic/shared/greeter_interface.go#L59
- // for context and details
- func (p *CustomCostPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error {
- pb.RegisterCustomCostsSourceServer(s, &GRPCServer{Impl: p.Impl})
- return nil
- }
- // this method is called for as part of the reference plugin implementation
- // see https://github.com/hashicorp/go-plugin/blob/main/examples/basic/shared/greeter_interface.go#L63
- // for context and details
- func (CustomCostPlugin) GRPCClient(context context.Context, b *plugin.GRPCBroker, c *grpc.ClientConn) (interface{}, error) {
- return &GRPCClient{client: pb.NewCustomCostsSourceClient(c)}, nil
- }
|