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
}