Skip to content

Commit

Permalink
Revert "core: Ensure hasComputedSubKeys iterates over Sets and Lists …
Browse files Browse the repository at this point in the history
…properly"

This reverts commit 4d8208d.
  • Loading branch information
mitchellh authored and fatmcgav committed Feb 27, 2017
1 parent 7db9332 commit 80ca7a7
Showing 1 changed file with 3 additions and 21 deletions.
24 changes: 3 additions & 21 deletions helper/schema/field_reader_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -270,30 +270,12 @@ func (r *ConfigFieldReader) hasComputedSubKeys(key string, schema *Schema) bool
switch t := schema.Elem.(type) {
case *Resource:
for k, schema := range t.Schema {
addr := prefix + k
if r.Config.IsComputed(addr) {
if r.Config.IsComputed(prefix + k) {
return true
}

// We need to loop into sets and lists to ensure we pass the correct
// address to the raw config - otherwise for sets we get something like
// set.0.set.item instead of set.0.set.0.item, which renders an
// inaccurate result.
if schema.Type == TypeSet || schema.Type == TypeList {
raw, err := readListField(&nestedConfigFieldReader{r}, strings.Split(addr, "."), schema)
if err != nil {
panic(fmt.Errorf("readListField failed when field was supposed to be list-like: %v", err))
}
// Just range into the address space here, we don't need the value.
for i := range raw.Value.([]interface{}) {
if r.hasComputedSubKeys(addr+"."+strconv.Itoa(i), schema) {
return true
}
}
} else {
if r.hasComputedSubKeys(addr, schema) {
return true
}
if r.hasComputedSubKeys(prefix+k, schema) {
return true
}
}
}
Expand Down

0 comments on commit 80ca7a7

Please sign in to comment.