in pkg/api/platformapi/allocatorapi/vacate.go [639:724]
func ComputeVacateRequest(pr *models.MoveClustersDetails, resources, to []string, overrides PlanOverrides) *models.MoveClustersRequest {
var req models.MoveClustersRequest
for _, c := range pr.ElasticsearchClusters {
if len(resources) > 0 && !slice.HasString(resources, *c.ClusterID) {
continue
}
if overrides.SkipSnapshot != nil {
c.CalculatedPlan.PlanConfiguration.SkipSnapshot = overrides.SkipSnapshot
}
if overrides.SkipDataMigration != nil {
c.CalculatedPlan.PlanConfiguration.SkipDataMigration = overrides.SkipDataMigration
}
if overrides.OverrideFailsafe != nil {
c.CalculatedPlan.PlanConfiguration.OverrideFailsafe = overrides.OverrideFailsafe
}
c.CalculatedPlan.PlanConfiguration.PreferredAllocators = to
req.ElasticsearchClusters = append(req.ElasticsearchClusters,
&models.MoveElasticsearchClusterConfiguration{
ClusterIds: []string{*c.ClusterID},
PlanOverride: c.CalculatedPlan,
},
)
}
for _, c := range pr.KibanaClusters {
if len(resources) > 0 && !slice.HasString(resources, *c.ClusterID) {
continue
}
c.CalculatedPlan.PlanConfiguration.PreferredAllocators = to
req.KibanaClusters = append(req.KibanaClusters,
&models.MoveKibanaClusterConfiguration{
ClusterIds: []string{*c.ClusterID},
PlanOverride: c.CalculatedPlan,
},
)
}
for _, c := range pr.ApmClusters {
if len(resources) > 0 && !slice.HasString(resources, *c.ClusterID) {
continue
}
c.CalculatedPlan.PlanConfiguration.PreferredAllocators = to
req.ApmClusters = append(req.ApmClusters,
&models.MoveApmClusterConfiguration{
ClusterIds: []string{*c.ClusterID},
PlanOverride: c.CalculatedPlan,
},
)
}
for _, c := range pr.AppsearchClusters {
if len(resources) > 0 && !slice.HasString(resources, *c.ClusterID) {
continue
}
c.CalculatedPlan.PlanConfiguration.PreferredAllocators = to
req.AppsearchClusters = append(req.AppsearchClusters,
&models.MoveAppSearchConfiguration{
ClusterIds: []string{*c.ClusterID},
PlanOverride: c.CalculatedPlan,
},
)
}
for _, c := range pr.EnterpriseSearchClusters {
if len(resources) > 0 && !slice.HasString(resources, *c.ClusterID) {
continue
}
c.CalculatedPlan.PlanConfiguration.PreferredAllocators = to
req.EnterpriseSearchClusters = append(req.EnterpriseSearchClusters,
&models.MoveEnterpriseSearchConfiguration{
ClusterIds: []string{*c.ClusterID},
PlanOverride: c.CalculatedPlan,
},
)
}
return &req
}