kuma

Форк
0
41 строка · 823.0 Байт
1
package clusters
2

3
type ClusterItem struct {
4
	Name         string       `json:"name"`
5
	HostStatuses []HostStatus `json:"host_statuses"`
6
}
7

8
type HostStatus struct {
9
	Priority *int      `json:"priority,omitempty"`
10
	Locality *Locality `json:"locality,omitempty"`
11
}
12

13
type Locality struct {
14
	Zone string `json:"zone"`
15
}
16

17
type Clusters struct {
18
	Clusters []ClusterItem `json:"cluster_statuses"`
19
}
20

21
func (c *Clusters) GetCluster(clusterName string) *ClusterItem {
22
	for _, cluster := range c.Clusters {
23
		if cluster.Name == clusterName {
24
			return &cluster
25
		}
26
	}
27
	return nil
28
}
29

30
func (ci *ClusterItem) GetPriorityForZone(zone string) int {
31
	for _, hs := range ci.HostStatuses {
32
		if hs.Locality != nil && hs.Locality.Zone == zone {
33
			if hs.Priority == nil {
34
				return 0
35
			} else {
36
				return *hs.Priority
37
			}
38
		}
39
	}
40
	return 0
41
}
42

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.