diff --git a/pkg/backend/local/backend.go b/pkg/backend/local/backend.go index e29afba52..87beaae26 100644 --- a/pkg/backend/local/backend.go +++ b/pkg/backend/local/backend.go @@ -31,12 +31,11 @@ type Backend interface { } type localBackend struct { - d diag.Sink - engineCache map[tokens.QName]engine.Engine + d diag.Sink } func New(d diag.Sink) Backend { - return &localBackend{d: d, engineCache: make(map[tokens.QName]engine.Engine)} + return &localBackend{d: d} } func (b *localBackend) Name() string { @@ -117,8 +116,7 @@ func (b *localBackend) Preview(stackName tokens.QName, pkg *pack.Package, root s go displayEvents(events, done, debug) - var pulumiEngine engine.Engine - if err = pulumiEngine.Preview(update, events, opts); err != nil { + if err = engine.Preview(update, events, opts); err != nil { return err } @@ -141,8 +139,7 @@ func (b *localBackend) Update(stackName tokens.QName, pkg *pack.Package, root st go displayEvents(events, done, debug) - var pulumiEngine engine.Engine - if err = pulumiEngine.Deploy(update, events, opts); err != nil { + if err = engine.Deploy(update, events, opts); err != nil { return err } @@ -165,8 +162,7 @@ func (b *localBackend) Destroy(stackName tokens.QName, pkg *pack.Package, root s go displayEvents(events, done, debug) - var pulumiEngine engine.Engine - if err := pulumiEngine.Destroy(update, events, opts); err != nil { + if err := engine.Destroy(update, events, opts); err != nil { return err } diff --git a/pkg/engine/deploy.go b/pkg/engine/deploy.go index f0493bee8..9c9afce58 100644 --- a/pkg/engine/deploy.go +++ b/pkg/engine/deploy.go @@ -28,19 +28,19 @@ type DeployOptions struct { Color colors.Colorization // How output should be colorized. } -func (eng *Engine) Deploy(update Update, events chan<- Event, opts DeployOptions) error { +func Deploy(update Update, events chan<- Event, opts DeployOptions) error { contract.Require(update != nil, "update") contract.Require(events != nil, "events") defer func() { events <- cancelEvent() }() - info, err := eng.planContextFromUpdate(update) + info, err := planContextFromUpdate(update) if err != nil { return err } defer info.Close() - return eng.deployLatest(info, deployOptions{ + return deployLatest(info, deployOptions{ Destroy: false, DryRun: opts.DryRun, Analyzers: opts.Analyzers, @@ -74,8 +74,8 @@ type deployOptions struct { Diag diag.Sink // the sink to use for diag'ing. } -func (eng *Engine) deployLatest(info *planContext, opts deployOptions) error { - result, err := eng.plan(info, opts) +func deployLatest(info *planContext, opts deployOptions) error { + result, err := plan(info, opts) if err != nil { return err } @@ -91,7 +91,7 @@ func (eng *Engine) deployLatest(info *planContext, opts deployOptions) error { if opts.DryRun { // If a dry run, just print the plan, don't actually carry out the deployment. - if err := eng.printPlan(result); err != nil { + if err := printPlan(result); err != nil { return err } } else { diff --git a/pkg/engine/destroy.go b/pkg/engine/destroy.go index 4ed361d2e..20c0e2413 100644 --- a/pkg/engine/destroy.go +++ b/pkg/engine/destroy.go @@ -15,18 +15,18 @@ type DestroyOptions struct { Color colors.Colorization } -func (eng *Engine) Destroy(update Update, events chan<- Event, opts DestroyOptions) error { +func Destroy(update Update, events chan<- Event, opts DestroyOptions) error { contract.Require(update != nil, "update") defer func() { events <- cancelEvent() }() - info, err := eng.planContextFromUpdate(update) + info, err := planContextFromUpdate(update) if err != nil { return err } defer info.Close() - return eng.deployLatest(info, deployOptions{ + return deployLatest(info, deployOptions{ Destroy: true, DryRun: opts.DryRun, Parallel: opts.Parallel, diff --git a/pkg/engine/engine.go b/pkg/engine/engine.go index dad255130..e517e6870 100644 --- a/pkg/engine/engine.go +++ b/pkg/engine/engine.go @@ -7,8 +7,6 @@ import ( "github.com/pulumi/pulumi/pkg/resource/deploy" ) -type Engine int - // Update abstracts away information about an apply, preview, or destroy. type Update interface { // GetRoot returns the root directory for this update. This defines the scope for any filesystem resources diff --git a/pkg/engine/env.go b/pkg/engine/env.go index 153d925fa..1613355e2 100644 --- a/pkg/engine/env.go +++ b/pkg/engine/env.go @@ -8,7 +8,7 @@ import ( ) // Callers must call Close on the resulting planContext once they have completed the associated planning operation -func (eng *Engine) planContextFromUpdate(update Update) (*planContext, error) { +func planContextFromUpdate(update Update) (*planContext, error) { contract.Require(update != nil, "update") // Create a root span for the operation diff --git a/pkg/engine/plan.go b/pkg/engine/plan.go index c4790ab6c..a31ff5cc5 100644 --- a/pkg/engine/plan.go +++ b/pkg/engine/plan.go @@ -24,7 +24,7 @@ import ( ) // plan just uses the standard logic to parse arguments, options, and to create a snapshot and plan. -func (eng *Engine) plan(info *planContext, opts deployOptions) (*planResult, error) { +func plan(info *planContext, opts deployOptions) (*planResult, error) { contract.Assert(info != nil) contract.Assert(info.Update != nil) @@ -157,7 +157,7 @@ func (res *planResult) Close() error { return res.Ctx.Close() } -func (eng *Engine) printPlan(result *planResult) error { +func printPlan(result *planResult) error { // First print config/unchanged/etc. if necessary. var prelude bytes.Buffer printPrelude(&prelude, result, true) diff --git a/pkg/engine/preview.go b/pkg/engine/preview.go index 261107752..958ecf0c0 100644 --- a/pkg/engine/preview.go +++ b/pkg/engine/preview.go @@ -23,19 +23,19 @@ type PreviewOptions struct { Color colors.Colorization } -func (eng *Engine) Preview(update Update, events chan<- Event, opts PreviewOptions) error { +func Preview(update Update, events chan<- Event, opts PreviewOptions) error { contract.Require(update != nil, "update") contract.Require(events != nil, "events") defer func() { events <- cancelEvent() }() - info, err := eng.planContextFromUpdate(update) + info, err := planContextFromUpdate(update) if err != nil { return err } defer info.Close() - return eng.previewLatest(info, deployOptions{ + return previewLatest(info, deployOptions{ Destroy: false, DryRun: true, Analyzers: opts.Analyzers, @@ -52,8 +52,8 @@ func (eng *Engine) Preview(update Update, events chan<- Event, opts PreviewOptio }) } -func (eng *Engine) previewLatest(info *planContext, opts deployOptions) error { - result, err := eng.plan(info, opts) +func previewLatest(info *planContext, opts deployOptions) error { + result, err := plan(info, opts) if err != nil { return err } @@ -67,7 +67,7 @@ func (eng *Engine) previewLatest(info *planContext, opts deployOptions) error { } defer done() - if err := eng.printPlan(result); err != nil { + if err := printPlan(result); err != nil { return err } }