in ec/ecdatasource/deploymenttemplates/read.go [108:161]
func mapElasticsearch(templateDefinition *models.DeploymentCreateRequest, configurations map[string]models.InstanceConfigurationInfo) *elasticsearchModel {
if templateDefinition == nil {
return nil
}
resources := templateDefinition.Resources
if resources == nil {
return nil
}
payloads := resources.Elasticsearch
if len(payloads) == 0 {
return nil
}
firstEs := payloads[0]
if firstEs.Plan == nil {
return nil
}
es := elasticsearchModel{}
es.Autoscale = firstEs.Plan.AutoscalingEnabled
for _, element := range firstEs.Plan.ClusterTopology {
size := element.Size
id := element.InstanceConfigurationID
topology := topologyModel{
InstanceConfigurationId: id,
InstanceConfigurationVersion: element.InstanceConfigurationVersion,
DefaultSize: util.MemoryToStateOptional(getSizeValue(size)),
SizeResource: getSizeResource(size),
AvailableSizes: collectAvailableSizes(configurations, id),
Autoscaling: mapAutoscaling(element),
}
switch element.ID {
case "hot_content":
es.HotTier = &topology
case "coordinating":
es.CoordinatingTier = &topology
case "master":
es.MasterTier = &topology
case "warm":
es.WarmTier = &topology
case "cold":
es.ColdTier = &topology
case "frozen":
es.FrozenTier = &topology
case "ml":
es.MlTier = &topology
}
}
return &es
}