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"` }