builder/amazon/chroot: validate that chroot_mounts are 3 elements

This commit is contained in:
Mitchell Hashimoto 2013-07-30 22:29:06 -07:00
parent c0f64f3a1d
commit 07ed22b4fa
2 changed files with 26 additions and 0 deletions

View File

@ -83,6 +83,14 @@ func (b *Builder) Prepare(raws ...interface{}) error {
errs := common.CheckUnusedConfig(md) errs := common.CheckUnusedConfig(md)
errs = packer.MultiErrorAppend(errs, b.config.AccessConfig.Prepare()...) errs = packer.MultiErrorAppend(errs, b.config.AccessConfig.Prepare()...)
for _, mounts := range b.config.ChrootMounts {
if len(mounts) != 3 {
errs = packer.MultiErrorAppend(
errs, errors.New("Each chroot_mounts entry should be three elements."))
break
}
}
if b.config.SourceAmi == "" { if b.config.SourceAmi == "" {
errs = packer.MultiErrorAppend(errs, errors.New("source_ami is required.")) errs = packer.MultiErrorAppend(errs, errors.New("source_ami is required."))
} }

View File

@ -19,6 +19,24 @@ func TestBuilder_ImplementsBuilder(t *testing.T) {
} }
} }
func TestBuilderPrepare_ChrootMounts(t *testing.T) {
b := &Builder{}
config := testConfig()
config["chroot_mounts"] = nil
err := b.Prepare(config)
if err != nil {
t.Errorf("err: %s", err)
}
config["chroot_mounts"] = [][]string{
[]string{"bad"},
}
err = b.Prepare(config)
if err == nil {
t.Fatal("should have error")
}
}
func TestBuilderPrepare_SourceAmi(t *testing.T) { func TestBuilderPrepare_SourceAmi(t *testing.T) {
b := &Builder{} b := &Builder{}
config := testConfig() config := testConfig()