-
Notifications
You must be signed in to change notification settings - Fork 0
/
generator.go
21 lines (18 loc) · 698 Bytes
/
generator.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package scrimplb
// Generator provides an interface for generating configuration values based on backend configuration
type Generator interface {
GenerateConfig(map[Upstream][]Application, *ScrimpConfig) (string, error)
HandleRestart() error
}
// AddressesForApplication returns a string slice which details all backend addresses for the given application
// in an UpstreamApplicationMap.
func AddressesForApplication(upstreamMap map[Upstream][]Application, app Application) (addresses []string) {
for upstream, appList := range upstreamMap {
for _, foundApp := range appList {
if app.Equal(foundApp) {
addresses = append(addresses, upstream.Address)
}
}
}
return addresses
}