Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Packer
Commits
196a0642
Commit
196a0642
authored
11 years ago
by
Mitchell Hashimoto
Browse files
Options
Download
Email Patches
Plain Diff
packer: configure the build with the paused provisioner
parent
47a83591
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
packer/template.go
+7
-0
packer/template.go
packer/template_test.go
+64
-0
packer/template_test.go
with
71 additions
and
0 deletions
+71
-0
packer/template.go
+
7
-
0
View file @
196a0642
...
...
@@ -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
)
}
...
...
This diff is collapsed.
Click to expand it.
packer/template_test.go
+
64
-
0
View file @
196a0642
...
...
@@ -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
:=
`
{
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help