package nodes import ( "fmt" "strings" "time" "github.com/docker/docker/pkg/discovery" ) // Discovery is exported type Discovery struct { entries discovery.Entries } func init() { Init() } // Init is exported func Init() { discovery.Register("nodes", &Discovery{}) } // Initialize is exported func (s *Discovery) Initialize(uris string, _ time.Duration, _ time.Duration, _ map[string]string) error { for _, input := range strings.Split(uris, ",") { for _, ip := range discovery.Generate(input) { entry, err := discovery.NewEntry(ip) if err != nil { return fmt.Errorf("%s, please check you are using the correct discovery (missing token:// ?)", err.Error()) } s.entries = append(s.entries, entry) } } return nil } // Watch is exported func (s *Discovery) Watch(stopCh <-chan struct{}) (<-chan discovery.Entries, <-chan error) { ch := make(chan discovery.Entries) go func() { defer close(ch) ch <- s.entries <-stopCh }() return ch, nil } // Register is exported func (s *Discovery) Register(addr string) error { return discovery.ErrNotImplemented }