pulumi/pkg/engine
Pat Gavlin d22a42858f Add two-phase snapshotting.
The existing `SnapshotProvider` interface does not sufficiently lend
itself to reliable persistence of snapshot data. For example, consider
the following:
- The deployment engine creates a resource
- The snapshot provider fails to save the updated snapshot
In this scenario, we have no mechanism by which we can discover that the
existing snapshot (if any) does not reflect the actual state of the
resources managed by the stack, and future updates may operate
incorrectly. To address this, these changes split snapshotting into two
phases: the `Begin` phase and the `End` phase. A provider that needs to
be robust against the scenario described above (or any other scenario
that allows for a mutation to the state of the stack that is not
persisted) can use the `Begin` phase to persist the fact that there are
outstanding mutations to the stack. It would then use the `End` phase to
persist the updated snapshot and indicate that the mutation is no longer
outstanding. These steps are somewhat analogous to the prepare and
commit phases of two-phase commit.
2017-10-21 09:31:01 -07:00
..
deploy.go Add two-phase snapshotting. 2017-10-21 09:31:01 -07:00
destroy.go Use Stack over Environment to describe a deployment target 2017-10-16 13:04:20 -07:00
engine.go Add two-phase snapshotting. 2017-10-21 09:31:01 -07:00
env.go Use Stack over Environment to describe a deployment target 2017-10-16 13:04:20 -07:00
events.go Fix CLI hangs when errors occur 2017-10-20 17:28:35 -07:00
eventsink.go Accept a send-only event channel in Deploy and Preview. 2017-10-12 14:16:44 -07:00
pack.go Fix whitespace issues 2017-10-20 13:30:07 -07:00
plan.go Add accessors to fetch the Pulumi project and stack names 2017-10-19 08:26:57 -07:00
preview.go Drain std{out,err} when a plugin fails to load. 2017-10-16 21:38:11 -07:00