pulumi/sdk/go/common/resource/plugin
Fraser Waters 841c99a9dd Send old inputs to diff and update
Fixes https://github.com/pulumi/pulumi/issues/5973

This adds two new properties to the RPC interfaces with providers.
Firstly we pass a new bool flag to Configure to tell the provider if it
will get sent old inputs as part of Diff.
Secondly we now pass the old inputs and the old outputs to Diff and
Update as opposed to just the old outputs.

The flag passed to Configure isn't strictly needed. Providers should be
able to tell that the old inputs aren't being sent to Diff and Updae by
virtue of them being `null/nil/None` rather than an empty map. For
DiffConfig this is the only way to detect this case because it's called
before Configure. But its still useful to send this explictly to
Configure to allow providers to return a configure error that they need
to be ran against a newer engine version.

There is one fairly major failure case that can happen with this feature
and providers who update to make use of this feature should ensure they
call this out in their changelog.
That is if a provider has been saving old inputs in outputs as a way to
get access to them in diff, and then updates to use these new protocol
properties instead and stops saving the inputs in outputs _and then_ the
user downgrades back to an old provider version things will probably get
_very_ confused.
2023-06-21 21:04:50 +01:00
..
analyzer.go feat(engine): Adds structured alias support to the engine 2022-10-11 17:56:32 -04:00
analyzer_plugin.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
check.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
config_source.go [breaking] Changing the version of go.mod in sdk / pkg to be v3 2021-04-14 19:32:18 +01:00
context.go Pass PULUMI_CONFIG through to provider plugins 2023-04-05 10:17:18 +01:00
context_test.go Fix data race in plugin.Context 2023-03-31 07:15:11 -07:00
converter.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
converter_plugin.go Don't return empty hcl.Diagnostics 2023-06-08 19:14:41 +01:00
converter_plugin_test.go Don't return empty hcl.Diagnostics 2023-06-08 19:14:41 +01:00
converter_server.go Fix converter diagnostics 2023-06-05 22:49:53 +01:00
converter_server_test.go Fix converter diagnostics 2023-06-05 22:49:53 +01:00
diagnostic.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
diagnostic_test.go Allow converter plugins to return diagnostics 2023-06-05 17:38:59 +01:00
doc.go Provider implementer's guide draft (#6322) 2021-04-13 14:11:02 -07:00
host.go Handle installing plugins without versions in the defaultHost 2023-06-12 12:22:08 +01:00
host_server.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
langruntime.go Make convert more lenient 2023-06-08 11:14:31 +01:00
langruntime_plugin.go Make convert more lenient 2023-06-08 11:14:31 +01:00
plugin.go all: Fix revive issues 2023-03-21 08:55:11 -07:00
plugin_test.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
provider.go Send old inputs to diff and update 2023-06-21 21:04:50 +01:00
provider_plugin.go Send old inputs to diff and update 2023-06-21 21:04:50 +01:00
provider_plugin_test.go sdk/plugin: Add more resource options to ConstructOptions 2023-04-21 10:57:21 -07:00
provider_server.go Send old inputs to diff and update 2023-06-21 21:04:50 +01:00
provider_server_test.go Lint 2023-03-10 12:29:07 -05:00
provider_test.go Add forward compatible UnimplementedProvider for bridge 2022-12-09 18:44:28 -08:00
provider_unimplemented.go Send old inputs to diff and update 2023-06-21 21:04:50 +01:00
rpc.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
rpc_rapid_test.go deps: Upgrade to pgregory.net/rapid v0.5 2023-02-16 12:04:07 -08:00
rpc_test.go all: Reformat with gofumpt 2023-03-03 09:00:24 -08:00
server.go Add mapping service to converter 2023-03-24 17:09:17 +00:00