pulumi/pkg/resource/deploy
Pat Gavlin e1a52693dc
Add support for importing existing resources. (#2893)
A resource can be imported by setting the `import` property in the
resource options bag when instantiating a resource. In order to
successfully import a resource, its desired configuration (i.e. its
inputs) must not differ from its actual configuration (i.e. its state)
as calculated by the resource's provider.

There are a few interesting state transitions hiding here when importing
a resource:
1. No prior resource exists in the checkpoint file. In this case, the
   resource is simply imported.
2. An external resource exists in the checkpoint file. In this case, the
   resource is imported and the old external state is discarded.
3. A non-external resource exists in the checkpoint file and its ID is
   different from the ID to import. In this case, the new resource is
   imported and the old resource is deleted.
4. A non-external resource exists in the checkpoint file, but the ID is
   the same as the ID to import. In this case, the import ID is ignored
   and the resource is treated as it would be in all cases except for
   changes that would replace the resource. In that case, the step
   generator issues an error that indicates that the import ID should be
   removed: were we to move forward with the replace, the new state of
   the stack would fall under case (3), which is almost certainly not
   what the user intends.

Fixes #1662.
2019-07-12 11:12:01 -07:00
..
deploytest Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
providers Refine resource replacement logic for providers (#2767) 2019-06-03 12:16:31 -07:00
builtins.go Flow allowUnknows for Diff/Check Config 2019-05-23 10:54:18 -07:00
plan.go Defer all diffs to resource providers. (#2849) 2019-07-01 12:34:19 -07:00
plan_executor.go Revert "Revert "Use result.Result pattern in more places. (#2573)" (#2575)" (#2577) 2019-03-21 13:23:46 -07:00
plan_test.go Retain the SecretsManager that was used to deserialize a deployment 2019-05-10 17:07:52 -07:00
snapshot.go Fix crash when there were multiple duplicate aliases to the same resource. (#2865) 2019-06-23 02:16:18 -07:00
source.go Rename SecretOutputs to AdditionalSecretOutputs 2019-05-10 17:07:52 -07:00
source_error.go Use result.Result in more places. (#2568) 2019-03-19 16:21:50 -07:00
source_eval.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
source_eval_test.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
source_fixed.go Use result.Result in more places. (#2568) 2019-03-19 16:21:50 -07:00
source_null.go Use result.Result in more places. (#2568) 2019-03-19 16:21:50 -07:00
source_query.go Remove acceptsSecrets from InvokeRequest 2019-05-10 17:07:52 -07:00
source_query_test.go Formally specify querySource with tests 2019-05-02 18:08:08 -07:00
step.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
step_executor.go Rename SecretOutputs to AdditionalSecretOutputs 2019-05-10 17:07:52 -07:00
step_generator.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
target.go Add license headers 2018-05-22 15:02:47 -07:00