kuma
41 строка · 823.0 Байт
1package clusters2
3type ClusterItem struct {4Name string `json:"name"`5HostStatuses []HostStatus `json:"host_statuses"`6}
7
8type HostStatus struct {9Priority *int `json:"priority,omitempty"`10Locality *Locality `json:"locality,omitempty"`11}
12
13type Locality struct {14Zone string `json:"zone"`15}
16
17type Clusters struct {18Clusters []ClusterItem `json:"cluster_statuses"`19}
20
21func (c *Clusters) GetCluster(clusterName string) *ClusterItem {22for _, cluster := range c.Clusters {23if cluster.Name == clusterName {24return &cluster25}26}27return nil28}
29
30func (ci *ClusterItem) GetPriorityForZone(zone string) int {31for _, hs := range ci.HostStatuses {32if hs.Locality != nil && hs.Locality.Zone == zone {33if hs.Priority == nil {34return 035} else {36return *hs.Priority37}38}39}40return 041}
42