move packer config constants next to the packer config
This commit is contained in:
parent
8558d1241f
commit
5576bb5caa
|
@ -11,7 +11,6 @@ import (
|
|||
|
||||
amazonebsbuilder "github.com/hashicorp/packer/builder/amazon/ebs"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
|
||||
testshelper "github.com/hashicorp/packer/helper/tests"
|
||||
|
@ -55,8 +54,8 @@ func (s *AmazonEBSAccTest) CleanUp() error {
|
|||
return helper.CleanUpAmi()
|
||||
}
|
||||
|
||||
func (s *AmazonEBSAccTest) GetBuilderStore() packer.MapOfBuilder {
|
||||
return packer.MapOfBuilder{
|
||||
func (s *AmazonEBSAccTest) GetBuilderStore() packersdk.MapOfBuilder {
|
||||
return packersdk.MapOfBuilder{
|
||||
"amazon-ebs": func() (packersdk.Builder, error) { return &amazonebsbuilder.Builder{}, nil },
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"testing"
|
||||
|
||||
hypervcommon "github.com/hashicorp/packer/builder/hyperv/common"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
@ -26,7 +26,7 @@ func testConfig() map[string]interface{} {
|
|||
"disk_block_size": 1,
|
||||
"guest_additions_mode": "none",
|
||||
"disk_additional_size": "50000,40000,30000",
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
common.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -591,7 +591,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
|
|||
var b Builder
|
||||
config := testConfig()
|
||||
|
||||
config[packer.UserVariablesConfigKey] = map[string]string{"test-variable": "test"}
|
||||
config[common.UserVariablesConfigKey] = map[string]string{"test-variable": "test"}
|
||||
config["boot_command"] = []string{"blah {{user `test-variable`}} blah"}
|
||||
|
||||
_, warns, err := b.Prepare(config)
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"os"
|
||||
|
||||
hypervcommon "github.com/hashicorp/packer/builder/hyperv/common"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
@ -25,7 +25,7 @@ func testConfig() map[string]interface{} {
|
|||
"memory": 64,
|
||||
"guest_additions_mode": "none",
|
||||
"clone_from_vmcx_path": "generated",
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
common.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -483,7 +483,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
|
|||
defer os.RemoveAll(td)
|
||||
config["clone_from_vmcx_path"] = td
|
||||
|
||||
config[packer.UserVariablesConfigKey] = map[string]string{"test-variable": "test"}
|
||||
config[common.UserVariablesConfigKey] = map[string]string{"test-variable": "test"}
|
||||
config["boot_command"] = []string{"blah {{user `test-variable`}} blah"}
|
||||
|
||||
_, warns, err := b.Prepare(config)
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
|
@ -17,7 +17,7 @@ func testConfig() map[string]interface{} {
|
|||
"ssh_username": "foo",
|
||||
"parallels_tools_flavor": "lin",
|
||||
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
common.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
@ -49,7 +49,7 @@ func testConfig() map[string]interface{} {
|
|||
"iso_checksum": "md5:0B0F137F17AC10944716020B018F8126",
|
||||
"iso_url": "http://www.google.com/",
|
||||
"ssh_username": "foo",
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
common.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import (
|
|||
|
||||
"github.com/hashicorp/packer/builder/virtualbox/iso"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
|
||||
testshelper "github.com/hashicorp/packer/helper/tests"
|
||||
|
@ -40,8 +39,8 @@ func (v *VirtualBoxISOAccTest) CleanUp() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (v *VirtualBoxISOAccTest) GetBuilderStore() packer.MapOfBuilder {
|
||||
return packer.MapOfBuilder{
|
||||
func (v *VirtualBoxISOAccTest) GetBuilderStore() packersdk.MapOfBuilder {
|
||||
return packersdk.MapOfBuilder{
|
||||
"virtualbox-iso": func() (packersdk.Builder, error) { return &iso.Builder{}, nil },
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/builder/virtualbox/common"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packercommon "github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
|
@ -17,7 +17,7 @@ func testConfig() map[string]interface{} {
|
|||
"shutdown_command": "yes",
|
||||
"ssh_username": "foo",
|
||||
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
packercommon.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
|
@ -18,7 +18,7 @@ func testConfig() map[string]interface{} {
|
|||
"shutdown_command": "foo",
|
||||
"ssh_username": "foo",
|
||||
|
||||
packer.BuildNameConfigKey: "foo",
|
||||
common.BuildNameConfigKey: "foo",
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -138,16 +138,16 @@ func setupVMwareBuild(t *testing.T, builderConfig map[string]string, provisioner
|
|||
|
||||
// create our config to test the vmware-iso builder
|
||||
components := packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"vmware-iso": func() (packersdk.Builder, error) { return &Builder{}, nil },
|
||||
},
|
||||
Hook: func(n string) (packersdk.Hook, error) {
|
||||
return &packersdk.DispatchHook{}, nil
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
},
|
||||
PostProcessorStore: packer.MapOfPostProcessor{
|
||||
PostProcessorStore: packersdk.MapOfPostProcessor{
|
||||
"something": func() (packersdk.PostProcessor, error) { return &packer.MockPostProcessor{}, nil },
|
||||
},
|
||||
}
|
||||
|
|
|
@ -68,12 +68,12 @@ func testMetaParallel(t *testing.T, builder *ParallelTestBuilder, locked *Locked
|
|||
return Meta{
|
||||
CoreConfig: &packer.CoreConfig{
|
||||
Components: packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"parallel-test": func() (packersdk.Builder, error) { return builder, nil },
|
||||
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
|
||||
"lock": func() (packersdk.Builder, error) { return locked, nil },
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil },
|
||||
},
|
||||
},
|
||||
|
|
|
@ -836,16 +836,16 @@ func fileExists(filename string) bool {
|
|||
// available. This allows us to test a builder that writes files to disk.
|
||||
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
|
||||
components := packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
|
||||
"null": func() (packersdk.Builder, error) { return &null.Builder{}, nil },
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"shell-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
|
||||
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
"file": func() (packersdk.Provisioner, error) { return &filep.Provisioner{}, nil },
|
||||
},
|
||||
PostProcessorStore: packer.MapOfPostProcessor{
|
||||
PostProcessorStore: packersdk.MapOfPostProcessor{
|
||||
"shell-local": func() (packersdk.PostProcessor, error) { return &shell_local_pp.PostProcessor{}, nil },
|
||||
"manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil },
|
||||
},
|
||||
|
|
|
@ -16,10 +16,10 @@ import (
|
|||
// available. This allows us to test a builder that writes files to disk.
|
||||
func testCoreConfigSleepBuilder(t *testing.T) *packer.CoreConfig {
|
||||
components := packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil },
|
||||
"shell-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
|
||||
},
|
||||
|
|
|
@ -118,17 +118,17 @@ func commandMeta() Meta {
|
|||
|
||||
func getBareComponentFinder() packer.ComponentFinder {
|
||||
return packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
|
||||
"null": func() (packersdk.Builder, error) { return &null.Builder{}, nil },
|
||||
"amazon-ebs": func() (packersdk.Builder, error) { return &ebs.Builder{}, nil },
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"shell-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
|
||||
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
"file": func() (packersdk.Provisioner, error) { return &filep.Provisioner{}, nil },
|
||||
},
|
||||
PostProcessorStore: packer.MapOfPostProcessor{
|
||||
PostProcessorStore: packersdk.MapOfPostProcessor{
|
||||
"shell-local": func() (packersdk.PostProcessor, error) { return &shell_local_pp.PostProcessor{}, nil },
|
||||
"manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil },
|
||||
},
|
||||
|
|
|
@ -12,7 +12,6 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/hashicorp/packer/command"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/hashicorp/packer/packer/plugin"
|
||||
)
|
||||
|
@ -27,9 +26,9 @@ type config struct {
|
|||
RawBuilders map[string]string `json:"builders"`
|
||||
RawProvisioners map[string]string `json:"provisioners"`
|
||||
RawPostProcessors map[string]string `json:"post-processors"`
|
||||
Builders packer.MapOfBuilder `json:"-"`
|
||||
Provisioners packer.MapOfProvisioner `json:"-"`
|
||||
PostProcessors packer.MapOfPostProcessor `json:"-"`
|
||||
Builders packersdk.MapOfBuilder `json:"-"`
|
||||
Provisioners packersdk.MapOfProvisioner `json:"-"`
|
||||
PostProcessors packersdk.MapOfPostProcessor `json:"-"`
|
||||
Plugins plugin.Config
|
||||
}
|
||||
|
||||
|
|
116
config_test.go
116
config_test.go
|
@ -11,9 +11,109 @@ import (
|
|||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/hashicorp/packer/packer/plugin"
|
||||
)
|
||||
|
||||
func newConfig() config {
|
||||
var conf config
|
||||
conf.PluginMinPort = 10000
|
||||
conf.PluginMaxPort = 25000
|
||||
conf.Builders = packersdk.MapOfBuilder{}
|
||||
conf.PostProcessors = packersdk.MapOfPostProcessor{}
|
||||
conf.Provisioners = packersdk.MapOfProvisioner{}
|
||||
|
||||
return conf
|
||||
}
|
||||
func TestDiscoverReturnsIfMagicCookieSet(t *testing.T) {
|
||||
config := newConfig()
|
||||
|
||||
os.Setenv(plugin.MagicCookieKey, plugin.MagicCookieValue)
|
||||
defer os.Unsetenv(plugin.MagicCookieKey)
|
||||
|
||||
err := config.Discover()
|
||||
if err != nil {
|
||||
t.Fatalf("Should not have errored: %s", err)
|
||||
}
|
||||
|
||||
if len(config.Builders) != 0 {
|
||||
t.Fatalf("Should not have tried to find builders")
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnvVarPackerPluginPath(t *testing.T) {
|
||||
// Create a temporary directory to store plugins in
|
||||
dir, _, cleanUpFunc, err := generateFakePlugins("custom_plugin_dir",
|
||||
[]string{"packer-provisioner-partyparrot"})
|
||||
if err != nil {
|
||||
t.Fatalf("Error creating fake custom plugins: %s", err)
|
||||
}
|
||||
|
||||
defer cleanUpFunc()
|
||||
|
||||
// Add temp dir to path.
|
||||
os.Setenv("PACKER_PLUGIN_PATH", dir)
|
||||
defer os.Unsetenv("PACKER_PLUGIN_PATH")
|
||||
|
||||
config := newConfig()
|
||||
|
||||
err = config.Discover()
|
||||
if err != nil {
|
||||
t.Fatalf("Should not have errored: %s", err)
|
||||
}
|
||||
|
||||
if len(config.Provisioners) == 0 {
|
||||
t.Fatalf("Should have found partyparrot provisioner")
|
||||
}
|
||||
if _, ok := config.Provisioners["partyparrot"]; !ok {
|
||||
t.Fatalf("Should have found partyparrot provisioner.")
|
||||
}
|
||||
}
|
||||
|
||||
func TestEnvVarPackerPluginPath_MultiplePaths(t *testing.T) {
|
||||
// Create a temporary directory to store plugins in
|
||||
dir, _, cleanUpFunc, err := generateFakePlugins("custom_plugin_dir",
|
||||
[]string{"packer-provisioner-partyparrot"})
|
||||
if err != nil {
|
||||
t.Fatalf("Error creating fake custom plugins: %s", err)
|
||||
}
|
||||
|
||||
defer cleanUpFunc()
|
||||
|
||||
pathsep := ":"
|
||||
if runtime.GOOS == "windows" {
|
||||
pathsep = ";"
|
||||
}
|
||||
|
||||
// Create a second dir to look in that will be empty
|
||||
decoyDir, err := ioutil.TempDir("", "decoy")
|
||||
if err != nil {
|
||||
t.Fatalf("Failed to create a temporary test dir.")
|
||||
}
|
||||
defer os.Remove(decoyDir)
|
||||
|
||||
pluginPath := dir + pathsep + decoyDir
|
||||
|
||||
// Add temp dir to path.
|
||||
os.Setenv("PACKER_PLUGIN_PATH", pluginPath)
|
||||
defer os.Unsetenv("PACKER_PLUGIN_PATH")
|
||||
|
||||
config := newConfig()
|
||||
|
||||
err = config.Discover()
|
||||
if err != nil {
|
||||
t.Fatalf("Should not have errored: %s", err)
|
||||
}
|
||||
|
||||
if len(config.Provisioners) == 0 {
|
||||
t.Fatalf("Should have found partyparrot provisioner")
|
||||
}
|
||||
if _, ok := config.Provisioners["partyparrot"]; !ok {
|
||||
t.Fatalf("Should have found partyparrot provisioner.")
|
||||
}
|
||||
}
|
||||
|
||||
>>>>>>> move packer config constants next to the packer config
|
||||
func TestDecodeConfig(t *testing.T) {
|
||||
|
||||
packerConfig := `
|
||||
|
@ -49,9 +149,9 @@ func TestLoadExternalComponentsFromConfig(t *testing.T) {
|
|||
defer cleanUpFunc()
|
||||
|
||||
var cfg config
|
||||
cfg.Builders = packer.MapOfBuilder{}
|
||||
cfg.PostProcessors = packer.MapOfPostProcessor{}
|
||||
cfg.Provisioners = packer.MapOfProvisioner{}
|
||||
cfg.Builders = packersdk.MapOfBuilder{}
|
||||
cfg.PostProcessors = packersdk.MapOfPostProcessor{}
|
||||
cfg.Provisioners = packersdk.MapOfProvisioner{}
|
||||
|
||||
if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil {
|
||||
t.Fatalf("error encountered decoding configuration: %v", err)
|
||||
|
@ -81,7 +181,7 @@ func TestLoadExternalComponentsFromConfig_onlyProvisioner(t *testing.T) {
|
|||
defer cleanUpFunc()
|
||||
|
||||
var cfg config
|
||||
cfg.Provisioners = packer.MapOfProvisioner{}
|
||||
cfg.Provisioners = packersdk.MapOfProvisioner{}
|
||||
|
||||
if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil {
|
||||
t.Fatalf("error encountered decoding configuration: %v", err)
|
||||
|
@ -126,9 +226,9 @@ func TestLoadSingleComponent(t *testing.T) {
|
|||
}
|
||||
|
||||
var cfg config
|
||||
cfg.Builders = packer.MapOfBuilder{}
|
||||
cfg.PostProcessors = packer.MapOfPostProcessor{}
|
||||
cfg.Provisioners = packer.MapOfProvisioner{}
|
||||
cfg.Builders = packersdk.MapOfBuilder{}
|
||||
cfg.PostProcessors = packersdk.MapOfPostProcessor{}
|
||||
cfg.Provisioners = packersdk.MapOfProvisioner{}
|
||||
|
||||
for _, tc := range tt {
|
||||
tc := tc
|
||||
|
|
|
@ -20,16 +20,16 @@ import (
|
|||
func getBasicParser() *Parser {
|
||||
return &Parser{
|
||||
Parser: hclparse.NewParser(),
|
||||
BuilderSchemas: packer.MapOfBuilder{
|
||||
BuilderSchemas: packersdk.MapOfBuilder{
|
||||
"amazon-ebs": func() (packersdk.Builder, error) { return &MockBuilder{}, nil },
|
||||
"virtualbox-iso": func() (packersdk.Builder, error) { return &MockBuilder{}, nil },
|
||||
"null": func() (packersdk.Builder, error) { return &null.Builder{}, nil },
|
||||
},
|
||||
ProvisionersSchemas: packer.MapOfProvisioner{
|
||||
ProvisionersSchemas: packersdk.MapOfProvisioner{
|
||||
"shell": func() (packersdk.Provisioner, error) { return &MockProvisioner{}, nil },
|
||||
"file": func() (packersdk.Provisioner, error) { return &MockProvisioner{}, nil },
|
||||
},
|
||||
PostProcessorsSchemas: packer.MapOfPostProcessor{
|
||||
PostProcessorsSchemas: packersdk.MapOfPostProcessor{
|
||||
"amazon-import": func() (packersdk.PostProcessor, error) { return &MockPostProcessor{}, nil },
|
||||
"manifest": func() (packersdk.PostProcessor, error) { return &MockPostProcessor{}, nil },
|
||||
},
|
||||
|
|
|
@ -14,7 +14,7 @@ import (
|
|||
amazonEBS "github.com/hashicorp/packer/builder/amazon/ebs/acceptance"
|
||||
virtualboxISO "github.com/hashicorp/packer/builder/virtualbox/iso/acceptance"
|
||||
"github.com/hashicorp/packer/command"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
func TestProvisionersAgainstBuilders(provisionerAcc ProvisionerAcceptance, t *testing.T) {
|
||||
|
@ -133,14 +133,14 @@ func buildCommand(t *testing.T, builder BuilderAcceptance, provisioner Provision
|
|||
type ProvisionerAcceptance interface {
|
||||
GetName() string
|
||||
GetConfig() (string, error)
|
||||
GetProvisionerStore() packer.MapOfProvisioner
|
||||
GetProvisionerStore() packersdk.MapOfProvisioner
|
||||
IsCompatible(builder string, vmOS string) bool
|
||||
RunTest(c *command.BuildCommand, args []string) error
|
||||
}
|
||||
|
||||
type BuilderAcceptance interface {
|
||||
GetConfigs() (map[string]string, error)
|
||||
GetBuilderStore() packer.MapOfBuilder
|
||||
GetBuilderStore() packersdk.MapOfBuilder
|
||||
CleanUp() error
|
||||
}
|
||||
|
||||
|
|
|
@ -25,14 +25,14 @@ func FileExists(filename string) bool {
|
|||
// available. This allows us to test a builder that writes files to disk.
|
||||
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
|
||||
components := packer.ComponentFinder{
|
||||
BuilderStore: packer.MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"amazon-ebs": func() (packersdk.Builder, error) { return &amazonebsbuilder.Builder{}, nil },
|
||||
},
|
||||
ProvisionerStore: packer.MapOfProvisioner{
|
||||
ProvisionerStore: packersdk.MapOfProvisioner{
|
||||
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
"file": func() (packersdk.Provisioner, error) { return &fileprovisioner.Provisioner{}, nil },
|
||||
},
|
||||
PostProcessorStore: packer.MapOfPostProcessor{},
|
||||
PostProcessorStore: packersdk.MapOfPostProcessor{},
|
||||
}
|
||||
return &packer.CoreConfig{
|
||||
Components: components,
|
||||
|
|
|
@ -1,5 +1,42 @@
|
|||
package common
|
||||
|
||||
const (
|
||||
// This is the key in configurations that is set to the name of the
|
||||
// build.
|
||||
BuildNameConfigKey = "packer_build_name"
|
||||
|
||||
// This is the key in the configuration that is set to the type
|
||||
// of the builder that is run. This is useful for provisioners and
|
||||
// such who want to make use of this.
|
||||
BuilderTypeConfigKey = "packer_builder_type"
|
||||
|
||||
// this is the key in the configuration that is set to the version of the
|
||||
// Packer Core. This can be used by plugins to set user agents, etc, without
|
||||
// having to import the Core to find out the Packer version.
|
||||
CoreVersionConfigKey = "packer_core_version"
|
||||
|
||||
// This is the key in configurations that is set to "true" when Packer
|
||||
// debugging is enabled.
|
||||
DebugConfigKey = "packer_debug"
|
||||
|
||||
// This is the key in configurations that is set to "true" when Packer
|
||||
// force build is enabled.
|
||||
ForceConfigKey = "packer_force"
|
||||
|
||||
// This key determines what to do when a normal multistep step fails
|
||||
// - "cleanup" - run cleanup steps
|
||||
// - "abort" - exit without cleanup
|
||||
// - "ask" - ask the user
|
||||
OnErrorConfigKey = "packer_on_error"
|
||||
|
||||
// TemplatePathKey is the path to the template that configured this build
|
||||
TemplatePathKey = "packer_template_path"
|
||||
|
||||
// This key contains a map[string]string of the user variables for
|
||||
// template processing.
|
||||
UserVariablesConfigKey = "packer_user_variables"
|
||||
)
|
||||
|
||||
// PackerConfig is a struct that contains the configuration keys that
|
||||
// are sent by packer, properly tagged already so mapstructure can load
|
||||
// them. Embed this structure into your configuration class to get access to
|
||||
|
|
|
@ -2,18 +2,16 @@ package packer
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
type MapOfProvisioner map[string]func() (packersdk.Provisioner, error)
|
||||
type MapOfProvisioner map[string]func() (Provisioner, error)
|
||||
|
||||
func (mop MapOfProvisioner) Has(provisioner string) bool {
|
||||
_, res := mop[provisioner]
|
||||
return res
|
||||
}
|
||||
|
||||
func (mop MapOfProvisioner) Start(provisioner string) (packersdk.Provisioner, error) {
|
||||
func (mop MapOfProvisioner) Start(provisioner string) (Provisioner, error) {
|
||||
p, found := mop[provisioner]
|
||||
if !found {
|
||||
return nil, fmt.Errorf("Unknown provisioner %s", provisioner)
|
||||
|
@ -29,14 +27,14 @@ func (mop MapOfProvisioner) List() []string {
|
|||
return res
|
||||
}
|
||||
|
||||
type MapOfPostProcessor map[string]func() (packersdk.PostProcessor, error)
|
||||
type MapOfPostProcessor map[string]func() (PostProcessor, error)
|
||||
|
||||
func (mopp MapOfPostProcessor) Has(postProcessor string) bool {
|
||||
_, res := mopp[postProcessor]
|
||||
return res
|
||||
}
|
||||
|
||||
func (mopp MapOfPostProcessor) Start(postProcessor string) (packersdk.PostProcessor, error) {
|
||||
func (mopp MapOfPostProcessor) Start(postProcessor string) (PostProcessor, error) {
|
||||
p, found := mopp[postProcessor]
|
||||
if !found {
|
||||
return nil, fmt.Errorf("Unknown post-processor %s", postProcessor)
|
||||
|
@ -52,14 +50,14 @@ func (mopp MapOfPostProcessor) List() []string {
|
|||
return res
|
||||
}
|
||||
|
||||
type MapOfBuilder map[string]func() (packersdk.Builder, error)
|
||||
type MapOfBuilder map[string]func() (Builder, error)
|
||||
|
||||
func (mob MapOfBuilder) Has(builder string) bool {
|
||||
_, res := mob[builder]
|
||||
return res
|
||||
}
|
||||
|
||||
func (mob MapOfBuilder) Start(builder string) (packersdk.Builder, error) {
|
||||
func (mob MapOfBuilder) Start(builder string) (Builder, error) {
|
||||
d, found := mob[builder]
|
||||
if !found {
|
||||
return nil, fmt.Errorf("Unknown builder %s", builder)
|
|
@ -6,48 +6,12 @@ import (
|
|||
"log"
|
||||
"sync"
|
||||
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/packerbuilderdata"
|
||||
"github.com/hashicorp/packer/version"
|
||||
)
|
||||
|
||||
const (
|
||||
// This is the key in configurations that is set to the name of the
|
||||
// build.
|
||||
BuildNameConfigKey = "packer_build_name"
|
||||
|
||||
// This is the key in the configuration that is set to the type
|
||||
// of the builder that is run. This is useful for provisioners and
|
||||
// such who want to make use of this.
|
||||
BuilderTypeConfigKey = "packer_builder_type"
|
||||
|
||||
// this is the key in the configuration that is set to the version of the
|
||||
// Packer Core. This can be used by plugins to set user agents, etc, without
|
||||
// having to import the Core to find out the Packer version.
|
||||
CoreVersionConfigKey = "packer_core_version"
|
||||
|
||||
// This is the key in configurations that is set to "true" when Packer
|
||||
// debugging is enabled.
|
||||
DebugConfigKey = "packer_debug"
|
||||
|
||||
// This is the key in configurations that is set to "true" when Packer
|
||||
// force build is enabled.
|
||||
ForceConfigKey = "packer_force"
|
||||
|
||||
// This key determines what to do when a normal multistep step fails
|
||||
// - "cleanup" - run cleanup steps
|
||||
// - "abort" - exit without cleanup
|
||||
// - "ask" - ask the user
|
||||
OnErrorConfigKey = "packer_on_error"
|
||||
|
||||
// TemplatePathKey is the path to the template that configured this build
|
||||
TemplatePathKey = "packer_template_path"
|
||||
|
||||
// This key contains a map[string]string of the user variables for
|
||||
// template processing.
|
||||
UserVariablesConfigKey = "packer_user_variables"
|
||||
)
|
||||
|
||||
// A Build represents a single job within Packer that is responsible for
|
||||
// building some machine image artifact. Builds are meant to be parallelized.
|
||||
type Build interface {
|
||||
|
@ -165,14 +129,14 @@ func (b *CoreBuild) Prepare() (warn []string, err error) {
|
|||
b.prepareCalled = true
|
||||
|
||||
packerConfig := map[string]interface{}{
|
||||
BuildNameConfigKey: b.Type,
|
||||
BuilderTypeConfigKey: b.BuilderType,
|
||||
CoreVersionConfigKey: version.FormattedVersion(),
|
||||
DebugConfigKey: b.debug,
|
||||
ForceConfigKey: b.force,
|
||||
OnErrorConfigKey: b.onError,
|
||||
TemplatePathKey: b.TemplatePath,
|
||||
UserVariablesConfigKey: b.Variables,
|
||||
common.BuildNameConfigKey: b.Type,
|
||||
common.BuilderTypeConfigKey: b.BuilderType,
|
||||
common.CoreVersionConfigKey: version.FormattedVersion(),
|
||||
common.DebugConfigKey: b.debug,
|
||||
common.ForceConfigKey: b.force,
|
||||
common.OnErrorConfigKey: b.onError,
|
||||
common.TemplatePathKey: b.TemplatePath,
|
||||
common.UserVariablesConfigKey: b.Variables,
|
||||
}
|
||||
|
||||
// Prepare the builder
|
||||
|
|
|
@ -5,6 +5,7 @@ import (
|
|||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/packerbuilderdata"
|
||||
"github.com/hashicorp/packer/version"
|
||||
|
@ -41,14 +42,14 @@ func testBuild() *CoreBuild {
|
|||
|
||||
func testDefaultPackerConfig() map[string]interface{} {
|
||||
return map[string]interface{}{
|
||||
BuildNameConfigKey: "test",
|
||||
BuilderTypeConfigKey: "foo",
|
||||
CoreVersionConfigKey: version.FormattedVersion(),
|
||||
DebugConfigKey: false,
|
||||
ForceConfigKey: false,
|
||||
OnErrorConfigKey: "cleanup",
|
||||
TemplatePathKey: "",
|
||||
UserVariablesConfigKey: make(map[string]string),
|
||||
common.BuildNameConfigKey: "test",
|
||||
common.BuilderTypeConfigKey: "foo",
|
||||
common.CoreVersionConfigKey: version.FormattedVersion(),
|
||||
common.DebugConfigKey: false,
|
||||
common.ForceConfigKey: false,
|
||||
common.OnErrorConfigKey: "cleanup",
|
||||
common.TemplatePathKey: "",
|
||||
common.UserVariablesConfigKey: make(map[string]string),
|
||||
}
|
||||
}
|
||||
func TestBuild_Name(t *testing.T) {
|
||||
|
@ -144,7 +145,7 @@ func TestBuildPrepare_BuilderWarnings(t *testing.T) {
|
|||
|
||||
func TestBuild_Prepare_Debug(t *testing.T) {
|
||||
packerConfig := testDefaultPackerConfig()
|
||||
packerConfig[DebugConfigKey] = true
|
||||
packerConfig[common.DebugConfigKey] = true
|
||||
|
||||
build := testBuild()
|
||||
builder := build.Builder.(*MockBuilder)
|
||||
|
@ -170,7 +171,7 @@ func TestBuild_Prepare_Debug(t *testing.T) {
|
|||
|
||||
func TestBuildPrepare_variables_default(t *testing.T) {
|
||||
packerConfig := testDefaultPackerConfig()
|
||||
packerConfig[UserVariablesConfigKey] = map[string]string{
|
||||
packerConfig[common.UserVariablesConfigKey] = map[string]string{
|
||||
"foo": "bar",
|
||||
}
|
||||
|
||||
|
|
|
@ -800,7 +800,7 @@ func TestCoreBuild_provRetry(t *testing.T) {
|
|||
b := TestBuilder(t, config, "test")
|
||||
pString := new(MockProvisioner)
|
||||
pInt := new(MockProvisioner)
|
||||
config.Components.ProvisionerStore = MapOfProvisioner{
|
||||
config.Components.ProvisionerStore = packersdk.MapOfProvisioner{
|
||||
"test-string": func() (packersdk.Provisioner, error) { return pString, nil },
|
||||
// backwards compatibility
|
||||
"test-integer": func() (packersdk.Provisioner, error) { return pInt, nil },
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
func TestCoreConfig(t *testing.T) *CoreConfig {
|
||||
// Create some test components
|
||||
components := ComponentFinder{
|
||||
BuilderStore: MapOfBuilder{
|
||||
BuilderStore: packersdk.MapOfBuilder{
|
||||
"test": func() (packersdk.Builder, error) { return &MockBuilder{}, nil },
|
||||
},
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ func TestUi(t *testing.T) packersdk.Ui {
|
|||
func TestBuilder(t *testing.T, c *CoreConfig, n string) *MockBuilder {
|
||||
var b MockBuilder
|
||||
|
||||
c.Components.BuilderStore = MapOfBuilder{
|
||||
c.Components.BuilderStore = packersdk.MapOfBuilder{
|
||||
n: func() (packersdk.Builder, error) { return &b, nil },
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ func TestBuilder(t *testing.T, c *CoreConfig, n string) *MockBuilder {
|
|||
func TestProvisioner(t *testing.T, c *CoreConfig, n string) *MockProvisioner {
|
||||
var b MockProvisioner
|
||||
|
||||
c.Components.ProvisionerStore = MapOfProvisioner{
|
||||
c.Components.ProvisionerStore = packersdk.MapOfProvisioner{
|
||||
n: func() (packersdk.Provisioner, error) { return &b, nil },
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ func TestProvisioner(t *testing.T, c *CoreConfig, n string) *MockProvisioner {
|
|||
func TestPostProcessor(t *testing.T, c *CoreConfig, n string) *MockPostProcessor {
|
||||
var b MockPostProcessor
|
||||
|
||||
c.Components.PostProcessorStore = MapOfPostProcessor{
|
||||
c.Components.PostProcessorStore = packersdk.MapOfPostProcessor{
|
||||
n: func() (packersdk.PostProcessor, error) { return &b, nil },
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
)
|
||||
|
||||
|
@ -303,7 +303,7 @@ func TestProvisionerPrepare_json(t *testing.T) {
|
|||
"foo": "{{ user `foo` }}",
|
||||
}
|
||||
|
||||
config[packer.UserVariablesConfigKey] = map[string]string{
|
||||
config[common.UserVariablesConfigKey] = map[string]string{
|
||||
"foo": `"bar\baz"`,
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import (
|
|||
"github.com/hashicorp/go-uuid"
|
||||
"github.com/hashicorp/packer/command"
|
||||
"github.com/hashicorp/packer/helper/tests/acc"
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/hashicorp/packer/provisioner/powershell"
|
||||
windowsshellprovisioner "github.com/hashicorp/packer/provisioner/windows-shell"
|
||||
|
@ -63,8 +62,8 @@ func (s *PowershellProvisionerAccTest) GetConfig() (string, error) {
|
|||
return string(file), nil
|
||||
}
|
||||
|
||||
func (s *PowershellProvisionerAccTest) GetProvisionerStore() packer.MapOfProvisioner {
|
||||
return packer.MapOfProvisioner{
|
||||
func (s *PowershellProvisionerAccTest) GetProvisionerStore() packersdk.MapOfProvisioner {
|
||||
return packersdk.MapOfProvisioner{
|
||||
TestProvisionerName: func() (packersdk.Provisioner, error) { return &powershell.Provisioner{}, nil },
|
||||
"windows-shell": func() (packersdk.Provisioner, error) { return &windowsshellprovisioner.Provisioner{}, nil },
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/common"
|
||||
"github.com/hashicorp/packer/packer-plugin-sdk/multistep/commonsteps"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
@ -89,7 +89,7 @@ func TestProvisionerPrepare_Config(t *testing.T) {
|
|||
config := testConfig()
|
||||
config["elevated_user"] = "{{user `user`}}"
|
||||
config["elevated_password"] = "{{user `password`}}"
|
||||
config[packer.UserVariablesConfigKey] = map[string]string{
|
||||
config[common.UserVariablesConfigKey] = map[string]string{
|
||||
"user": "myusername",
|
||||
"password": "mypassword",
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ import (
|
|||
"github.com/hashicorp/packer/helper/tests/acc"
|
||||
"github.com/hashicorp/packer/provisioner/shell"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
|
||||
"github.com/hashicorp/packer/command"
|
||||
|
@ -40,8 +39,8 @@ func (s *ShellLocalProvisionerAccTest) GetConfig() (string, error) {
|
|||
return string(file), err
|
||||
}
|
||||
|
||||
func (s *ShellLocalProvisionerAccTest) GetProvisionerStore() packer.MapOfProvisioner {
|
||||
return packer.MapOfProvisioner{
|
||||
func (s *ShellLocalProvisionerAccTest) GetProvisionerStore() packersdk.MapOfProvisioner {
|
||||
return packersdk.MapOfProvisioner{
|
||||
"shell-local": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,6 @@ import (
|
|||
"github.com/hashicorp/packer/provisioner/file"
|
||||
"github.com/hashicorp/packer/provisioner/shell"
|
||||
|
||||
"github.com/hashicorp/packer/packer"
|
||||
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
|
||||
|
||||
"github.com/hashicorp/go-uuid"
|
||||
|
@ -43,8 +42,8 @@ func (s *ShellProvisionerAccTest) GetConfig() (string, error) {
|
|||
return string(file), err
|
||||
}
|
||||
|
||||
func (s *ShellProvisionerAccTest) GetProvisionerStore() packer.MapOfProvisioner {
|
||||
return packer.MapOfProvisioner{
|
||||
func (s *ShellProvisionerAccTest) GetProvisionerStore() packersdk.MapOfProvisioner {
|
||||
return packersdk.MapOfProvisioner{
|
||||
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
|
||||
"file": func() (packersdk.Provisioner, error) { return &file.Provisioner{}, nil },
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue