provisioner/file: add "generated" key to allow files created on-the-fly.
This commit is contained in:
parent
d310de8cf5
commit
59dac451a5
|
@ -26,6 +26,9 @@ type Config struct {
|
|||
// Direction
|
||||
Direction string
|
||||
|
||||
// False if the sources have to exist.
|
||||
Generated bool
|
||||
|
||||
ctx interpolate.Context
|
||||
}
|
||||
|
||||
|
@ -61,7 +64,7 @@ func (p *Provisioner) Prepare(raws ...interface{}) error {
|
|||
|
||||
if p.config.Direction == "upload" {
|
||||
for _, src := range p.config.Sources {
|
||||
if _, err := os.Stat(src); err != nil {
|
||||
if _, err := os.Stat(src); p.config.Generated == false && err != nil {
|
||||
errs = packer.MultiErrorAppend(errs,
|
||||
fmt.Errorf("Bad source '%s': %s", src, err))
|
||||
}
|
||||
|
|
|
@ -45,6 +45,12 @@ func TestProvisionerPrepare_InvalidSource(t *testing.T) {
|
|||
if err == nil {
|
||||
t.Fatalf("should require existing file")
|
||||
}
|
||||
|
||||
config["generated"] = false
|
||||
err = p.Prepare(config)
|
||||
if err == nil {
|
||||
t.Fatalf("should required existing file")
|
||||
}
|
||||
}
|
||||
|
||||
func TestProvisionerPrepare_ValidSource(t *testing.T) {
|
||||
|
@ -58,11 +64,28 @@ func TestProvisionerPrepare_ValidSource(t *testing.T) {
|
|||
|
||||
config := testConfig()
|
||||
config["source"] = tf.Name()
|
||||
|
||||
err = p.Prepare(config)
|
||||
if err != nil {
|
||||
t.Fatalf("should allow valid file: %s", err)
|
||||
}
|
||||
|
||||
config["generated"] = false
|
||||
err = p.Prepare(config)
|
||||
if err != nil {
|
||||
t.Fatalf("should allow valid file: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestProvisionerPrepare_GeneratedSource(t *testing.T) {
|
||||
var p Provisioner
|
||||
|
||||
config := testConfig()
|
||||
config["source"] = "/this/should/not/exist"
|
||||
config["generated"] = true
|
||||
err := p.Prepare(config)
|
||||
if err != nil {
|
||||
t.Fatalf("should allow non-existing file: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestProvisionerPrepare_EmptyDestination(t *testing.T) {
|
||||
|
|
Loading…
Reference in New Issue