pulumi/pkg/engine
Fraser Waters a92101cd49 Add GetState to resource monitor
This new method is used to return the state of the resource monitor for
a deployment directly to a client.

This helps with three major areas:
1) `Construct` and `Call` no longer need to be kept up to date with any new
   features added to `Run`. All they need is the resource monitor target
   and can use `GetState` to fetch all other information.
2) We no longer need to find a way to pass all the information from
   `Run` from the runtime host to the runtime SDKs. Instead all we need
   to pass is the (again) the resource monitor target, and on startup
   the SDK can fetch the rest of the information over gRPC. In fact we
   don't even need to add new information to `Run`, as the language
   runtime host can also just use `GetState` to fetch the latest
   information.
3) Features are now a safe enumeration lookup rather than a set of strings that
   could be typo'd. Further you don't need to make multiple roundtrips to see all
   features supported, the entire set is returned at once.

A few things need pointing out about this change.

Firstly SDKs that use this _also_ need to have a fallback to using the
old envvar based approch because they might be running against an old
engine version.

Secondly this PR doesn't update any of the SDKs to use this. The most
obvious candidate to update first is YAML as that doesn't actually have
an SDK, just the host and the host _doesn't_ need to be backward
compatible because we always tie host and engine versions together in a
single release.
2024-01-02 12:51:45 +00:00
..
lifecycletest Add GetState to resource monitor 2024-01-02 12:51:45 +00:00
deployment.go Enable perfsprint linter (#14813) 2023-12-12 12:19:42 +00:00
deployment_test.go Add tokens.StackName (#14487) 2023-11-15 07:44:54 +00:00
destroy.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
detailedDiff.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
detailedDiff_test.go [display] Refactor diff translation and display. (#9363) 2022-04-07 12:05:33 -07:00
doc.go Document Go packages (#6009) 2021-01-11 11:07:59 -07:00
engine.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
errors.go Clean up uses of .Error() (#14965) 2023-12-20 15:54:06 +00:00
events.go Send all events to the engine event stream (#14607) 2023-11-20 21:55:59 +00:00
events_test.go Do not panic when sending events to closed emitter (#10489) 2022-08-25 12:43:10 -04:00
eventsink.go chore: WriteString(Sprintf(..)) => Fprintf(..) 2023-03-01 13:22:33 -08:00
import.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
journal.go Fix engine.Journal to not write out skipped creates 2023-07-21 16:26:40 +01:00
plugin_host.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
plugins.go Move language check from installPlugin to installPlugins (#14103) 2023-10-07 18:31:44 +00:00
plugins_test.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
project.go Update error handling (#8406) 2021-11-12 18:37:17 -08:00
query.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
refresh.go Make `engine.NewEvent` type safe (#14590) 2023-11-16 16:54:03 +00:00
snapshot.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
update.go Send all events to the engine event stream (#14607) 2023-11-20 21:55:59 +00:00
update_test.go Policy remediations feature (#14080) 2023-10-09 18:31:17 +00:00