func addAllocatorMovesToPool()

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
}