123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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
- }
|