pulumi/pkg/codegen/convert
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
..
mapper.go Make GetMapping contextful 2023-06-05 21:34:08 +01:00
mapper_client.go Make GetMapping contextful 2023-06-05 21:34:08 +01:00
mapper_server.go Make GetMapping contextful 2023-06-05 21:34:08 +01:00
plugin_mapper.go Fix plugin mapper to not retry installs 2023-06-06 09:42:09 +01:00
plugin_mapper_test.go Send old inputs to diff and update 2023-06-21 21:04:50 +01:00