driver.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package remote
  2. import (
  3. "errors"
  4. log "github.com/Sirupsen/logrus"
  5. "github.com/docker/docker/pkg/plugins"
  6. "github.com/docker/libnetwork/driverapi"
  7. "github.com/docker/libnetwork/types"
  8. )
  9. var errNoCallback = errors.New("No Callback handler registered with Driver")
  10. type driver struct {
  11. endpoint *plugins.Client
  12. networkType string
  13. }
  14. // Init does the necessary work to register remote drivers
  15. func Init(dc driverapi.DriverCallback) error {
  16. plugins.Handle(driverapi.NetworkPluginEndpointType, func(name string, client *plugins.Client) {
  17. // TODO : Handhake with the Remote Plugin goes here
  18. newDriver := &driver{networkType: name, endpoint: client}
  19. if err := dc.RegisterDriver(name, newDriver); err != nil {
  20. log.Errorf("Error registering Driver for %s due to %v", name, err)
  21. }
  22. })
  23. return nil
  24. }
  25. func (d *driver) Config(option map[string]interface{}) error {
  26. return &driverapi.ErrNotImplemented{}
  27. }
  28. func (d *driver) CreateNetwork(id types.UUID, option map[string]interface{}) error {
  29. return &driverapi.ErrNotImplemented{}
  30. }
  31. func (d *driver) DeleteNetwork(nid types.UUID) error {
  32. return &driverapi.ErrNotImplemented{}
  33. }
  34. func (d *driver) CreateEndpoint(nid, eid types.UUID, epInfo driverapi.EndpointInfo, epOptions map[string]interface{}) error {
  35. return &driverapi.ErrNotImplemented{}
  36. }
  37. func (d *driver) DeleteEndpoint(nid, eid types.UUID) error {
  38. return &driverapi.ErrNotImplemented{}
  39. }
  40. func (d *driver) EndpointOperInfo(nid, eid types.UUID) (map[string]interface{}, error) {
  41. return nil, &driverapi.ErrNotImplemented{}
  42. }
  43. // Join method is invoked when a Sandbox is attached to an endpoint.
  44. func (d *driver) Join(nid, eid types.UUID, sboxKey string, jinfo driverapi.JoinInfo, options map[string]interface{}) error {
  45. return &driverapi.ErrNotImplemented{}
  46. }
  47. // Leave method is invoked when a Sandbox detaches from an endpoint.
  48. func (d *driver) Leave(nid, eid types.UUID) error {
  49. return &driverapi.ErrNotImplemented{}
  50. }
  51. func (d *driver) Type() string {
  52. return d.networkType
  53. }