in pkg/api/platformapi/allocatorapi/vacate.go [194:268]
func addAllocatorMovesToPool(params addAllocatorMovesToPoolParams) ([]pool.Validator, bool) {
var leftovers []pool.Validator
var vacates = make([]pool.Validator, 0)
if params.Moves == nil {
return leftovers, len(vacates) > 0
}
var filter = params.VacateParams.ClusterFilter
var kindFilter = params.VacateParams.KindFilter
for _, move := range params.Moves.ElasticsearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *move.ClusterID) {
continue
}
var kind = util.Elasticsearch
if kindFilter != "" && kind != kindFilter {
break
}
vacates = append(vacates, newVacateClusterParams(params, *move.ClusterID, kind))
}
for _, move := range params.Moves.KibanaClusters {
if len(filter) > 0 && !slice.HasString(filter, *move.ClusterID) {
continue
}
var kind = util.Kibana
if kindFilter != "" && kind != kindFilter {
break
}
vacates = append(vacates, newVacateClusterParams(params, *move.ClusterID, kind))
}
for _, move := range params.Moves.ApmClusters {
if len(filter) > 0 && !slice.HasString(filter, *move.ClusterID) {
continue
}
var kind = util.Apm
if kindFilter != "" && kind != kindFilter {
break
}
vacates = append(vacates, newVacateClusterParams(params, *move.ClusterID, kind))
}
for _, move := range params.Moves.AppsearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *move.ClusterID) {
continue
}
var kind = util.Appsearch
if kindFilter != "" && kind != kindFilter {
break
}
vacates = append(vacates, newVacateClusterParams(params, *move.ClusterID, kind))
}
for _, move := range params.Moves.EnterpriseSearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *move.ClusterID) {
continue
}
var kind = util.EnterpriseSearch
if kindFilter != "" && kind != kindFilter {
break
}
vacates = append(vacates, newVacateClusterParams(params, *move.ClusterID, kind))
}
if leftover, _ := params.Pool.Add(vacates...); len(leftover) > 0 {
leftovers = append(leftovers, leftover...)
}
return leftovers, len(vacates) > 0
}