-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathlist.go
More file actions
90 lines (68 loc) · 1.88 KB
/
list.go
File metadata and controls
90 lines (68 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
package zkmanager
import (
"github.com/skynetservices/skynet"
)
// Return a list of service versions that match criteria
func (sm *ZookeeperServiceManager) ListInstances(c skynet.CriteriaMatcher) (instances []skynet.ServiceInfo, err error) {
return sm.cache.List(c)
}
// Return a list of service versions that match criteria
func (sm *ZookeeperServiceManager) ListVersions(c skynet.CriteriaMatcher) (versions []string, err error) {
keys := make(map[string]bool)
instances, err := sm.cache.List(c)
if err != nil {
return
}
for _, i := range instances {
if _, ok := keys[i.Version]; !ok {
keys[i.Version] = true
versions = append(versions, i.Version)
}
}
return
}
// Return a list of regions that match criteria
func (sm *ZookeeperServiceManager) ListRegions(c skynet.CriteriaMatcher) (regions []string, err error) {
keys := make(map[string]bool)
instances, err := sm.cache.List(c)
if err != nil {
return
}
for _, i := range instances {
if _, ok := keys[i.Region]; !ok {
keys[i.Region] = true
regions = append(regions, i.Region)
}
}
return
}
// Return a list of services that match criteria
func (sm *ZookeeperServiceManager) ListServices(c skynet.CriteriaMatcher) (services []string, err error) {
keys := make(map[string]bool)
instances, err := sm.cache.List(c)
if err != nil {
return
}
for _, i := range instances {
if _, ok := keys[i.Name]; !ok {
keys[i.Name] = true
services = append(services, i.Name)
}
}
return
}
// Return a list of hosts that match criteria
func (sm *ZookeeperServiceManager) ListHosts(c skynet.CriteriaMatcher) (hosts []string, err error) {
keys := make(map[string]bool)
instances, err := sm.cache.List(c)
if err != nil {
return
}
for _, i := range instances {
if _, ok := keys[i.ServiceAddr.String()]; !ok {
keys[i.ServiceAddr.String()] = true
hosts = append(hosts, i.ServiceAddr.String())
}
}
return
}