pulumi/tests/integration
Pat Gavlin 2585b86aa4
Initial support for remote component construction. (#5280)
These changes add initial support for the construction of remote
components. For now, this support is limited to the NodeJS SDK;
follow-up changes will implement support for the other SDKs.

Remote components are component resources that are constructed and
managed by plugins rather than by Pulumi programs. In this sense, they
are a bit like cloud resources, and are supported by the same
distribution and plugin loading mechanisms and described by the same
schema system.

The construction of a remote component is initiated by a
`RegisterResourceRequest` with the new `remote` field set to `true`.
When the resource monitor receives such a request, it loads the plugin
that implements the component resource and calls the `Construct`
method added to the resource provider interface as part of these
changes. This method accepts the information necessary to construct the
component and its children: the component's name, type, resource
options, inputs, and input dependencies. It is responsible for
dispatching to the appropriate component factory to create the
component, then returning its URN, resolved output properties, and
output property dependencies. The dependency information is necessary to
support features such as delete-before-replace, which rely on precise
dependency information for custom resources.

These changes also add initial support for more conveniently
implementing resource providers in NodeJS. The interface used to
implement such a provider is similar to the dynamic provider interface
(and may be unified with that interface in the future).

An example of a NodeJS program constructing a remote component resource
also implemented in NodeJS can be found in
`tests/construct_component/nodejs`.

This is the core of #2430.
2020-09-07 19:33:55 -07:00
..
aliases add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
cloud_secrets_provider Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
config_basic Set default namespace for go config for config-less get/try/require (#4802) 2020-06-12 16:35:06 -07:00
config_capture_e2e/nodejs Changing build.proj to run all languages and tests on windows 2020-01-27 21:16:37 +02:00
construct_component Initial support for remote component construction. (#5280) 2020-09-07 19:33:55 -07:00
custom_timeouts add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
delete_before_create add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
dependency_steps add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
double_pending_delete add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
duplicate_urns add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
dynamic Install and use dependencies automatically for new Python projects (#4775) 2020-06-09 16:42:53 -07:00
ee_perf Use prefered new pulumi.Config() form 2019-01-31 16:11:57 -08:00
empty Install and use dependencies automatically for new Python projects (#4775) 2020-06-09 16:42:53 -07:00
explicit_provider Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
get_created Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
invalid_package_json Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
large_resource remove semicolon 2020-04-23 12:52:47 -07:00
partial_state add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
partial_values Propagate inputs to outputs during preview. (#3327) 2019-11-11 12:09:34 -08:00
policy Update @pulumi/policy dependency (#4439) 2020-04-18 13:07:19 -07:00
project_main Remove existing lock files 2018-11-12 15:33:58 -08:00
project_main_abs Fix pending delete replacement failure (#658) 2017-12-07 09:44:38 -08:00
project_main_parent Fix pending delete replacement failure (#658) 2017-12-07 09:44:38 -08:00
protect_resources add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
provider_secret_config Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
python/pylint Fix pylint(no-member) when accessing resource.id (#4813) 2020-06-12 12:41:56 -07:00
query add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
read add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
recreate_resource_check add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
secret_outputs Enable full strict mode. (#3218) 2019-09-11 16:21:35 -07:00
single_resource Suppress JSON outputs in preview correctly (#2771) 2019-05-25 12:10:38 +02:00
stack_bad_parenting Consistent dependencies (#2517) 2019-03-05 20:34:51 -08:00
stack_component/dotnet Bump to .NET Core 3.1 (#4400) 2020-04-15 16:31:18 +02:00
stack_dependencies Remove existing lock files 2018-11-12 15:33:58 -08:00
stack_outputs Bump to .NET Core 3.1 (#4400) 2020-04-15 16:31:18 +02:00
stack_parenting Consistent dependencies (#2517) 2019-03-05 20:34:51 -08:00
stack_project_name Consistent dependencies (#2517) 2019-03-05 20:34:51 -08:00
stack_reference Bump to .NET Core 3.1 (#4400) 2020-04-15 16:31:18 +02:00
stack_reference_multi/python Regression tests for StackReference in the Python SDK (#3913) 2020-02-17 10:40:46 -08:00
stack_reference_secrets Bump to .NET Core 3.1 (#4400) 2020-04-15 16:31:18 +02:00
steps add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
targets Breaking changes due to Feature 2.0 work 2020-04-14 09:30:25 +01:00
transformations add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
types add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
integration_dotnet_test.go add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
integration_go_test.go add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
integration_nodejs_test.go Initial support for remote component construction. (#5280) 2020-09-07 19:33:55 -07:00
integration_python_test.go add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00
integration_test.go add build tags to all integration tests (#5271) 2020-09-02 09:11:15 -07:00