in pkg/api/platformapi/allocatorapi/vacate.go [123:153]
func moveNodes(id string, params *VacateParams, p *pool.Pool) ([]pool.Validator, bool, error) {
var merr = multierror.NewPrefixed("vacate error")
res, err := params.API.V1API.PlatformInfrastructure.MoveClusters(
platform_infrastructure.NewMoveClustersParams().
WithAllocatorID(id).
WithMoveOnly(params.MoveOnly).
WithContext(api.WithRegion(context.Background(), params.Region)).
WithValidateOnly(ec.Bool(true)),
params.AuthWriter,
)
if err != nil {
return nil, false, merr.Append(VacateError{
AllocatorID: id,
Err: apierror.Wrap(err),
})
}
if err := CheckVacateFailures(res.Payload.Failures, params.ClusterFilter, id); err != nil {
// Errors already wrapped in VacateError
merr = merr.Append(err)
}
work, hasWork := addAllocatorMovesToPool(addAllocatorMovesToPoolParams{
ID: id,
Pool: p,
Moves: res.Payload.Moves,
VacateParams: params,
})
return work, hasWork, merr.ErrorOrNil()
}