in providers/aws/elasticache.go [172:220]
func (g *ElastiCacheGenerator) PostConvertHook() error {
for i, r := range g.Resources {
if r.InstanceInfo.Type != "aws_elasticache_cluster" {
continue
}
for _, parameterGroup := range g.Resources {
if parameterGroup.InstanceInfo.Type != "aws_elasticache_parameter_group" {
continue
}
if parameterGroup.InstanceState.Attributes["name"] == r.InstanceState.Attributes["parameter_group_name"] {
if strings.HasPrefix(parameterGroup.InstanceState.Attributes["family"], r.InstanceState.Attributes["engine"]) {
g.Resources[i].Item["parameter_group_name"] = "${aws_elasticache_parameter_group." + parameterGroup.ResourceName + ".name}"
}
}
}
for _, subnet := range g.Resources {
if subnet.InstanceInfo.Type != "aws_elasticache_subnet_group" {
continue
}
if subnet.InstanceState.Attributes["name"] == r.Item["subnet_group_name"] {
g.Resources[i].Item["subnet_group_name"] = "${aws_elasticache_subnet_group." + subnet.ResourceName + ".name}"
}
}
for _, replicationGroup := range g.Resources {
if replicationGroup.InstanceInfo.Type != "aws_elasticache_replication_group" {
continue
}
if replicationGroup.InstanceState.Attributes["replication_group_id"] == r.InstanceState.Attributes["replication_group_id"] {
g.Resources[i].Item["replication_group_id"] = "${aws_elasticache_replication_group." + replicationGroup.ResourceName + ".replication_group_id}"
}
}
}
for i, r := range g.Resources {
if r.InstanceInfo.Type != "aws_elasticache_replication_group" {
continue
}
for _, subnet := range g.Resources {
if subnet.InstanceInfo.Type != "aws_elasticache_subnet_group" {
continue
}
if subnet.InstanceState.Attributes["name"] == r.InstanceState.Attributes["subnet_group_name"] {
g.Resources[i].Item["subnet_group_name"] = "${aws_elasticache_subnet_group." + subnet.ResourceName + ".name}"
}
}
}
return nil
}