2fa98a8dad
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. |
||
---|---|---|
.. | ||
config | ||
deploy | ||
graph | ||
plugin | ||
provider | ||
stack | ||
testdata | ||
asset.go | ||
asset_test.go | ||
errors.go | ||
properties.go | ||
properties_diff.go | ||
properties_diff_test.go | ||
properties_test.go | ||
resource_goal.go | ||
resource_id.go | ||
resource_id_test.go | ||
resource_operation.go | ||
resource_state.go | ||
stack.go | ||
status.go | ||
urn.go | ||
urn_test.go |