add terraform config merge logic to config.Merge

pull/12942/head
James Bardin 9 years ago
parent b38e620b2f
commit bcbcc65f7d

@ -119,6 +119,7 @@ func TestAppend(t *testing.T) {
false,
},
// appending configs merges terraform blocks
{
&Config{
Terraform: &Terraform{

@ -32,9 +32,13 @@ func Merge(c1, c2 *Config) (*Config, error) {
c.Atlas = c2.Atlas
}
// Merge the Terraform configuration, which is a complete overwrite.
c.Terraform = c1.Terraform
if c2.Terraform != nil {
// Merge the Terraform configuration
if c1.Terraform != nil {
c.Terraform = c1.Terraform
if c2.Terraform != nil {
c.Terraform.Merge(c2.Terraform)
}
} else {
c.Terraform = c2.Terraform
}

@ -434,6 +434,31 @@ func TestMerge(t *testing.T) {
},
false,
},
// terraform blocks are merged, not overwritten
{
&Config{
Terraform: &Terraform{
RequiredVersion: "A",
},
},
&Config{
Terraform: &Terraform{
Backend: &Backend{
Type: "test",
},
},
},
&Config{
Terraform: &Terraform{
RequiredVersion: "A",
Backend: &Backend{
Type: "test",
},
},
},
false,
},
}
for i, tc := range cases {

Loading…
Cancel
Save