in pkg/api/platformapi/allocatorapi/vacate_params.go [113:152]
func (params VacateParams) Validate() error {
var merr = multierror.NewPrefixed("invalid allocator vacate params")
if params.API == nil {
merr = merr.Append(errAPIMustNotBeNil)
}
if len(params.Allocators) == 0 {
merr = merr.Append(errMustSpecifyAtLeast1Allocator)
}
if len(params.ClusterFilter) > 0 && len(params.KindFilter) > 0 {
merr = merr.Append(errCannotFilterByIDAndKind)
}
if params.Concurrency == 0 {
merr = merr.Append(errConcurrencyCannotBeZero)
}
for i := range params.ClusterFilter {
if len(params.ClusterFilter[i]) != 32 {
merr = merr.Append(fmt.Errorf(
"cluster filter: id \"%s\" is invalid, must be 32 characters long", params.ClusterFilter[i],
))
}
}
if params.Output == nil {
merr = merr.Append(errOutputDeviceCannotBeNil)
}
if params.AllocatorDown != nil && len(params.Allocators) > 1 {
merr = merr.Append(errCannotOverrideAllocatorDown)
}
if err := ec.RequireRegionSet(params.Region); err != nil {
merr = merr.Append(err)
}
return merr.ErrorOrNil()
}