in pkg/api/platformapi/allocatorapi/vacate.go [473:591]
func CheckVacateFailures(failures *models.MoveClustersDetails, filter []string, allocatorID string) error {
if failures == nil {
return nil
}
var merr = multierror.NewPrefixed("vacate error")
const errMsgFmt = "%s (%s)"
const errCtx = "failed vacating"
for _, failure := range failures.ElasticsearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *failure.ClusterID) {
continue
}
var ferr error
if len(failure.Errors) > 0 {
var err = failure.Errors[0]
ferr = fmt.Errorf("%s (%s)", *err.Message, *err.Code)
}
if !strings.Contains(ferr.Error(), PlanPendingMessage) {
merr = merr.Append(VacateError{
AllocatorID: allocatorID,
ResourceID: *failure.ClusterID,
Kind: util.Elasticsearch,
Ctx: errCtx,
Err: ferr,
})
}
}
for _, failure := range failures.KibanaClusters {
if len(filter) > 0 && !slice.HasString(filter, *failure.ClusterID) {
continue
}
var ferr error
if len(failure.Errors) > 0 {
var err = failure.Errors[0]
ferr = fmt.Errorf("%s (%s)", *err.Message, *err.Code)
}
if !strings.Contains(ferr.Error(), PlanPendingMessage) {
merr = merr.Append(VacateError{
AllocatorID: allocatorID,
ResourceID: *failure.ClusterID,
Kind: util.Kibana,
Ctx: errCtx,
Err: ferr,
})
}
}
for _, failure := range failures.ApmClusters {
if len(filter) > 0 && !slice.HasString(filter, *failure.ClusterID) {
continue
}
var ferr error
if len(failure.Errors) > 0 {
var err = failure.Errors[0]
ferr = fmt.Errorf("%s (%s)", *err.Message, *err.Code)
}
if !strings.Contains(ferr.Error(), PlanPendingMessage) {
merr = merr.Append(VacateError{
AllocatorID: allocatorID,
ResourceID: *failure.ClusterID,
Kind: util.Apm,
Ctx: errCtx,
Err: ferr,
})
}
}
for _, failure := range failures.AppsearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *failure.ClusterID) {
continue
}
var ferr error
if len(failure.Errors) > 0 {
var err = failure.Errors[0]
ferr = fmt.Errorf("%s (%s)", *err.Message, *err.Code)
}
if !strings.Contains(ferr.Error(), PlanPendingMessage) {
merr = merr.Append(VacateError{
AllocatorID: allocatorID,
ResourceID: *failure.ClusterID,
Kind: util.Appsearch,
Ctx: errCtx,
Err: ferr,
})
}
}
for _, failure := range failures.EnterpriseSearchClusters {
if len(filter) > 0 && !slice.HasString(filter, *failure.ClusterID) {
continue
}
var ferr error
if len(failure.Errors) > 0 {
var err = failure.Errors[0]
ferr = fmt.Errorf("%s (%s)", *err.Message, *err.Code)
}
if !strings.Contains(ferr.Error(), PlanPendingMessage) {
merr = merr.Append(VacateError{
AllocatorID: allocatorID,
ResourceID: *failure.ClusterID,
Kind: util.EnterpriseSearch,
Ctx: errCtx,
Err: ferr,
})
}
}
return merr.ErrorOrNil()
}