pulumi/pkg/resource
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
..
config Encrypt secret values in deployments 2019-05-10 17:07:52 -07:00
deploy Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
edit Retain the SecretsManager that was used to deserialize a deployment 2019-05-10 17:07:52 -07:00
graph Process deletions conservatively in parallel (#1963) 2018-09-27 15:49:08 -07:00
plugin Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
provider Implement status sinks 2018-08-31 15:56:53 -07:00
stack Support aliases for renaming, re-typing, or re-parenting resources (#2774) 2019-05-31 23:01:01 -07:00
testdata Fix asset bugs; write more tests 2017-10-24 09:00:11 -07:00
asset.go Normalize Windows paths for directory archive (#2887) 2019-07-02 00:04:24 +03:00
asset_test.go Correctly handle FileArchives when the filename contains a dot 2019-03-28 13:26:07 -07:00
errors.go Add license headers 2018-05-22 15:02:47 -07:00
properties.go Rework secret annotation algorithm slightly 2019-05-15 09:33:02 -07:00
properties_diff.go Fix a panic during property diffing 2019-05-15 16:20:25 -07:00
properties_diff_test.go Fix a panic during property diffing 2019-05-15 16:20:25 -07:00
properties_test.go Add license headers 2018-05-22 15:02:47 -07:00
resource_goal.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
resource_id.go Add license headers 2018-05-22 15:02:47 -07:00
resource_id_test.go Adopt golangci-lint and address issues 2018-11-08 14:11:47 -08:00
resource_operation.go Add support for importing existing resources. (#2893) 2019-07-12 11:12:01 -07:00
resource_state.go Support aliases for renaming, re-typing, or re-parenting resources (#2774) 2019-05-31 23:01:01 -07:00
stack.go Make a smattering of CLI UX improvements 2018-09-24 08:43:46 -07:00
status.go Partial status for resource providers 2018-07-02 13:32:23 -07:00
urn.go Add license headers 2018-05-22 15:02:47 -07:00
urn_test.go Add license headers 2018-05-22 15:02:47 -07:00