discoverapi.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  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. // DatastoreConfig represents a add/remove datastore event
  16. DatastoreConfig
  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. // DatastoreConfigData is the data for the datastore update event message
  24. type DatastoreConfigData struct {
  25. Scope string
  26. Provider string
  27. Address string
  28. Config interface{}
  29. }