check for computed values in the config
First check the ComputedValues field in the config when reading config field, so that we can detect if there is an unknown value in a container. Since maps, lists and sets are verified to exist by looking for a "length" first, an unknown config value in the config is ignored.
This commit is contained in:
parent
43f0468829
commit
133d3d7971
|
@ -93,6 +93,18 @@ func (r *ConfigFieldReader) readField(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if protoVersion5 {
|
||||||
|
// Check if the value itself is unknown.
|
||||||
|
// The new protocol shims will add unknown values to this list of
|
||||||
|
// ComputedKeys. THis is the only way we have to indicate that a
|
||||||
|
// collection is unknown in the config
|
||||||
|
for _, unknown := range r.Config.ComputedKeys {
|
||||||
|
if k == unknown {
|
||||||
|
return FieldReadResult{Computed: true, Exists: true}, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch schema.Type {
|
switch schema.Type {
|
||||||
case TypeBool, TypeFloat, TypeInt, TypeString:
|
case TypeBool, TypeFloat, TypeInt, TypeString:
|
||||||
return r.readPrimitive(k, schema)
|
return r.readPrimitive(k, schema)
|
||||||
|
|
Loading…
Reference in New Issue