mirror of https://github.com/pulumi/pulumi.git
6ff74d2c6f
When running a Pulumi operation such as a preview or an update, Pulumi will detect if plugins (e.g. an AWS provider) are missing and download and install them appropriately. Presently the user experience when this happens isn't great (see e.g. https://github.com/pulumi/pulumi/issues/14250), making it hard for the user to see what is happening/what is taking so long when required plugins are large. This commit attempts to rectify this by continuing the work in https://github.com/pulumi/pulumi/pull/16094 that tracks download progress using engine events. In doing so, we are able to render multiple downloads as part of the existing "system messages" panel in the Pulumi output, and provide a clean view of what is going on when downloads must occur before program execution. Moreover, we generalise that PR to handle any engine process, enabling us to play a similar trick with plugin installations (which can also take a while). To preserve existing behaviour, we introduce a new class for these events which we call "ephemeral", meaning that they are not persisted or rendered in contexts such as diffs, for instance. Specifically, ephemeral events are *not* sent to HTTP backends (i.e. the service), so this commit should not require any changes to the service before merging and releasing. Fixes #14250 Closes #16094 Closes #16937 https://github.com/user-attachments/assets/f0fac5e9-b3c8-4ea7-9cb7-075fc4b625d9 https://github.com/user-attachments/assets/7a761aa9-10ad-4f66-afa3-e4550b4553a5 |
||
---|---|---|
.. | ||
display | ||
diy | ||
filestate | ||
httpstate | ||
state | ||
apply.go | ||
apply_test.go | ||
backend.go | ||
backend_test.go | ||
cancellation_scope.go | ||
doc.go | ||
errors.go | ||
inmemoryPersister.go | ||
mock.go | ||
policypack.go | ||
query.go | ||
snapshot.go | ||
snapshot_test.go | ||
stack.go | ||
updates.go | ||
watch.go |