haproxy-lb/pkg/haproxy/config.go
2021-04-08 00:34:54 +02:00

43 lines
831 B
Go

package haproxy
import "encoding/json"
type Config struct {
LoadBalancers []*LoadBalancer
}
func NewConfig(m map[string][]byte) (c Config, err error) {
for _, v := range m {
lb := new(LoadBalancer)
err = json.Unmarshal(v, lb)
if err != nil {
return
}
c.LoadBalancers = append(c.LoadBalancers, lb)
}
return
}
type LoadBalancer struct {
Name string `json:"name"`
IP string `json:"ip"`
Options Options `json:"options"`
Ports []Port `json:"ports"`
}
type Options struct {
Frontend []string `json:"frontend"`
Backend []string `json:"backend"`
DefaultServer string `json:"defaultServer"`
}
type Port struct {
Port int `json:"port"`
Servers []Server `json:"servers"`
}
type Server struct {
Name string `json:"name"`
IP string `json:"ip"`
Port int `json:"port"`
}