Merge pull request #28640 from hashicorp/jbardin/configload-diags
Don't try to build the config if there were errors loading
This commit is contained in:
commit
3252df4b91
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"format_version": "0.1",
|
||||
"valid": false,
|
||||
"error_count": 6,
|
||||
"error_count": 4,
|
||||
"warning_count": 0,
|
||||
"diagnostics": [
|
||||
{
|
||||
|
@ -107,58 +107,6 @@
|
|||
"highlight_end_offset": 25,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"severity": "error",
|
||||
"summary": "Module not installed",
|
||||
"detail": "This module is not yet installed. Run \"terraform init\" to install all modules required by this configuration.",
|
||||
"range": {
|
||||
"filename": "testdata/validate-invalid/incorrectmodulename/main.tf",
|
||||
"start": {
|
||||
"line": 4,
|
||||
"column": 1,
|
||||
"byte": 27
|
||||
},
|
||||
"end": {
|
||||
"line": 4,
|
||||
"column": 15,
|
||||
"byte": 41
|
||||
}
|
||||
},
|
||||
"snippet": {
|
||||
"context": null,
|
||||
"code": "module \"super\" {",
|
||||
"start_line": 4,
|
||||
"highlight_start_offset": 0,
|
||||
"highlight_end_offset": 14,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"severity": "error",
|
||||
"summary": "Module not installed",
|
||||
"detail": "This module is not yet installed. Run \"terraform init\" to install all modules required by this configuration.",
|
||||
"range": {
|
||||
"filename": "testdata/validate-invalid/incorrectmodulename/main.tf",
|
||||
"start": {
|
||||
"line": 1,
|
||||
"column": 1,
|
||||
"byte": 0
|
||||
},
|
||||
"end": {
|
||||
"line": 1,
|
||||
"column": 22,
|
||||
"byte": 21
|
||||
}
|
||||
},
|
||||
"snippet": {
|
||||
"context": null,
|
||||
"code": "module \"super#module\" {",
|
||||
"start_line": 1,
|
||||
"highlight_start_offset": 0,
|
||||
"highlight_end_offset": 21,
|
||||
"values": []
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"format_version": "0.1",
|
||||
"valid": false,
|
||||
"error_count": 2,
|
||||
"error_count": 1,
|
||||
"warning_count": 0,
|
||||
"diagnostics": [
|
||||
{
|
||||
|
@ -29,32 +29,6 @@
|
|||
"highlight_end_offset": 21,
|
||||
"values": []
|
||||
}
|
||||
},
|
||||
{
|
||||
"severity": "error",
|
||||
"summary": "Module not installed",
|
||||
"detail": "This module is not yet installed. Run \"terraform init\" to install all modules required by this configuration.",
|
||||
"range": {
|
||||
"filename": "testdata/validate-invalid/multiple_modules/main.tf",
|
||||
"start": {
|
||||
"line": 5,
|
||||
"column": 1,
|
||||
"byte": 46
|
||||
},
|
||||
"end": {
|
||||
"line": 5,
|
||||
"column": 22,
|
||||
"byte": 67
|
||||
}
|
||||
},
|
||||
"snippet": {
|
||||
"context": null,
|
||||
"code": "module \"multi_module\" {",
|
||||
"start_line": 5,
|
||||
"highlight_start_offset": 0,
|
||||
"highlight_end_offset": 21,
|
||||
"values": []
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ import (
|
|||
// required to process the individual modules
|
||||
func (l *Loader) LoadConfig(rootDir string) (*configs.Config, hcl.Diagnostics) {
|
||||
rootMod, diags := l.parser.LoadConfigDir(rootDir)
|
||||
if rootMod == nil {
|
||||
if rootMod == nil || diags.HasErrors() {
|
||||
return nil, diags
|
||||
}
|
||||
|
||||
|
|
|
@ -80,3 +80,19 @@ func TestLoaderLoadConfig_addVersion(t *testing.T) {
|
|||
t.Fatalf("wrong error\ngot:\n%s\n\nwant: containing %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoaderLoadConfig_loadDiags(t *testing.T) {
|
||||
// building a config which didn't load correctly may cause configs to panic
|
||||
fixtureDir := filepath.Clean("testdata/invalid-names")
|
||||
loader, err := NewLoader(&Config{
|
||||
ModulesDir: filepath.Join(fixtureDir, ".terraform/modules"),
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error from NewLoader: %s", err)
|
||||
}
|
||||
|
||||
_, diags := loader.LoadConfig(fixtureDir)
|
||||
if !diags.HasErrors() {
|
||||
t.Fatalf("success; want error")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
provider "42_bad!" {
|
||||
invalid_provider_name = "yes"
|
||||
}
|
Loading…
Reference in New Issue