Commit 76ab8709 authored by Mitchell Hashimoto's avatar Mitchell Hashimoto
Browse files

packer: PostProcessor takes a UI [GH-20]

parent 73cb1a3f
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 16 additions and 10 deletions
+16 -10
......@@ -169,7 +169,7 @@ PostProcessorRunSeqLoop:
artifact := builderArtifact
for _, corePP := range ppSeq {
var err error
artifact, err = corePP.processor.PostProcess(artifact)
artifact, err = corePP.processor.PostProcess(ui, artifact)
if err != nil {
errors = append(errors, fmt.Errorf("Post-processor failed: %s", err))
continue PostProcessorRunSeqLoop
......
......@@ -19,13 +19,13 @@ func (c *cmdPostProcessor) Configure(config interface{}) error {
return c.p.Configure(config)
}
func (c *cmdPostProcessor) PostProcess(a packer.Artifact) (packer.Artifact, error) {
func (c *cmdPostProcessor) PostProcess(ui packer.Ui, a packer.Artifact) (packer.Artifact, error) {
defer func() {
r := recover()
c.checkExit(r, nil)
}()
return c.p.PostProcess(a)
return c.p.PostProcess(ui, a)
}
func (c *cmdPostProcessor) checkExit(p interface{}, cb func()) {
......
......@@ -12,7 +12,7 @@ func (helperPostProcessor) Configure(interface{}) error {
return nil
}
func (helperPostProcessor) PostProcess(packer.Artifact) (packer.Artifact, error) {
func (helperPostProcessor) PostProcess(packer.Ui, packer.Artifact) (packer.Artifact, error) {
return nil, nil
}
......
......@@ -13,5 +13,5 @@ type PostProcessor interface {
// PostProcess takes a previously created Artifact and produces another
// Artifact. If an error occurs, it should return that error.
PostProcess(Artifact) (Artifact, error)
PostProcess(Ui, Artifact) (Artifact, error)
}
......@@ -5,6 +5,7 @@ type TestPostProcessor struct {
configVal interface{}
ppCalled bool
ppArtifact Artifact
ppUi Ui
}
func (pp *TestPostProcessor) Configure(v interface{}) error {
......@@ -13,8 +14,9 @@ func (pp *TestPostProcessor) Configure(v interface{}) error {
return nil
}
func (pp *TestPostProcessor) PostProcess(a Artifact) (Artifact, error) {
func (pp *TestPostProcessor) PostProcess(ui Ui, a Artifact) (Artifact, error) {
pp.ppCalled = true
pp.ppArtifact = a
pp.ppUi = ui
return nil, nil
}
......@@ -33,9 +33,10 @@ func (p *postProcessor) Configure(raw interface{}) (err error) {
return
}
func (p *postProcessor) PostProcess(a packer.Artifact) (packer.Artifact, error) {
func (p *postProcessor) PostProcess(ui packer.Ui, a packer.Artifact) (packer.Artifact, error) {
server := rpc.NewServer()
RegisterArtifact(server, a)
RegisterUi(server, ui)
var response PostProcessorProcessResponse
if err := p.client.Call("PostProcessor.PostProcess", serveSingleConn(server), &response); err != nil {
......@@ -71,7 +72,7 @@ func (p *PostProcessorServer) PostProcess(address string, reply *PostProcessorPr
responseAddress := ""
artifact, err := p.p.PostProcess(Artifact(client))
artifact, err := p.p.PostProcess(&Ui{client}, Artifact(client))
if err == nil && artifact != nil {
server := rpc.NewServer()
RegisterArtifact(server, artifact)
......
......@@ -13,6 +13,7 @@ type TestPostProcessor struct {
configVal interface{}
ppCalled bool
ppArtifact packer.Artifact
ppUi packer.Ui
}
func (pp *TestPostProcessor) Configure(v interface{}) error {
......@@ -21,9 +22,10 @@ func (pp *TestPostProcessor) Configure(v interface{}) error {
return nil
}
func (pp *TestPostProcessor) PostProcess(a packer.Artifact) (packer.Artifact, error) {
func (pp *TestPostProcessor) PostProcess(ui packer.Ui, a packer.Artifact) (packer.Artifact, error) {
pp.ppCalled = true
pp.ppArtifact = a
pp.ppUi = ui
return testPostProcessorArtifact, nil
}
......@@ -60,7 +62,8 @@ func TestPostProcessorRPC(t *testing.T) {
// Test PostProcess
a := new(testArtifact)
artifact, err := pClient.PostProcess(a)
ui := new(testUi)
artifact, err := pClient.PostProcess(ui, a)
if err != nil {
t.Fatalf("err: %s", err)
}
......
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