From 3457ed2312013a12eb793a171320486efcffff6e Mon Sep 17 00:00:00 2001 From: Adrien Delorme Date: Wed, 15 Sep 2021 13:53:41 +0200 Subject: [PATCH] Fail when an "hcp-packer-image" datasource could not be found (#11268) * Fail when the Packer Service datasource could not be found * Update datasource/hcp-packer-image/data.go --- datasource/hcp-packer-image/data.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/datasource/hcp-packer-image/data.go b/datasource/hcp-packer-image/data.go index acf7334fe..5347936fe 100644 --- a/datasource/hcp-packer-image/data.go +++ b/datasource/hcp-packer-image/data.go @@ -124,11 +124,13 @@ func (d *Datasource) Execute() (cty.Value, error) { output := DatasourceOutput{} + cloudAndRegions := map[string][]string{} for _, build := range iteration.Builds { if build.CloudProvider != d.config.CloudProvider { continue } for _, image := range build.Images { + cloudAndRegions[build.CloudProvider] = append(cloudAndRegions[build.CloudProvider], image.Region) if image.Region == d.config.Region { // This is the desired image. output = DatasourceOutput{ @@ -141,9 +143,12 @@ func (d *Datasource) Execute() (cty.Value, error) { ID: image.ImageID, Region: image.Region, } + return hcl2helper.HCL2ValueFromConfig(output, d.OutputSpec()), nil } } } - return hcl2helper.HCL2ValueFromConfig(output, d.OutputSpec()), nil + return cty.NullVal(cty.EmptyObject), fmt.Errorf("could not find a build result matching "+ + "region (%q) and cloud provider (%q). Available: %v ", + d.config.Region, d.config.CloudProvider, cloudAndRegions) }