don't lose track of private data in the ACC tests

If the resource schema version is > 0, the metadata containing the
timeout values was overwritten during acceptance tests.
This commit is contained in:
James Bardin 2019-09-18 13:59:12 -04:00
parent 655bbfdf28
commit a3c374b227
3 changed files with 9 additions and 8 deletions

View File

@ -646,12 +646,7 @@ resource "test_resource_nested_set" "foo" {
}
}
`),
Check: resource.ComposeTestCheckFunc(
func(s *terraform.State) error {
fmt.Println(s)
return nil
},
),
Check: resource.ComposeTestCheckFunc(),
},
},
})

View File

@ -14,6 +14,11 @@ func testResourceTimeout() *schema.Resource {
Update: testResourceTimeoutUpdate,
Delete: testResourceTimeoutDelete,
// Due to the schema version also being stashed in the private/meta
// data, we need to ensure that it does not overwrite the map
// containing the timeouts.
SchemaVersion: 1,
Timeouts: &schema.ResourceTimeout{
Create: schema.DefaultTimeout(time.Second),
Update: schema.DefaultTimeout(time.Second),

View File

@ -81,9 +81,10 @@ func shimNewState(newState *states.State, providers map[string]terraform.Resourc
}
if i.Current.SchemaVersion != 0 {
resState.Primary.Meta = map[string]interface{}{
"schema_version": i.Current.SchemaVersion,
if resState.Primary.Meta == nil {
resState.Primary.Meta = map[string]interface{}{}
}
resState.Primary.Meta["schema_version"] = i.Current.SchemaVersion
}
for _, dep := range i.Current.Dependencies {