Merge pull request #10658 from hashicorp/b-var-keys

config: validate invalid variable keys
This commit is contained in:
Mitchell Hashimoto 2016-12-12 10:53:07 -08:00 committed by GitHub
commit 8a102799c2
3 changed files with 16 additions and 8 deletions

View File

@ -410,14 +410,12 @@ func loadVariablesHcl(list *ast.ObjectList) ([]*Variable, error) {
item.Pos(), NameRegexp)
}
/*
// TODO: catch extra fields
// Decode into raw map[string]interface{} so we know ALL fields
var config map[string]interface{}
if err := hcl.DecodeObject(&config, item.Val); err != nil {
return nil, err
}
*/
// Check for invalid keys
valid := []string{"type", "default", "description"}
if err := checkHCLKeys(item.Val, valid); err != nil {
return nil, multierror.Prefix(err, fmt.Sprintf(
"variable[%s]:", n))
}
// Decode into hclVariable to get typed values
var hclVar hclVariable

View File

@ -67,6 +67,13 @@ func TestLoadFile_lifecycleKeyCheck(t *testing.T) {
t.Logf("err: %s", err)
}
func TestLoadFile_varInvalidKey(t *testing.T) {
_, err := LoadFile(filepath.Join(fixtureDir, "var-invalid-key.tf"))
if err == nil {
t.Fatal("should have error")
}
}
func TestLoadFile_resourceArityMistake(t *testing.T) {
_, err := LoadFile(filepath.Join(fixtureDir, "resource-arity-mistake.tf"))
if err == nil {

View File

@ -0,0 +1,3 @@
variable "a" {
a = "b"
}