|
|
|
|
@ -3,6 +3,7 @@ package packer
|
|
|
|
|
import (
|
|
|
|
|
"bytes"
|
|
|
|
|
"context"
|
|
|
|
|
"errors"
|
|
|
|
|
"io"
|
|
|
|
|
"os"
|
|
|
|
|
"strings"
|
|
|
|
|
@ -112,3 +113,19 @@ func (c *MockCommunicator) DownloadDir(src string, dst string, excl []string) er
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ScriptUploadErrorMockCommunicator returns an error from it's Upload() method
|
|
|
|
|
// when a script is uploaded to test the case where this upload fails.
|
|
|
|
|
type ScriptUploadErrorMockCommunicator struct {
|
|
|
|
|
MockCommunicator
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var ScriptUploadErrorMockCommunicatorError = errors.New("ScriptUploadErrorMockCommunicator Upload error")
|
|
|
|
|
|
|
|
|
|
func (c *ScriptUploadErrorMockCommunicator) Upload(path string, r io.Reader, fi *os.FileInfo) error {
|
|
|
|
|
// only fail on script uploads, not on environment variable uploads
|
|
|
|
|
if !strings.Contains(path, "packer-ps-env-vars") {
|
|
|
|
|
return ScriptUploadErrorMockCommunicatorError
|
|
|
|
|
}
|
|
|
|
|
return c.MockCommunicator.Upload(path, r, fi)
|
|
|
|
|
}
|
|
|
|
|
|