Commit 196a0642 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto
Browse files

packer: configure the build with the paused provisioner

parent 47a83591
main actions/fix-check-links azr/mini-dag azr_acc_test_install_n_run_single_plugins azr_implicit_requried_plugin_2 azr_remove_amazon_builder b-azure_arm-cert-timeout backport/brk.feat/remove-website-code/horribly-finer-bison backport/clarify-builders-page/promptly-fun-cheetah backport/nywilken/update-plugins-link/steadily-ace-bear backport/update-docs-hcp-packer-ga/deeply-capital-malamute backport/update-docs-hcp-packer-ga/slowly-golden-narwhal backport/update-docs-hcp-packer-ga/solely-renewing-chipmunk brk.feat/mdx-v2 build-after-tests bump_hcp_sdk_go config_docs crt-onboarding-test d-powershell-generated-docs dependabot/github_actions/slackapi/slack-github-action-1.19.0 example-test extract_outscale f-inspect-regression fix_1000 fix_100000 hcp-packer-registry-pps improved-error-handling-hcp-packer linode-hcp-ready mode-check nywilken/update-external-plugins packer-plugin-dev-documentation-updates poc/packer-init pr/10199 release/1.7.x release/1.8.x revert-6594-mode-check stable-website testing_hcp_rewrite_two update-alert-banner update-community-codeowners update_sdk use_progress_bar validate_locals vscode-customization wilken/hcl2_upgrade-legacy-mode wilken/implicitly-required-plugins-legacy-mode wilken/packer-legacy-mode wilken/packer-par-client zs.draft-empty-page-check-script 1.5.0 v1.8.0 v1.7.10 v1.7.9 v1.7.8 v1.7.7 v1.7.6 v1.7.5 v1.7.4 v1.7.3 v1.7.2 v1.7.1 v1.7.0 v1.6.6 v1.6.5 v1.6.4 v1.6.3 v1.6.2 v1.6.1 v1.6.0 v1.5.6 v1.5.5 v1.5.4 v1.5.3 v1.5.2 v1.5.1 v1.5.0 v1.4.5 v1.4.4 v1.4.3 v1.4.2 v1.4.1 v1.4.0 v1.3.5 v1.3.4 v1.3.3 v1.3.2 v1.3.1 v1.3.0 v1.2.5 v1.2.4 v1.2.3 v1.2.2 v1.2.1 v1.2.0 v1.1.3 v1.1.2 v1.1.1 v1.1.0 v1.0.4 v1.0.3 v1.0.2 v1.0.1 v1.0.0 v1.0.0-rc3 v1.0.0-rc2 v1.0.0-rc1 v0.12.3 v0.12.2 v0.12.1 v0.12.0 v0.11.0 v0.10.2 v0.10.1 v0.10.0 v0.9.0 v0.9.0-rc2 v0.8.6 v0.8.5 v0.8.3 v0.8.2 v0.8.1 v0.8.0 v0.7.5 v0.7.2 v0.7.1 v0.7.0 v0.6.1 v0.6.0 nightly list
No related merge requests found
Showing with 71 additions and 0 deletions
+71 -0
......@@ -515,6 +515,13 @@ func (t *Template) Build(name string, components *ComponentFinder) (b Build, err
}
}
if rawProvisioner.pauseBefore > 0 {
provisioner = &PausedProvisioner{
PauseBefore: rawProvisioner.pauseBefore,
Provisioner: provisioner,
}
}
coreProv := coreBuildProvisioner{provisioner, configs}
provisioners = append(provisioners, coreProv)
}
......
......@@ -1311,6 +1311,70 @@ func TestTemplate_Build_ProvisionerOverrideBad(t *testing.T) {
}
}
func TestTemplateBuild_ProvisionerPauseBefore(t *testing.T) {
data := `
{
"builders": [
{
"name": "test1",
"type": "test-builder"
}
],
"provisioners": [
{
"type": "test-prov",
"pause_before": "5s"
}
]
}
`
template, err := ParseTemplate([]byte(data))
if err != nil {
t.Fatalf("err: %s", err)
}
builder := new(MockBuilder)
builderMap := map[string]Builder{
"test-builder": builder,
}
provisioner := &MockProvisioner{}
provisionerMap := map[string]Provisioner{
"test-prov": provisioner,
}
builderFactory := func(n string) (Builder, error) { return builderMap[n], nil }
provFactory := func(n string) (Provisioner, error) { return provisionerMap[n], nil }
components := &ComponentFinder{
Builder: builderFactory,
Provisioner: provFactory,
}
// Get the build, verifying we can get it without issue, but also
// that the proper builder was looked up and used for the build.
build, err := template.Build("test1", components)
if err != nil {
t.Fatalf("err: %s", err)
}
coreBuild, ok := build.(*coreBuild)
if !ok {
t.Fatal("should be okay")
}
if len(coreBuild.provisioners) != 1 {
t.Fatalf("bad: %#v", coreBuild.provisioners)
}
if pp, ok := coreBuild.provisioners[0].provisioner.(*PausedProvisioner); !ok {
t.Fatalf("should be paused provisioner")
} else {
if pp.PauseBefore != 5*time.Second {
t.Fatalf("bad: %#v", pp.PauseBefore)
}
}
}
func TestTemplateBuild_variables(t *testing.T) {
data := `
{
......
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