registry/memory: watcher bug fixes (#1740)

* registry/memory: watcher bugfixes

* registry/memory: fix nil watcher bug

* registry/memory: fix watcher test
This commit is contained in:
ben-toogood
2020-06-25 11:02:35 +01:00
committed by GitHub
parent 687a5e2e58
commit 51b4ab0abc
4 changed files with 39 additions and 32 deletions

View File

@@ -17,13 +17,26 @@ func (m *Watcher) Next() (*registry.Result, error) {
for {
select {
case r := <-m.res:
if r.Service == nil {
continue
}
if len(m.wo.Service) > 0 && m.wo.Service != r.Service.Name {
continue
}
if m.wo.Domain != registry.WildcardDomain && m.wo.Domain != m.wo.Domain {
continue
// extract domain from service metadata
var domain string
if r.Service.Metadata != nil && len(r.Service.Metadata["domain"]) > 0 {
domain = r.Service.Metadata["domain"]
} else {
domain = registry.DefaultDomain
}
// only send the event if watching the wildcard or this specific domain
if m.wo.Domain == registry.WildcardDomain || m.wo.Domain == domain {
return r, nil
}
return r, nil
case <-m.exit:
return nil, errors.New("watcher stopped")
}