Commit 5576bb5c authored by Megan Marsh's avatar Megan Marsh
Browse files

move packer config constants next to the packer config

parent 8558d124
Showing with 199 additions and 67 deletions
+199 -67
...@@ -11,7 +11,6 @@ import ( ...@@ -11,7 +11,6 @@ import (
amazonebsbuilder "github.com/hashicorp/packer/builder/amazon/ebs" amazonebsbuilder "github.com/hashicorp/packer/builder/amazon/ebs"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
testshelper "github.com/hashicorp/packer/helper/tests" testshelper "github.com/hashicorp/packer/helper/tests"
...@@ -55,8 +54,8 @@ func (s *AmazonEBSAccTest) CleanUp() error { ...@@ -55,8 +54,8 @@ func (s *AmazonEBSAccTest) CleanUp() error {
return helper.CleanUpAmi() return helper.CleanUpAmi()
} }
func (s *AmazonEBSAccTest) GetBuilderStore() packer.MapOfBuilder { func (s *AmazonEBSAccTest) GetBuilderStore() packersdk.MapOfBuilder {
return packer.MapOfBuilder{ return packersdk.MapOfBuilder{
"amazon-ebs": func() (packersdk.Builder, error) { return &amazonebsbuilder.Builder{}, nil }, "amazon-ebs": func() (packersdk.Builder, error) { return &amazonebsbuilder.Builder{}, nil },
} }
} }
...@@ -10,7 +10,7 @@ import ( ...@@ -10,7 +10,7 @@ import (
"testing" "testing"
hypervcommon "github.com/hashicorp/packer/builder/hyperv/common" 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" "github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
) )
...@@ -26,7 +26,7 @@ func testConfig() map[string]interface{} { ...@@ -26,7 +26,7 @@ func testConfig() map[string]interface{} {
"disk_block_size": 1, "disk_block_size": 1,
"guest_additions_mode": "none", "guest_additions_mode": "none",
"disk_additional_size": "50000,40000,30000", "disk_additional_size": "50000,40000,30000",
packer.BuildNameConfigKey: "foo", common.BuildNameConfigKey: "foo",
} }
} }
...@@ -591,7 +591,7 @@ func TestUserVariablesInBootCommand(t *testing.T) { ...@@ -591,7 +591,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
var b Builder var b Builder
config := testConfig() 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"} config["boot_command"] = []string{"blah {{user `test-variable`}} blah"}
_, warns, err := b.Prepare(config) _, warns, err := b.Prepare(config)
......
...@@ -10,7 +10,7 @@ import ( ...@@ -10,7 +10,7 @@ import (
"os" "os"
hypervcommon "github.com/hashicorp/packer/builder/hyperv/common" 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" "github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
) )
...@@ -25,7 +25,7 @@ func testConfig() map[string]interface{} { ...@@ -25,7 +25,7 @@ func testConfig() map[string]interface{} {
"memory": 64, "memory": 64,
"guest_additions_mode": "none", "guest_additions_mode": "none",
"clone_from_vmcx_path": "generated", "clone_from_vmcx_path": "generated",
packer.BuildNameConfigKey: "foo", common.BuildNameConfigKey: "foo",
} }
} }
...@@ -483,7 +483,7 @@ func TestUserVariablesInBootCommand(t *testing.T) { ...@@ -483,7 +483,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
defer os.RemoveAll(td) defer os.RemoveAll(td)
config["clone_from_vmcx_path"] = 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"} config["boot_command"] = []string{"blah {{user `test-variable`}} blah"}
_, warns, err := b.Prepare(config) _, warns, err := b.Prepare(config)
......
...@@ -5,7 +5,7 @@ import ( ...@@ -5,7 +5,7 @@ import (
"reflect" "reflect"
"testing" "testing"
"github.com/hashicorp/packer/packer" "github.com/hashicorp/packer/packer-plugin-sdk/common"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
) )
...@@ -17,7 +17,7 @@ func testConfig() map[string]interface{} { ...@@ -17,7 +17,7 @@ func testConfig() map[string]interface{} {
"ssh_username": "foo", "ssh_username": "foo",
"parallels_tools_flavor": "lin", "parallels_tools_flavor": "lin",
packer.BuildNameConfigKey: "foo", common.BuildNameConfigKey: "foo",
} }
} }
......
...@@ -9,7 +9,7 @@ import ( ...@@ -9,7 +9,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/hashicorp/packer/packer" "github.com/hashicorp/packer/packer-plugin-sdk/common"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
...@@ -49,7 +49,7 @@ func testConfig() map[string]interface{} { ...@@ -49,7 +49,7 @@ func testConfig() map[string]interface{} {
"iso_checksum": "md5:0B0F137F17AC10944716020B018F8126", "iso_checksum": "md5:0B0F137F17AC10944716020B018F8126",
"iso_url": "http://www.google.com/", "iso_url": "http://www.google.com/",
"ssh_username": "foo", "ssh_username": "foo",
packer.BuildNameConfigKey: "foo", common.BuildNameConfigKey: "foo",
} }
} }
......
...@@ -11,7 +11,6 @@ import ( ...@@ -11,7 +11,6 @@ import (
"github.com/hashicorp/packer/builder/virtualbox/iso" "github.com/hashicorp/packer/builder/virtualbox/iso"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
testshelper "github.com/hashicorp/packer/helper/tests" testshelper "github.com/hashicorp/packer/helper/tests"
...@@ -40,8 +39,8 @@ func (v *VirtualBoxISOAccTest) CleanUp() error { ...@@ -40,8 +39,8 @@ func (v *VirtualBoxISOAccTest) CleanUp() error {
return nil return nil
} }
func (v *VirtualBoxISOAccTest) GetBuilderStore() packer.MapOfBuilder { func (v *VirtualBoxISOAccTest) GetBuilderStore() packersdk.MapOfBuilder {
return packer.MapOfBuilder{ return packersdk.MapOfBuilder{
"virtualbox-iso": func() (packersdk.Builder, error) { return &iso.Builder{}, nil }, "virtualbox-iso": func() (packersdk.Builder, error) { return &iso.Builder{}, nil },
} }
} }
...@@ -6,7 +6,7 @@ import ( ...@@ -6,7 +6,7 @@ import (
"testing" "testing"
"github.com/hashicorp/packer/builder/virtualbox/common" "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" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
) )
...@@ -17,7 +17,7 @@ func testConfig() map[string]interface{} { ...@@ -17,7 +17,7 @@ func testConfig() map[string]interface{} {
"shutdown_command": "yes", "shutdown_command": "yes",
"ssh_username": "foo", "ssh_username": "foo",
packer.BuildNameConfigKey: "foo", packercommon.BuildNameConfigKey: "foo",
} }
} }
......
...@@ -7,7 +7,7 @@ import ( ...@@ -7,7 +7,7 @@ import (
"reflect" "reflect"
"testing" "testing"
"github.com/hashicorp/packer/packer" "github.com/hashicorp/packer/packer-plugin-sdk/common"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
) )
...@@ -18,7 +18,7 @@ func testConfig() map[string]interface{} { ...@@ -18,7 +18,7 @@ func testConfig() map[string]interface{} {
"shutdown_command": "foo", "shutdown_command": "foo",
"ssh_username": "foo", "ssh_username": "foo",
packer.BuildNameConfigKey: "foo", common.BuildNameConfigKey: "foo",
} }
} }
......
...@@ -138,16 +138,16 @@ func setupVMwareBuild(t *testing.T, builderConfig map[string]string, provisioner ...@@ -138,16 +138,16 @@ func setupVMwareBuild(t *testing.T, builderConfig map[string]string, provisioner
// create our config to test the vmware-iso builder // create our config to test the vmware-iso builder
components := packer.ComponentFinder{ components := packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"vmware-iso": func() (packersdk.Builder, error) { return &Builder{}, nil }, "vmware-iso": func() (packersdk.Builder, error) { return &Builder{}, nil },
}, },
Hook: func(n string) (packersdk.Hook, error) { Hook: func(n string) (packersdk.Hook, error) {
return &packersdk.DispatchHook{}, nil return &packersdk.DispatchHook{}, nil
}, },
ProvisionerStore: packer.MapOfProvisioner{ ProvisionerStore: packersdk.MapOfProvisioner{
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil }, "shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
}, },
PostProcessorStore: packer.MapOfPostProcessor{ PostProcessorStore: packersdk.MapOfPostProcessor{
"something": func() (packersdk.PostProcessor, error) { return &packer.MockPostProcessor{}, nil }, "something": func() (packersdk.PostProcessor, error) { return &packer.MockPostProcessor{}, nil },
}, },
} }
......
...@@ -68,12 +68,12 @@ func testMetaParallel(t *testing.T, builder *ParallelTestBuilder, locked *Locked ...@@ -68,12 +68,12 @@ func testMetaParallel(t *testing.T, builder *ParallelTestBuilder, locked *Locked
return Meta{ return Meta{
CoreConfig: &packer.CoreConfig{ CoreConfig: &packer.CoreConfig{
Components: packer.ComponentFinder{ Components: packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"parallel-test": func() (packersdk.Builder, error) { return builder, nil }, "parallel-test": func() (packersdk.Builder, error) { return builder, nil },
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil }, "file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
"lock": func() (packersdk.Builder, error) { return locked, nil }, "lock": func() (packersdk.Builder, error) { return locked, nil },
}, },
ProvisionerStore: packer.MapOfProvisioner{ ProvisionerStore: packersdk.MapOfProvisioner{
"sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil }, "sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil },
}, },
}, },
......
...@@ -836,16 +836,16 @@ func fileExists(filename string) bool { ...@@ -836,16 +836,16 @@ func fileExists(filename string) bool {
// available. This allows us to test a builder that writes files to disk. // available. This allows us to test a builder that writes files to disk.
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig { func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
components := packer.ComponentFinder{ components := packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil }, "file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
"null": func() (packersdk.Builder, error) { return &null.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-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil }, "shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
"file": func() (packersdk.Provisioner, error) { return &filep.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 }, "shell-local": func() (packersdk.PostProcessor, error) { return &shell_local_pp.PostProcessor{}, nil },
"manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil }, "manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil },
}, },
......
...@@ -16,10 +16,10 @@ import ( ...@@ -16,10 +16,10 @@ import (
// available. This allows us to test a builder that writes files to disk. // available. This allows us to test a builder that writes files to disk.
func testCoreConfigSleepBuilder(t *testing.T) *packer.CoreConfig { func testCoreConfigSleepBuilder(t *testing.T) *packer.CoreConfig {
components := packer.ComponentFinder{ components := packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil }, "file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
}, },
ProvisionerStore: packer.MapOfProvisioner{ ProvisionerStore: packersdk.MapOfProvisioner{
"sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil }, "sleep": func() (packersdk.Provisioner, error) { return &sleep.Provisioner{}, nil },
"shell-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil }, "shell-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
}, },
......
...@@ -118,17 +118,17 @@ func commandMeta() Meta { ...@@ -118,17 +118,17 @@ func commandMeta() Meta {
func getBareComponentFinder() packer.ComponentFinder { func getBareComponentFinder() packer.ComponentFinder {
return packer.ComponentFinder{ return packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"file": func() (packersdk.Builder, error) { return &file.Builder{}, nil }, "file": func() (packersdk.Builder, error) { return &file.Builder{}, nil },
"null": func() (packersdk.Builder, error) { return &null.Builder{}, nil }, "null": func() (packersdk.Builder, error) { return &null.Builder{}, nil },
"amazon-ebs": func() (packersdk.Builder, error) { return &ebs.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-local": func() (packersdk.Provisioner, error) { return &shell_local.Provisioner{}, nil },
"shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil }, "shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
"file": func() (packersdk.Provisioner, error) { return &filep.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 }, "shell-local": func() (packersdk.PostProcessor, error) { return &shell_local_pp.PostProcessor{}, nil },
"manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil }, "manifest": func() (packersdk.PostProcessor, error) { return &manifest.PostProcessor{}, nil },
}, },
......
...@@ -12,7 +12,6 @@ import ( ...@@ -12,7 +12,6 @@ import (
"strings" "strings"
"github.com/hashicorp/packer/command" "github.com/hashicorp/packer/command"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer" packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/hashicorp/packer/packer/plugin" "github.com/hashicorp/packer/packer/plugin"
) )
...@@ -22,14 +21,14 @@ import ( ...@@ -22,14 +21,14 @@ import (
const PACKERSPACE = "-PACKERSPACE-" const PACKERSPACE = "-PACKERSPACE-"
type config struct { type config struct {
DisableCheckpoint bool `json:"disable_checkpoint"` DisableCheckpoint bool `json:"disable_checkpoint"`
DisableCheckpointSignature bool `json:"disable_checkpoint_signature"` DisableCheckpointSignature bool `json:"disable_checkpoint_signature"`
RawBuilders map[string]string `json:"builders"` RawBuilders map[string]string `json:"builders"`
RawProvisioners map[string]string `json:"provisioners"` RawProvisioners map[string]string `json:"provisioners"`
RawPostProcessors map[string]string `json:"post-processors"` RawPostProcessors map[string]string `json:"post-processors"`
Builders packer.MapOfBuilder `json:"-"` Builders packersdk.MapOfBuilder `json:"-"`
Provisioners packer.MapOfProvisioner `json:"-"` Provisioners packersdk.MapOfProvisioner `json:"-"`
PostProcessors packer.MapOfPostProcessor `json:"-"` PostProcessors packersdk.MapOfPostProcessor `json:"-"`
Plugins plugin.Config Plugins plugin.Config
} }
......
...@@ -11,9 +11,109 @@ import ( ...@@ -11,9 +11,109 @@ import (
"strings" "strings"
"testing" "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) { func TestDecodeConfig(t *testing.T) {
packerConfig := ` packerConfig := `
...@@ -49,9 +149,9 @@ func TestLoadExternalComponentsFromConfig(t *testing.T) { ...@@ -49,9 +149,9 @@ func TestLoadExternalComponentsFromConfig(t *testing.T) {
defer cleanUpFunc() defer cleanUpFunc()
var cfg config var cfg config
cfg.Builders = packer.MapOfBuilder{} cfg.Builders = packersdk.MapOfBuilder{}
cfg.PostProcessors = packer.MapOfPostProcessor{} cfg.PostProcessors = packersdk.MapOfPostProcessor{}
cfg.Provisioners = packer.MapOfProvisioner{} cfg.Provisioners = packersdk.MapOfProvisioner{}
if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil { if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil {
t.Fatalf("error encountered decoding configuration: %v", err) t.Fatalf("error encountered decoding configuration: %v", err)
...@@ -81,7 +181,7 @@ func TestLoadExternalComponentsFromConfig_onlyProvisioner(t *testing.T) { ...@@ -81,7 +181,7 @@ func TestLoadExternalComponentsFromConfig_onlyProvisioner(t *testing.T) {
defer cleanUpFunc() defer cleanUpFunc()
var cfg config var cfg config
cfg.Provisioners = packer.MapOfProvisioner{} cfg.Provisioners = packersdk.MapOfProvisioner{}
if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil { if err := decodeConfig(strings.NewReader(packerConfigData), &cfg); err != nil {
t.Fatalf("error encountered decoding configuration: %v", err) t.Fatalf("error encountered decoding configuration: %v", err)
...@@ -126,9 +226,9 @@ func TestLoadSingleComponent(t *testing.T) { ...@@ -126,9 +226,9 @@ func TestLoadSingleComponent(t *testing.T) {
} }
var cfg config var cfg config
cfg.Builders = packer.MapOfBuilder{} cfg.Builders = packersdk.MapOfBuilder{}
cfg.PostProcessors = packer.MapOfPostProcessor{} cfg.PostProcessors = packersdk.MapOfPostProcessor{}
cfg.Provisioners = packer.MapOfProvisioner{} cfg.Provisioners = packersdk.MapOfProvisioner{}
for _, tc := range tt { for _, tc := range tt {
tc := tc tc := tc
......
...@@ -20,16 +20,16 @@ import ( ...@@ -20,16 +20,16 @@ import (
func getBasicParser() *Parser { func getBasicParser() *Parser {
return &Parser{ return &Parser{
Parser: hclparse.NewParser(), Parser: hclparse.NewParser(),
BuilderSchemas: packer.MapOfBuilder{ BuilderSchemas: packersdk.MapOfBuilder{
"amazon-ebs": func() (packersdk.Builder, error) { return &MockBuilder{}, nil }, "amazon-ebs": func() (packersdk.Builder, error) { return &MockBuilder{}, nil },
"virtualbox-iso": 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 }, "null": func() (packersdk.Builder, error) { return &null.Builder{}, nil },
}, },
ProvisionersSchemas: packer.MapOfProvisioner{ ProvisionersSchemas: packersdk.MapOfProvisioner{
"shell": func() (packersdk.Provisioner, error) { return &MockProvisioner{}, nil }, "shell": func() (packersdk.Provisioner, error) { return &MockProvisioner{}, nil },
"file": 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 }, "amazon-import": func() (packersdk.PostProcessor, error) { return &MockPostProcessor{}, nil },
"manifest": func() (packersdk.PostProcessor, error) { return &MockPostProcessor{}, nil }, "manifest": func() (packersdk.PostProcessor, error) { return &MockPostProcessor{}, nil },
}, },
......
...@@ -14,7 +14,7 @@ import ( ...@@ -14,7 +14,7 @@ import (
amazonEBS "github.com/hashicorp/packer/builder/amazon/ebs/acceptance" amazonEBS "github.com/hashicorp/packer/builder/amazon/ebs/acceptance"
virtualboxISO "github.com/hashicorp/packer/builder/virtualbox/iso/acceptance" virtualboxISO "github.com/hashicorp/packer/builder/virtualbox/iso/acceptance"
"github.com/hashicorp/packer/command" "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) { func TestProvisionersAgainstBuilders(provisionerAcc ProvisionerAcceptance, t *testing.T) {
...@@ -133,14 +133,14 @@ func buildCommand(t *testing.T, builder BuilderAcceptance, provisioner Provision ...@@ -133,14 +133,14 @@ func buildCommand(t *testing.T, builder BuilderAcceptance, provisioner Provision
type ProvisionerAcceptance interface { type ProvisionerAcceptance interface {
GetName() string GetName() string
GetConfig() (string, error) GetConfig() (string, error)
GetProvisionerStore() packer.MapOfProvisioner GetProvisionerStore() packersdk.MapOfProvisioner
IsCompatible(builder string, vmOS string) bool IsCompatible(builder string, vmOS string) bool
RunTest(c *command.BuildCommand, args []string) error RunTest(c *command.BuildCommand, args []string) error
} }
type BuilderAcceptance interface { type BuilderAcceptance interface {
GetConfigs() (map[string]string, error) GetConfigs() (map[string]string, error)
GetBuilderStore() packer.MapOfBuilder GetBuilderStore() packersdk.MapOfBuilder
CleanUp() error CleanUp() error
} }
......
...@@ -25,14 +25,14 @@ func FileExists(filename string) bool { ...@@ -25,14 +25,14 @@ func FileExists(filename string) bool {
// available. This allows us to test a builder that writes files to disk. // available. This allows us to test a builder that writes files to disk.
func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig { func testCoreConfigBuilder(t *testing.T) *packer.CoreConfig {
components := packer.ComponentFinder{ components := packer.ComponentFinder{
BuilderStore: packer.MapOfBuilder{ BuilderStore: packersdk.MapOfBuilder{
"amazon-ebs": func() (packersdk.Builder, error) { return &amazonebsbuilder.Builder{}, nil }, "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 }, "shell": func() (packersdk.Provisioner, error) { return &shell.Provisioner{}, nil },
"file": func() (packersdk.Provisioner, error) { return &fileprovisioner.Provisioner{}, nil }, "file": func() (packersdk.Provisioner, error) { return &fileprovisioner.Provisioner{}, nil },
}, },
PostProcessorStore: packer.MapOfPostProcessor{}, PostProcessorStore: packersdk.MapOfPostProcessor{},
} }
return &packer.CoreConfig{ return &packer.CoreConfig{
Components: components, Components: components,
......
package common 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 // PackerConfig is a struct that contains the configuration keys that
// are sent by packer, properly tagged already so mapstructure can load // are sent by packer, properly tagged already so mapstructure can load
// them. Embed this structure into your configuration class to get access to // them. Embed this structure into your configuration class to get access to
......
...@@ -2,18 +2,16 @@ package packer ...@@ -2,18 +2,16 @@ package packer
import ( import (
"fmt" "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 { func (mop MapOfProvisioner) Has(provisioner string) bool {
_, res := mop[provisioner] _, res := mop[provisioner]
return res return res
} }
func (mop MapOfProvisioner) Start(provisioner string) (packersdk.Provisioner, error) { func (mop MapOfProvisioner) Start(provisioner string) (Provisioner, error) {
p, found := mop[provisioner] p, found := mop[provisioner]
if !found { if !found {
return nil, fmt.Errorf("Unknown provisioner %s", provisioner) return nil, fmt.Errorf("Unknown provisioner %s", provisioner)
...@@ -29,14 +27,14 @@ func (mop MapOfProvisioner) List() []string { ...@@ -29,14 +27,14 @@ func (mop MapOfProvisioner) List() []string {
return res return res
} }
type MapOfPostProcessor map[string]func() (packersdk.PostProcessor, error) type MapOfPostProcessor map[string]func() (PostProcessor, error)
func (mopp MapOfPostProcessor) Has(postProcessor string) bool { func (mopp MapOfPostProcessor) Has(postProcessor string) bool {
_, res := mopp[postProcessor] _, res := mopp[postProcessor]
return res return res
} }
func (mopp MapOfPostProcessor) Start(postProcessor string) (packersdk.PostProcessor, error) { func (mopp MapOfPostProcessor) Start(postProcessor string) (PostProcessor, error) {
p, found := mopp[postProcessor] p, found := mopp[postProcessor]
if !found { if !found {
return nil, fmt.Errorf("Unknown post-processor %s", postProcessor) return nil, fmt.Errorf("Unknown post-processor %s", postProcessor)
...@@ -52,14 +50,14 @@ func (mopp MapOfPostProcessor) List() []string { ...@@ -52,14 +50,14 @@ func (mopp MapOfPostProcessor) List() []string {
return res return res
} }
type MapOfBuilder map[string]func() (packersdk.Builder, error) type MapOfBuilder map[string]func() (Builder, error)
func (mob MapOfBuilder) Has(builder string) bool { func (mob MapOfBuilder) Has(builder string) bool {
_, res := mob[builder] _, res := mob[builder]
return res return res
} }
func (mob MapOfBuilder) Start(builder string) (packersdk.Builder, error) { func (mob MapOfBuilder) Start(builder string) (Builder, error) {
d, found := mob[builder] d, found := mob[builder]
if !found { if !found {
return nil, fmt.Errorf("Unknown builder %s", builder) return nil, fmt.Errorf("Unknown builder %s", builder)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment