pulumi/pkg/resource
Alex Clemmer 2fa98a8dad Generate empty update steps for partial failures
This commit will greatly improve the experience of dealing with partial
failures by simply re-trying to initialize the relevant resources on
every subsequent `pulumi up`, instead of printing a list of reasons the
resource had previously failed to initialize.

As motivation, consider our behavior in the following common, painful
scenario:

  * The user creates a `Service` and a `Deployment`.
  * The `Pod`s in the `Deployment` fail to become live. This causes the
    `Service` to fail, since it does not target any live `Pod`s.
  * The user fixes the `Deployment`. A run of `pulumi up` sees the
    `Pod`s successfully initialize.
  * Users will expect that the `Service` is now in a state of success,
    as the `Pod`s it targets are alive. But, because we don't update the
    `Service` by default, it perpetually exists in a state of error.
  * The user is now required to change some trivial feature of the
    `Service` just to trigger an update, so that we can see it succeed.

There are many situations like this. Another very common one is waiting
for test `Pod`s that are meant to successfully complete when some object
becomes live.

By triggering an empty update step for all resources that have any
initialization errors, we avoid all problems like this.

This commit will implement this empty-update semantics for partial
failures, as well as fix the display UX to correctly render the diff in
these cases.
2018-08-28 18:00:35 -07:00
..
config Add license headers 2018-05-22 15:02:47 -07:00
deploy Generate empty update steps for partial failures 2018-08-28 18:00:35 -07:00
graph Implement first-class providers. (#1695) 2018-08-06 17:50:29 -07:00
plugin Fix wierd interactions due to Cobra and glog 2018-08-20 14:08:40 -07:00
provider Add URN argument to HostClient#Log 2018-08-01 11:00:48 -07:00
stack Add a list of in-flight operations to the deployment (#1759) 2018-08-10 21:39:59 -07:00
testdata Fix asset bugs; write more tests 2017-10-24 09:00:11 -07:00
asset.go Do not add the same file multiple times to a zip or tar file. (#1783) 2018-08-15 22:44:55 -07:00
asset_test.go Do not add the same file multiple times to a zip or tar file. (#1783) 2018-08-15 22:44:55 -07:00
errors.go Add license headers 2018-05-22 15:02:47 -07:00
properties.go Support Pulumi programs written in Go 2018-06-08 10:36:10 -07:00
properties_diff.go Add license headers 2018-05-22 15:02:47 -07:00
properties_diff_test.go Add license headers 2018-05-22 15:02:47 -07:00
properties_test.go Add license headers 2018-05-22 15:02:47 -07:00
resource_goal.go Implement partial Read 2018-08-10 15:10:14 -07:00
resource_id.go Add license headers 2018-05-22 15:02:47 -07:00
resource_id_test.go Add license headers 2018-05-22 15:02:47 -07:00
resource_operation.go Add a list of in-flight operations to the deployment (#1759) 2018-08-10 21:39:59 -07:00
resource_state.go Implement first-class providers. (#1695) 2018-08-06 17:50:29 -07:00
stack.go Add license headers 2018-05-22 15:02:47 -07:00
status.go Partial status for resource providers 2018-07-02 13:32:23 -07:00
urn.go Add license headers 2018-05-22 15:02:47 -07:00
urn_test.go Add license headers 2018-05-22 15:02:47 -07:00