func clusters()

in eligible/eligible.go [106:148]


func clusters(group grp.InstanceGroup, cloudProvider deploy.CloudProvider, exs []chaosmonkey.Exception, dep deploy.Deployment) ([]cluster, error) {
	account := deploy.AccountName(group.Account())
	clusterNames, err := dep.GetClusterNames(group.App(), account)
	if err != nil {
		return nil, err
	}

	result := make([]cluster, 0)
	for _, clusterName := range clusterNames {
		names, err := frigga.Parse(string(clusterName))
		if err != nil {
			return nil, err
		}

		deployedRegions, err := dep.GetRegionNames(names.App, account, clusterName)
		if err != nil {
			return nil, err
		}

		for _, region := range regions(group, deployedRegions) {

			if isException(exs, account, names, region) {
				continue
			}

			if isNeverEligible(clusterName) {
				continue
			}

			if grp.Contains(group, string(account), string(region), string(clusterName)) {
				result = append(result, cluster{
					appName:       deploy.AppName(names.App),
					accountName:   account,
					cloudProvider: cloudProvider,
					regionName:    region,
					clusterName:   clusterName,
				})
			}
		}
	}

	return result, nil
}