mirror of https://github.com/pulumi/pulumi.git
9063974f70
Implement default providers in the engine and the Go SDK first (Go SDK for no other reason other than I'm most familiar with that language). The SDK sends a RegisterDefaultProvider request to the engine, which adds the provider to its default provider map, and explicitly disallows creating an implicit default provider going forward. The locking around this happens on the SDK side, since we need to disallow RegisterResource requests happening at the same time as DefaultProvider requests. Here we can simply take a read lock before creating the RegisterResource goroutine, and a write lock for the duration of the RegisterDefaultProvider call. This way we can have RegisterResource calls happen in parallel, but the RegisterDefaultProvider call will not go ahead before the read lock is released. Similarly, the next RegisterResource call will be locked until the RegisterDefaultProvider call has finished. |
||
---|---|---|
.. | ||
alias_test.go | ||
analyzer_test.go | ||
continue_on_error_test.go | ||
default_providers_test.go | ||
delete_before_replace_test.go | ||
golang_sdk_test.go | ||
import_test.go | ||
pending_delete_test.go | ||
provider_test.go | ||
pulumi_test.go | ||
refresh_test.go | ||
resource_reference_test.go | ||
source_query_test.go | ||
step_generator_test.go | ||
target_test.go | ||
test_plan.go | ||
transformation_test.go | ||
update_plan_test.go |