check and return error from parsing var-files (#10569)

* check and return error from parsing var-files

* changelog entry for 1.1.0 and 1.0.5
This commit is contained in:
Drew Bailey
2021-05-12 09:08:59 -04:00
committed by GitHub
parent 4b9fff4376
commit 4be7897de8
3 changed files with 19 additions and 1 deletions

View File

@@ -88,6 +88,10 @@ func decode(c *jobConfig) error {
for _, varFile := range config.VarFiles {
parsedVarFile, ds := parseFile(varFile)
if parsedVarFile == nil || ds.HasErrors() {
return fmt.Errorf("unable to parse var file: %v", ds.Error())
}
config.parsedVarFiles = append(config.parsedVarFiles, parsedVarFile)
diags = append(diags, ds...)
}

View File

@@ -146,7 +146,7 @@ job "example" {
defer os.Remove(varFile.Name())
content := `dc_var = "set_dc"
region_var = "set_region"`
region_var = "set_region"`
_, err = varFile.WriteString(content)
require.NoError(t, err)
@@ -162,6 +162,18 @@ region_var = "set_region"`
require.NotNil(t, out.Region)
require.Equal(t, "set_region", *out.Region)
})
t.Run("var-file does not exist", func(t *testing.T) {
out, err := ParseWithConfig(&ParseConfig{
Path: "input.hcl",
Body: []byte(hcl),
VarFiles: []string{"does-not-exist.hcl"},
AllowFS: true,
})
require.Error(t, err)
require.Nil(t, out)
})
}
// TestParse_UnknownVariables asserts that unknown variables are left intact for further processing