Merge pull request #10329 from hashicorp/sdk_testing_2

Sdk testing 2
This commit is contained in:
Megan Marsh 2020-12-03 10:35:43 -08:00 committed by GitHub
commit 5e49ddb285
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 226 additions and 264 deletions

View File

@ -9,7 +9,6 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/communicator"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
@ -240,7 +239,7 @@ func TestRun(t *testing.T) {
volumeId := aws.String("volume-id")
ec2Mock := defaultEc2Mock(instanceId, spotRequestId, volumeId)
uiMock := packer.TestUi(t)
uiMock := packersdk.TestUi(t)
state := tStateSpot()
state.Put("ec2", ec2Mock)
@ -332,7 +331,7 @@ func TestRun_NoSpotTags(t *testing.T) {
volumeId := aws.String("volume-id")
ec2Mock := defaultEc2Mock(instanceId, spotRequestId, volumeId)
uiMock := packer.TestUi(t)
uiMock := packersdk.TestUi(t)
state := tStateSpot()
state.Put("ec2", ec2Mock)

View File

@ -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 },
}
}

View File

@ -9,8 +9,8 @@ import (
"testing"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
@ -116,7 +116,7 @@ func TestStepCreateImage_Run(t *testing.T) {
state.Put("azureclient", &client.AzureClientSetMock{
ImagesClientMock: ic,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put(stateBagKey_Diskset, tt.diskset)
t.Run(tt.name, func(t *testing.T) {

View File

@ -10,8 +10,8 @@ import (
"testing"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
@ -224,7 +224,7 @@ func TestStepCreateNewDisk_Run(t *testing.T) {
DisksClientMock: m,
GalleryImageVersionsClientMock: giv,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
if got := s.Run(context.TODO(), state); !reflect.DeepEqual(got, tt.want) {
t.Errorf("StepCreateNewDisk.Run() = %v, want %v", got, tt.want)

View File

@ -9,8 +9,8 @@ import (
"testing"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
@ -126,7 +126,7 @@ func TestStepCreateSharedImageVersion_Run(t *testing.T) {
state.Put("azureclient", &client.AzureClientSetMock{
GalleryImageVersionsClientMock: m,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put(stateBagKey_Snapshotset, tt.snapshotset)
t.Run(tt.name, func(t *testing.T) {

View File

@ -11,8 +11,8 @@ import (
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
func TestStepCreateSnapshot_Run(t *testing.T) {
@ -101,7 +101,7 @@ func TestStepCreateSnapshot_Run(t *testing.T) {
state.Put("azureclient", &client.AzureClientSetMock{
SnapshotsClientMock: m,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put(stateBagKey_Diskset, tt.diskset)
t.Run(tt.name, func(t *testing.T) {
@ -136,7 +136,7 @@ func TestStepCreateSnapshot_Cleanup_skipped(t *testing.T) {
state.Put("azureclient", &client.AzureClientSetMock{
SnapshotsClientMock: m,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
s := &StepCreateSnapshotset{
SkipCleanup: true,
@ -185,7 +185,7 @@ func TestStepCreateSnapshot_Cleanup(t *testing.T) {
state.Put("azureclient", &client.AzureClientSetMock{
SnapshotsClientMock: m,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
s := &StepCreateSnapshotset{
SkipCleanup: false,

View File

@ -9,8 +9,8 @@ import (
"testing"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
@ -164,7 +164,7 @@ func TestStepVerifySharedImageDestination_Run(t *testing.T) {
GalleryImagesClientMock: gi,
GalleryImageVersionsClientMock: giv,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
t.Run(tt.name, func(t *testing.T) {
s := &StepVerifySharedImageDestination{

View File

@ -12,8 +12,8 @@ import (
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-12-01/compute"
"github.com/Azure/go-autorest/autorest"
"github.com/hashicorp/packer/builder/azure/common/client"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
func TestStepVerifySharedImageSource_Run(t *testing.T) {
@ -163,7 +163,7 @@ func TestStepVerifySharedImageSource_Run(t *testing.T) {
GalleryImageVersionsClientMock: giv,
GalleryImagesClientMock: gi,
})
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
t.Run(tt.name, func(t *testing.T) {
s := &StepVerifySharedImageSource{

View File

@ -18,7 +18,7 @@ import (
// TestUploadDownload verifies that basic upload / download functionality works
func TestUploadDownload(t *testing.T) {
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
tpl, err := template.Parse(strings.NewReader(dockerBuilderConfig))
if err != nil {
@ -101,7 +101,7 @@ func TestUploadDownload(t *testing.T) {
// need to use github.com/cbednarski/rerun to verify since this problem occurs
// only intermittently.
func TestLargeDownload(t *testing.T) {
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
tpl, err := template.Parse(strings.NewReader(dockerLargeBuilderConfig))
if err != nil {
@ -205,7 +205,7 @@ func TestLargeDownload(t *testing.T) {
// TestFixUploadOwner verifies that owner of uploaded files is the user the container is running as.
func TestFixUploadOwner(t *testing.T) {
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
tpl, err := template.Parse(strings.NewReader(testFixUploadOwnerTemplate))
if err != nil {

View File

@ -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)
@ -602,7 +602,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
t.Fatalf("should not have error: %s", err)
}
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
hook := &packersdk.MockHook{}
driver := &hypervcommon.DriverMock{}

View File

@ -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)
@ -494,7 +494,7 @@ func TestUserVariablesInBootCommand(t *testing.T) {
t.Fatalf("should not have error: %s", err)
}
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
hook := &packersdk.MockHook{}
driver := &hypervcommon.DriverMock{}

View File

@ -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",
}
}

View File

@ -6,8 +6,8 @@ import (
"testing"
"github.com/Telmate/proxmox-api-go/proxmox"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type converterMock struct {
@ -79,7 +79,7 @@ func TestConvertToTemplate(t *testing.T) {
}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("vmRef", proxmox.NewVmRef(vmid))
state.Put("proxmoxClient", converter)

View File

@ -6,8 +6,8 @@ import (
"testing"
"github.com/Telmate/proxmox-api-go/proxmox"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type finalizerMock struct {
@ -157,7 +157,7 @@ func TestTemplateFinalize(t *testing.T) {
}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("config", c.builderConfig)
state.Put("vmRef", proxmox.NewVmRef(1))
state.Put("proxmoxClient", finalizer)

View File

@ -5,8 +5,8 @@ import (
"testing"
"github.com/Telmate/proxmox-api-go/proxmox"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type startedVMCleanerMock struct {
@ -85,7 +85,7 @@ func TestCleanupStartVM(t *testing.T) {
}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("proxmoxClient", cleaner)
if c.setVmRef {
state.Put("vmRef", proxmox.NewVmRef(1))

View File

@ -7,9 +7,9 @@ import (
"testing"
"github.com/Telmate/proxmox-api-go/proxmox"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/bootcommand"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type commandTyperMock struct {
@ -128,7 +128,7 @@ func TestTypeBootCommand(t *testing.T) {
}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("config", c.builderConfig)
state.Put("http_port", int(0))
state.Put("vmRef", proxmox.NewVmRef(1))

View File

@ -6,8 +6,8 @@ import (
"testing"
"github.com/Telmate/proxmox-api-go/proxmox"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type finalizerMock struct {
@ -116,7 +116,7 @@ func TestISOTemplateFinalize(t *testing.T) {
}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("iso-config", c.builderConfig)
state.Put("vmRef", proxmox.NewVmRef(1))
state.Put("proxmoxClient", finalizer)

View File

@ -6,9 +6,9 @@ import (
"io"
"testing"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep/commonsteps"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
type uploaderMock struct {
@ -105,7 +105,7 @@ func TestUploadISO(t *testing.T) {
m := &uploaderMock{fail: c.failUpload}
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("iso-config", c.builderConfig)
state.Put(downloadPathKey, c.downloadPath)
state.Put("proxmoxClient", m)

View File

@ -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",
}
}

View File

@ -4,14 +4,14 @@ import (
"context"
"testing"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/stretchr/testify/assert"
)
func copyTestState(t *testing.T, d *DriverMock) multistep.StateBag {
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
state.Put("driver", d)
state.Put("iso_path", "example_source.qcow2")

View File

@ -4,10 +4,10 @@ import (
"fmt"
"testing"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/communicator"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep/commonsteps"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/stretchr/testify/assert"
)
@ -92,7 +92,7 @@ func Test_UserOverrides(t *testing.T) {
step := &stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
}
args, err := step.getCommandArgs(tc.Config, state)
if err != nil {
@ -130,7 +130,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
map[string]interface{}{},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -155,7 +155,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
&stepRun{
DiskImage: true,
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -183,7 +183,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
&stepRun{
DiskImage: true,
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -212,7 +212,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -244,7 +244,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -274,7 +274,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -294,7 +294,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -314,7 +314,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -338,7 +338,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: false,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-boot", "once=d",
@ -360,7 +360,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -386,7 +386,7 @@ func Test_DriveAndDeviceArgs(t *testing.T) {
&stepRun{
DiskImage: true,
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{
"-display", "gtk",
@ -436,7 +436,7 @@ func Test_OptionalConfigOptionsGetSet(t *testing.T) {
state := runTestState(t, c)
step := &stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
}
args, err := step.getCommandArgs(c, state)
if err != nil {
@ -475,7 +475,7 @@ func Test_Defaults(t *testing.T) {
{
&Config{},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-boot", "once=d"},
"Boot value should default to once=d",
},
@ -484,7 +484,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{},
&stepRun{
DiskImage: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{"-boot", "c"},
"Boot value should be set to c when DiskImage is set on step",
@ -495,7 +495,7 @@ func Test_Defaults(t *testing.T) {
QMPSocketPath: "/path/to/socket",
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-qmp", "unix:/path/to/socket,server,nowait"},
"Args should contain -qmp when qmp_enable is set",
},
@ -504,7 +504,7 @@ func Test_Defaults(t *testing.T) {
QMPEnable: true,
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-qmp", "unix:,server,nowait"},
"Args contain -qmp even when socket path isn't set, if qmp enabled",
},
@ -513,14 +513,14 @@ func Test_Defaults(t *testing.T) {
VMName: "partyname",
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-name", "partyname"},
"Name is set from config",
},
{
&Config{},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-name", ""},
"Name is set from config, even when name is blank (which won't " +
"happen for real thanks to defaulting in build prepare)",
@ -531,7 +531,7 @@ func Test_Defaults(t *testing.T) {
MachineType: "fancymachine",
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-machine", "type=fancymachine"},
"Don't add accelerator tag when no accelerator is set.",
},
@ -541,7 +541,7 @@ func Test_Defaults(t *testing.T) {
MachineType: "fancymachine",
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-machine", "type=fancymachine,accel=kvm"},
"Add accelerator tag when accelerator is set.",
},
@ -550,7 +550,7 @@ func Test_Defaults(t *testing.T) {
NetBridge: "fakebridge",
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-netdev", "bridge,id=user.0,br=fakebridge"},
"Add netbridge tag when netbridge is set.",
},
@ -563,7 +563,7 @@ func Test_Defaults(t *testing.T) {
},
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-netdev", "user,id=user.0"},
"No host forwarding when no net bridge and no communicator",
},
@ -581,7 +581,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{
"commHostPort": 1111,
},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-netdev", "user,id=user.0,hostfwd=tcp::1111-:4567"},
"Host forwarding when a communicator is configured",
},
@ -592,7 +592,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{
"vnc_port": 5959,
},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-vnc", "1.1.1.1:5959"},
"no VNC password should be set",
},
@ -604,7 +604,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{
"vnc_port": 5959,
},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-vnc", "1.1.1.1:5959,password"},
"VNC password should be set",
},
@ -613,7 +613,7 @@ func Test_Defaults(t *testing.T) {
MemorySize: 2345,
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-m", "2345M"},
"Memory is set, with unit M",
},
@ -622,7 +622,7 @@ func Test_Defaults(t *testing.T) {
CpuCount: 2,
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-smp", "cpus=2,sockets=2"},
"both cpus and sockets are set to config's CpuCount",
},
@ -631,7 +631,7 @@ func Test_Defaults(t *testing.T) {
CpuCount: 2,
},
map[string]interface{}{},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-smp", "cpus=2,sockets=2"},
"both cpus and sockets are set to config's CpuCount",
},
@ -642,7 +642,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{
"floppy_path": "/path/to/floppy",
},
&stepRun{ui: packer.TestUi(t)},
&stepRun{ui: packersdk.TestUi(t)},
[]string{"-fda", "/path/to/floppy"},
"floppy path should be set under fda flag, when it exists",
},
@ -655,7 +655,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{"-display", "fakedisplay"},
"Display option should value config display",
@ -667,7 +667,7 @@ func Test_Defaults(t *testing.T) {
map[string]interface{}{},
&stepRun{
atLeastVersion2: true,
ui: packer.TestUi(t),
ui: packersdk.TestUi(t),
},
[]string{"-display", "gtk"},
"Display option should default to gtk",

View File

@ -5,14 +5,14 @@ import (
"testing"
"time"
"github.com/hashicorp/packer/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/communicator"
"github.com/hashicorp/packer/packer-plugin-sdk/multistep"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
func Test_Shutdown_Null_success(t *testing.T) {
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
driverMock := new(DriverMock)
driverMock.WaitForShutdownState = true
state.Put("driver", driverMock)
@ -37,7 +37,7 @@ func Test_Shutdown_Null_success(t *testing.T) {
func Test_Shutdown_Null_failure(t *testing.T) {
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
driverMock := new(DriverMock)
driverMock.WaitForShutdownState = false
state.Put("driver", driverMock)
@ -61,7 +61,7 @@ func Test_Shutdown_Null_failure(t *testing.T) {
func Test_Shutdown_NoShutdownCommand(t *testing.T) {
state := new(multistep.BasicStateBag)
state.Put("ui", packer.TestUi(t))
state.Put("ui", packersdk.TestUi(t))
driverMock := new(DriverMock)
state.Put("driver", driverMock)

View File

@ -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 },
}
}

View File

@ -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",
}
}

View File

@ -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",
}
}

View File

@ -96,7 +96,7 @@ func readFloppyOutput(path string) (string, error) {
}
func setupVMwareBuild(t *testing.T, builderConfig map[string]string, provisionerConfig map[string]string) error {
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
// create builder config and update with user-supplied options
cfgBuilder := map[string]string{}
@ -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 },
},
}

View File

@ -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 },
},
},

View File

@ -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 },
},

View File

@ -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 },
},

View File

@ -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 },
},

View File

@ -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
}

View File

@ -11,7 +11,7 @@ import (
"strings"
"testing"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
)
func TestDecodeConfig(t *testing.T) {
@ -49,9 +49,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 +81,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 +126,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

View File

@ -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 },
},

View File

@ -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
}

View File

@ -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,

View File

@ -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

View File

@ -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)

View File

@ -1,47 +1,18 @@
package packer
import (
"errors"
"bytes"
"io"
"log"
"strings"
"io/ioutil"
"testing"
)
// TestUi is a UI that only outputs unformatted output to the given writer.
type TestUi struct {
Writer io.Writer
}
var _ Ui = new(TestUi)
func (u *TestUi) Ask(query string) (string, error) {
return "", errors.New("Test UI can't ask")
}
func (u *TestUi) Say(message string) {
log.Printf(message)
}
func (u *TestUi) Message(message string) {
log.Printf(message)
}
func (u *TestUi) Error(message string) {
log.Printf(message)
}
func (u *TestUi) Machine(message string, args ...string) {
log.Printf("%s, %s", message, strings.Join(args, ", "))
}
func (u *TestUi) TrackProgress(src string, currentSize, totalSize int64, stream io.ReadCloser) (body io.ReadCloser) {
return &readCloser{
read: func(p []byte) (int, error) {
return stream.Read(p)
},
close: func() error {
return stream.Close()
},
func TestUi(t *testing.T) Ui {
var buf bytes.Buffer
return &BasicUi{
Reader: &buf,
Writer: ioutil.Discard,
ErrorWriter: ioutil.Discard,
}
}

View File

@ -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

View File

@ -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",
}

View File

@ -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 },

View File

@ -20,12 +20,12 @@ const PACKERSPACE = "-PACKERSPACE-"
type Config struct {
PluginMinPort int
PluginMaxPort int
builders packer.MapOfBuilder
provisioners packer.MapOfProvisioner
postProcessors packer.MapOfPostProcessor
builders packersdk.MapOfBuilder
provisioners packersdk.MapOfProvisioner
postProcessors packersdk.MapOfPostProcessor
}
func (c *Config) GetPlugins() (packer.MapOfBuilder, packer.MapOfProvisioner, packer.MapOfPostProcessor) {
func (c *Config) GetPlugins() (packersdk.MapOfBuilder, packersdk.MapOfProvisioner, packersdk.MapOfPostProcessor) {
return c.builders, c.provisioners, c.postProcessors
}
@ -38,13 +38,13 @@ func (c *Config) GetPlugins() (packer.MapOfBuilder, packer.MapOfProvisioner, pac
// CWD has the highest priority.
func (c *Config) Discover() error {
if c.builders == nil {
c.builders = packer.MapOfBuilder{}
c.builders = packersdk.MapOfBuilder{}
}
if c.provisioners == nil {
c.provisioners = packer.MapOfProvisioner{}
c.provisioners = packersdk.MapOfProvisioner{}
}
if c.postProcessors == nil {
c.postProcessors = packer.MapOfPostProcessor{}
c.postProcessors = packersdk.MapOfPostProcessor{}
}
// If we are already inside a plugin process we should not need to

View File

@ -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 },
}

View File

@ -10,7 +10,6 @@ import (
"testing"
"github.com/hashicorp/packer/builder/file"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/template"
)
@ -47,7 +46,7 @@ func TestChecksumSHA1(t *testing.T) {
func setup(t *testing.T) (packersdk.Ui, packersdk.Artifact, error) {
// Create fake UI and Cache
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
// Create config for file builder
const fileConfig = `{"builders":[{"type":"file","target":"package.txt","content":"Hello world!"}]}`

View File

@ -10,7 +10,6 @@ import (
"testing"
"github.com/hashicorp/packer/builder/file"
"github.com/hashicorp/packer/packer"
packersdk "github.com/hashicorp/packer/packer-plugin-sdk/packer"
"github.com/hashicorp/packer/packer-plugin-sdk/template"
)
@ -187,7 +186,7 @@ func TestCompressInterpolation(t *testing.T) {
func setup(t *testing.T) (packersdk.Ui, packersdk.Artifact, error) {
// Create fake UI and Cache
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
// Create config for file builder
const fileConfig = `{"builders":[{"type":"file","target":"package.txt","content":"Hello world!"}]}`

View File

@ -329,7 +329,7 @@ func testProvisionerProvisionDockerWithPlaybookFiles(t *testing.T, templateStrin
t.Skip("This test is only run with PACKER_ACC=1")
}
ui := packer.TestUi(t)
ui := packersdk.TestUi(t)
tpl, err := template.Parse(strings.NewReader(templateString))
if err != nil {

View File

@ -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"`,
}

View File

@ -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 },
}

View File

@ -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",
}

View File

@ -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 },
}
}

View File

@ -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 },
}