Commit graph

5351 commits

Author SHA1 Message Date
Justin Van Patten
edc79325fe
Add support for getResource to Node.js SDK (#5837)
And update Node's resource ref deserialization to match Python.

Also, fixed a bug in Python resource ref deserialization that I noticed.
2020-12-01 10:58:15 -08:00
Levi Blackstone
aec5ada15d
[sdk/go]: Add support for getResource to Go SDK (#5823)
- Clean up resourceOptions and associated methods
- Add URN field and setter function
- Invoke getResource if URN set
2020-12-01 11:03:47 -07:00
Paul Stack
eee053cb4c
Ensure EncryptionKey is regenerated when changing secrets provider (#5842)
Fixes: #5835

when rotating a key in the Azure KeyVault secrets provider, we had
the following error:

```
error: secrets (code=InvalidArgument): keyvault.BaseClient#Decrypt: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="BadParameter" Message="The parameter is incorrect.\r\n"
```

This was because we were not regenerating the EncrytpionKey when
we were changing the secrets provider. Therefore, we now ensure
that this key is regenerated and we can successfully change the secrets provider

```
▶ pulumi stack init dev --secrets-provider="azurekeyvault://stack72kv10.vault.azure.net/keys/pulumi-secret"
Created stack 'dev'

▶ pulumi config set MyDBRootPassword Password1234! --secret

▶ pulumi config --show-secrets
KEY               VALUE
MyDBRootPassword  Password1234!

▶ pulumi stack change-secrets-provider "azurekeyvault://stack72kv20.vault.azure.net/keys/pulumi-secret"

▶ pulumi config --show-secrets
KEY               VALUE
MyDBRootPassword  Password1234!
```
2020-12-01 15:26:23 +00:00
Eric Rudder
fb78d1d9dd
go 1.13 to 1.15
as above
2020-11-30 10:41:03 -08:00
Nathan Winder
0bdf73341b
Enable creation of TStack using IServiceProvider (#5723)
* Enable creation of TStack using IServiceProvider to enable dependency injection.

* fixed line endings

* update change log

* Added PR link to change log

* fixed change log

* Added integration test

* Review adjustments

Co-authored-by: Mikhail Shilkov <github@mikhail.io>
2020-11-30 16:43:18 +01:00
Justin Van Patten
06da84a752
Turn on support for resourceReferences behind feature flag (#5830) 2020-11-25 10:43:46 -08:00
Komal
600e296ee2
[codegen/python] - Enums (#5553) 2020-11-24 23:43:32 -06:00
Komal
995d3b9b6c
Remove UsesIOClasses check. (#5827) 2020-11-24 19:15:37 -06:00
Komal
48f43906f4
[sdk/python] - Support enums (#5615)
Co-authored-by: Pat Gavlin <pat@pulumi.com>
2020-11-24 19:15:11 -06:00
Pat Gavlin
4b90205f3f
[codegen/python/sdk]: package/module registration (#5806)
Generate ResourcePackage and ResourceModule implementations and
registrations. A ResourcePackage is generated for any module that
includes a provider resource (which should be the root module only), and
a ResourceModule is generated for any module that includes a resource.

Note that version information is currently omitted. We should fix this
up before enabling resource reference deserialization end-to-end.
2020-11-24 12:43:23 -08:00
Paul Stack
b0580ab998
Ensure we don't panic or write import helper text on import errors (#5825)
Fixes: #5688
Fixes: #5737
2020-11-24 17:14:09 +00:00
Mikhail Shilkov
6138ee1cc7
Populate package for doc args types (#5822) 2020-11-24 11:20:25 +01:00
Lee Briggs
bed7c64afb
use correct repository for actions build (#5820) 2020-11-24 02:49:09 +00:00
Paul Stack
d64c58c731
Ensure the correct qualified code is emitted for Python ResourceOptions (#5824) 2020-11-24 02:21:25 +00:00
Pat Gavlin
ef6da5709d
Update Python resource ref deserialization. (#5805)
There are two significant changes in this commit: one to the way
resource packages/modules are stored and retrieved, and one to resource
ref deserialization in the face of missing resource packages/modules.

Resource packages and modules no longer require an exact version match
during deserialization. Instead, the newest compatible version of the
package or module is selected. If no version was specified, the newest
version of the package or module will be chosen. As a special case, a
package or module that has no version will always be treated as the best
version for that package or module.

If a resource package or module is not found when attempting to
deserialize a resource reference, the SDK no longer emits an error, and
instead deserializes the reference as its URN or ID (if present). This
accommodates providers that have not yet been updated to include the
appropriate factory registrations.
2020-11-23 15:37:44 -08:00
Justin Van Patten
a9d213107b
[codegen/(dotnet|python)]: Emit refs to provider resources (#5810) 2020-11-23 12:28:00 -08:00
Mikhail Shilkov
ebb4ddb86a
Add support for getResource to the .NET SDK (#5817) 2020-11-23 20:55:03 +01:00
Pat Gavlin
807b09d6a6
Fix a few issues with resource references. (#5804)
- Differentiate between resource references that have no ID (i.e. because
  the referenced resource is not a CustomResource) and resource references
  that have IDs that are not known. This is necessary for proper
  backwards-compatible serialization of resource references.
- Fix the key that stores a resource reference's package version in the
  .NET, NodeJS, and Python SDKs.
- Ensure that the resource monitor's marshalling/unmarshalling  of inputs
  and outputs to/from calls to `Construct` retain resource references as
  appropriate.
- Fix serialization behavior for resources -> resource references in the
  Go SDK: if a resource's ID is unknown, it should still be serialized
  as a resource reference, albeit a reference with an unknown ID.
2020-11-23 11:15:10 -08:00
Paul Stack
8df7d24523
Trigger Template and Examples tests on a release (#5815)
Fixes: #5738

This will ensure we find any potential issues after a release
2020-11-23 17:47:57 +00:00
Komal
505d53421e
[codegen/python] - Include inputs import in provider.py (#5818) 2020-11-23 10:39:42 -06:00
Luke Hoban
4ecd8f9f56
Add PULUMI_BACKEND_URL env var (#5789)
The PULUMI_BACKEND_URL env var allows specifying the backend to use instead of deferring to the project or the ~/.pulumi/credentials.json file to decide on the "current" backend.  This allows for using Pulumi without a dependence on this piece of global filesystem state, so that each `pulumi` invocation can control the exact backend it want's to operate on, without having to do stateful `pulumi login`/`pulumi logout` operations.

This is especially useful for automation scenarios like Automation API generally (and effectively solves https://github.com/pulumi/pulumi/issues/5591), or https://github.com/pulumi/pulumi-kubernetes-operator/issues/83 specifically.

This also makes things like efe7a599e6/dist/actions/entrypoint.sh (L10) less necessary, and possible to accomplish for any containerized `pulumi` execution without the need for this logic to be embedded in bash scripts wrapping the CLI.
2020-11-22 15:27:59 -08:00
Justin Van Patten
9a707c4e03
Improve the output when installing plugins (#5808)
Two improvements:

1. Don't display "[resource plugin <foo>] installing" if the plugin is already installed.

2. Close the plugin download progress bar before displaying any subsequent output, and only show output of `npm install` when there is an error.
2020-11-21 08:02:05 -08:00
Pat Gavlin
20f7720869
Add support for getResource to the Python SDK. (#5694)
Just what it says on the tin.

The SDK code generator will be updated to use the new `urn`
resource option inside of each module's implementation of
`ResourceModule.construct`.

Part of #2430.

Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2020-11-20 13:13:23 -08:00
Mikhail Shilkov
a056daafd7
[codegen/dotnet] Handle external resource refs (#5791) 2020-11-20 21:09:34 +01:00
Pat Gavlin
f527e06b21
Allow schemas to reference to provider types. (#5788)
These changes extend the type reference parser in the schema package to
accept references of the form "(package/version/schema.json)?#/provider".
These references refer to the package's provider type, which is
otherwise not referenceable, as it is not present in the "resources"
array.
2020-11-20 09:16:45 -08:00
Levi Blackstone
3586ab5d85
[codegen/python] Handle external schema refs (#5684) 2020-11-19 13:56:28 -07:00
Paul Stack
509be5003f
Ensure we pass a version with v prefix to bump-homebrew version (#5786) 2020-11-19 18:16:59 +00:00
Justin Van Patten
4c88e215ce
Respect PULUMI_PYTHON_CMD in scripts (#5782)
If `PULUMI_PYTHON_CMD` is set, use it instead of running `python` directly.
2020-11-18 19:08:41 -08:00
Vivek Lakshmanan
2b435bb1a7
Merge pull request #5670 from pulumi/vl/GoEnumsCodegen
Adding support for go enum generation
2020-11-18 11:54:30 -08:00
Pat Gavlin
f0951ce650
Rename engine.plan to engine.deployment. (#5777)
This name better suits the semantics of the type, and aligns with the
rename of deploy.Plan to deploy.Deployment. These changes also refactor
the `update` method s.t. previews and updates are more consistent in
their behavior (e.g. duration and resource changes are now reported for
both, incl. on error paths).
2020-11-18 11:16:30 -08:00
Vivek Lakshmanan
1cfbe5bdd5 Linting fixes 2020-11-18 10:57:01 -08:00
Vivek Lakshmanan
1ba418ee7b
Merge pull request #5751 from pulumi/vl/VerboseBuild
Reduce verbosity on tests
2020-11-18 10:38:06 -08:00
stack72
3919ef5010 Ensure we call the correct build container action in the container build command-dispatch 2020-11-18 18:12:42 +00:00
stack72
342a024207 Ensuring that a GitHub Token is present in the workflow release for docker builds 2020-11-18 18:04:11 +00:00
Pat Gavlin
0981df6a7a
Rename deploy.Plan to deploy.Deployment. (#5774)
Rename deploy.Plan to deploy.Deployment.

There are two benefits to this change:

1. The name "Deployment" more accurately reflects the behavior of the
   type, which is responsible for previewing or executing a deployment.
2. Renaming this type frees up the name "Plan" for use when addressing
   #2318.
2020-11-18 09:47:52 -08:00
Vivek Lakshmanan
d1caee26d3 Update makeSafeEnum semantics to match other languages 2020-11-18 09:44:30 -08:00
Vivek Lakshmanan
55e86bf078
Update sdk/python/Makefile
Co-authored-by: Komal <komal@pulumi.com>
2020-11-18 09:21:41 -08:00
stack72
8ade2f8319 Prepare for v2.14.0 release 2020-11-18 16:56:26 +00:00
Vivek Lakshmanan
221105a072 Ensure stderr is updated on error even if verbose is not set 2020-11-18 00:56:26 -08:00
Vivek Lakshmanan
da5c01f9ca Fix build/tests 2020-11-18 00:13:41 -08:00
Vivek Lakshmanan
6e466e4ec0 Apply suggestions from code review
Co-authored-by: Komal <komal@pulumi.com>

Address PR comments
2020-11-18 00:08:09 -08:00
Vivek Lakshmanan
c818098733 Address PR comment 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
65e027062d Add an underscore if enum values have underscores 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
41fff5dc08 Add type as prefix for enum values 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
169fb47154 Consolidate tests 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
3c2b7a8945 Add additional test to demonstrate strict/relaxed enum semantics 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
43e48950df Adding support for go enum generation 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
302f869dc5 Drop unnecessary prefix in test output since we rely on go's testing to do the right thing 2020-11-17 23:24:08 -08:00
Vivek Lakshmanan
84d1505807 Switch to using t.Logf instead of printf 2020-11-17 23:09:18 -08:00
Vivek Lakshmanan
0d6f9fdcbf Switch to pytest since it captures stdout/stderr and only prints on failure 2020-11-17 23:09:18 -08:00