packer: template error if override specified for bad builder [GH-336]
This commit is contained in:
parent
b4b68bce00
commit
747f260678
|
@ -26,6 +26,8 @@ IMPROVEMENTS:
|
||||||
BUG FIXES:
|
BUG FIXES:
|
||||||
|
|
||||||
* core: Fixed a couple cases where a double ctrl-C could panic.
|
* core: Fixed a couple cases where a double ctrl-C could panic.
|
||||||
|
* core: Template validation fails if an override is specified for a
|
||||||
|
non-existent builder. [GH-336]
|
||||||
* builder/amazon/instance: Remove check for ec2-ami-tools because it
|
* builder/amazon/instance: Remove check for ec2-ami-tools because it
|
||||||
didn't allow absolute paths to work properly. [GH-330]
|
didn't allow absolute paths to work properly. [GH-330]
|
||||||
* builder/digitalocean: Send a soft shutdown request so that files
|
* builder/digitalocean: Send a soft shutdown request so that files
|
||||||
|
|
|
@ -221,6 +221,14 @@ func ParseTemplate(data []byte) (t *Template, err error) {
|
||||||
// actively reject them as invalid configuration.
|
// actively reject them as invalid configuration.
|
||||||
delete(v, "override")
|
delete(v, "override")
|
||||||
|
|
||||||
|
// Verify that the override keys exist...
|
||||||
|
for name, _ := range raw.Override {
|
||||||
|
if _, ok := t.Builders[name]; !ok {
|
||||||
|
errors = append(
|
||||||
|
errors, fmt.Errorf("provisioner %d: build '%s' not found for override", i+1, name))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
raw.RawConfig = v
|
raw.RawConfig = v
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -700,6 +700,34 @@ func TestTemplate_Build_ProvisionerOverride(t *testing.T) {
|
||||||
assert.Equal(len(coreBuild.provisioners[0].config), 2, "should have two configs on the provisioner")
|
assert.Equal(len(coreBuild.provisioners[0].config), 2, "should have two configs on the provisioner")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestTemplate_Build_ProvisionerOverrideBad(t *testing.T) {
|
||||||
|
data := `
|
||||||
|
{
|
||||||
|
"builders": [
|
||||||
|
{
|
||||||
|
"name": "test1",
|
||||||
|
"type": "test-builder"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"provisioners": [
|
||||||
|
{
|
||||||
|
"type": "test-prov",
|
||||||
|
|
||||||
|
"override": {
|
||||||
|
"testNope": {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
_, err := ParseTemplate([]byte(data))
|
||||||
|
if err == nil {
|
||||||
|
t.Fatal("should have error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestTemplateBuild_variables(t *testing.T) {
|
func TestTemplateBuild_variables(t *testing.T) {
|
||||||
data := `
|
data := `
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue