fe0bb4a265
This change introduces a new RPC function to the provider interface; in pseudo-code: UpdateImpact(id ID, t Type, olds PropertyMap, news PropertyMap) (bool, PropertyMap, error) Essentially, during the planning phase, we will consult each provider about the nature of a proposed update. This update includes a set of old properties and the new ones and, if the resource provider will need to replace the property as a result of the update, it will return true; in general, the PropertyMap will eventually contain a list of all properties that will be modified as a result of the operation (see below). The planning phase reacts to this by propagating the change to dependent resources, so that they know that the ID will change (and so that they can recalculate their own state accordingly, possibly leading to a ripple effect). This ensures the overall DAG / schedule is ordered correctly. This change is most of pulumi/coconut#105. The only missing piece is to generalize replacing the "ID" property with replacing arbitrary properties; there are hooks in here for this, but until pulumi/coconut#90 is addressed, it doesn't make sense to make much progress on this. |
||
---|---|---|
.. | ||
compiler | ||
config | ||
diag | ||
encoding | ||
eval | ||
graph | ||
pack | ||
resource | ||
tokens | ||
util | ||
workspace |