discoverapi.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. package discoverapi
  2. // Discover is an interface to be implemented by the componenet interested in receiving discover events
  3. // like new node joining the cluster or datastore updates
  4. type Discover interface {
  5. // DiscoverNew is a notification for a new discovery event, Example:a new node joining a cluster
  6. DiscoverNew(dType DiscoveryType, data interface{}) error
  7. // DiscoverDelete is a notification for a discovery delete event, Example:a node leaving a cluster
  8. DiscoverDelete(dType DiscoveryType, data interface{}) error
  9. }
  10. // DiscoveryType represents the type of discovery element the DiscoverNew function is invoked on
  11. type DiscoveryType int
  12. const (
  13. // NodeDiscovery represents Node join/leave events provided by discovery
  14. NodeDiscovery = iota + 1
  15. // DatastoreUpdate represents a add/remove datastore event
  16. DatastoreUpdate
  17. )
  18. // NodeDiscoveryData represents the structure backing the node discovery data json string
  19. type NodeDiscoveryData struct {
  20. Address string
  21. Self bool
  22. }
  23. // DatastoreUpdateData is the data for the datastore update event message
  24. type DatastoreUpdateData struct {
  25. Provider string
  26. Address string
  27. Config interface{}
  28. }