2ab2b09474
This change slightly refactors the way resources are created and implemented. We now have two implementations of the Resource interface: * `resource` (in resource_value.go), which is a snapshot of a resource's state. All values are resolved and there is no live reference to any heap state or objects. This will be used when serializing and/or deserializing snapshots of deployments. * `objectResource` (in resource_object.go), which is an implementation of the Resource interface that wraps an underlying, live runtime object. This currently introduces no functional difference, as fetching Inputs() amounts to taking a snapshot of the full state. But this at least gives us a leg to stand on in making sure that output properties are read at the right times during evaluation. This is a fundamental part of pulumi/lumi#90. |
||
---|---|---|
.. | ||
idl | ||
analyzer.go | ||
analyzer_plugin.go | ||
asset.go | ||
check.go | ||
config.go | ||
context.go | ||
deployment.go | ||
deployment_test.go | ||
env.go | ||
plan.go | ||
plan_graph.go | ||
plan_test.go | ||
plugin.go | ||
properties.go | ||
properties_diff.go | ||
properties_diff_test.go | ||
provider.go | ||
provider_host.go | ||
provider_plugin.go | ||
resource.go | ||
resource_graph.go | ||
resource_id.go | ||
resource_object.go | ||
resource_value.go | ||
rpc.go | ||
snapshot.go | ||
stable.go | ||
urn.go |